Как загрузить физический раздел Windows с помощью qemu?

14

У меня установлен gentoo и windows 7 на моем единственном жестком диске. Я хочу начать установку Windows из gentoo через qemu. Меню загрузки работает нормально, но окна синего цвета на мне вскоре после того, как я его выбрал.

Как бы я заставить это работать?

(Я предполагаю, что в windows отсутствуют драйверы, необходимые для работы эмулируемого qemu оборудования.)

Макинрой
источник
убедитесь, что вы работаете qemuс правильной архитектурой. Кроме того, Windows не сможет загрузиться, если он ожидает, что контроллер жесткого диска будет AHCI, и это не так (и наоборот).
gelraen
Архитектура хороша, но я не думаю, что можно что-то сделать с ahci, так как qemu, похоже, не поддерживает это ...
McEnroe
Попробуйте это: avforums.com/forums/windows-7/...
gelraen
@gelraen проблема в том, что ваша ссылка описывает обратный процесс того, что я хочу сделать. Я не могу рисковать, просто попробовав это, не зная, что есть шанс, что это сработает, или, по крайней мере, это на 100% обратимо.
Макинрой
Этот пост как раз о возвращении из AHCI в ATA. И вы всегда можете отключить AHCI на физическом компьютере и изменить его обратно, или даже просто сделать резервную копию файлов реестра.
gelraen

Ответы:

8

Загрузка собственного физического раздела Windows7 может быть выполнена следующим образом:

  1. Подготовьте реквизиты (установочный носитель Win7, драйверы Virtio).
  2. Сделайте ваш жесткий диск доступным только для чтения для вашего текущего пользователя.
  3. Загрузите его, используя QEMU в режиме моментального снимка.

Это не меняет ничего на физическом диске (на самом деле это только для чтения).


подробности

Подготовить реквизиты

  1. Подготовьте ISO-образ или, если у вас под рукой, настоящий установочный носитель для Win7.
  2. Загрузите драйверы Virtio, например, эти драйверы от Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Позаботьтесь об использовании правильного установочного носителя, соответствующего установленной архитектуре Windows (32 бита против 64 бита). Следующие команды предполагают 64-битную архитектуру.

Сделать диск доступным

Это предполагает, что ваш жесткий диск /dev/sdaи был выполнен как root:

   chmod g-w /dev/sda
   chgrp $USER /dev/sda

Эти изменения (вероятно) будут потеряны при следующей перезагрузке, поскольку udev обычно воссоздает все файлы устройства.

Загрузка с QEMU

  1. Это снова предполагает, что ваш жесткий диск /dev/sda. Сеть отключена:

    qemu-system-x86_64 -snapshot -m 3G -enable-kvm -usbdevice tablet \
    -drive file=/dev/sda,if=virtio \
    -drive file=<win7-installation-media> \
    -drive file=<virtio-driver-media>,media=cdrom -boot d \
    -net none
    
  2. Теперь загрузитесь с CD / DVD, чтобы начать восстановление Win7, загрузите драйвер Virtio и выполните следующую команду в командной строке восстановления. Убедитесь, что вы заменили буквы дисков на правильные:

    dism /image:g:\ /add-driver /driver:e:\viostor\w7\amd64
    

Диск G:- это диск с вашей установкой Win7. Привод E:представляет собой привод CDROM с драйверами Virtio.

Команда dismбыла скопирована из этого ответа суперпользователя .

Посмотрите на скриншоты для деталей:

(Прошу прощения, скриншоты подготовлены, но мне нужно 10 репутации, чтобы иметь возможность опубликовать их :)

Doak
источник
10 репутаций - это боль. Это остановило меня и многих других от предоставления подробной помощи, которую мы хотели. = / Я только что загрузил свой, чтобы imgur и вставил ссылки, к вашему сведению.
Брент Риттенхаус
Если честно, набрать 10 очков не так уж сложно. Проблема в том, что я больше не могу найти скриншоты. Я почти уверен, что они где-то на моих дисках, но ...: /
doak
3

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

Основным аргументом является то, что при установке Windows ключ продукта связывается с материнской платой вашего компьютера. Теперь, когда вы пытаетесь запустить Windows, используя qemu, Windows воспринимает эмулятор qemu как другую материнскую плату и, таким образом, создает проблемы.

Обратитесь к сообщению для более подробной информации.

Hashken
источник
2
VirtualBox может рекламировать себя как произвольную материнскую плату ( forums.virtualbox.org/viewtopic.php?t=33356 ), возможно, QEMU также может.
RushPL
1

Мне удалось сделать это на archlinux, в основном, адаптируя примеры, которые другие (более умные) люди приводили в блогах.

Минимальная версия:

установить депс

sudo pacman -S qemu   # qemu itself
sudo pacman -S ovmf   # intel EFI driver
cp /usr/share/ovmf/x64/OVMF_CODE.fd bios.bin   # copy OVMF_CODE.fd to bios.bin somewhere. It MUST be renamed.

начать QEMU

qemu-system-x86_64 \
    -enable-kvm                                   `# enable KVM optimiations` \
    -L .                                          `# dir with bios.bin` \
    --bios bios.bin                               `# bios.bin itself` \
    -m 8G                                         `# provide reasonable amount of ram` \
    -cpu host                                     `# match the CPU type exactly` \
    -drive file=/dev/sda,format=raw,media=disk    `# load raw HDD` 

Оптимизация производительности

Следующие флаги также были рекомендованы мне, и я успешно их использую.

# emulate exact host cpu,
# enable hyper-v enlightenments
-enable-kvm
-cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time
-machine type=pc,accel=kvm

# use all available CPU cores
-smp $(nproc)

зритель

Я использовал Spice в качестве зрителя:

-daemonize  `# don't start monitor, we connect using RDP` \
-vga qxl \
-spice port=5930,disable-ticketing \
-device virtio-serial \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \

Затем следует следующее для отображения зрителя

spicy -h 127.0.0.1 -p 5930 & disown spicy;  # spice-gtk

Предупреждение о загрузчике Windows

Наконец, остерегайтесь загрузчика Windows, если вы используете несколько дисков. У меня теперь установлена ​​Windows, которая не будет загружаться, если не присутствует и второй не-OS диск.

Ссылки

Хотелось бы, чтобы я держал свои источники здесь - я помню, по крайней мере, следующее было очень полезно:

https://wiki.qemu.org/Main_Page https://qemu.weilnetz.de/doc/qemu-doc.html https://wiki.archlinux.org/index.php/QEMU https: //wiki.gentoo .org / wiki / QEMU https://www.suse.com/documentation/sles11/book_kvm/data/part_2_book_book_kvm.html

Удачи!

willjp
источник
Это работало для меня на
Arch
0

Вот что я использую для физического диска Windows 10. Обратите внимание, что во многих случаях Windows не загружается, если вы не используете флаг "-cpu host".

Просто замените / dev / nvme0n1 на ваш диск, например. / dev / sda или / dev / sdb

qemu-system-x86_64 --enable-kvm -cpu host -smp 8 -m 8192 -drive format = raw, file = / dev / nvme0n1

Источник: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Ариб Су Ясир
источник