Не вдалося встановити віртуальну папку для спільної папки з fstab; працює після завантаження


41

У мене встановлено Ubuntu 13.10 у Virtualbox 4.3. Хост-машина - це Windows.

У мене є кілька спільних папок Virtualbox, які монтуються / etc / fstab. До недавнього часу ця установка працювала чудово, але після оновлення з Ubuntu 13.04 та Virtualbox 4.2 (фактично в той же час) монтаж Fstab перестав працювати. Під час завантаження я отримую таку помилку:

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery

Якщо натиснути кнопку M для ручного відновлення, а потім спробувати встановити вручну, також не вдасться:

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device

Але якщо я замість цього пропускаю монтаж під час завантаження, зачекаю, коли Unity запуститься, а потім змонтуйте вручну в оболонці, все працює добре:

benme-vb ~ % ls Documents
benme-vb ~ % sudo mount Documents
[sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted

Зауважте, що при монтажі вручну я дозволяю монту приймати всі параметри з / etc / fstab, і це працює. Це підказує мені, що це якась проблема синхронізації, де Virtualbox не "готовий" надавати спільні кріплення файлів у точці / etc / fstab, які виконуються під час завантаження.

Ось рядок fstab, просто для повноти:

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0

Чи можна щось зробити з цього боку з боку Ubuntu? Або комусь відомо про це з точки зору Virtualbox?

Я знайшов старий звіт про програму виправлення помилок Virtualbox з однаковими симптомами, але в цьому випадку користувач оновив Virtualbox без оновлення своїх доповнень і не вирішив проблему; це не відбувається тут, я напевно встановив 4,3 додатки для гостей.

Відповіді:


46

Я також зіткнувся з цією проблемою. Я монтую /var/wwwза допомогою функцій спільних папок VBox, тому це було дуже дратує.

Я знайшов рішення - змусити vboxsfмодуль завантажуватися рано, перед монтажем файлових систем. Просто додайте vboxsfвласний рядок у /etc/modules.

Ще одне рішення - встановити ноавто /etc/fstabта встановити накопичувачі вручну /etc/rc.local, але це було не настільки вдалим рішенням для мене, тому що до того часу Apache вже запустився і нічого не змогли знайти /var/www.


1
приголомшливий! додавання до / etc / модулів працювало чудово. дякую Річард!
ThePosey

@ThePosey Радий, що допомогли!
Річард Тернер

Це було проблемою для мене на гість Ubuntu Server 14.04. І ця відповідь (рішення / etc / module) вирішила це для мене. Дякую! PS Btw, якщо ви випадково, намагаючись розібратися / виправити речі, увімкнули функцію автоматичного монтування у налаштуваннях Virtualbox, відключіть її знову;)
Reinis

2
@qodeninja Як я вже говорив у своєму другому абзаці: "Просто додайте vboxsfокрему лінію /etc/modules.
Річард Тернер

1
Мені довелося додати vboxguest і vboxsf до / etc / module в гостьовій системі Ubuntu 14.04, щоб це працювало.
mattanja

21

На додаток до пропозиції Річарда Тернера додати vboxsfвласну лінію до /etc/modules, я пропоную додати параметр _netdevмонтажу до /etc/fstab. Я протестував на Ubuntu 12.04 LTS, і це, здається, додало потрібну кількість затримки для успішного кріплення.

Мій /etc/fstabзапис:

dev /media/dev vboxsf defaults,_netdev 0 0


4
Це працює для мене, навіть не використовуючи рішення Тернера. Майте на увазі і сенс, оскільки на сторінці довідки спільноти Ubuntu для параметрів fstab написано: " _netdev- це мережевий пристрій, змонтуйте його після підключення до мережі". Я НЕ доведеться завантажувати vboxsfв /etc/modules, тільки при додаванні _netdevпрацював!
Марк Мікофський

1
Це працює і для мене на Ubuntu 16.04, навіть без рішення Тернера.
Женя

5

Виправлення Річарда перестали працювати для мене після останнього оновлення (VirtualBox 4.3.18, Ubuntu 14.04). На щастя, мені вдалося це виправити, завантаживши vboxsfпрямо ядро:

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u

Перша команда додає параметр для завантаження модуля в ядро, а друга оновляє файлову систему init. Після перезавантаження я знову зміг використовувати мої fstab-кріплення :)

