связать монтирующееся использование только для чтения fstab на Ubuntu?

Я должен повторно смонтировать один каталог (/src) как только для чтения в другом месте (/dst). Это может быть сделано как это:

$ sudo mount --bind /src /dst
$ sudo mount -o remount,ro /dst

Однако я хотел бы использовать /etc/fstab иметь монтирование, происходящее во время начальной загрузки и видеть различные предложенные решения этой проблемы, например.

/src  /dst    none  bind            0 0
/src  /dst    none  remount,bind,ro 0 0

который, к сожалению, уезжает, каталог смонтировал чтение-запись в моей системе и этом

/src  /dst    none  bind            0 0
/dst  /dst    none  remount,bind,ro 0 0

который выпустит ошибку при попытке смонтироваться /dst:

mount: /dst not mounted already, or bad option

Вышеупомянутые решения, предположительно, работают над различными дистрибутивами, но к сожалению не на Ubuntu 10.04.4 LTS (ядро 2.6.32 41 сервер).

Любые идеи, как выполнить это кроме размещения mount команды в /etc/rc.local?

8
задан 11 May 2012 в 17:49

2 ответа

На более старых ядрах, mount --bind не может создать представление только для чтения файловой системы чтения-записи. Ядро хранит состояние чтения-записи файловой системы в единственном месте, которое не дублировано связыванием, монтируются. Более новые ядра позволяют это, но все еще требуют отдельного mount шаг: сначала свяжите, затем сделайте только для чтения. Существует патч ядра для изменения этого, и некоторые дистрибутивы (такие как Debian) применили его, но Ubuntu не имеет (по крайней мере, не с 12,04).

Одно решение состоит в том, чтобы создать представление только для чтения из сценария начальной загрузки вместо этого от /etc/fstab, как , Oli объясняет .

Иначе, можно использовать bindfs вместо этого. Это файловая система FUSE . Прохождение через FUSE немного медленнее, поскольку это представляет дополнительный слой косвенности. Вы также теряете поддержку расширенных метаданных файла, таких как ACLs. На обороте представление только для чтения будет иметь распознаваемый тип файловой системы, помогая исключить из обходов файловой системы (такой как locate и резервные копии).

fstab запись похожа на это:

bindfs#/src  /dst  fuse perms=a=rX
6
ответ дан 22 October 2019 в 17:25

Согласно эта статья LWN, это поведение кралось в Ядро вокруг версии 2.6.25. Короче говоря, если целевая файловая система rw, связывание чего-то на вершине не может преобразовать ее в ro.

В 2.6.26 они частично починили вещи, таким образом, можно инициировать перемонтирование (поскольку Вы обнаружили), но нет все еще никакого способа сделать это из fstab.

<час>

Вот то, что я пробовал в fstab:

/home/oli/Desktop/testmount  /mnt none bind,ro

После увольнения mount -a, /mnt был смонтирован, но я мог все еще создать файлы. После затем исчерпывания sudo mount -o remount /mnt, это стало только для чтения.

Так да, я думаю, что самый чистый метод должен или иметь строку в /etc/rc.local или записать суперпростой Новомодный сценарий, который запускается на mountall событие (таким образом, это сразу происходит).

6
ответ дан 22 October 2019 в 17:25

Другие вопросы по тегам:

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