Main Page | 最近更改 | 編輯本頁 | 頁面歷史

可列印版 | 免責聲明 | 隱私政策

未登入
登入 | 幫助
 

chroot

出自DebianWiki

目錄

[編輯] 所需套件

debootstrap

[編輯] 簡介

CHROOT(change root directory)這個指令是用來指定新的 / 的路徑。

簡單地說,我們在某一個目錄中建立另一個 Linux 目錄結構, (並沒有限定必須為完整的 Linux 目錄結構), 然後使用 chroot 指令來進入這一個目錄中。 之後,所有的程式在運作時將會將這個目錄視同為 /。 這樣,我們就可以輕易得打造一個虛擬的 Linux 運作環境。

CHROOT 常被用來建立一個高度安全的 Linux 運作環境, 因為即使這個虛擬的 Linux 運作環境不幸被突破了, 劊客們得到的常常是空無一物, 甚至是什麼程式都不能執行的 Linux 空殼。

當然了,並不是所有的程式都能在 CHROOT 環境下運作無誤。 不過這是題外話了。

[編輯] 建立 CHROOT 所需的目錄結構

基本上,這個新的 / 目錄結構只要能讓特定的程式,如:Bind,能夠執行即可;並沒有必要把整個完整的 Linux 目錄結構放進來。

如果您想知道要如何實作,請不妨參考 Chroot-BIND HOWTO 的說明。

[編輯] 使用 debootstrap 來建立完整的 CHROOT 環境

在 Debian 裡,我們可以使用 debootstrap 來建立一個完整的 Linux 運作環境, 當然也可以直接拿來給 CHROOT 使用。

而在執行 debootstrap 時,一般是將檔案來源指向 Internet, 不過我們也可以直接使用 Debian Installer 的 CD Image 做為檔案來源, 那就不用浪費珍貴的網路資源去重覆下載己有的套件了。

[編輯] 掛載 Debian Installer CD Image

首先,將 Debian Installer 的 CD Image 掛載在某個目錄下:

mount -o loop sarge-i386-netinst.iso /mnt

[編輯] 執行 debootstrap 指令

建立 CHROOT 的目錄並使用 debootstrap 指令來產生完整的 Linux 執行環境:

mkdir CHROOT

/usr/bin/env -i HOME=/root TERM=$TERM PATH=/bin:/usr/bin:/sbin:/usr/sbin /usr/sbin/debootstrap --arch i386 sarge CHROOT/ file:///mnt/debian/

注意,debootstrap 指令只有 root 才有權限可以執行。 在此使用 env 指令是為了要確實清除所有的環境變數。 在 debootstrap 執行完畢之後,一個完整的 Linux 執行環境就此產生了。

[編輯] 系統微調

請再修改 CHROOT 目錄中的 /etc/passwd:

root:x:0:0:root:/root:/bin/bash

另,依您喜好,您還可以修改以下檔案:

另一個不太重要的事就是設定該系統的時區。 在此就略過不提了...

以上這些設定也可以在進入 CHROOT 環境後再加以設定。

[編輯] 使用 chroot 來進入 CHROOT 環境

您可以試著用以指令:

chroot CHROOT /usr/bin/env -i HOME=/root TERM=\$TERM PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login

來進入新的 CHROOT 環境。

進入新的 CHROOT 環境後,您就可以如同進入一個全新系統般操作這個 Linux 虛擬系統了。

[編輯] CHROOT 實務上的應用

除了上文所說的,可以拿 CHROOT 來建立一個高度安全的 Linux 運作環境之外, CHROOT 也常用在 Rescue 模式下用來重建 GRUB 或是 LILO。 而一些 Linux 的安裝程式也常常使用 CHROOT 來修改系統的設定檔。

而本人則是使用 CHROOT 來編譯軟體, 因為它可以提供一個絕對乾淨且安全的作業環境, 且即是是亂亂搞都不(太)會危害到我原本的系統。
(不過不要真的太鐵齒。小心駛得萬年船呀!)

[編輯] 在使用 CHROOT 時的一些注意事項

[編輯] 總結

我們可以使用 CHROOT 來迅速打造一個獨立的 Linux 作業環境, 而它的運作原理淺顯易懂,在使用上也用不著什麼特別技巧, 但它在執行效能可以說是百分百, 我想,在某種程度上,它應該可以用來取代 VMware、QEMU、Xen 等等虛擬機器吧?

取自"http://wiki.debian.org.tw/index.php/chroot"

本頁面已經被瀏覽7,837次。 這頁的最後修訂在 2007年10月5日 (星期五) 09:29。 本站的全部文本內容在GNU Free Documentation License 1.2之條款下提供。


[Main Page]
Main Page
社區
近期活動
最近更改
隨機頁面
幫助
贊助

編輯本頁
討論本頁
頁面歷史
鏈入頁面
鏈出更改

特殊頁面
錯誤報告