VirtualBox: Difference between revisions

From miki
Jump to navigation Jump to search
Line 32: Line 32:
Here I describe my attempt at booting the existing Windows XP partition on a Dell E6500.
Here I describe my attempt at booting the existing Windows XP partition on a Dell E6500.


=== 1st attempt ===
* In Windows, created a 2nd hardware profile called '''Virtual''', copy of the original profile '''Profile 1'''
* In Windows, created a 2nd hardware profile called '''Virtual''', copy of the original profile '''Profile 1'''
* New VirtualBox machine:
* New VirtualBox machine:
Line 54: Line 55:
: → Now windows boot until login screen, but blue screen about ''IRQL_GREATER_R_EQUAL''
: → Now windows boot until login screen, but blue screen about ''IRQL_GREATER_R_EQUAL''


=== 2nd attempt ===
'''Benchmark''':
* Started from base image. I compared all the drivers with a base XP + SP3 install. Disabled all additional drivers.
* Booted in safe mode... hangs... hangs and hangs again.

=== 3rd attempt ===
* Started from base image again. Renamed some drivers (including <tt>agp440.sys</tt> + some others)
* Disabled VT-x, disabled PAE, disabled multi-cpu, enabled IO APIC, disabled 2D accel.
* Boot in safe mode... OK!
* Boot in normal mode... ok!
* Enabled back everything, boot in normal mode... ok!
* Installed VirtualBox Additions... ok!
* Restored all drivers, but <tt>agp440.sys</tt>... ok!
* I can even boot in native!!!

=== Benchmarks ===
Settings:
Settings:
* Dell Latitude E6500, 4GB RAM.
* Dell Latitude E6500, 4GB RAM.
Line 65: Line 80:


{| class="wikitable"
{| class="wikitable"
!task!!U9.04-32!!U9.04-32!!U9.04-32!!U9.10-32!!U9.10-32!!U9.10-32!!U9.10-64!!U9.10-64!!U9.10-64!!U9.04-32!!U9.04-32
!task!!U9.04-32!!U9.04-32!!U9.04-32!!U9.10-32!!U9.10-32!!U9.10-32!!U9.10-64!!U9.10-64!!U9.10-64!!U9.04-32!!U9.04-32!!Native!!Native!!Native
|-
|-
|'''grub &rarr;<br/>hw profile'''
|'''grub &rarr;<br/>hw profile'''
|2.86 s||2.82 s||2.77 s||2.76 s||2.68 s||2.84 s||2.50 s||2.51 s||2.61 s||3.22 s||2.73 s
|2.86 s||2.82 s||2.77 s||2.76 s||2.68 s||2.84 s||2.50 s||2.51 s||2.61 s||3.22 s||2.73 s||1.62 s||1.57 s||1.41 s
|-
|-
|'''hw profile &rarr;<br/>login screen'''
|'''hw profile &rarr;<br/>login screen'''
|23.49 s||23.46 s||21.56 s||42.07 s||43.48 s||40.28 s||48.63 s||52.00 s||56.07 s||33.15 s||24.06 s
|23.49 s||23.46 s||21.56 s||42.07 s||43.48 s||40.28 s||48.63 s||52.00 s||56.07 s||33.15 s||24.06 s||29.52 s||24.89 s||25.16 s
|-
|-
|'''login screen &rarr;<br/>pwd typed'''
|'''login screen &rarr;<br/>pwd typed'''
|17.69 s||12.94 s||12.62 s||9.83 s||9.69 s||8.56 s||15.41 s||9.85 s||9.31 s||9.68 s||8.75 s
|17.69 s||12.94 s||12.62 s||9.83 s||9.69 s||8.56 s||15.41 s||9.85 s||9.31 s||9.68 s||8.75 s||9.88 s||8.42 s||8.99 s
|-
|-
|'''pwd typed &rarr;<br/>communicator'''
|'''pwd typed &rarr;<br/>communicator'''
|8.83 s||7.73 s||8.45 s||32.51 s||29.97 s||36.57 s||38.50 s||33.53 s||34.44 s||20.48 s||8.24 s
|8.83 s||7.73 s||8.45 s||32.51 s||29.97 s||36.57 s||38.50 s||33.53 s||34.44 s||20.48 s||8.24 s||9.47 s||7.20 s||6.81 s
|}
|}
<small>'''U9.04-32''': Base Ubuntu 9.04 Jaunty i386 Live running on USB, 2.6.28-11-generic, SMP</small><br/>
<small>'''U9.04-32''': Base Ubuntu 9.04 Jaunty i386 Live running on USB, 2.6.28-11-generic, SMP</small><br/>
<small>'''U9.10-32''': Base Ubuntu 9.10 Karmic i386 Live running on USB</small><br/>
<small>'''U9.10-32''': Base Ubuntu 9.10 Karmic i386 Live running on USB</small><br/>
<small>'''U9.10-64''': Base Ubuntu 9.10 Karmic AMD64 running from HDD</small><br/>
<small>'''U9.10-64''': Base Ubuntu 9.10 Karmic AMD64 running from HDD</small><br/>
<small>'''Native''': Running Windows directly, no emulation</small><br/>


'''External references''':
'''External references''':

Revision as of 14:53, 31 March 2010

