Bagaimana cara mem-boot partisi Windows fisik dengan qemu?

14

Saya telah menginstal gentoo dan windows 7 di satu-satunya hard drive saya. Saya ingin memulai instalasi windows dari gentoo melalui qemu. Menu boot berfungsi dengan baik tetapi windows bluescreens pada saya segera setelah saya memilihnya.

Bagaimana saya membuatnya bekerja?

(Saya menganggap windows tidak memiliki driver yang diperlukan agar perangkat keras yang diemulasi qemu berfungsi.)

McEnroe
sumber
pastikan Anda menjalankan qemudengan arsitektur yang benar. Juga, windows akan gagal mem-boot jika ia menunggu HDD controller menjadi AHCI dan bukan (dan sebaliknya).
gelraen
Arsitekturnya bagus, tapi saya rasa tidak ada yang bisa dilakukan tentang ahci karena qemu sepertinya tidak mendukungnya ...
McEnroe
@gelraen masalahnya adalah tautan Anda menjelaskan proses sebaliknya dari apa yang ingin saya lakukan. Saya tidak bisa mengambil risiko hanya mencobanya tanpa mengetahui bahwa ada kemungkinan berhasil atau setidaknya itu 100% reversibel.
McEnroe
Posting itu adalah tentang mengembalikan kembali dari AHCI ke ATA. Dan Anda selalu dapat mematikan AHCI pada mesin fisik dan mengubahnya kembali, atau bahkan hanya membuat cadangan file registri.
gelraen

Jawaban:

7

Mem-boot partisi Windows7 asli secara fisik dapat dilakukan dengan ini:

  1. Siapkan syarat (media instalasi Win7, driver Virtio).
  2. Jadikan hard drive Anda dapat diakses hanya untuk pengguna saat ini.
  3. Boot menggunakan QEMU dalam mode snapshot.

Ini tidak mengubah apa pun pada drive fisik (sebenarnya hanya baca).


Detail

Siapkan persyaratan

  1. Siapkan ISO atau, jika Anda memiliki drive di tangan, media instalasi nyata untuk Win7.
  2. Unduh driver Virtio, misalnya untuk driver ini dari Fedora:
    https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Berhati-hatilah untuk menggunakan media instalasi yang benar yang cocok dengan arsitektur Windows yang terinstal (32bit vs 64bit). Perintah berikut menganggap arsitektur 64bit.

Jadikan disk dapat diakses

Ini mengasumsikan hard drive Anda sedang /dev/sdadan telah dijalankan sebagai root:

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

Perubahan ini (kemungkinan) akan hilang pada reboot berikutnya karena udev biasanya akan membuat ulang semua file perangkat.

Booting dengan QEMU

  1. Ini lagi mengasumsikan hard drive Anda /dev/sda. Jaringan dinonaktifkan:

    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. Sekarang boot dari CD / DVD untuk memulai pemulihan Win7, muat driver Virtio dan jalankan perintah berikut di prompt perintah pemulihan. Pastikan Anda mengganti huruf drive dengan yang tepat:

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

Drive G:adalah drive yang berisi instalasi Win7 Anda. Drive E:mewakili drive CDROM dengan driver Virtio.

The dismperintah disalin dari ini Super User jawaban .

Lihat tangkapan layar untuk detailnya:

(Maaf, tangkapan layar sudah disiapkan, tetapi saya perlu 10 reputasi untuk dapat mempostingnya :)

doak
sumber
10 reputasi itu menyakitkan. Itu menghentikan saya, dan banyak orang lain, dari memberikan jenis bantuan rinci yang kami inginkan. = / Saya baru saja mengunggah milik saya ke imgur dan menempelkan tautannya, FYI.
Brent Rittenhouse
Sejujurnya, 10 poin tidak terlalu sulit didapat. Masalahnya adalah saya tidak dapat menemukan tangkapan layar lagi. Saya cukup yakin bahwa mereka ada di suatu tempat di disk saya, tetapi ...: /
doak
3

Dari apa yang saya lihat di posting ini , Anda tidak dapat menggunakan qemu untuk mem-boot instalasi Windows yang ada.

Argumen utama yang diberikan adalah bahwa, ketika windows diinstal, kunci Produk dikaitkan dengan Motherboard komputer Anda. Sekarang, ketika Anda mencoba menjalankan Windows menggunakan qemu, windows menganggap emulator qemu sebagai motherboard yang berbeda dan karenanya memberikan masalah.

Lihat posting untuk lebih jelasnya.

Hashken
sumber
2
VirtualBox dapat mengiklankan dirinya sebagai motherboard sewenang-wenang ( forums.virtualbox.org/viewtopic.php?t=33356 ) mungkin QEMU juga bisa.
RushPL
1

Saya telah berhasil melakukan ini di archlinux, kebanyakan dengan mengadaptasi contoh-contoh yang diberikan orang (pintar) lainnya di blog.

Versi Minimal:

pasang 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.

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

Optimalisasi Kinerja

Bendera berikut juga direkomendasikan kepada saya, dan saya telah menggunakannya dengan sukses.

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

Penonton

Saya menggunakan rempah-rempah sebagai penampil:

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

Diikuti oleh yang berikut ini untuk menampilkan penampil

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

Peringatan Windows Bootloader

Terakhir, waspadalah terhadap bootloader windows jika Anda menggunakan banyak disk. Saya memiliki windows-install sekarang yang tidak bisa boot kecuali drive non-OS kedua juga ada.

Referensi

Saya berharap saya menyimpan sumber saya di sini - Saya ingat setidaknya yang berikut ini sangat membantu:

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

Semoga berhasil!

willjp
sumber
Ini bekerja untuk saya di arch linux
jameh
0

Inilah yang saya gunakan untuk drive Windows 10 fisik. Perhatikan bahwa dalam banyak kasus Windows akan gagal untuk boot jika Anda tidak menggunakan flag "-cpu host".

Cukup ganti / dev / nvme0n1 dengan drive Anda misalnya. / dev / sda atau / dev / sdb

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

Sumber: http://realtechtalk.com/QEMUKVM_wont_boot_Windows_2016_or_2019_server_on_an_Intel_Core_i3_-2221-articles

Areeb Soo Yasir
sumber