Windows 7 gagal diinstal pada KVM dengan qemu

8

Saya mencoba untuk menginstal Windows 7 sebagai OS tamu di mesin virtual yang diselenggarakan oleh kotak Ubuntu Karmic 64-bit saya. Saya sampai pada titik memilih pengaturan bahasa saya dan mengklik 'install now', tetapi beberapa saat kemudian saya mendapatkan layar biru kematian.

Saya sudah mencoba beberapa variasi, termasuk menggunakan Windows 7 versi 32-bit, yang gagal sangat cepat. The virt-installperintah saya sudah mencoba termasuk ini:

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

Info terbatas yang saya temukan menyarankan bahwa 'Vista' harus berfungsi sebagai --os-varian, saya belum menemukan nilai khusus untuk Windows 7.

Ini layar biru saya:

BSOD

Saya menemukan sangat sedikit oleh Googling, jadi saya kira ini bukan kasus KVM yang tidak mendukung Windows 7.

Memperbarui:

Saya telah berhasil membuat VM Windows 7 menggunakan aplikasi grafis "Virtual Machine Manager", meskipun saya tidak benar-benar memahami penyebab masalah dengan VM yang dibuat virt-install. Membandingkan file konfigurasi di / etc / libvirt / qemu menyediakan beberapa petunjuk, walaupun saya tidak cukup tahu untuk menafsirkannya dengan benar. Perbedaan menarik dalam dua konfigurasi VM adalah:

--- 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'/>

Saya tidak yakin apakah ini berarti VM yang berfungsi tidak menggunakan qemu sama sekali, atau jika ada beberapa perbedaan lain dalam cara itu digunakan dengan kvm.

Pembaruan2:

Jadi saya sudah menjawab pertanyaan saya sendiri (kebanyakan) di bawah ini. VM KVM perlu menggunakan emulasi CPU KVM sendiri daripada qemu agar saya dapat menginstal Windows 7. Saya tidak yakin apakah ada sesuatu yang dapat dilakukan untuk membuatnya bekerja pada qemu-emulation CPU, atau apakah versi yang lebih baru akan mendukungnya. Tapi setidaknya itu memungkinkan untuk menjalankannya pada VM KVM.

Kemalasan
sumber

Jawaban:

7

Ini cara yang mudah

Kecuali Anda memiliki alasan spesifik mengapa Anda akan menginstal GuestOS menggunakan virt-install, inilah cara 'mudah' untuk melakukannya tanpa menginstal-virtue.

Saya memiliki VM yang berfungsi dengan Windows 7 diinstal. Begini cara saya membuatnya.

Langkah 1: Buat image disk virtual

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

Ini membuat disk virtual dalam format qcow2. Mengatur ukuran partisi ke 100g (gigabytes) tidak akan mengalokasikan 100gb ruang hard disk fisik. Partisi virtual hanya akan mengambil ruang sebanyak data yang dikandungnya. 100g hanya membuatnya jadi Anda (semoga) tidak perlu menambah ukuran. Meningkatkan ukuran default gambar qcow2 masih menyebalkan dalam ** yang harus dilakukan .

Langkah 2: Instal OS

Jika Anda menggunakan cd-rom fisik aktual untuk memuat OS, gunakan perintah berikut.

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

Jika Anda menggunakan gambar disk untuk memuat OS, gunakan perintah ini.

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

Berikut rincian perintahnya:

  • kvm - memanggil mesin virtual kernel (jelas)
  • -m 750 - mengalokasikan 750mb memori untuk mesin virtual
  • -cd-rom mengatur cd-rom. Untuk disk fisik, gunakan disk yang sama dengan HostOS Anda. Untuk gambar, berikan jalur ke file gambar.
  • -boot d mem-boot mesin virtual dari cd-rom

Saya menetapkan jejak memori untuk muatan awal menjadi 750 agar konservatif sehingga saya dapat memastikan bahwa pemasangan selesai tanpa kehabisan memori. Untuk pemuatan berikutnya, saya biasanya mengaturnya ke 512.

Catatan: AFIAK, perintah kvm hanya berfungsi di versi Debian / Ubuntu yang lebih baru atau turunannya. Jika tidak berfungsi, perintah yang setara (dan lebih umum) adalah qemu-system-x86_64 atau qemu-kvm selama 32 bit.

Setelah Anda melalui seluruh proses instalasi, VM harus reboot ke OS yang berfungsi. Untuk memuat VM lagi luncurkan saja perintah ini:

kvm -m 512 vdisk.img

Dengan switch baris perintah apa pun, Anda perlu memasang disk fisik, perangkat keras, dll. Untuk menemukan info tentang switch baris perintah, periksa kvm --help.

