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

Папка для совместного использования была E:\virtual_shared\ . Гостевые дополнения были установлены и включены. Я мог видеть общую папку в /media/sf_virtual_shared/ и там была точка монтирования в /mnt/share/ . Команда 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/?

1 ответ1

2

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .