Önceden krootlanmış bir dosya sistemi nasıl kaldırılır?


17

Debian sunucumla ilgili bazı sorunları düzeltmek için bir kurtarma-canlı sistemi (canlı cd'ye benzer) kullanıyorum:

# 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/

Şimdi chroot yapabilirim /mnt/rescue- ama bitirdikten sonra dosya sistemini nasıl tekrar çıkarabilirim ?

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

Sanırım çünkü dev, procve sysbağlı dosya sistemine bağlı. Ama onları çıkarmak da mümkün değil ...


Çıkarmaya çalıştığınızda ne olur /mnt/rescue/proc? Bu süreçte hala işlem yapmadığınızdan emin misiniz chroot?
Mat

lsof /mnt/rescueBu klasörü hangi işlemin kullandığını görmeye çalışın .
Martín Canaval

Kapatmadan önce kroşe kabuğu terk etmeniz gerekir.
vonbrand

Yanıtlar:


15
  1. Önce chroot oturumundan çıkmanız gerekir, genellikle basit bir işlem exityapar:

    exit
    
  2. Sonra TÜM bağlı dizinleri ekleyin:

    umount /mnt/rescue/dev/
    umount /mnt/rescue/proc/
    umount /mnt/rescue/sys/
    
  3. Sonra:

    umount /mnt/rescue
    

syncBurada kullanılmadığından endişe ediyorsanız, sökmenin mümkün olup olmadığı üzerinde hiçbir etkisi olmadığını unutmayın. Her ne kadar beklemede olan yayınları ayırmak yine de yazar (bunun olması gerekir, çünkü bağlantısızlıktan sonra gidecekleri hiçbir yer yoktur). Kroklanmış bir işlemin varlığı önemsizdir (sökülmesini önlemesi dışında). Normal sistem işletiminde, senkronizasyonun gözlemlenebilir bir etkisi yoktur. sync, yalnızca bir cihazın bağlantısı kesilmeden fiziksel olarak bağlantısı kesilirse veya cihaz takılıyken sistem çökerse fark yaratır.


1
teşekkürler, bu kadar ... benim hatam / mnt / rescue / sys / yerine / sys / bağlantısını kesmeye çalışıyordu ...
Afr

2
syncTamamen işe yaramaz.
Gilles 'SO- kötü olmayı bırak'

@Gilles Abit'i neden ayrıntılı olarak açıklayabilir misiniz sync? Mevcut çekirdekte işe yaramaz mı? Yoksa sadece bu durumda (kurtarma modu)? Sadece kroot çıktıktan sonra umount önleyecek diske büyük bekleyen yazma olması durumunda oraya koydu.
John Siu

4
@JohnSiu'nun sökmenin syncmümkün olup olmadığı üzerinde bir etkisi yoktur. Her ne kadar beklemede olan yayınları ayırmak yine de yazar (bunun olması gerekir, çünkü bağlantısızlıktan sonra gidecekleri hiçbir yer yoktur). Kroklanmış bir işlemin varlığı önemsizdir (sökülmesini önlemesi dışında). Normal sistem çalışmasında syncgözlemlenebilir bir etkisi yoktur. syncyalnızca bir cihazın bağlantısı kesilmeden fiziksel olarak bağlantısı kesilirse veya sistem takılıyken sistem çökerse fark yaratır.
Gilles 'SO- kötü olmayı bırak'

@Gilles Şimdi anladığınızı anlıyorum. Teşekkür ederim!!
John Siu

14

Dosya sistemini dosya sistemi hiyerarşisinden zorlamak ve ayırmak için aşağıdaki komutu yürütün ve artık meşgul olmaz dosya sistemine yapılan tüm başvuruları temizleyin.

umount -lf /mnt/rescue

4

'Hedefi meşgul' olmanızın nedeni. ileti, bağlama noktasının ( /mnt/rescue) bir dosya tarayıcısında veya bir terminal oturumunda açık olması ve ayrıca dev/ptsayırma işleminin sırasıdır (burada daha önce umounted edilmelidir dev/)

Peki, tüm fs'leri başarıyla tamamlamak için:

  • Bağlama noktasının bir dosya tarayıcısında açık olmadığından emin olun!
  • Chroot dizininden çıktıktan sonra chroot dizinini değiştirin ( cd)!
  • Fs sırasına saygı dev/pts => dev/ => proc/ => sys/:

    sudo umount / mnt / kurtarma / dev / pts
    sudo umount / mnt / kurtarma / dev
    sudo umount / mnt / kurtarma / proc
    sudo umount / mnt / kurtarma / sys
    sudo umount / mnt / kurtarma


2

schrootUbuntu sürüm 10.04 yukarıdan komut ile nasıl yaparım :

# 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

0

Chroot'tan çıkın. Ana bilgisayar sisteminde, 'mount' komutu tüm monte edilen yolu gösterecektir. (Kroke monte edilen yolu içerir.) Örneğin:

binfmt_misc on /home/user/projects/jsroot/proc/sys/fs/binfmt_misc

Ardından chroot ortamına girin. Chroot ortamında sırayla tüm yolu sökmek için unmount çalıştırın. (Ana yoldan önce alt yolun bağlantısı kesilmelidir.)

unmount /proc/sys/fs/binfmt_misc
unmount /proc/sys
unmount /proc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.