我正在关注这有关如何对 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
。