我试图在启动时让NFS共享系统的根文件系统。我试图做一个chroot / foo,其中/ foo是我的NFS挂载
我在/etc/init.d下创建了一个脚本foo.sh,并将其权限设置为755.我还将其设置为在update-rc.d -f foo.sh start 99 2 .
启动时执行
该脚本只是说exec chroot /foo
。
但问题是,在我登录系统后,我仍然在原始根目录中,而/ foo仍然存在整个挂载的NFS。
我甚至尝试chroot /foo
并尝试在各种运行级别和阶段调用脚本。
但是,一旦我登录,我就可以从终端手动chroot到/ foo。
有没有人知道在启动阶段可能会阻止chroot?
答案 0 :(得分:3)
在启动时运行chroot
为时已晚。如果你想要启动一个NFS文件系统,你需要在运行rc.d
脚本之前为自己设置这么长时间 - 请参阅NFS-Root mini-HOWTO以获取一些指示。< / p>
答案 1 :(得分:1)
chroot
更改进程及其子进程的明显根目录。它不会更改系统的真实根目录;我不知道有什么方法可以做到这一点。 chroot
过程中的特权用户可以始终执行第二次chroot
以返回系统的“真实”根。
当你从终端手动chroot
时,它只影响那个终端会话。
答案 2 :(得分:0)
正如@Ernest已经提到的那样 - chroot不会影响除从chroot会话创建的子进程之外的任何其他进程。
这就好像你正在尝试创建一个整个系统,所有进程都是从虚拟系统运行的 - 或者是那种效果 - 在这种情况下你应该看看虚拟化和虚拟机。大多数Linux发行版都将其作为默认安装中的一个选项。