home start up prev next

11.5. Хост системы Linux

11.5.1. Модуль ядра не загружается

Если модуль ядра VirtualBox ( vboxdrv ) не загружается, то вы увидите сообщение "Error inserting vboxdrv: Invalid argument" в выводе команды dmesg . Это происходит вероятно по следующим причинам:

  • Для Linux 2.6.19 и выше, возможно активирована схема безопасности NMI. Добавьте в параметры загрузки ядра строку nmi_watchdog=0 (например в конфигурационном файле grub) и перезагрузите систему . В Debian и Ubuntu, выполните еще раз sudo dpkg-reconfigure virtualbox.

  • Компилятор gcc не совместимы с компилятором ядра. Убедитесь, что вы используете тот же самый компилятор, что использовался для сборки ядра.

11.5.2. CD/DVD устройство хоста не доступно

Ели вы настроили виртуальную машину для использования привода CD/DVD хоста, но он не доступен, убедитесь, что текущий пользователь имеет право доступа к устройству( /dev/hdc , /dev/scd0 , /dev/cdrom или подобное). В большинстве дистрибутивов, пользователь должен быть добавлен в соответствующую группу (обычно cdrom или cdrw ).

11.5.3. CD/DVD устройство хоста не доступно (старые дистрибутивы)

В старых дистрибутивах Linux, если ваше устройство CD/DVD имеет другое наименование, VirtualBox не в состоянии обнаружить его. На старых хостах Linux, VirtualBox выполняет следующие шаги при поиске устройств CD/DVD:

  1. VirtualBox проверяет существование переменной среды VBOX_CDROM (см. ниже). Если она существует, VirtualBox пропускает все следующие проверки.

  2. VirtualBox проверяет устройство /dev/cdrom.

  3. Также VirtualBox проверяет текущие смонтированные устройства CD/DVD, перечисленные в файле /etc/mtab .

  4. Также VirtualBox проверяет все записи в файле /etc/fstab указывающие на устройства CD/DVD.

Другими словами, вы можете попытаться прописать в VBOX_CDROM все ваши устройства CD/DVD, разделенных символом двоеточия, например:

export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'

В современных дистрибутивах Linux, VirtualBox использует hardware abstraction layer (hal) для определения устройств CD и DVD.

11.5.4. Привод гибких дисков хоста не доступен

Предыдущая инструкция (для CD и DVD) также применима к дисководам, за исключением того, что VirtualBox сканирует устройства /dev/fd* и используется переменная среды VBOX_FLOPPY.

11.5.5. Необычные сообщения об ошибках для гостевого IDE при записи CD/DVD

Если включена функция поддержки записи CD/DVD с некорректными настройками в гостевой или хост системы, то возможно что любая попытка записи CD/DVD заканчивается ошибкой и приводит к появлению сообщений об ошибках в журнале ядра (для Linux гостей) или ошибок выполнения программ (для Windows гостей). VirtualBox обычно выполняет проверку конфигураций на ошибки при запуске виртуальных машин (в данном случае выводится сообщение об ошибке если устройство CD/DVD не является пишущим), но не может обнаружить все некорректные конфигурации. Ниже перечислены правила которые, используются при работе с устройствами.

Особое внимание следует обратить на работоспособность устройств. Имя файла устройства CD/DVD хоста (в большинстве случаях /dev/cdrom ) должно ссылаться на устройство которое позволяет записывать носители CD/DVD. Для пишущих CD/DVD устройств подключенных к SCSI или IDE контроллеру, которые подключаются к интерфейсу подсистемы Linux SCSI (обычно для SATA контроллеров), должна быть ссылка на узел SCSI устройства (например /dev/scd0 ). Для IDE CD/DVD это должна быть ссылка на соответствующее устройство SCSI CD-ROM (например /dev/scd0 ), если загружен модуль ядра ide-scsi. Этот модуль требуется для поддержки пишущих CD/DVD для всех ядер Linux 2.4 и некоторых ранних 2.6. Многие дистрибутивы Linux загружают этот модуль, когда обнаруживают пишущий привод CD/DVD в системе, даже если ядро поддерживает CD/DVD без него. VirtualBox поддерживает использование файловых устройств IDE (таких как /dev/hdc ), предоставляя их ядру, если ide-scsi не загружен.

