A failed attempt to have the Asus laptop recovery disk install Windows-Vista into a virtual machine.
An Asus F5GL series laptop had OpenSuSE 11.1 installed. All of the priginal partitions had been previously destroyed and none of the previous disk contents had been retained. The laptop did, however, have a 'recovery' DVD that was supposedly able to restore the system to its just-sold state. The recovery disk contained a version of Windows Vista Home Premium edition.
The OSE edition of the VirtualBox emulation software was installed. (HowTo install VirtualBox OSE on an OpenSuSE host)
An ISO file for the recovery DVD was created using the readcd command.
readcd dev=/dev/dvd f=Asus_F5GL_recovery.iso
Within the VirtualBox environment a new virtual machine was created, called AsusVista01. A new virtual disk of 10 GB A virtual disk of 10GB was also created and assigned to the virtual machine (VM). For an optical disk, the VM was told to mount the ISO file created earlier.
The dmidecode command was used (with root priviledges) to extract various bits of information from the laptop's internal settings.
The command 'dmidecode -t0' command yielded the following response:
# dmidecode 2.9 SMBIOS 2.5 present. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: American Megatrends Inc. Version: 207 Release Date: 09/08/2008 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 1024 kB Characteristics: ISA is supported PCI is supported PNP is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 KB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported Smart battery is supported BIOS boot specification is supported Targeted content distribution is supported BIOS Revision: 15.64 Firmware Revision: 152.152
The 'demidecode -t1' command yielded the following (the '#' characters represent other letters or numerals):
# dmidecode 2.9 SMBIOS 2.5 present. Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: ASUSTeK Computer Inc. Product Name: F5GL Version: 1.0 Serial Number: ############## UUID: ########-####-####-####-########### Wake-up Type: Power Switch SKU Number: To Be Filled By O.E.M. Family: To Be Filled By O.E.M.
A script file was created to reprogram certain BIOS parameters for the virtual machine. This is listed below:
#!/bin/sh # Create a variable that contains the name of the # VirtualMachine, as it was specified within the # VirtualBox software. VMNAME="AsusVista01" # Create a variable that contains the basic command # that we need to perform to update the values. We # create a variable for the command because we will # be using a series of almost identical commands and # it is convenient to put the common parts into a # variable so that if we need to change the commands # later, we need only to change this one variable. VBMCMD="VBoxManage setextradata $VMNAME " # Perform a sequence of commands. Each command will # set a single parameter for the VirtualMachine #echo BIOS Vendor # $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor' 'American Megatrends Inc.' # For reasons unknown it appears to be impossible to # put spaces into the value text. If spaces are present # the VBoxManage command complains about excess parameters. # So the following command is used as a fudge until we have # a better solution. $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor' 'American' #echo BIOS version $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion' 'string:207' echo BIOS release date $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate' 'string:09/08/2008' #echo BIOS release major $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor' '15' #echo BIOS release minor $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor' '64' #echo BIOS firmware major $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor' '152' #echo BIOS firmware minor $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor' '152' echo System vendor #$VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor' "string:ASUSTeK Computer Inc." # For reasons unknown it appears to be impossible to # put spaces into the value text. If spaces are present # the VBoxManage command complains about excess parameters. # So the following command is used as a fudge until we have # a better solution. $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor' 'ASUSTeK' #echo System product $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct' 'F5GL' #echo System version $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion' '1.0' $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial' '##############' $VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid' '########-####-####-####-#############' #$VBMCMD 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily' 'To Be Filled By O.E.M.'
This script file was executed without error.
The virtual machine was then started and it proceeded to boot the DVD ISO image. A sequence of dialog boxes was presented asking the user to confirm that the system was to be recovered and asking which disks or partitions should be used.
After the final confirmation was given the recovery process began but within a few moments it halted with the 'error' screen shown at the top of the page. The text at the top of that error screen reads: 'Cannot load imagex 0 from src WIM file.'
If the value for 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor' was not set then the recovery process would halt almost immediately with a complaint that 'the current system was not an ASUS model.'
Only the 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor' parameter seemed to be necessary for the recovery process to begin. When a clean virtual machine was created and all the other parameters were left untouched, then the recovery process proceeded to the point of failure just as it had when they were all set.
By pressing the F8 key during the initial 'Windows is loading files ...' screen it was possible to boot Vista into its 'safe' mode. The driver-loading part of the boot processs while in 'safe' mode was extremely slow. So slow, in fact, that it was possible to watch individual characters being placed on the screen and had I held a screen-update-speed contest between this virtual machine and a real ZX81, the ZX81 would easily have won.