Jak uruchomić fizyczną partycję Windows za pomocą qemu?

14

Mam Gentoo i Windows 7 zainstalowane razem na moim jedynym dysku twardym. Chcę rozpocząć instalację systemu Windows od Gentoo poprzez qemu. Menu rozruchu działa dobrze, ale Windows bluescreen na mnie wkrótce po tym, jak go wybiorę.

Jak sprawiłbym, żeby to działało?

(Zakładam, że w systemie Windows brakuje sterowników wymaganych do działania emulowanego przez qemu sprzętu).

McEnroe
źródło
upewnij się, że działasz qemuz poprawną architekturą. Ponadto Windows nie uruchomi się, jeśli będzie czekał na kontroler HDD AHCI, a nie będzie (i odwrotnie).
gelraen
Architektura jest dobra, ale nie sądzę, że można coś zrobić z ahci, ponieważ qemu nie obsługuje tego ...
McEnroe
Spróbuj tego: avforums.com/forums/windows-7/…
gelraen
@ gelraen problem polega na tym, że twój link opisuje odwrotny proces tego, co chcę zrobić. Nie mogę ryzykować po prostu wypróbowania go, nie wiedząc, że istnieje szansa, że ​​się uda, a przynajmniej że jest w 100% odwracalny.
McEnroe,
Ten post dotyczy dokładnie powrotu z AHCI do ATA. I zawsze możesz wyłączyć AHCI na fizycznym komputerze i zmienić go z powrotem, a nawet po prostu wykonać kopię zapasową plików rejestru.
gelraen,

Odpowiedzi:

8

Uruchamianie natywnej fizycznej partycji Windows7 można wykonać w następujący sposób:

  1. Przygotuj wymagane elementy (nośnik instalacyjny Win7, sterowniki Virtio).
  2. Udostępnij dysk twardy tylko do odczytu dla bieżącego użytkownika.
  3. Uruchom go za pomocą QEMU w trybie migawki.

Nie zmienia to niczego na dysku fizycznym (w rzeczywistości jest tylko do odczytu).


Detale

Przygotuj niezbędne artykuły

  1. Przygotuj ISO lub, jeśli masz pod ręką, prawdziwy nośnik instalacyjny dla Win7.
  2. Pobierz sterowniki Virtio, np. Te sterowniki z Fedory:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Uważaj, aby używać właściwego nośnika instalacyjnego pasującego do zainstalowanej architektury Windows (32-bitowy vs 64-bitowy). Następujące polecenia zakładają architekturę 64-bitową.

Udostępnij dysk

Zakłada się, że twój dysk twardy jest /dev/sdai został wykonany jako root:

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

Zmiany te (prawdopodobnie) zostaną utracone przy następnym uruchomieniu, ponieważ udev zwykle odtworzy wszystkie pliki urządzeń.

Uruchamianie za pomocą QEMU

  1. To ponownie zakłada, że ​​twój dysk twardy jest /dev/sda. Sieć jest wyłączona:

    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. Teraz uruchom komputer z dysku CD / DVD, aby rozpocząć odzyskiwanie Win7, załaduj sterownik Virtio i uruchom następujące polecenie w wierszu polecenia odzyskiwania. Upewnij się, że zastąpiłeś litery dysku odpowiednimi:

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

Dysk G:to dysk zawierający instalację Win7. Dysk E:reprezentuje napęd CD-ROM ze sterownikami Virtio.

dismKomenda została skopiowana z tego super odpowiedź użytkownika .

Zobacz szczegóły na zrzutach ekranu:

(Przepraszam, zrzuty ekranu są przygotowane, ale potrzebuję 10 reputacji, aby móc je opublikować :)

doak
źródło
10 rzeczy związanych z reputacją to ból. To powstrzymało mnie i wielu innych od udzielenia szczegółowej pomocy, jakiej chcieliśmy. = / Właśnie przesłałem moje do imgur i wkleiłem linki, FYI.
Brent Rittenhouse,
Szczerze mówiąc, 10 punktów nie jest zbyt trudnych do zdobycia. Problem polega na tym, że nie mogę już znaleźć zrzutów ekranu. Jestem całkiem pewien, że są gdzieś na moich dyskach, ale ...: /
doak
3

Z tego, co widziałem w tym poście , nie można użyć qemu do uruchomienia istniejącej instalacji systemu Windows.

Podstawowym argumentem jest to, że po zainstalowaniu systemu Windows klucz produktu jest powiązany z płytą główną komputera. Teraz, gdy próbujesz uruchomić system Windows za pomocą qemu, system Windows postrzega emulator qemu jako inną płytę główną, co powoduje problemy.

Więcej informacji można znaleźć w poście .

Hashken
źródło
2
VirtualBox może reklamować się jako arbitralna płyta główna ( forums.virtualbox.org/viewtopic.php?t=33356 ), być może QEMU również.
RushPL
1

Udało mi się to zrobić na archlinuxie, głównie poprzez dostosowanie przykładów, które inni (mądrzejsi) podali na blogach.

Minimalna wersja:

zainstaluj deps

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.

uruchom 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` 

Optymalizacje wydajności

Polecono mi także następujące flagi i korzystałem z nich z powodzeniem.

# 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)

Widz

Użyłem przyprawy jako przeglądarki:

-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 \

Następują następujące czynności, aby wyświetlić przeglądarkę

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

Ostrzeżenie programu ładującego system Windows

Wreszcie, uważaj na bootloader systemu Windows, jeśli używasz wielu dysków. Mam teraz instalację systemu Windows, która nie uruchomi się, chyba że będzie obecny także drugi dysk inny niż system operacyjny.

Bibliografia

Chciałbym zachować tutaj swoje źródła - pamiętam, że przynajmniej następujące były bardzo pomocne:

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

Powodzenia!

willjp
źródło
To zadziałało dla mnie na arch Linux
jameh
0

Oto, czego używam na fizycznym dysku Windows 10. Zauważ, że w wielu przypadkach system Windows nie uruchomi się, jeśli nie użyjesz flagi „-cpu host”.

Po prostu zamień / dev / nvme0n1 na dysk, np. / dev / sda lub / dev / sdb

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

Źródło: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Areeb Soo Yasir
źródło