2012-02-05 112 views
0

我试图让一个NFS在启动时共享我的系统的根文件系统。我试图做一个chroot/foo,其中/ foo是我的NFS安装启动时,我可以让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?

+1

你究竟在努力完成什么?如果你问一个面向目标的问题而不是一个以细节为导向的问题,你通常会得到更好的答案。 – Borealid 2012-02-05 06:10:51

回答

1

chroot更改明显进程及其子进程的根目录。它不会更改系统的真实根目录;我不知道有什么办法做到这一点。 chroot -ed进程中的特权用户可以始终执行第二个chroot以返回系统的“真实”根目录。

当您从终端手动chroot时,它只会影响那一个终端会话。

0

正如@Ernest已经提到的那样 - chroot不会影响从该chroot会话创建的子进程以外的任何其他进程。

它仿佛是在试图创建一个包含从虚拟系统运行的所有进程的整个系统 - 或者这种情况 - 在这种情况下,您应该查看虚拟化和虚拟机。大多数Linux发行版都将它作为默认安装的一个选项。

+0

感谢您的回答! 我有一个通过网络的文件系统,我希望所有的机器在启动时都将它作为它们的默认文件系统。这就是为什么我需要将NFS安装到每台计算机上并在启动过程中根据它进行chroot。那可能吗? – user1190261 2012-02-05 06:49:24

+0

我不认为这是可能的 - 但我更新了你的问题,看看我们是否可以让其他人回答一个建议。 – Soren 2012-02-05 07:01:18

+0

因为我能够在登录后手动chroot我试图通过bashrc或/ etc/profile设置它。但问题在于,它只允许root用户使用chroot,而对于其他用户,它会给出“chroot:permission denied”错误。是否有可能为所有用户做到这一点? – user1190261 2012-02-05 07:32:10

3

在启动时运行chroot已经太晚了。如果你想引导一个NFS文件系统,你需要在运行rc.d脚本之前设置自己很长时间 - 请参阅NFS-Root mini-HOWTO了解一些指针。

相关问题