У моїй системі Arch Linux (Linux Kernel 3.14.2) вбудовані файли прив’язки не відповідають параметру лише читання
# 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/
для Orignal кріплення з /dev/sda2/
на /
також без змін і залишається для читання / запису
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Така поведінка та обстановка навколо відомі щонайменше з 2008 року та задокументовані на сторінці людиниmount
Зауважте, що параметри кріплення файлової системи залишаться тими ж, що й у початковій точці монтажу, і їх неможливо змінити, передавши параметр -o разом з --bind / - rbind. Параметри кріплення можна змінити окремою командою перезавантаження
Не всі дистрибуції ведуть себе однаково. Арка, здається, мовчки не дотримується параметрів, в той час як Debian створює попередження, коли кріплення прив'язки не отримує кріплення лише для читання
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 в якийсь момент скинув або втратив патч ... Перерахунок працює, хоча.