Попередження: Процес завантаження може замерзнути, якщо спільну папку неможливо встановити. Тому протестуйте свою конфігурацію, перш ніж додавати модуль до initramfs. Якщо ваша система все одно зависає, ви можете завантажити систему в режимі відновлення, щоб усунути проблему.


Я спробував це рішення завантажити vboxsfмодуль раніше ... Це просто заморозило мою послідовність завантаження, тому мені довелося його видалити.
Реріто

Так, включаючи модуль, який рано може заморозити процес завантаження, якщо ваша спільна конфігурація папки порушена. Однак я ніколи не відчував, щоб завантаження зависало з правильною конфігурацією ...
Torben

У відповідь я додав попередження, щоб зробити ясніше все.
Torben

4

Я просто хотів сказати, що змушення vboxsfмодуля до раннього завантаження допомогло мені (як у відповіді Річарда Тернера), але лінія fstab все ще не працювала для мене.

Що я в кінцевому підсумку робив - це введення команди mount (яка і працювала) /etc/rc.local. Трохи хак, але це спрацювало.


1
Я не розумію, як пропозиція Річарда Тернера "допомогла тобі", але в той же час рядок fstab "все ще не працював для тебе" ...?
j_random_hacker

4

У спільній папці, переліченій у fstab, я вважаю, що завантажувач зависне при спробі встановити його за допомогою VirtualBox 5 та Ubuntu 14.04. Здається, рішення полягає в затримці монтажу, поки сервіс GuestAddition не стане доступним (рішення Річарда Тернера /etc/modulesмені здалося недостатньо).

Для цього переконайтеся, що у вас є noautoпараметри спільної папки в /etc/fstab. Наприклад, для спільної папки під назвою vmshare:

vmshare    /home/user/share    vboxsf    defaults,noauto    0    0

Потім додайте рядок /etc/rc.localдля монтажу спільного доступу після завантаження:

mount vmshare

Це було єдиним рішенням , яке працювало для мене, використовуючи VBox 5.0.16 і Ubuntu 14.04
TJ Комптон

3

Схоже, у нього vboxsfнемає fs-vboxsfпсевдоніму (саме так модулі ядра автоматично завантажуються при першому монтажі цього типу файлової системи), тому додавання псевдоніму /etc/modprobe.dповинно зробити трюк:

$ echo "alias fs-vboxsf vboxsf" | sudo tee /etc/modprobe.d/vboxsf.conf

Я сам не пробував цього, але це виглядає багатообіцяюче.
j_random_hacker

2

У мене була така ж проблема, і я працював над запропонованими рішеннями, але без успіху. Рішення Торбена заморозило черевик, тому довелося його скасувати. Тоді я подумав, що мені слід усунути проблеми з /etc/fstabвикористанням sudo mount -a. Синтаксис мого запису виглядав ідеально, але все ж не вдався. Мені також вдалося вручну змонтувати файлysten за допомогою команди mount у вікні терміналу.

Я виявив, що у мене були пробіли між першими двома параметрами (пристроєм та точкою кріплення). Я замінив їх на вкладку, і вона працює. Дійсно? !!!!


Ви впевнені, що це два символи пробілу (ASCII код 32)? Тому що один або декілька з них повинні бути такими ж чудовими, як і символи вкладки. Іноді я випадково набираю символи пробілу, що не вриваються, коли рано натискаю клавішу зсуву або відпускаю її занадто пізно, натискаючи пробіл. Вони виглядають однаково, але заплутують багато додатків.
Девід Фоерстер

Все, що я знаю, це те, що я відступив по всьому пробілу і вставив одну вкладку, і тоді вона спрацювала.
svenyonson

Переміщення мій пробілів для вкладок працювало на мене. Мій існуючий / etc / fstab мав пробіли в ньому (наскільки я міг сказати), і я їх точно копіював. Існуючі лінії мали єдиний пробіл. Але переписання шахти вкладками все спрацювало.
jcaruso

Це не спрацювало для мене, але дотримуючись рекомендації Кевіна Садлера використовувати noautoдля затримки монтажу, а потім додавши mount <sharename>до rc.localцього трюку. Я не пробував рішення Тернера.
Марк Мікофскі

1

Я вважаю, що знайшов правильний спосіб вирішити це в Arch Wiki . Використовувати comment=systemd.automountваріант.

Вищеописаний варіант йде у /etc/fstabфайл з іншими параметрами. Наприклад:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0

Це не спрацювало для мене, але відповідь Кевена Садлєра .
Марк Мікофскі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.