Dans Squeeze, il ne fonctionnait qu'avec:
mount --bind /src /dst
puis
mount -o remount,ro /dst
Maintenant, dans Debian Wheezy, vous devez faire:
mount -o remount,ro,bind /dst
se débarrasser du message: ressource occupée.
Edit: Maintenant dans Debian Jessie, mount essaie d'être intelligent et monte les sous-répertoires qui, s'ils sont déjà montés avec bind, deviennent récursifs et de mauvaises choses se produisent :)
Il existe une option spéciale qui force à nouveau util-linux à être «stupide». Voici les solutions:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
Ensuite, vous pouvez monter --bind $ prefix / sbin dans un autre répertoire.
Depuis la page de manuel:
Les opérations de sous-arborescence partagées. Depuis Linux 2.6.15, il est possible de marquer un montage et ses sous-montages comme partagés, privés, esclaves ou non liés. Un montage partagé offre la possibilité de créer des miroirs de ce montage de telle sorte que les montages et démontages dans l'un des miroirs se propagent à l'autre miroir. Une monture esclave reçoit la propagation de son maître, mais pas l'inverse. Une monture privée n'a aucune capacité de propagation. Un montage non lié est un montage privé qui ne peut pas être cloné via une opération de liaison. La sémantique détaillée est documentée dans le fichier Documentation / filesystems / sharedsubtree.txt de l'arborescence des sources du noyau. Les opérations prises en charge sont les suivantes:
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
Les commandes suivantes permettent de modifier récursivement le type de tous les montages sous un point de montage donné.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount (8) ne lit pas fstab (5) lorsqu'une opération --make- * est demandée. Toutes les informations nécessaires doivent être spécifiées sur la ligne de commande. Notez que le noyau Linux ne permet pas de modifier plusieurs indicateurs de propagation avec un seul syscall de montage (2), et les indicateurs ne peuvent pas être mélangés avec d'autres options de montage.
Depuis util-linux 2.23, la commande mount permet d'utiliser plusieurs drapeaux de propagation ensemble et également avec d'autres opérations de montage. Cette fonctionnalité est EXPÉRIMENTALE. Les drapeaux de propagation sont appliqués par des appels système supplémentaires mount (2) lorsque les opérations de montage précédentes ont réussi. Notez que ce cas d'utilisation n'est pas atomique. Il est possible de spécifier les indicateurs de propagation dans fstab (5) en tant qu'options de montage (privé, esclave, partagé, non lié, rprivate, rslave, rshared, runbindable).
bind
option?man 2 mount
indique que celabind
est nécessaire: "Depuis Linux 2.6.26, l'MS_REMOUNT
indicateur peut être utilisé avecMS_BIND
pour modifier uniquement les indicateurs par point de montage. Ceci est particulièrement utile pour définir ou effacer la" lecture -seulement "marquer sur un point de montage sans changer le système de fichiers sous-jacent. Spécifier les drapeaux de montage comme:MS_REMOUNT | MS_BIND | MS_RDONLY
rendra l'accès via ce point de montage en lecture seule, sans affecter les autres points de montage." (À partir d'Ubuntu 19.10,man-pages
version Linux 5.0.2, datée du 2019-08-02.)libmount
appelermount()
fonction deux fois fonction lors d'une seule invocation du/usr/bin/mount
programme. C'est donc la version delibmount
, plutôt que la version du noyau, qui déterminera si oui ou non deux invocations de/usr/bin/mount
sont nécessaires.