Как сделать mount --bind постоянным?

22

Когда я делаю:

mount --bind dirone dirtwo

После перезагрузки ОС привязка теряется.

Я проверяю каталоги в /proc/mounts

Как я могу сделать эти связки постоянными без засорения /etc/fstab?

Вот одна запись из /proc/mounts

/dev/disk/by-uuid/4f5082d7-aba2-4bc7-8d64-3bbb3d773aab /home/username/dir ext4 rw,relatime,data=ordered 0 0
Александр Ким
источник
1
Вы должны либо выполнить эту команду во время загрузки (rc.local), либо поместить запись в / etc / fstab. Что заставляет вас думать, что это засорение / etc / fstab? , это то, для чего fstab, fstab намного «чище», чем rc.local
Panther

Ответы:

31

Что вы имеете в виду "засорение /etc/fstab"? Лучшее место, чтобы положить это в это /etc/fstab ; вот для чего это было сделано!

Все, что вам нужно сделать, это добавить одну строку после первого монтирования:

# <device>                                 <dir>                 <type>  <options>                 <dump>  <pass>
UUID=288a84bf-876c-4c4b-a4ba-d6b4cc6fc0d2  /mnt/device            ext4    defaults,noatime,nofail   0       2
/mnt/device                                /srv/binded_device     none    bind                      0       0
ryanmjacobs
источник
Итак, вы рекомендуете просто скопировать / вставить из /proc/mountsв /etc/fstab?
Александр Ким
Да, это должно работать. Просто скопируйте и оригинальное крепление, иmount --bind
ryanmjacobs
Спасибо, но mount --bindне сохраняется в /proc/mounts?
Александр Ким
Нет, я думаю, что нет; но не должно быть слишком сложно скопировать первое монтирование, а затем добавить свое собственное mount --bind.
ryanmjacobs
прямо как в вашем примере вместо rw,relatime,data=orderedтипа bind, верно?
Александр Ким
19

Самый простой способ - установить - привязать то, что вам нужно

mount --bind /home/sda1/Windows/Users/Me/Dropbox ~/Dropbox

Затем откройте mtab

sudo nano /etc/mtab

Скопируйте свою строку как

/home/sda1/Windows/Users/Me/Dropbox /home/me/Dropbox none rw,bind 0 0

и вставьте его в fstab, чтобы он был при перезагрузке

sudo nano /etc/fstab

Если ваша папка находится на смонтированном диске, убедитесь, что строка привязки идет после монтирования диска

dgpro
источник
2
это должно быть принятым решением.
Дакш Миглани
3

Другое решение (которое полезно, когда вы используете LVM и принятый ответ не будет работать, а некоторые могут посчитать более полезным, так как использует немного больше логики), будет делать что-то похожее на это:

Добавьте следующее в ваш crontab
# crontab -l | хвост -1; cat / usr / sbin / custom-compiler-mount

@reboot /usr/sbin/custom-compiler-mount

По сути, вы бы использовали crond для запуска скрипта при перезагрузке

#!/bin/bash
( until [[ $( (mount |& grep vg0-homevol 2>&1 9<&1 > /dev/null 1<&9) ) ]] ; 
do 
sleep 1 
done & wait;mount -o rbind /home/linuxgeek/experimental/s3/gcc/ /gcc & ) & >/dev/null 
linuxgeek
источник