LINUX.ORG.RU

Загрузка Windows с раздела, используя вируализацию

 , , ,


1

1

Идея такая: не выключая линукса, загружать винду 10 с помощью qemu, отдать ей некоторую часть мощности. Гуглил возможные способы, но рабочего не нашел. Нашел вот такую конфигурацию:

sudo qemu-system-x86_64 -enable-kvm -L Win10/ --bios bios.bin -m 4G -cpu host -drive file=/dev/nvme0n1p4,format=raw,media=disk -smp 4

(bios.bin скопирован из /usr/share/ovmf/OVMF.fd) На что он пишет:

Nothing to boot: no such file or directory

и строки вида

BdsDxe: failed to load Boot0001 "UEFI QEMU HARDDISK QM00001" from PciRoot(0x0)/Pci(0x1,0x1)/Ata(primary, masetr, 0x0): Not found

А потом отправляет в Shell. (Что-то мне подсказывает, что я просто чего-то не настроил, а надо было) Есть идеи?

Ну смотри, Windows у тебя стоит на накопителе, на котором есть таблица разделов, mbr или gpt.

А В qemu ты пытаешься пробросить только один раздел в качестве диска.

Для запуска Windows тебе нужен загрузчик. В случае mbr первичный загрузчик находится в первых 446 байтах нулевого сектора, а вторичный на системном разделе, отдельном или том же, где и папка Windows. А у тебя нет разделов на виртуальном накопителе.

Ты конечно можешь в виртуальную машину подключить ещё один диск, виртуальный в файле, на нём создать разметку, раздел для загрузчика и далее через установочный диск Windows установить на диск в файле загрузчик с указанием, что система установлена на втором диске.

Но в качестве второго диска ты пробросил раздел.

Т.е. тебе нужно в виртуальную машину пробрасывать целиком реальный диск, либо некоторым способом подключать виртуальный диск на который будет как-то проброшен один из разделов.

Это можно сделать с помощью mdadm и утилиты dmsetup. Ты можешь собрать виртуальное устройство, на которое будет «смаплен» раздел Windows и указать даже, что изменения вносимые на раздел или это виртуальное устройство должны писаться в другое место, например в файл.

Точные команды я тебе не подскажу, я этим не пользовался, только читал.

В случае если у тебя диск в GPT формате то в виртуальную машину аналогично нужно пробрасывать диск с разметкой. Или создавать виртуальное блочное устройство с помощью dmsetup.

Вот тут найдёшь что-нибудь полезное: https://wiki.gentoo.org/wiki/Device-mapper

Удачи.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от Yarosvet

Это самый простой выход, но не факт, что безопасный. Ты всё же отдаёшь другой операционной системе накопитель, к частям которого имеет прямой доступ основная операционная система, которая запущена с того же самого накопителя.

В принципе это не должно привести к проблеме, но может. В особенности если ты случайно или не случайно попробуешь смонтировать файловые системы с разделов Windows в Linux. Это точно приведёт к их повреждению. Ну и аналогично с файловыми системами Linux в Windows, если ты вдруг решишь там установить или у тебя уже стоит драйвер для файловых систем Linux или подсистема WSL2.

kostik87 ★★★★★
()