J'utilise un système de sauvetage-live (similaire à un CD Live-CD) pour résoudre certains problèmes avec mon serveur Debian, comme celui-ci:
# mkdir -p /mnt/rescue
# mount /dev/md2 /mnt/rescue
# mount --bind /dev /mnt/rescue/dev/
# mount --bind /proc /mnt/rescue/proc/
# mount --bind /sys /mnt/rescue/sys/
Maintenant, je peux chroot à /mnt/rescue
- Mais après avoir fini, comment démonter le système de fichiers à nouveau?
umount: /mnt/rescue: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Je suppose que c'est parce que dev
, proc
et sys
sont liés au système de fichiers montés. Mais il n'est pas possible de les démonter ...
Vous devez d'abord quitter la session Chroot, généralement un simple exit
fera:
exit
Ensuite, omniter tous les annuaires contraignants:
umount /mnt/rescue/dev/
umount /mnt/rescue/proc/
umount /mnt/rescue/sys/
Puis:
umount /mnt/rescue
Si vous étiez inquiet que sync
ne soit pas utilisé ici, notez qu'il n'a aucune influence sur la question de savoir si la démontage est possible. Démontage des flushes en attente d'écriture de toute façon (il faut, car il y aurait nulle part pour qu'ils puissent aller après la démontage). La présence d'un processus chrooté n'est pas pertinente (sauf en ce qu'elle empêche la démontage). En fonctionnement normal du système, Sync n'a aucun effet observable. Sync ne fait que différence si un périphérique est physiquement déconnecté sans avoir été démonté ou si le système se bloque lorsque le périphérique est monté.
Exécutez la commande ci-dessous pour forcer et détacher le système de fichiers à partir de la hiérarchie du système de fichiers et nettoyer toutes les références au système de fichiers dès qu'il n'est plus occupé.
umount -lf /mnt/rescue
La raison pour laquelle vous obtenez la "cible est occupée". Le message est parce que le point de montage (/mnt/rescue
) est ouvert dans un navigateur de fichiers ou dans une session de terminal, ainsi que l'ordre du processus de démontage (ici je veux dire dev/pts
devrait être monté avant dev/
)
Eh bien, afin de mener à bien tous les FS:
cd
)!UMount FS concernant la commande dev/pts => dev/ => proc/ => sys/
:
Sudo umount/mnt/sauvetage/dev/pts
[.____] Sudo Umount/MNT/Rescue/Dev
[.____] Sudo Umount/MNT/Rescue/Proc
[.____] Sudo Umount/MNT/Rescue/Sys
[.____] Sudo UMount/MNT/Rescue
C'est comme ça que je fais avec schroot
commande sur Ubuntu version 10.04 à la hausse:
# list all sessions:
schroot --list --all-sessions
# if the above command does not work, just type `mount`. The bind mount
# points with something like this in the mount path is the session name you want to get:
precise-a4aac8e0-663c-4fec-8fb2-16e4b06557e3 (<chroot_name>-<id>)
# now run this to properly end the session:
schroot -e -c precise-ca6c72e4-0e9f-4721-8a0e-cca359e2c2fd
Sortie chroot. Dans le système hôte, la commande 'Mount' montrera tout le chemin monté. (Inclut ce chemin qui sont montés dans chroot.) Par exemple:
binfmt_misc on /home/user/projects/jsroot/proc/sys/fs/binfmt_misc
Ensuite, entrez l'environnement chroot. Dans Environnement Chroot, exécutez un démontage pour démonter tout chemin dans l'ordre. (Le sous-chemin doit démonter avant le chemin des parents.)
unmount /proc/sys/fs/binfmt_misc
unmount /proc/sys
unmount /proc