Oct 11 2009
VirtualBox on i386 with amd64 Kernel
I have recently started to use an amd64 kernel on my i386 Debian unstable system. Unfortunately, VirtualBox OSE does not work with that setup. When I try to start a virtual machine, it fails with an oblique error message:
RTR3Init failed with rc=-1912 (rc=-1912)
The VirtualBox kernel modules do not fit to this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing
should fix that problem. Make sure that you don't mix the OSE version and the PUEL version of VirtualBox.
Debian bug #456391 explains the problem. In that report Michael Meskes alludes to running VirtualBox in an amd64 chroot jail, so I tried this myself. It works flawlessly, once I got it setup. Here is what I did (as root):
robinson:~# mkdir /srv/amd64 robinson:~# cdebootstrap --arch amd64 sid /srv/amd64 http://ftp.debian.org/debian/ [...] robinson:~# chroot /srv/amd64 robinson:/# apt-get update [...] robinson:/# apt-get upgrade [...] robinson:/# apt-get install virtualbox-ose # add more packages here if needed [...] robinson:/# adduser --uid 1000 --no-create-home --disabled-password --disabled-login srittau [...] robinson:/#
These commands install the base system and create a user account. Now I created a script called
#!/bin/sh CHROOT=/srv/amd64 if test ! -e $CHROOT/dev/.udev; then mount -t none /dev $CHROOT/dev/ -o bind fi if test `ls $CHROOT/proc | wc -l` = "0"; then mount -t proc none $CHROOT/proc fi if test `ls $CHROOT/sys | wc -l` = "0"; then mount -t sysfs none $CHROOT/sys fi if test `ls $CHROOT/home | wc -l` = "0"; then mount --bind /home $CHROOT/home fi chroot $CHROOT sh -c "su - srittau"
sudo amd64.sh will now enter the chroot environment as user srittau where I can start