Установка VirtualBox и подключение USB в гостевой ОС в Debian.

В принципе, я уже писал когда-то и как ставить VirtualBox, и как подключить USB в гостевой ОС (winXP), но это было из-под kubuntu, а в Debian столкнулся с некоторыми проблемами. Поскольку Гугль очень неохотно выдавал ссылочки на решения этих проблем (а на русскоязычных сайтах вообще ничего не выдал), то я решил, что имеет смысл расписать поподробнее что и как делал.

1) Установка VirtualBox.
Казалось бы, что может быть проще? Заходим в раздел Downloads на virtualbox.org/, и в соответствии со своим дистрибутивом добавляем в /etc/apt/sources.list один из репозитариев:

deb http://download.virtualbox.org/virtualbox/debian hardy non-free
deb http://download.virtualbox.org/virtualbox/debian gutsy non-free
deb http://download.virtualbox.org/virtualbox/debian dapper non-free
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
deb http://download.virtualbox.org/virtualbox/debian etch non-free
deb http://download.virtualbox.org/virtualbox/debian sarge non-free
deb http://download.virtualbox.org/virtualbox/debian xandros4.0-xn non-free

Затем добавляем ключ:

wget -q http://download.virtualbox.org/virt...an/sun_vbox.asc -O- | sudo apt-key add -

И привычными командами (apt-get или aptitude — тема для холивара, поэтому опускаю) обновляем-ставим VirtualBox. Ну, или ставим через Synaptic — кому как нравится.
Добавляем себя в группу vboxusers

$ sudo adduser `whoami` vboxusers

и запускаем эмулятор. Только вот что-то изменилось со времён версии 1.5, которую я когда-то ставил.  По окончании установки пакета (ставил версию 2.0) меня попросили сделать

/etc/init.d/vboxdrv setup

Сделал (от root’а), но и после этого эмулятор не пошёл. Перелопатил User Manual, облазал кучу форумов и блогов, поставил (а затем снёс) кучу каких-то пакетов (и, кстати, ядер) по советам «знающих» людей… Снёс 2.0, поставил 1.6.6, снёс и её, поставил 2.0 из deb-пакета… В итоге переставил своё родное ядро, ребутнул машину (а она за всё это время только после установки ядер перезагружалась) и VirtualBox заработал. Что из моих действий оказалось правильным — не знаю. Как я понимаю, мне нужно было всего лишь доставить пакет virtualbox-ose-modules-(номер_ядра), запустить /etc/init.d/vboxdrv setup иперезагрузиться, поскольку похже, что теперь какие-то функции VB встраиваются в ядро. Не уверен, но похоже.
Вобщем, так или иначе, но я таки поставил из репозитария VirtualBox 1.6.6 (версия 2.0 оказалась очень нестабильная, трижды падала при создании разделов для виртуальной машины).
2) Подключение USB в VirtualBox.
Естественно, первым делом полез сюда. Мол, один раз проканало и снова проканает. Фиг!
Для начала, в /etc/init.d/mountdevsubfs.sh нет такого закомментированного блока! Напоминаю, что речь идёт про Debian, поэтому не надо мне говорить, что у вас в (k)ubuntu есть.
Задумался… Загрузил VB в очередной раз и тыцнул по значку USB — оказалось, что устройства эмулятор видит, но не может подключить. Т.о. этот шаг можно пропустить и приступить к редакции /etc/udev/rule.d/40-permissions.rules.
Но и тут облом: нет такого файла в Debian!!! Начал изучать остальные (ведь по идее, все они создают правила для работы с внешними девайсами), очень похоже, что права на работу с устройствами регламентирует /etc/udev/rule.d/91-permissions.rules, но изменение этого файла ни к чему не привело. Пробовал изменить права с возможностью чтени/записи для всех, пробовал добавить права на группу — фиг.
Сдался — полез в гугль.
Гугль вывел меня на Debian Etch USB Support and Shared Folder. Решение, конечно, крайне удивило… После того, как вставил в fstab

none       /proc/bus/usb   usbfs   rw,user,devgid=117,devmode=0666 0 0

(117 — id группы vboxusers) и ребутнул комп, всё тут же нашлось и заработало, благодаря чему в виртуалке сейчас запущен лирушный клиент с флэшки.
Вобщем, как-то так….
PS Поскольку соскочил с (k)ubuntu, то раздел Ububntu way стал неактуален. Теперь это HOWTO.

Запись опубликована в рубрике Импортировано с ЛиРу с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *