VirtualBox на 32-бит системе с 64-бит ядром
Долго ли, коротко ли, а 64-бит архитектуры развиваются и становятся интересными для практического применения. Ядро ветки 2.6.32 вполне прилично работает на нетбуке, так что возникла мысль попробовать 64-бит ядро. Почему именно такая конфигурация? Да очень просто - всегда можно загрузиться в 32-бит ядро и оказаться в хорошо известной 32-бит конфигурации. Почему на нетбуке? Все просто - мне хватает его производительности, а по размерам он меньше ноутбука и практически бесшумен. Пару дней назад, когда я уже сидел с 64-бит ядром, понадобилось запустить VirtualBox. А он запускаться не хочет. Ну, что поделать, значит, пришло время попробовать 64-бит чрут в 32-бит системе с 64-бит ядром. Поставил sid, хотя можно было и squeeze, это не принципиально, поскольку виртуалбокс все равно для ленни собран в репозитории на оффсайте. Плюс сделал скрипт для запуска VirtualBox в чруте:
$ cat /usr/local/bin/virtualbox #!/bin/sh CHROOT=/srv/chroot_amd64 if test ! -e $CHROOT/dev/.udev; then sudo mount -t none /dev $CHROOT/dev/ -o bind fi if test `ls $CHROOT/proc | wc -l` = "0"; then sudo mount -t proc none $CHROOT/proc fi if test `ls $CHROOT/sys | wc -l` = "0"; then sudo mount -t sysfs none $CHROOT/sys fi if test `ls $CHROOT/home | wc -l` = "0"; then sudo mount --bind /home $CHROOT/home fi # if test `ls $CHROOT/srv | wc -l` = "0"; then # sudo mount --bind /srv $CHROOT/srv # fi if test `ls $CHROOT/tmp | wc -l` = "0"; then sudo mount --bind /tmp $CHROOT/tmp fi if test `ls $CHROOT/var/run/dbus | wc -l` = "0"; then sudo mount --bind /var/run/dbus $CHROOT/var/run/dbus fi echo "Hello to chroot $CHROOT!" sudo chroot $CHROOT sh -c "su - veter VirtualBox" sleep 10 if test `ls $CHROOT/var/run/dbus | wc -l` != "0"; then sudo umount $CHROOT/var/run/dbus fi if test `ls $CHROOT/proc | wc -l` != "0"; then sudo umount $CHROOT/proc fi if test `ls $CHROOT/sys | wc -l` != "0"; then sudo umount $CHROOT/sys fi if test `ls $CHROOT/tmp | wc -l` != "0"; then sudo umount $CHROOT/tmp fi if test -e $CHROOT/dev/.udev; then sudo umount $CHROOT/dev/ fi if test `ls $CHROOT/home | wc -l` != "0"; then sudo umount $CHROOT/home fi # if test `ls $CHROOT/srv | wc -l` != "0"; then # sudo umount $CHROOT/srv # fi echo "Chroot $CHROOT is unmounted!"Замечу, что USB-устройства подключаются (благодаря примонтированному /var/run/dbus). Таймаут нужен для того, чтобы успели остановиться некоторые сервисы, запускаемые VirtualBox - иначе не удастся отмонтировать ФС. Профит :-)
Comments