Как mount использует fstab для монтирования каталогов?

383
Lorem Ipsum

Коллега попросил меня помочь смонтировать общую папку Windows 10 в гостевой системе Arch Linux с помощью VirtualBox. Система была установлена ​​другим сотрудником, который был на обеде.

Папка для совместного использования была E:\virtual_shared\. Гостевые дополнения были установлены и включены. Я мог видеть общую папку в /media/sf_virtual_shared/и там была точка монтирования в /mnt/share/. An ls -al /mnt/share/показал, что целевой каталог был пуст. Пользователь был частью vboxsfгруппы. Казалось, что все разрешения проверены как на хосте, так и на госте. Казалось, все в порядке. Тем не менее, я все еще не мог смонтировать его!

Чтобы смонтировать его, я использовал

# mount -t vboxsf /media/sf_virtual_shared/ /mnt/share/ 

и получить ошибку

"/sbin/mount.vboxsf: mounting failed with the error: Protocol error" 

Я попытался подключиться к новой папке ( ~/test/), но получил ту же ошибку.

В конце концов, человек, который настроил систему, вернулся с обеда. Он просто побежал

# mount /mnt/share 

Оказывается, fstabсодержалось следующее:

# # /etc/fstab :static file system information # # <file system> <dir> <type> <options> <dump> <pass> # UUID=5392b506-dde2-4a21-9c7e-86a6f9f94907 /dev/sda2 / ext4 rw,relatime,data=ordered 0 1  # UUID=d6236258-9bea-446a-b38b-0244c048bb1 /dev/sda1 /boot ext2 rw,relatime 0 2 virtual_shared /mnt/share vboxsf defaults 0 0 

Мой вопрос: почему бы mountвызову с использованием абсолютных путей не смонтировать каталог? Как mountиспользовать fstab?

Я знаю, что mountвызывается при загрузке и проходит fstabпоследовательно. Несмотря на то, что он /mnt/share/был указан как пустой, было ли что-то смонтировано там, не позволяя монтировать вызов абсолютного пути? Почему я до сих пор не могу подключить общую папку ~/test/?

0
Есть ли какие-либо ответы в этой теме, кажется, применяются? Https: //askubuntu.com/q/30396 sippybear 5 лет назад 0
Нет, к сожалению нет. Это был один из ресурсов, которые я использовал при поиске неисправностей. Все они являются вариантами `mount -t vboxsf source / target /`. Кажется, ни один из них не объясняет `fstab`. Lorem Ipsum 5 лет назад 0

1 ответ на вопрос

2
grawity

Файловая система vboxsf не монтирует локальные каталоги в других каталогах - ее исходный параметр не является ни относительным, ни абсолютным путем; это не путь вообще. Эта строка имеет значение только для vboxsf и для приложения VirtualBox. (В частности, это «общее имя», которое вы настроили в настройках VirtualBox VM.)

Поэтому fstab здесь не имеет отношения. Источники, указанные в этих двух вызовах монтирования, просто не эквивалентны.

(Если это поможет, представьте, что vboxsf - это удаленная файловая система, которая работает так же, как cifs / smbfs - потому что это действительно так. И точно так же, как для cifs требуется удаленное «имя общего ресурса» вместо локального пути, так же как и vboxsf.)

А как насчет общей папки, которая видна в /media/sf_virtual_shared? Ну, этот путь сам по себе является точкой монтирования . Если вы посмотрите findmnt, вы, вероятно, увидите, что экземпляр vboxsf уже подключен к этому месту - предположительно, гостевые службы vbox автоматически смонтировали его для вас. Так что это не тот источник, который вы можете использовать; это цель, которая уже была использована.

(Если вы действительно хотите смонтировать локальный каталог в другом каталоге, вообще не используйте какой-либо тип файловой системы - сделайте это с помощью mount --bind.)

Чтобы сделать это явным для любого, кто сталкивается с этим в будущем, имя общего ресурса в моем случае было `virtual_shared`. Итак, мне нужно было вызвать `mount -t vboxsf virtual_shared / mnt / share`. Lorem Ipsum 5 лет назад 1

Похожие вопросы