如何“umount”/proc?

如何“umount”/proc?

我正在关注有关如何对 NAND 闪存进行固件更新的教程。我跟着它只更改了放置新根目录的目录。我正在将所有/bin /dev /sbin /usr文件夹复制到tmpfs我位于的RAM.

以下命令是我开始遇到问题的地方:

umount /sys
umount /proc

如果我killall5 sys卸载没有问题,但是当我尝试卸载 proc 时,它会给我:

umount: can't umount /proc: Device or resource busy

我尝试过使用chroot类似关于类似问题的链接。但似乎并没有多大帮助。

我尝试使用以下命令 chroot 到我的新根,但它给我带来了更多的悲伤:

chroot /tmp/newroot /bin/ash

错误:

umount: can't umount /proc: Invalid argument

有人能指出我正确的方向吗?我感觉我错过了一些微不足道的事情,就像通常的情况一样。

答案1

好吧,您可能不需要卸载/proc。过程是甚至不是真正的文件系统,而是内存内容和当前正在运行的进程的表示。你想要的可能是绑定挂载它到 chroot 内的某个位置:

# mkdir -m 0555 /tmp/newroot/proc
# mount --bind /proc /tmp/newroot/proc

答案2

lsof如果尚未安装,请安装,然后重新启动到单用户模式并输入lsof | grep /proc。杀死所有仍在使用的程序/proc。然后就可以卸载它了。

答案3

使用延迟卸载umount -l /proc,挂载将保留,直到所有引用都被删除,但会断开连接,以便您可以卸载根(使用后pivot_root)。

或者,您可以使用 移动安装点mount --move

相关内容