Auf meinem Arch Linux-System (Linux Kernel 3.14.2) beachten Bindungs-Mounts nicht die Option "Nur Lesen"
# mkdir test
# mount --bind -o ro test/ /mnt
# touch /mnt/foo
Erstellt die Datei /mnt/foo
. Der relevante Eintrag in /proc/mounts
ist
/dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0
Die Mount - Optionen meine gewünschten Optionen nicht übereinstimmen, aber sowohl das Verhalten Lese- / Schreib tun entsprechen des bind montieren und die Optionen verwendet , um ursprünglich zu montieren /dev/sda2
auf/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Wenn ich den Mount jedoch erneut einbinde, wird die schreibgeschützte Option beachtet
# mount --bind -o remount,ro test/ /mnt
# touch /mnt/bar
touch: cannot touch ‘/mnt/bar’: Read-only file system
und den entsprechenden Eintrag in /proc/mounts/
/dev/sda2 /mnt ext4 ro,relatime,data=ordered 0 0
sieht aus wie das, was ich erwarten könnte (obwohl ich in Wahrheit erwarten würde, den vollständigen Pfad des test
Verzeichnisses zu sehen). Der Eintrag in /proc/mounts/
für das orignal mount von /dev/sda2/
on /
bleibt ebenfalls unverändert und schreibgeschützt
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Dieses Verhalten und die Abhilfe sind seit mindestens 2008 bekannt und in der Manpage von dokumentiertmount
Beachten Sie, dass die Mount-Optionen für das Dateisystem dieselben bleiben wie für den ursprünglichen Mount-Punkt und nicht geändert werden können, indem Sie die Option -o zusammen mit --bind / - rbind übergeben. Die Mount-Optionen können durch einen separaten Remount-Befehl geändert werden
Nicht alle Distributionen verhalten sich gleich. Arch scheint stillschweigend die Optionen nicht zu respektieren, während Debian eine Warnung generiert, wenn der Bind-Mount nicht schreibgeschützt wird
mount: warning: /mnt seems to be mounted read-write.
Es gibt Berichte, dass dieses Verhalten in Debian Lenny und Squeeze "behoben" wurde, obwohl es anscheinend kein universeller Fix ist und auch in Debian Wheezy nicht funktioniert. Was ist das Schwierige, das damit verbunden ist, dass Bindungs-Mount die Nur-Lese-Option beim anfänglichen Mount respektiert?
mount -t bind
eines Hilfsskripts
/etc/mtab
. Nach dem ersten Mount lautet der Eintrag "rw" und nach dem erneuten Mount "ro", sodass der Status des Mount korrekt gemeldet wird. Es ist nur der Befehl mount, der fehlschlägt.
mount --bind -o ro
, beide spucken eine Nachricht aus. mount: warning: «mountpoint» seems to be mounted read-write.
Es scheint also, als wäre Debian irgendwann gefallen oder hätte den Patch verloren ... Remount funktioniert aber.