Windows 7 ไม่สามารถติดตั้งบน KVM ด้วย qemu


8

ฉันกำลังพยายามติดตั้ง Windows 7 ในฐานะแขกของระบบปฏิบัติการในเครื่องเสมือนที่โฮสต์โดยกล่อง Ubuntu Karmic 64 บิตของฉัน ฉันไปที่จุดของการเลือกการตั้งค่าภาษาของฉันและคลิก 'ติดตั้งตอนนี้' แต่ไม่นานหลังจากนั้นฉันได้รับหน้าจอสีน้ำเงินความตาย

ฉันลองใช้หลายรูปแบบรวมถึงการใช้ Windows 7 รุ่น 32 บิตซึ่งล้มเหลวอย่างรวดเร็ว virt-installคำสั่งฉันได้พยายามรวมนี้:

sudo virt-install --connect qemu:///system -n ksm-win7 -r 2048 \
--disk path=/home/kief/VM-Images/ksm-win7.qcow2,size=50 \
-c /var/Software/Windows7/Full/64bit/SW_DVD5_SA_Win_Ent_7_64BIT_English_Full_MLF_X15-70749.ISO \
--vnc --os-type windows --os-variant vista --hvm

ข้อมูลที่ จำกัด ที่ฉันสามารถหาได้แนะนำว่า 'Vista' ควรทำงานเป็น --os-variant ฉันไม่พบค่าเฉพาะสำหรับ Windows 7

นี่คือหน้าจอสีน้ำเงินของฉัน:

BSOD

ฉันพบ Googling น้อยมากดังนั้นฉันจึงคาดเดาว่านี่ไม่ใช่กรณีของ KVM เพียง แต่ไม่รองรับ Windows 7

ปรับปรุง:

ฉันได้รับสามารถที่จะประสบความสำเร็จในการสร้าง Windows 7 VM ใช้แบบกราฟิก "จัดการเครื่องเสมือน app" แต่ฉันไม่เข้าใจจริงๆสาเหตุของปัญหาที่มี VM virt-installที่สร้างขึ้นด้วย การเปรียบเทียบไฟล์การกำหนดค่าภายใต้ / etc / libvirt / qemu จะให้เบาะแสบางอย่างแม้ว่าฉันจะไม่สามารถตีความได้อย่างถูกต้อง ความแตกต่างที่น่าสนใจในการกำหนดค่า VM สองแบบคือ:

--- win7-virt-install.xml
+++ win7-vmm.xml
-<domain type='qemu'>
+<domain type='kvm'>
@@ -21 +21 @@
-    <emulator>/usr/bin/qemu-system-x86_64</emulator>
+    <emulator>/usr/bin/kvm</emulator>
@@ -23 +23 @@
-      <source file='/home/kief/VM-Images/ksm-win7.qcow2'/>
+      <source file='/var/lib/libvirt/images/ksm-win7x64.img'/>

ฉันไม่แน่ใจว่านี่หมายความว่า VM ที่ใช้งานไม่ได้ใช้ qemu เลยหรือถ้ามีความแตกต่างอื่น ๆ ในวิธีที่ใช้กับ kvm

Update2:

ดังนั้นฉันจึงตอบคำถามของฉันเอง (ส่วนใหญ่) ด้านล่าง KVM VM จำเป็นต้องใช้การจำลอง CPU ของ KVM แทนที่จะเป็น qemu เพื่อให้ฉันติดตั้ง Windows 7 ได้ ฉันไม่แน่ใจว่ามีบางอย่างที่สามารถทำได้เพื่อให้มันทำงานบนซีพียู qemu-emulation หรือไม่หรือว่าเวอร์ชั่นใหม่จะรองรับ แต่อย่างน้อยก็เป็นไปได้ที่จะทำให้มันทำงานบน KVM VM

คำตอบ:


7

นี่คือวิธีง่ายๆ

ยกเว้นว่าคุณมีเหตุผลที่เฉพาะเจาะจงว่าทำไมคุณจึงติดตั้ง GuestOS โดยใช้ virt-install ต่อไปนี้เป็นวิธีที่ 'ทำได้ง่าย' โดยไม่ต้องติดตั้ง virt

ฉันติดตั้ง VM พร้อมกับ Windows 7 แล้ว นี่คือวิธีที่ฉันสร้างมันขึ้นมา

ขั้นตอนที่ 1: สร้างภาพดิสก์เสมือน

qemu-img create -f qcow2 vdisk.img 100g