Installation

Reference instructions can be found here:

  • Add the following lines to /etc/apt/sources.list (here for Ubuntu Karmic):
  • deb http://download.virtualbox.org/virtualbox/debian karmic non-free
  • Add the Sun public key for apt-secure, then install
    wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install virtualbox-3.1
    

The group vboxusers is created during installation.

  • Users of the VirtualBox must be member of that group. New users can be added with
sudo usermod -a -G vboxusers username
  • The daemon for the network interfaces will be assigned to that group.

VirtualBox requires a kernel module vboxdrv.

  • The default location of the module is given by setting KDIR=[fullpath] in file /etc/default/virtualbox.
  • The kernel module can be compiled with
sudo /etc/init.d/vboxdrv setup

Creating a New Virtual Machine

  • To boot a Virtual Machine directly from a physical disk partitions, check the page on raw disks.

Booting Existing Windows XP from Physical Partition

Here I describe my attempt at booting the existing Windows XP partition on a Dell E6500.

1st attempt

  • In Windows, created a 2nd hardware profile called Virtual, copy of the original profile Profile 1
  • New VirtualBox machine:
    • Base Memory 1894MB
  • Using raw disk only with partition /dev/sda2 doesn't work
sudo VBoxManage internalcommands createrawvmdk -filename nxl670002-sda2.vmdk -rawdisk /dev/sda -partitions 2
This doesn't work! First Grub complained, then I tried to restore back the default WXP MBR (using either install-mbr or ms-sys but to no avail)

I created

  • Virtual machine NXL670002
    • Base Memory 1894 MB
  • Using raw disk with whole disk access/dev/sda
sudo VBoxManage internalcommands createrawvmdk -filename nxl670002-sda.vmdk -rawdisk /dev/sda
This works, Windows boots!
  • But hangs. In Safe Mode, it hangs after loading AGPCPQ.SYS.
  • Some related posts:
http://www.techspot.com/vb/topic21511.html
http://forums.virtualbox.org/viewtopic.php?f=7&t=19847
http://forum.driverpacks.net/viewtopic.php?id=3865
This post refers to problem with ACPI / APIC.

Miscellaneous work-around

  • Deleted the file ...\system32\drivers\agp440.sys and agp440.sys + agppcq.sys in dllcache (check [1], post from ChaosAddict, 20100210).
→ Now windows boot until login screen, but blue screen about IRQL_GREATER_R_EQUAL

2nd attempt

  • Started from base image. I compared all the drivers with a base XP + SP3 install. Disabled all additional drivers.
  • Booted in safe mode... hangs... hangs and hangs again.

3rd attempt

  • Started from base image again. Renamed some drivers (including agp440.sys + some others)
  • Disabled VT-x, disabled PAE, disabled multi-cpu, enabled IO APIC, disabled 2D accel.
  • Boot in safe mode... OK!
  • Boot in normal mode... ok!
  • Enabled back everything, boot in normal mode... ok!
  • Installed VirtualBox Additions... ok!
  • Restored all drivers, but agp440.sys... ok!
  • I can even boot in native!!!

Benchmarks

Settings:

  • Dell Latitude E6500, 4GB RAM.
  • VirtualBox 3.1.6.
  • System: 1536 MB RAM, IO APIC, 2 CPU with PAE/NX, VT-x + Nested Paging.
  • Video: 32 MB Video + 2D accel
  • Storage: PIIX4 ctrl, raw vmdk image /dev/sda
  • Audio: PulseAudio + ICH AC97
  • Network: Bridged Adapter
task U9.04-32 U9.04-32 U9.04-32 U9.10-32 U9.10-32 U9.10-32 U9.10-64 U9.10-64 U9.10-64 U9.04-32 U9.04-32 Native Native Native
grub →
hw profile
2.86 s 2.82 s 2.77 s 2.76 s 2.68 s 2.84 s 2.50 s 2.51 s 2.61 s 3.22 s 2.73 s 1.62 s 1.57 s 1.41 s
hw profile →
login screen
23.49 s 23.46 s 21.56 s 42.07 s 43.48 s 40.28 s 48.63 s 52.00 s 56.07 s 33.15 s 24.06 s 29.52 s 24.89 s 25.16 s
login screen →
pwd typed
17.69 s 12.94 s 12.62 s 9.83 s 9.69 s 8.56 s 15.41 s 9.85 s 9.31 s 9.68 s 8.75 s 9.88 s 8.42 s 8.99 s
pwd typed →
communicator
8.83 s 7.73 s 8.45 s 32.51 s 29.97 s 36.57 s 38.50 s 33.53 s 34.44 s 20.48 s 8.24 s 9.47 s 7.20 s 6.81 s

U9.04-32: Base Ubuntu 9.04 Jaunty i386 Live running on USB, 2.6.28-11-generic, SMP
U9.10-32: Base Ubuntu 9.10 Karmic i386 Live running on USB
U9.10-64: Base Ubuntu 9.10 Karmic AMD64 running from HDD
Native: Running Windows directly, no emulation

External references:

Interesting post about step-by-step configuration to run an existing Windows XP installation.
  • Two posts about disabling IO APIC:[2] and [3]. But apparently this doesn't really fix anything (also the poster has a old cpu, etc).