QEMU (still) hangs on Windows 7 install

Bug #1629282 reported by Saverio Miroddi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Invalid
Undecided
Unassigned

Bug Description

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.

Revision history for this message
Laszlo Ersek (Red Hat) (lersek) wrote :

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

Changed in qemu:
status: New → Invalid
Revision history for this message
Saverio Miroddi (64kramsystem) wrote :

Thanks! Using the OVMF provided with the Ubuntu 16.04 packages solved the issue.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.