Подобные правила (except that within the guest the CD/DVD writer is always an IDE device) применяются к гостевой конфигурации. Поскольку эта настройка очень распространена, то вероятно что настройки по умолчанию будут работать как необходимо.

11.5.6. Проблемы с VBoxSVC IPC

В Linux, VirtualBox использует особую версию Mozilla XPCOM (кроссплатформенную объектную модель) для связи с внутренними и внешними процессами (IPC). Процесс VBoxSVC работает как коммуникационный центр между различными процессами VirtualBox и поддерживает глобальные настройки , т.е. является базой данных XML. Когда стартует компонент VirtualBox, процессы VBoxSVC и VirtualBoxXPCOMIPCD запускаются автоматически. Они доступны только для пользователя запустившего их. VBoxSVC является владельцем базой настроек VirtualBox которые находятся обычно в ~/.VirtualBox . Пока этот процесс выполняется, файлы конфигурации блокируются. Взаимодействие между компонентами VirtualBox и VBoxSVC осуществляются через локальный сокет, находящийся в /tmp/.vbox-<username>-ipc . В случае возникновения проблем коммуникации (то есть приложение VirtualBox не может обратиться к VBoxSVC ), завершите работу демона и удалите директорию локального сокета.

11.5.7. Не работающий USB

Если USB не работает в на вашей Linux хост системой, убедитесь что текущий пользователь является членом группы vboxusers. На старых хостах, вам необходимо убедиться что пользователь имеет разрешение на доступ к файловой системе USB( usbfs ), откуда VirtualBox получает информацию о USB устройствах хоста. Остальная часть этого раздела относится только к старым системам.

Так как usbfs является виртуальной файловой системой, команда chmod для /proc/bus/usb не вызовет должного эффекта. Поэтому права на usbfs могут быть настроены только редактированием файла /etc/fstab.

Например, большинство дистрибутивов Linux имеют группу с именем usb или похожую, членом которой должен быть текущий пользователь. Чтобы дать всем пользователем этой группы доступ к usbfs, убедитесь что в файле присутствует строка:

# 85 is the USB group
none     /proc/bus/usb     usbfs      devgid=85,devmode=664    0    0

Замените 85 идентификатором нужной группы вашей системы (поищите в /etc/group "usb" или аналогичную). Иначе, если вы не беспокоитесь о проблемах безопасности , дайте всем пользователям доступ к USB изменив "664" на "666".

The various distributions are very creative from which script the usbfs filesystem is mounted. Sometimes the command is hidden in unexpected places. For SuSE 10.0 the mount command is part of the udev configuration file /etc/udev/rules.d/50-udev.rules . As this distribution has no user group called usb , you may e.g. use the vboxusers group which was created by the VirtualBox installer. Since group numbers are allocated dynamically, the following example uses 85 as a placeholder. Modify the line containing (a linebreak has been inserted to improve readability)

DEVPATH="/module/usbcore", ACTION=="add",
    RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb"

and add the necessary options (make sure that everything is in a single line):

DEVPATH="/module/usbcore", ACTION=="add",
    RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb -o devgid=85,devmode=664"

Debian Etch has the mount command in /etc/init.d/mountkernfs.sh . Since that distribution has no group usb , it is also the easiest solution to allow all members of the group vboxusers to access the USB subsystem. Modify the line

domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev

so that it contains

domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=85,devmode=664

As usual, replace the 85 with the actual group number which should get access to USB devices.

Other distributions do similar operations in scripts stored in the /etc/init.d directory.

11.5.8. Ядра PAX/grsec

Linux kernels including the grsec patch (see http://www.grsecurity.net/ ) and derivates have to disable PAX_MPROTECT for the VBox binaries to be able to start a VM. The reason is that VBox has to create executable code on anonymous memory.

11.5.9. Linux kernel vmalloc pool exhausted

When running a large number of VMs with a lot of RAM on a Linux system (say 20 VMs with 1GB of RAM each), additional VMs might fail to start with a kernel error saying that the vmalloc pool is exhausted and should be extended. The error message also tells you to specify vmalloc=256MB in your kernel parameter list. If adding this parameter to your GRUB or LILO configuration makes the kernel fail to boot (with a weird error message such as "failed to mount the root partition"), then you have probably run into a memory conflict of your kernel and initial RAM disk. This can be solved by adding the following parameter to your GRUB configuration:

uppermem 524288
home start up prev next
Сайт создан в системе uCoz