สิ่งนี้จะสร้างดิสก์เสมือนในรูปแบบ qcow2 การตั้งค่าขนาดพาร์ติชันเป็น 100 กรัม (กิกะไบต์) จะไม่จัดสรรพื้นที่ว่างบนฟิสิคัลฮาร์ดดิสก์ 100GB พาร์ติชันเสมือนจะใช้พื้นที่มากเท่ากับข้อมูลที่มีอยู่ 100 กรัมทำมาเพื่อคุณจะได้ (หวังว่า) ไม่จำเป็นต้องเพิ่มขนาด เพิ่มขนาดเริ่มต้นภาพ qcow2 ยังคงเป็นความเจ็บปวดในการที่จะทำ

ขั้นตอนที่ 2: ติดตั้งระบบปฏิบัติการ

หากคุณใช้ฟิสิคัลซีดีรอมจริงเพื่อโหลดระบบปฏิบัติการให้ใช้คำสั่งต่อไปนี้

sudo kvm -m 750 -cdrom /dev/sr0 -boot d vdisk.img

หากคุณใช้ดิสก์อิมเมจเพื่อโหลดระบบปฏิบัติการให้ใช้คำสั่งนี้

sudo kvm -m 750 -cd-rom /path/to/image/image.iso -boot d vdisk.img

นี่คือรายละเอียดของคำสั่ง:

  • kvm - เรียกเคอร์เนลเครื่องเสมือน (ชัดเจน)
  • -m 750 - จัดสรรหน่วยความจำ 750mb สำหรับเครื่องเสมือน
  • -cd-rom ตั้งค่า cd-rom สำหรับดิสก์แบบฟิสิคัลให้ใช้ดิสก์เดียวกับ HostOS ของคุณ สำหรับรูปภาพให้ระบุพา ธ ไปยังไฟล์รูปภาพ
  • -boot d บูทเครื่องเสมือนจาก cd-rom

ฉันตั้งค่า footprint หน่วยความจำสำหรับการโหลดครั้งแรกเป็น 750 เพื่อให้แน่ใจว่าการติดตั้งจะเสร็จสิ้นโดยไม่ต้องใช้หน่วยความจำไม่เพียงพอ สำหรับการโหลดตามมาฉันมักจะตั้งไว้ที่ 512

หมายเหตุ: AFIAK คำสั่ง kvm ใช้ได้กับ Debian / Ubuntu รุ่นล่าสุดหรืออนุพันธ์ของพวกเขาเท่านั้น ถ้ามันไม่ทำงานคำสั่งเทียบเท่า (และทั่วไป) คือ qemu-system-x86_64 หรือ qemu-kvm เป็น 32 บิต

หลังจากที่คุณได้ผ่านกระบวนการติดตั้งทั้งหมดแล้ว VM ควรรีบูตในระบบปฏิบัติการที่ใช้งานได้ หากต้องการโหลด VM อีกครั้งเพียงแค่เรียกใช้คำสั่งนี้:

kvm -m 512 vdisk.img

ด้วยสวิตช์บรรทัดคำสั่งใดก็ตามคุณจำเป็นต้องติดตั้งดิสก์ฟิสิคัลฮาร์ดแวร์และอื่น ๆ เพิ่มเติมหากต้องการค้นหาข้อมูลเกี่ยวกับสวิตช์บรรทัดคำสั่งให้ตรวจสอบ kvm --help

ถ้าคุณไม่เข้าใจความแตกต่างระหว่าง 'paravirtualization' และ 'การทำงานแบบเสมือนพื้นเมืองสแมทเธียได้ทำแล้วมีคำอธิบายที่ดีของความแตกต่าง

สำหรับเพิ่มเติม 'ในเชิงลึก' คำอธิบายของกระบวนการนี้อ่านบทความนี้


3

เหตุผลสำหรับปัญหานี้กับการติดตั้ง windows ด้วย qemu virtualization คือความแตกต่างระหว่าง qemu "parav virtualization" และ KVMs "native virtualization" Paravirtualization หมายถึงมันจำลอง CPU และต้องการเคอร์เนลพิเศษที่ด้านข้างของไคลเอนต์ (ระบบเสมือน) เพื่อให้ระบบนี้รู้วิธีที่จะให้ CPU ทำงานอย่างถูกต้อง นั่นคือเหตุผลที่ไม่ใช่ว่าทุกระบบจะสามารถใช้งาน qemu ได้โดยไม่ต้องใช้ KVM

ในอีกด้านหนึ่งระบบเสมือนที่ใช้ KVM สามารถเข้าถึง CPU โดยตรง (เนื่องจาก KVM ใช้การสนับสนุนการจำลองเสมือนสำหรับฮาร์ดแวร์ของ AMD / Intel) ในกรณีนั้นไม่จำเป็นต้องใช้เคอร์เนลพิเศษ ข้อเสียคือโฮสต์ต้องมี CPU ที่ทันสมัยซึ่งรองรับ Hardware Virtualisation นี้ (เรียกว่า SVM บน AMD และ VT-x สำหรับ Intel) และระบบไคลเอนต์จะต้องสามารถทำงานบน CPU นั้นได้ (ไม่ใช่ปัญหาเนื่องจากระบบส่วนใหญ่ สามารถเรียกใช้บน x86) ลดการพกพา


