GNU/Linux >> Znalost Linux >  >> Linux

Rekurzivní umount po připojení Rbind?

Při zadávání chrootu je někdy nutné připojit /sys a /dev pomocí -rbind místo -bind, aby bylo zajištěno, že je vše na správném místě, když se někdo bude dívat.

Problém nastává při odpojování.

Jednoduché umount vždy selže; s připojenými dětmi se zdá, že se používá:

$ umount /mnt/chroot/sys
umount: /mnt/chroot/sys: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Dalším možným řešením je vypsat seznam připojení z proc a odpojit každé z nich takto:

$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount

To se však také nezdaří, protože rekurzivní připojení nejsou ve skutečnosti registrována v mtab:

/mnt/chroot/sys/kernel/security is not mounted (according to mtab)

Možná je řešením provést líné umountování, ale to se mi zdá docela nebezpečné.

Existuje lepší způsob, jak to udělat, který mi unikal?

Přijatá odpověď:

Toto fungovalo pro mě správně - https://unix.stackexchange.com/a/264488/4319:

mount --rbind /dev /mnt/test
mount --make-rslave /mnt/test
umount -R /mnt/test

Bylo důležité mít dva první příkazy jako dva samostatné příkazy:nekombinovat --rbind a --make-rslave v jednom vyvolání mount.

Bez --make-rslave , chování bylo nežádoucí (a nebylo úspěšné):

  • umount -l by ovlivnilo i původní staré přípojné body,
  • a umount -R by bylo ovlivněno zaneprázdněnými (otevřenými) soubory pod původními starými přípojnými body. (Velmi nečekané…)

Linux
  1. Linux – Jak obnovit Grub po instalaci Windows Xp?

  2. Rekurzivní globus?

  3. Zabránit automatickému opětovnému připojení jednotek USB po odebrání?

  1. Jak připojit a odpojit souborový systém / oddíl v Linuxu (Příklady příkazů Mount/Umount)

  2. Jak připojit a odpojit souborový systém v Linuxu

  3. Jak připojit zařízení v Linuxu?

  1. Ověření syntaxe PHP.

  2. Rekurzivní Mkdir?

  3. Odpojte připojení nfs tam, kde server nfs zmizel