VirtualBox: Difference between revisions
Jump to navigation
Jump to search
(→Bugtracker: Allow hot-plug addition / removal of screens (monitors) in guest OS) |
(→Installation: Launch VirtualBox as another user) |
||
Line 38: | Line 38: | ||
</source>}} |
</source>}} |
||
* Enable ''[http://en.wikipedia.org/wikiDynamic_Kernel_Module_Support Dynamic Kernel Module Support]'' to deal with Kernel Upgrade |
* Enable ''[http://en.wikipedia.org/wikiDynamic_Kernel_Module_Support Dynamic Kernel Module Support]'' to deal with Kernel Upgrade |
||
=== Launch VirtualBox as another user === |
|||
* <font color="red">'''Limitation!'''</font> It seems that only one user can access '''PulseAudio''' (see [https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/433654]). This means that when launching VirtualBox as another user (other than '''root'''), it will not be possible to play sounds in the host anymore. |
|||
* Create user '''vbox''' ('''disabled''', uid '''7000''', group '''vboxusers''' + groups '''cdrom''', <s>'''audio''', </s>'''video''', '''plugdev''', '''fuse''', '''netdev'''). This user will store VirtualBox settings and disks, access bluetooth... |
|||
* If user '''vbox''' needs to access a partition directly (e.g. because using a raw drive), give '''RW access''' on the selected partition. For instance, to give RW access to partition <tt>/dev/sda2</tt>, create a new '''udev''' rule in file <tt>/etc/udev/rules.d/99-custom.rules</tt>: |
|||
{{pl2|<source lang="bash"> |
|||
# Rules to change the ownership of /dev/sda2 to user "vbox" (vbox will boot /dev/sda2 in VirtualBox + follow least privilege principle) |
|||
# reference: http://www.reactivated.net/writing_udev_rules.html#ownership |
|||
KERNEL=="sda2", SUBSYSTEM=="block", OWNER="vbox" |
|||
</source>}} |
|||
* Allow users to launch VirtualBox through user ''vbox''. Add to <tt>/etc/sudoers</tt>: |
|||
{{pl2|<source lang="text">ALL ALL=NOPASSWD: /bin/su vbox -c /usr/bin/VirtualBox</source>}} |
|||
* Helper function to add to e.g. <tt>~/.bashrc</tt> : |
|||
{{pl2|<source lang="bash" enclose=prevalid> |
|||
function winbox() { |
|||
#First allow user vbox to connect to X11 |
|||
xhost +SI:localuser:vbox |
|||
sudo su vbox -c /usr/bin/VirtualBox& |
|||
} |
|||
</source>}} |
|||
== Creating a New Virtual Machine == |
== Creating a New Virtual Machine == |
Revision as of 21:05, 1 June 2010
Installation
Reference instructions can be found here:
- For VirtualBox 3.2.x:
- Add the following lines to /etc/apt/sources.list (here for Ubuntu Lucid): deb http://download.virtualbox.org/virtualbox/debian lucid non-free
- Add the Oracle public key for apt-secure, then install
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - sudo apt-get update sudo apt-get install virtualbox-3.2
- For VirtualBox 3.1.x:
- 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
- Enable Dynamic Kernel Module Support to deal with Kernel Upgrade
Launch VirtualBox as another user
- Limitation! It seems that only one user can access PulseAudio (see [1]). This means that when launching VirtualBox as another user (other than root), it will not be possible to play sounds in the host anymore.
- Create user vbox (disabled, uid 7000, group vboxusers + groups cdrom,
audio,video, plugdev, fuse, netdev). This user will store VirtualBox settings and disks, access bluetooth... - If user vbox needs to access a partition directly (e.g. because using a raw drive), give RW access on the selected partition. For instance, to give RW access to partition /dev/sda2, create a new udev rule in file /etc/udev/rules.d/99-custom.rules:
# Rules to change the ownership of /dev/sda2 to user "vbox" (vbox will boot /dev/sda2 in VirtualBox + follow least privilege principle)
# reference: http://www.reactivated.net/writing_udev_rules.html#ownership
KERNEL=="sda2", SUBSYSTEM=="block", OWNER="vbox"
- Allow users to launch VirtualBox through user vbox. Add to /etc/sudoers:
ALL ALL=NOPASSWD: /bin/su vbox -c /usr/bin/VirtualBox
- Helper function to add to e.g. ~/.bashrc :
function winbox() {
#First allow user vbox to connect to X11
xhost +SI:localuser:vbox
sudo su vbox -c /usr/bin/VirtualBox&
}
Creating a New Virtual Machine
- To boot a Virtual Machine directly from a physical disk partitions, see section Advanced storage configuration in Ch. 9 Advanced topics.
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 [2], 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
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, 2.6.31-20-generic
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:[3] and [4]. But apparently this doesn't really fix anything (also the poster has a old cpu, etc).
Bugtracker
- Enhancement - #6854 - Allow hot-plug addition / removal of screens (monitors) in guest OS