1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
graphic: 0.946
other: 0.922
semantic: 0.912
device: 0.907
assembly: 0.906
vnc: 0.896
instruction: 0.893
mistranslation: 0.882
KVM: 0.861
boot: 0.849
socket: 0.830
network: 0.798
QEMU (still) hangs on Windows 7 install
I'm trying to install Windows 7 as guest, but the machine still hangs (more precisely, the windows icon keeps flashing, but never goes past this stage).
I think this is a different bug from https://bugs.launchpad.net/qemu/+bug/1581936.
Specifically, its happens when the OVMF BIOS is used, and I can't find any workaround (in the above bug, by changing the display, the installation doesn't hang).
The most minimal commandline that reproduces the issue is (generic format):
$QEMU_BINARY \
-drive if=pflash,format=raw,readonly,file=$QEMU_BIOS \
-drive if=pflash,format=raw,file=$QEMU_BIOS_TMP \
-enable-kvm \
-m $QEMU_MEMORY \
-display std \
-cpu host,kvm=off -smp 4,sockets=1,cores=4 \
-cdrom $QEMU_WINDOWS_7_CD \
;
I'm using `OVMF_15214.fd` as BIOS.
I'll assume "OVMF_15214.fd" is from <http://www.tianocore.org/ovmf/>. It's an ancient build of OVMF (older than two and half years). The binary packaged in that ZIP file isn't even a split one, it's a unified binary that is unsuitable for the command line that you've given above.
Please either grab the most recent OVMF build from your distribution, or a bleeding edge build from <https://www.kraxel.org/repos/> (recommended). Then create a copy of the varstore template, to be used as the VM's own private variable store. Also, fix the "-display std" command line option, as in "-vga std". It will just work then.
Below I'll specify the commands that I just re-tested. Note that I'm also renaming the QEMU_BIOS and QEMU_BIOS_TMP variables (whose names are quite inappropriate) to FIRMWARE_BINARY and VARIABLE_STORE.
# this binary corresponds to upstream git cc9a366d3b16,
# dated "Thu Sep 29 00:34:20 2016 +0100"
QEMU_BINARY=/opt/qemu-installed/bin/qemu-system-x86_64
# these files are from package
# "edk2.git-ovmf-x64-0-20160929.b2144.g84bc72f.noarch", installed
# from kraxel.org
FIRMWARE_BINARY=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd
VARIABLE_STORE_TEMPLATE=/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd
VARIABLE_STORE=/tmp/guest1-vars.fd
# Windows 7 installer disk
QEMU_WINDOWS_7_CD=en_windows_7_enterprise_n_with_sp1_x64_dvd_u_677704.iso
# other settings
QEMU_MEMORY=2048
# create empty variable store from pristine template if the varstore doesn't
# exist yet, or has been lost for some reason
if ! [ -e "$VARIABLE_STORE" ]; then
cp -v -- "$VARIABLE_STORE_TEMPLATE" "$VARIABLE_STORE"
fi
$QEMU_BINARY \
-drive if=pflash,format=raw,readonly,file="$FIRMWARE_BINARY" \
-drive if=pflash,format=raw,file="$VARIABLE_STORE" \
-enable-kvm \
-m $QEMU_MEMORY \
-vga std \
-cpu host,kvm=off -smp 4,sockets=1,cores=4 \
-cdrom $QEMU_WINDOWS_7_CD
Thanks! Using the OVMF provided with the Ubuntu 16.04 packages solved the issue.
|