据我了解(如果我错了,请纠正我)这些命令的语义是:
/)。chroot使用新的根文件系统启动新进程(而不是从父进程继承)。pivot_root更改当前进程的根文件系统,同时保持旧根可访问。现在考虑下面的例子(来自 linux 手册pivot_root)
mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root
Run Code Online (Sandbox Code Playgroud)
为什么是chroot必要的?它是从已经是根目录的目录中调用的(因为前面的pivot_root)。不应该
sh <dev/console >dev/console 2>&1
足够?