В моей системе Arch Linux (Linux Kernel 3.14.2) bind mounts не учитывают параметр только для чтения
# mkdir test
# mount --bind -o ro test/ /mnt
# touch /mnt/foo
создает файл /mnt/foo
. Соответствующая запись в /proc/mounts
IS
/dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0
Параметры монтирования не соответствуют моим запрошенным вариантам, но сделать соответствовать как поведению чтения / записи для привязки монтирования и опция , используемая для первоначально установить /dev/sda2
на/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Однако, если я перемонтирую монтирование, то он учитывает опцию только для чтения
# mount --bind -o remount,ro test/ /mnt
# touch /mnt/bar
touch: cannot touch ‘/mnt/bar’: Read-only file system
и соответствующая запись в /proc/mounts/
/dev/sda2 /mnt ext4 ro,relatime,data=ordered 0 0
выглядит как то, что я мог бы ожидать (хотя на самом деле я ожидал бы увидеть полный путь к test
каталогу). Запись /proc/mounts/
для первоначального монтирования /dev/sda2/
on /
также не изменяется и остается доступной для чтения / записи.
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Такое поведение и обходные пути известны как минимум с 2008 года и описаны на странице руководстваmount
Обратите внимание, что параметры монтирования файловой системы останутся такими же, как и в исходной точке монтирования, и их нельзя изменить, передав параметр -o вместе с --bind / - rbind. Параметры монтирования могут быть изменены отдельной командой перемонтирования
Не все дистрибутивы ведут себя одинаково. Похоже, что Arch молча игнорирует эти параметры, в то время как Debian выдает предупреждение, когда монтирование bind не получает монтирование только для чтения.
mount: warning: /mnt seems to be mounted read-write.
Есть сообщения о том, что это поведение было «исправлено» в Debian Lenny и Squeeze, хотя оно не является универсальным и не работает в Debian Wheezy. С чем трудно связать привязку при монтировании с опцией «только чтение» при первоначальной монтировке?
mount -t bind
скрипта-помощника на bugs.launchpad.net/ubuntu/+source/mountall/+bug/519380
/etc/mtab
. После начального монтирования запись говорит, что монтирование - это rw, а после перемонтирования - ro, поэтому она правильно сообщает о состоянии монтирования. Это просто команда mount, которая терпит неудачу.
mount --bind -o ro
, оба выдают сообщение, mount: warning: «mountpoint» seems to be mounted read-write.
так что кажется, что в какой-то момент Debian удалил или потерял патч ... Remount работает, хотя.