Как подмонтировать VirtualBox shared folders в гостевой Ubuntu

Apr 12, 2013 20:30

Вынесенная в заголовок задача оказалась не такой уж тривиальной. И, уверен, столкнуться с ней придётся ещё не раз. Чтобы каждый раз не разбираться заново, сохраню тут рецепт на память. Целиком можно не читать, внизу есть готовая паста. Общий с хост-машиной клипборд без guest additions ещё не работает, так что вот короткий url для этого поста: gg.gg/vboxsf

Сначала определяем, через какие именно каталоги мы собираемся сношаться с гостевой ОС:



(Кстати, всё это можно сделать без единого гуя.)

А дальше настраиваем гостя. Вообще, вся суета состоит из двух проблем: установить guest additions и, собственно, подмонтировать shared folder.

Установка Guest Additions

О сабже, вроде как, написано в мануале. Но с действительностью, в которой люди ставят софт из репозитория, тот мануал имеет мало общего. Приходится проявлять чудеса сообразительности. Главная хитрость тут в том, что, оказывается, просто установить virtualbox-guest-additions недостаточно. Надо поставить ещё virtualbox-guest-utils:

apt-get update && apt-get install virtualbox-guest-additions virtualbox-guest-utilsПосле перезагрузки гостевой ОС начинают работать guest additions, и жить становится веселее:
  • включается общий клипборд (его нужно разрешить в настройках виртуалки)
  • виртуальный дисплей начинает менять разрешение вслед за изменениями размера окна, в котором живёт
  • долгожданная шара, как и было обещано, появляется в /media/sf_duplo
Появляться-то она появляется, но доступна только руту и пользователям из группы vboxsf. Можно, конечно, добавить нашего юзера в эту группу, но мы не станем этого делать, так как тут незаметно всплыла вторая проблема. Эта автоматически создаваемая гастарбайтерами шара оказалась негодной: все файлы на ней имеют атрибут executable. С наскоку не нашёл, как это исправить, и пошёл другим путём.

Монтирование

От имени юзера создаём каталог для шары:
sudo -u user mkdir /home/user/duploТеперь можно просто подмонтировать шару ручками:
mount -t vboxsf duplo /home/user/duploВуаля! И атрибуты все в порядке. В этот момент легко поддаться искушению, сделать всё необходимое с отдавшимися файлами и тем удовлетвориться. Но нас интересует автомонтирование, посему настойчиво продолжаем.

Руки уже тянутся дописать строчку в fstab? Так я и сделал, однако при перезагрузке такая шара монтироваться не захотела:
# Ахтунг! Эта строка оказалась неработоспособной
duplo /home/user/duplo vboxsf ro,auto 0 0Последующее mount -a срабатывало, а вот сама, при загрузке, - ни в какую. У авторитетного ermakidze возникло мнение, что ОС "считает этот тип файловой системы локальным и пытается монтировать все её папки при инициализации, а демон virtualbox на этот момент ещё не загружен". Как это фиксить, не понятно.

Но можно просто добавить в /etc/rc.local, перед наверняка имеющимся там exit 0, уже знакомую нам строчку:
mount -t vboxsf duplo /home/user/duplo
И наступит счастье. Не забудьте его заснэпшотить. (-:

Багрепорты и советы очень приветствуются.

Паста:

apt-get update && apt-get -y install virtualbox-guest-additions virtualbox-guest-utils && sudo -u user mkdir /home/user/duplo && mount -t vboxsf duplo /home/user/duplo

vim /etc/rc.local      # mount -t vboxsf duplo /home/user/duplo

красноглазие

Up