Mount

安裝後如何解除安裝dev

  • May 6, 2022

安裝後似乎無法解除安裝dev。我正在繼續Ubuntu 18.04.2 LTS使用4.15.0-1052-aws.

mkdir -p ~/jail/dev
pushd ~/jail
sudo mount --rbind /dev dev/
sudo umount  dev/
umount: /home/ubuntu/Code/conversations/jail/dev: target is busy.

有什麼方法可以在不重新啟動機器的情況下解除安裝它?

或者,有沒有辦法可以安裝它以便更容易解除安裝?

更新:這是輸出lsof /home/ubuntu/Code/conversations/jail/dev

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs  55 root  cwd    DIR    0,6     2980    2 dev
kdevtmpfs  55 root  rtd    DIR    0,6     2980    2 dev
mount --make-rslave dev/
umount -R dev/

為了安全起見,第一個命令是必需的。它將阻止第二個命令解除安裝原始 /dev目錄中的子目錄。這是由於“安裝傳播”。

第二個命令遞歸地解除安裝整個樹。dev/pts例如,這可以確保在嘗試解除安裝之前解除安裝dev/。這就是導致“目標正忙”錯誤的原因。


作為優化,您可以使用umount -l而不是umount -R. 這在拆卸整個綁定安裝樹時可能很有用。

綁定掛載上的 umount -R 花費了不可忽略的時間,為什麼?

但是,如果它們不僅僅是綁定掛載或虛擬文件系統,則需要小心。已打開文件的程序通常仍然可以訪問它們。在他們關閉它們之前,文件系統仍然是打開的。但是,文件系統會立即“分離”。它不會再弄亂命名空間了。它不會出現在findmnt等等。這意味著您無法輕易判斷底層設備何時“可以安全移除”。

引用自:https://unix.stackexchange.com/questions/549945