วิธีการบูตฟิสิคัลพาร์ติชัน Windows ด้วย qemu


14

ฉันมี gentoo และ windows 7 ติดตั้งอยู่บนฮาร์ดไดรฟ์ตัวเดียวของฉัน ฉันต้องการเริ่มการติดตั้ง windows จากภายใน gentoo ถึง qemu เมนู Boot ทำงานได้ดี แต่ windows bluescreens กับฉันหลังจากฉันเลือก

ฉันจะทำให้มันทำงานได้อย่างไร

(ฉันถือว่า windows ไม่มีไดรเวอร์ที่จำเป็นสำหรับฮาร์ดแวร์ qemu emulated ให้ทำงาน)


ตรวจสอบให้แน่ใจว่าคุณเรียกใช้qemuด้วยสถาปัตยกรรมที่ถูกต้อง นอกจากนี้ windows จะไม่สามารถบู๊ตได้หากรอให้ตัวควบคุม HDD เป็น AHCI และไม่ใช่ (และในทางกลับกัน)
gelraen

สถาปัตยกรรมดี แต่ฉันไม่คิดว่าจะมีสิ่งใดที่สามารถทำได้เกี่ยวกับ ahci เนื่องจาก qemu ดูเหมือนจะไม่สนับสนุน ...
McEnroe

ลองทำสิ่งนี้: avforums.com/forums/windows-7/…
gelraen

@Gelraen ปัญหาคือลิงค์ของคุณอธิบายถึงกระบวนการย้อนกลับของสิ่งที่ฉันต้องการจะทำ ฉันไม่สามารถเสี่ยงเพียงทดลองโดยไม่ทราบว่ามีโอกาสที่จะได้ผลหรืออย่างน้อยก็กลับได้ 100%
McEnroe

โพสต์นั้นเกี่ยวกับการคืนค่าจาก 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และถูกดำเนินการในฐานะรูท:

   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
    

Drive G:เป็นไดรฟ์ที่มีการติดตั้ง Win7 ของคุณ Drive E:แสดงถึงไดรฟ์CDROM พร้อมไดรเวอร์ Virtio

dismคำสั่งที่ถูกคัดลอกมาจากนี้ซูเปอร์คำตอบของผู้ใช้

ดูภาพหน้าจอเพื่อดูรายละเอียด:

(ฉันขอโทษจัดทำภาพหน้าจอ แต่ฉันต้องการ 10 ชื่อเสียงเพื่อให้สามารถโพสต์ได้ :)


สิ่งที่มีชื่อเสียง 10 ข้อนั้นเป็นความเจ็บปวด มันหยุดฉันและคนอื่น ๆ มากมายจากการให้ความช่วยเหลืออย่างละเอียดที่เราต้องการ = / ฉันเพิ่งอัพโหลดของฉันไปที่ imgur และวางลิงค์, FYI
Brent Rittenhouse

ความซื่อสัตย์ 10 คะแนนนั้นไม่ยากเกินไป ปัญหาคือฉันไม่สามารถหาภาพหน้าจออีกต่อไป ฉันค่อนข้างแน่ใจว่าพวกเขาอยู่ที่ไหนสักแห่งบนดิสก์ของฉัน แต่ ... : /
doak

3

จากสิ่งที่ฉันเห็นในโพสต์นี้คุณไม่สามารถใช้ qemu เพื่อบูตการติดตั้ง Windows ที่มีอยู่

อาร์กิวเมนต์หลักที่ได้รับคือเมื่อติดตั้ง windows รหัสผลิตภัณฑ์จะเชื่อมโยงกับมาเธอร์บอร์ดของคอมพิวเตอร์ของคุณ ตอนนี้เมื่อคุณพยายามเรียกใช้ Windows โดยใช้ qemu windows จะรับรู้ว่า qemu emulator เป็นเมนบอร์ดอื่นและทำให้เกิดปัญหา

อ้างถึงโพสต์สำหรับรายละเอียดเพิ่มเติม


2
VirtualBox สามารถโฆษณาตัวเองเป็นเมนบอร์ดพล ( forums.virtualbox.org/viewtopic.php?t=33356 ) บางทีอาจจะเป็น QEMU สามารถดี
RushPL

1

ฉันได้ทำเช่นนี้ใน archlinux ส่วนใหญ่โดยการปรับตัวอย่างที่คนอื่น ๆ (อย่างชาญฉลาด) ให้ในบล็อก

รุ่นที่น้อยที่สุด:

ติดตั้ง 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.

เริ่ม 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)

ผู้ชม

ฉันใช้เครื่องเทศเป็นตัวแสดง:

-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

คำเตือน Bootloader ของ Windows

สุดท้ายระวังของ windows bootloader หากคุณใช้ดิสก์หลาย ๆ ตัว ฉันมี windows-install ทันทีที่จะไม่สามารถบู๊ตได้เว้นแต่ว่ามีไดรฟ์ที่ไม่ใช่ระบบปฏิบัติการตัวที่สองอยู่ด้วย

อ้างอิง

ฉันหวังว่าฉันเก็บแหล่งข้อมูลของฉันที่นี่ - ฉันจำได้ว่าอย่างน้อยสิ่งต่อไปนี้มีประโยชน์มาก:

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

โชคดี!


สิ่งนี้ใช้ได้กับฉันใน arch linux
jameh

0

นี่คือสิ่งที่ฉันใช้สำหรับไดรฟ์ Windows 10 จริง โปรดทราบว่าในหลายกรณี Windows จะไม่สามารถบูตได้หากคุณไม่ใช้แฟล็ก "-cpu host"

เพียงแค่แทนที่ / dev / nvme0n1 ด้วยไดรฟ์ของคุณเช่น / dev / sda หรือ / dev / sdb

qemu-system-x86_64 --enable-kvm -cpu โฮสต์ -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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.