Sebastian Rittau: 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. ExecutingDebian 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):
'/etc/init.d/vboxdrv setup'
should fix that problem. Make sure that you don't mix the OSE version and the PUEL version of VirtualBox.
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
/usr/local/bin/amd64.sh
:
#!/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"Running
sudo amd64.sh
will now enter the chroot environment as user srittau where I can start
virtualbox normally.