2012-02-05 101 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瞭解一些指針。

相關問題