1
+1 คำอธิบายที่ดีเกี่ยวกับความแตกต่างระหว่าง 'paravirtualization' และ 'native virtualization'
Evan Plaice

2

ข้อยกเว้น 0x1e คือKMODE_EXCEPTION_NOT_HANDLEDซึ่งโดยปกติจะเป็นความผิดพลาดเกี่ยวกับฮาร์ดแวร์หรือไดรเวอร์อุปกรณ์ที่เกี่ยวข้อง ฉันเดาว่าไม่ว่าด้วยเหตุผลใดก็ตาม Windows ไม่ชอบฮาร์ดแวร์ที่เลียนแบบจากเครื่องเสมือน

คุณเคยลองใช้VirtualBoxหรือไม่? พวกเขามีการเปิดตัว Karmic Koala และพวกเขาสนับสนุน Windows 7 (ตอนนี้ฉันกำลังเรียกใช้ Win7 ในกล่อง Windows XP)


ขอบคุณฉันต้องการติดกับ KVM เนื่องจากเราใช้กับยูคาลิปตัส นี่เป็นแบบฝึกหัดการเรียนรู้สำหรับฉันที่จำเป็นต้องใช้ Windows 7 อย่างจริงจัง
Kief

1

หลังจากการวิจัยและการปรึกษาหารือกับเพื่อนร่วมงานแล้วปัญหาน่าจะมาจากการจำลอง CPU ของ qemu คำสั่ง virt-install ของฉันสร้างเครื่องเสมือน KVM โดยใช้การจำลอง CPU ของ qemu VMM สร้างเครื่องเสมือน KVM โดยใช้การจำลอง CPU ของ KVM (แม้ว่าจะยังคงใช้ qemu เพื่อเลียนแบบส่วนอื่น ๆ ของพีซีเนื่องจากเวอร์ชันปัจจุบันของ KVM ใช้ qemu สำหรับสิ่งนี้)

ด้วยการเพิ่มพารามิเตอร์ - เร่งความเร็วให้กับคำสั่ง virt-install ของฉันฉันสามารถสร้าง VM และติดตั้ง Windows 7 ได้

ดังนั้นคำตอบน่าจะเป็นว่า Windows 7 ไม่สามารถติดตั้งบนเครื่องเสมือนโดยใช้การจำลองซีพียู qemu-kvm-0.11.0 แต่สามารถแก้ไขได้โดยใช้การจำลอง CPU ของ KVM เอง เสร็จสิ้นโดยใช้ตัวเลือก - เร่งความเร็วในการติดตั้ง virt พารามิเตอร์การตั้งค่าไฟล์จะมากกว่า<domain type="kvm"><domain type="qemu">


ขอบคุณสำหรับสิ่งนี้! ฉันแก้ไขไฟล์ xml ตามที่แนะนำแทนที่ kvm สำหรับ qemu และติดตั้ง Win7 64 บิตโดยไม่มีปัญหา! (ทำงานบน Fed12 64 บิต)

0

ความแตกต่างอื่น ๆ ที่ฉันเห็นจากด้านบนคือ KVM ควรเป็นแบบจำลอง 32 บิตเท่านั้น ... หรืออย่างน้อยก็กับความแตกต่าง XML ของคุณที่โดดเด่น

ดูเหมือนว่ามีการเพิ่มการสนับสนุน 64 บิตใน KVM ดังนั้น qemu-system-x86_64 ที่มี--accelerate/ อาจให้ทั้ง KVM และ 64 บิตได้หากเคอร์เนลของคุณถูกสร้างขึ้นเพื่อการจำหน่าย


0

ฉันสามารถเริ่มการติดตั้งโดยเปลี่ยนจอแสดงผลเป็นครั้งแรกcirrusตามที่แนะนำที่นี่: https://ubuntuforums.org/showthread.php?t=2325843&s=67c08420c394b532ea814a0c46752914&p=13500324#post13500324

  1. ติดตั้ง Win 7 พร้อมกราฟฟิก cirrus, ปิด vm
  2. เพิ่มกราฟิกอะแดปเตอร์ที่สองเป็น qxl
  3. boot vm และติดตั้งไดรเวอร์ qxl
  4. vm ปิดเครื่องและถอดอะแดปเตอร์ขน

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