Sur mon NAS sans tête, j'ai sdf1
(une carte flash) montée en tant /
que /home
depuis lv00
(un volume LVM sauvegardé par un logiciel RAID). Pour pouvoir accéder à la machine lorsque le RAID tombe en panne, je dispose d'une copie de ma clé publique ssh, etc. /home/foo/.ssh
sur le système de fichiers sdf1
.
Pour mettre à jour les fichiers qui sont cachés par la montée /home
normalement je remount lv00
dans /mnt/home
, faire ce que je dois faire, puis se déplacer lv00
en place.
Y a-t-il un moyen d'y parvenir sans démonter /home
?
32
mount --bind
, mais je n'ai eu que quelques idées compliquées qui ne manqueraient pas de casser quand j'en aurais besoin. Cela fait exactement ce dont j'ai besoin et peut même aller en tant que montage permanent. MerciJ'ai essayé d'obtenir quelque chose de similaire, mais la réponse de l' éphémient n'expliquait pas la sémantique de la méthode. Cela a échoué pour moi et j'ai donc posé pratiquement la même question plus tôt ici sous unix.SE. Après un commentaire, je l'ai compris par moi-même et j'ai répondu. Ceci est une version révisée de ma réponse pour entrer dans ce contexte ici. J'ai enlevé mon autre question (et sa réponse) en faveur de celle-ci.
Voici ce que j'essayais de faire:
Exemple de cas
Montures:
Après le montage,
/
j'ai un dossier/home/joe
pour l'utilisateurjoe
. Une fois que l'autre emplacement est monté (/data
), j'ai l'ensemble des dossiers de base disponibles, je suis donc en train de les monter en place (/data/home on /home
). Il y a un dossier/data/home/joe
, donc tant que le montage de/dev/sdb1
réussit, il obtiendra le contenu de/data/home/joe
, sinon il retombera sur/home/joe
(sur/dev/sda1
!).Quand cela réussit, comment puis-je accéder au contenu original de
/home/joe
(on/dev/sda1
!) Au lieu de ceux qui sont montés dans la reliure/data/home/joe
?Solution
Sur la base d’un commentaire de Patrick sur ma question et de la solution de ephemient (réponse acceptée ici), j’ai proposé ce qui suit.
Il est apparemment possible de
mount --bind
(oumount -o bind
) le dossier parent ( c'est la partie cruciale ) d'un montage lié ailleurs et ainsi d'accéder au contenu d'origine. Donc, pour mon exemple, au lieu d'essayer de:(c.-à-d. monter les emplacements déjà montés dans des liaisons ailleurs), je devais:
Voilà donc ce que Patrick voulait dire dans son commentaire
Tant que vous avez un dossier parent disponible à l'emplacement monté par la liaison, cela fonctionnera, mais avec une seule indirection, comme indiqué ci-dessus. Si vous avez lié quelque chose de monté,
/
vous êtes hors de chance, car il n'y a pas de dossier parent pour/
.la source
Vous pouvez déplacer la monture vers un nouvel emplacement sans la démonter, en utilisant
mount --move
:la source