In Squeeze funktionierte es früher nur mit:
mount --bind /src /dst
dann
mount -o remount,ro /dst
Jetzt müssen Sie in Debian Wheezy Folgendes tun:
mount -o remount,ro,bind /dst
um die Nachricht zu entfernen: Ressource beschäftigt.
Bearbeiten: Jetzt in Debian Jessie versucht mount klug zu sein und mounten Unterverzeichnisse, die rekursiv werden und schlimme Dinge passieren :)
Es gibt eine spezielle Option, die Util-Linux dazu zwingt, wieder 'dumm' zu sein. Lösungen ist dies:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
Anschließend können Sie --bind $ prefix / sbin in ein anderes Verzeichnis einbinden.
Von der Manpage:
Die gemeinsam genutzten Teilbaumoperationen. Seit Linux 2.6.15 ist es möglich, ein Mount und seine Submounts als gemeinsam genutzt, privat, Slave oder nicht bindend zu markieren. Ein gemeinsam genutzter Mount bietet die Möglichkeit, Spiegel dieses Mount zu erstellen, sodass das Ein- und Aushängen innerhalb eines der Spiegel auf den anderen Spiegel übertragen wird. Ein Slave-Mount empfängt die Weitergabe von seinem Master, aber nicht umgekehrt. Ein privates Reittier besitzt keine Ausbreitungsfähigkeiten. Ein nicht bindbarer Mount ist ein privater Mount, der nicht durch einen Bindevorgang geklont werden kann. Die detaillierte Semantik ist in der Datei Documentation / filesystems / sharedsubtree.txt im Kernel-Quellbaum dokumentiert. Unterstützte Operationen sind:
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
Mit den folgenden Befehlen kann der Typ aller Mounts unter einem bestimmten Mountpunkt rekursiv geändert werden.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount (8) liest fstab (5) nicht, wenn eine --make- * -Operation angefordert wird. Alle notwendigen Informationen müssen in der Kommandozeile angegeben werden. Beachten Sie, dass der Linux-Kernel nicht zulässt, dass mehrere Propagierungsflags mit einem einzigen Mount (2) -Syscall geändert werden, und dass die Flags nicht mit anderen Mount-Optionen gemischt werden können.
Seit util-linux 2.23 können mit dem Befehl mount mehrere Propagierungsflags zusammen und auch zusammen mit anderen Mount-Operationen verwendet werden. Diese Funktion ist EXPERIMENTELL. Die Propagierungsflags werden von zusätzlichen Mount (2) -Syscalls angewendet, wenn die vorhergehenden Mount-Vorgänge erfolgreich waren. Beachten Sie, dass dieser Anwendungsfall nicht atomar ist. Es ist möglich, die Ausbreitungsflags in fstab (5) als Mount-Optionen anzugeben (privat, Slave, gemeinsam genutzt, nicht bindend, privat, rslave, rshared, runbindable).
bind
Option hinzuzufügen ?man 2 mount
an, dass diesbind
erforderlich ist: "Seit Linux 2.6.26 kann dasMS_REMOUNT
Flag verwendet werdenMS_BIND
, um nur die Flags pro Mount-Punkt zu ändern. Dies ist besonders nützlich, um den Lesevorgang zu setzen oder zu löschen." -only "Flag auf einem Mount-Punkt, ohne das zugrunde liegende Dateisystem zu ändern. Wenn Sie Mount-Flags wie folgt angeben,MS_REMOUNT | MS_BIND | MS_RDONLY
wird der Zugriff über diesen Mount-Punkt schreibgeschützt, ohne dass andere Mount-Punkte betroffen sind." (Ab Ubuntu 19.10, Linuxman-pages
Release 5.0.2 vom 02.08.2019.)libmount
rufen neuere Versionen von diemount()
Funktion zweimal während eines einzelnen Aufrufs des/usr/bin/mount
Programms auf. Es ist also eher die Version vonlibmount
als die Kernel-Version, die bestimmt, ob zwei Aufrufe von/usr/bin/mount
benötigt werden oder nicht .