Jika Anda tidak memahami perbedaan antara 'paravirtualization' dan 'virtualisasi asli' Matthias 'telah membuat penjelasan yang bagus tentang perbedaan tersebut .

Untuk penjelasan yang lebih 'mendalam' tentang proses ini baca artikel ini .

Evan Plaice
sumber
3

Alasan untuk masalah ini dengan menginstal windows dengan virtualisasi qemu adalah perbedaan antara qemu "paravirtualization" dan KVMs "virtualisasi asli". Paravirtualization berarti mensimulasikan CPU dan membutuhkan kernel khusus di sisi klien (sistem virtual) sehingga sistem ini tahu bagaimana caranya. Memanggil fungsi CPU dengan benar. Itulah alasan mengapa tidak semua sistem dapat berjalan menggunakan qemu tanpa KVM.

Di sisi lain, sistem virtual yang menggunakan KVM dapat langsung mengakses CPU (karena KVM menggunakan dukungan Virtualisasi Perangkat Keras AMD / Intel). Dalam hal ini tidak diperlukan kernel khusus. Kelemahannya adalah bahwa tuan rumah perlu memiliki CPU modern yang mendukung Virtualisasi Perangkat Keras ini (disebut SVM pada AMD dan VT-x untuk Intel) dan bahwa sistem klien harus dapat berjalan pada CPU itu (bukan masalah, karena kebanyakan sistem dapat berjalan pada x86), mengurangi portabilitas.

Matthias
sumber
1
+1 penjelasan yang bagus tentang perbedaan antara 'paravirtualization' dan 'virtualisasi asli'
Evan Plaice
2

Pengecualian 0x1e adalah KMODE_EXCEPTION_NOT_HANDLED, yang biasanya berupa kesalahan yang terkait dengan perangkat keras atau yang terkait dengan driver perangkat. Dugaan saya adalah, untuk alasan apa pun, Windows tidak menyukai perangkat keras yang ditiru dari mesin virtual.

Sudahkah Anda mencoba menggunakan VirtualBox ? Mereka memiliki rilis untuk Karmic Koala, dan mereka mendukung Windows 7 (saya menjalankan Win7 sekarang pada kotak Windows XP).

Jared Harley
sumber
Terima kasih, saya ingin tetap menggunakan KVM, karena kami menggunakannya dengan Eucalyptus. Ini adalah latihan belajar bagi saya sebagai kebutuhan pragmatis untuk menjalankan Windows 7.
Kief
1

Setelah beberapa penelitian dan konsultasi dengan seorang kolega, masalah tampaknya dengan emulasi CPU qemu. Perintah virt-install saya menciptakan mesin virtual KVM menggunakan emulasi CPU qemu. VMM menciptakan mesin virtual KVM menggunakan emulasi CPU KVM sendiri (meskipun masih menggunakan qemu untuk meniru bagian lain dari PC, karena versi KVM saat ini menggunakan qemu untuk ini).

Dengan menambahkan parameter --accelerate ke perintah virt-install saya, saya dapat membuat VM dan menginstal Windows 7 di atasnya.

Jadi, jawabannya adalah bahwa Windows 7 tidak dapat diinstal pada mesin virtual menggunakan qemu-kvm-0.11.0 CPU emulation, tetapi ini dapat diselesaikan dengan menggunakan emulasi CPU KVM sendiri. Ini dilakukan dengan menggunakan opsi --accelerate untuk menginstal-virt. Parameter file konfigurasi <domain type="kvm">bukan <domain type="qemu">.

Kemalasan
sumber
Terima kasih untuk ini! Saya mengedit file xml seperti yang disarankan, menggantikan kvm untuk qemu dan menginstal Win7 64bit tanpa masalah! (berjalan pada Fed12 64bit)
0

Perbedaan lain yang saya lihat dari atas adalah bahwa KVM seharusnya hanya emulasi 32bit ... atau paling tidak dengan perbedaan XML Anda yang menonjol.

Sepertinya dukungan 64bit telah ditambahkan ke KVM, jadi qemu-system-x86_64 dengan --acceleratekekuatan / bisa memberi Anda KVM dan 64bit, asalkan kernel Anda dibuat untuk itu dengan distribusi Anda.

Mike Mestnik
sumber
0

Saya dapat memulai pemasangan dengan mengubah tampilan menjadi cirrusseperti yang direkomendasikan di sini: https://ubuntuforums.org/showthread.php?t=2325843&s=67c08420c394b532ea814a0c46752914&p=13500324#post13500324

  1. instal Win 7 dengan grafis cirrus, matikan vm
  2. tambahkan adapter grafis kedua sebagai qxl
  3. boot vm dan instal driver qxl
  4. matikan vm dan lepaskan adaptor cirrus
Jiab77
sumber
Terima kasih atas komentar Anda, saya telah menambahkan solusi lengkap.
Jiab77