LINUX.ORG.RU

Shared home + bind mount


0

1

Вопрос получился комплексным.

Вначале постановка задачи: необходимо установить несколько «линуксов» и возникает вопрос, можно ли расшарить между ними home folder. Обзор интернетиков быстро дал понять, что идея шарить home folder - не самая лучшая, потому что разные дистрибы - разные версии софта, а посему возможны коллизии.
Вместо этого рекомендуют делать т.н. lightweight sharing (частичный шаринг). Например, в домашней директории есть «большие» данные - директории media, soft и work. Делается директория, например, /home/shared, куда и сбрасывается всё это добро. Затем в каждой инсталляции заводится группа, например, sharedusers, с одинаковым ID, куда добавляются пользователи из этих инсталляций (например dbzixdeb и dbzixarch), и группе выдаются соответствующие разрешения на директорию /home/shared.
Дальше на фолдеры /home/shared/media, /home/shared/soft, /home/shared/work делаются симлинки в домашние фолдеры пользователей (/home/dbzixdeb и /home/dbzixarch соответственно), и получается вполне себе юзабельная структура. Отличное решение. Вот здесь (https://unix.stackexchange.com/questions/6344/different-linux-distros-sharing...) расписано подробно, если кто не понял из моих объяснений.

Есть только два НО, которые не работают для меня:
- я активно использую thumbnails для директорий (файловый менеджер double commander), а для симлинков thumbnails не отображаются;
- данные из домашней директории периодически бекапятся, а посему наличие там симлинков нежелательно.

Что делать?
Правильно, читать про bind mount.
Почитал, осознал, и понял, что bind mounts вместо симлинков - как раз то решение, которое меня устроит.
В чём вопрос? Как вы поняли, в bind mounts я не силён, т.к. ни разу ими не пользовался. Посему вопрос в следующем: какие коллизии и непредвиденные ситуации возможны при их использовании? Действительно ли такое решение будет работать в описанной ситуации, или от него следует по каким-либо причинам воздержаться? Может есть другие достойные решения? Буду рад, если вы ими поделитесь.

Спасибо.


ействительно ли такое решение будет работать в описанной ситуации, или от него следует по каким-либо причинам воздержаться?

Будет, но вам нужно будет использовать pam mount либо прописать соответствующие записи в /etc/fstab.

Так же можете посмотреть в сторону «жёстких» ссылок (hard link), их можно создавать только на одной файловой системе и они по факту являются вторым именем файла, так что вы сможете спокойно создавать ваши архивы.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Всё верно, в /etc/fstab, в самый конец.

Жёсткие ссылки проверил, не создаются. Недаром в man'е написано, что их использовать не стОит :)

dbzix ()

Настроив /etc/fstab и поигравшись заметил, что из смонтированных через bind директорий невозможно удалять в корзину - только напрямую.
Это меня не устраивает. Какие у меня есть варианты?

dbzix ()

home folder

фолдер

фолдеры

На винфак.

Вначале постановка задачи: необходимо установить несколько «линуксов»

Ставь в контейнеры или виртуалки.

Посему вопрос в следующем: какие коллизии и непредвиденные ситуации возможны при их использовании?

У bind mount-ов много семантик. Покури Documentation/filesystems/sharedsubtree.txt и задавай конкретные вопросы.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

На винфак.

Я привык говорить «фолдер». Устроим войну? Бессмысленно.

Ставь в контейнеры или виртуалки.

Вы топиком ошиблись. Попрошу больше не отвечать. Спасибо.

dbzix ()
Ответ на: комментарий от dbzix

Ставь в контейнеры или виртуалки.

Вы топиком ошиблись

Топик вроде про bind mount-ы для разных систем на одной машине? У меня как раз так.

. Попрошу больше не отвечать. Спасибо.

Всегда пожалуйста.

tailgunner ★★★★★ ()

И ещё раз вопрос, чтобы не потерялся:

Настроив /etc/fstab и поигравшись заметил, что из смонтированных через bind директорий невозможно удалять в корзину - только напрямую.
Это меня не устраивает. Какие у меня есть варианты?

dbzix ()
Ответ на: комментарий от kostik87

В пределах одной ФС они создаются. Значит вы что-то не так делаете или что-то не договариваете.

Так точно. Выполнение

gvfs-trash /home/dbz/some-mounted-folder/some-file
приводит к такому результату:
Error trashing file: Unable to trash file: Invalid cross-device link

Ещё раз поясню что я пытаюсь сделать.
Ставятся, например, debian и arch. Home dir целиком шарить нельзя, ибо в дистрибутивах разные версии программ, пишущие разные данные. Могут быть коллизии.
В то же время, в home dir есть много других данных, которые можно сделать общими, например директории media, soft, work etc.
Что делается. Создаётся /home/shared, куда сбрасываются все эти директории. Дальше в debian'е делается bind-mount в директорию /home/dbzdebian, в arch'е соответственно в директорию /home/dbzarch, например:

mount -B /home/shared/soft /home/dbzdebian/soft

Понятное дело, размещаются /home/shared, /home/dbzdebian и /home/dbzarch на одном разделе, в одном mountpoint'е: /home

И вот тут я, похоже, неправ. Объясните дураку, как надо и почему.
Огроменное спасибо.

dbzix ()
Ответ на: комментарий от kostik87

В пределах одной ФС они создаются.

Жёсткие ссылки на директории? Могут создаваться, могут нет. man об этом честно предупреждает, оговаривая, что даже root не сможет этого сделать. Проверил - точно, не может.

dbzix ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.