web-dev-qa-db-fra.com

Comment démonter un système de fichiers anciennement chroot'd?

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 ...

19
Afr
  1. Vous devez d'abord quitter la session Chroot, généralement un simple exit fera:

    exit
    
  2. Ensuite, omniter tous les annuaires contraignants:

    umount /mnt/rescue/dev/
    umount /mnt/rescue/proc/
    umount /mnt/rescue/sys/
    
  3. 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é.

19
John Siu

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
15
shgnInc

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:

  • Assurez-vous que le point de montage n'est pas ouvert dans un navigateur de fichiers!
  • Après avoir quitté le répertoire Chroot Changer hors de Chroot Dir (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

4
Jonah

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
2
biocyberman

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
0
PokerFace