在Ubuntu系統(tǒng)中配置chroot環(huán)境的教程
你可能會(huì)有很多理由想要把一個(gè)應(yīng)用、一個(gè)用戶或者一個(gè)環(huán)境與你的 linux 系統(tǒng)隔離開來。不同的操作系統(tǒng)有不同的實(shí)現(xiàn)方式,而在 linux 中,一個(gè)典型的方式就是 chroot 環(huán)境。
在這份教程中,我會(huì)一步一步指導(dǎo)你怎么使用 chroot 命令去配置一個(gè)與真實(shí)系統(tǒng)分離出來的獨(dú)立環(huán)境。這個(gè)功能主要可以用于測(cè)試項(xiàng)目,以下這些步驟都在 Ubuntu 14.04 虛擬專用服務(wù)器(VPS)上執(zhí)行。
學(xué)會(huì)快速搭建一個(gè)簡(jiǎn)單的 chroot 環(huán)境是一項(xiàng)非常實(shí)用的技能,絕大多數(shù)系統(tǒng)管理員都能從中受益。
Chroot 環(huán)境
一個(gè) chroot 環(huán)境就是通過系統(tǒng)調(diào)用,將一個(gè)本地目錄臨時(shí)變成根目錄。一般所說的系統(tǒng)根目錄就是掛載點(diǎn)"/",然而使用 chroot 命令后,你可以使用其它目錄作為根目錄。
原則上,任何運(yùn)行在 chroot 環(huán)境內(nèi)的應(yīng)用都不能訪問系統(tǒng)中其他信息(LCTT譯注:使用 chroot 把一個(gè)目錄變成根目錄,在里面運(yùn)行的應(yīng)用只能訪問本目錄內(nèi)的文件,無法訪問到目錄外的文件。然而,運(yùn)行在 chroot 環(huán)境的應(yīng)用可以通過 sysfs 文件系統(tǒng)訪問到環(huán)境外的信息,所以,這里有個(gè)“原則上”的修飾語)。
Chroot 環(huán)境的用處
- 測(cè)試一個(gè)不穩(wěn)定的應(yīng)用服務(wù)不會(huì)影響到整個(gè)主機(jī)系統(tǒng)。
- 就算使用 root 權(quán)限做了些不當(dāng)?shù)牟僮?,?chroot 環(huán)境搞得一塌糊涂,也不會(huì)影響到主機(jī)系統(tǒng)。
- 可以在你的系統(tǒng)中運(yùn)行另外一個(gè)操作系統(tǒng)。
舉個(gè)例子,你可以在 chroot 環(huán)境中編譯、安裝、測(cè)試軟件,而不去動(dòng)真實(shí)的系統(tǒng)。你也可以在64位環(huán)境下使用 chroot 創(chuàng)建一個(gè)32位環(huán)境,然后運(yùn)行一個(gè)32位的程序(LCTT澤注:如果你的真實(shí)環(huán)境是32位的,那就不能 chroot 一個(gè)64位的環(huán)境了)。
但是為了安全考慮,chroot 環(huán)境為非特權(quán)用戶設(shè)立了非常嚴(yán)格的限制,而不是提供完整的安全策略。如果你需要的是有完善的安全策略的隔離方案,可以考慮下 LXC、Docker、vservers等等。
Debootstrap 和 Schroot
使用 chroot 環(huán)境需要安裝 debootstrap 和 schroot,這兩個(gè)軟件都在 Ubuntu 的鏡像源中。其中 schroot 用于創(chuàng)建 chroot 環(huán)境。
Debootstrap 可以讓你通過鏡像源安裝任何 Debian(或基于 Debian 的)系統(tǒng),裝好的系統(tǒng)會(huì)包含最基本的命令。
Schroot 命令允許用戶使用相同的機(jī)制去創(chuàng)建 chroot 環(huán)境,但在訪問 chroot 環(huán)境時(shí)會(huì)做些權(quán)限檢查,并且會(huì)允許用戶做些額外的自動(dòng)設(shè)置,比如掛載一些文件系統(tǒng)。
在 Ubuntu 14.04 LTS 上,我們可以通過兩步來實(shí)現(xiàn)這個(gè)功能:
1. 安裝軟件包
第一步,在Ubuntu 14.04 LTS 主機(jī)系統(tǒng)上安裝 debootstrap 和 schroot:
$ sudo apt-get install schroot
2. 配置 Schroot
現(xiàn)在我們有工具在手,需要指定一個(gè)目錄作為我們的 chroot 環(huán)境。這里創(chuàng)建一個(gè)目錄先:
編輯 schroot 的配置文件:
再提醒一下,我們現(xiàn)在是在 Ubuntu 14.04 LTS 系統(tǒng)上。如果我們想測(cè)試一個(gè)軟件包能不能在 Ubuntu 13.10(代號(hào)是“Saucy Salamander”) 上運(yùn)行,就可以在配置文件中添加下面的內(nèi)容:
description=Ubuntu Saucy
location=/linoxide
priority=3
users=arun
root-groups=root
根據(jù)你的系統(tǒng)要求,調(diào)整上面的配置信息。
3. 使用 debootstrap 安裝32位 Ubuntu 系統(tǒng)
Debootstrap 命令會(huì)在你的 chroot 環(huán)境里面下載安裝一個(gè)最小系統(tǒng)。只要你能訪問鏡像源,你就可以安裝任何基于 Debian 的系統(tǒng)版本。
前面我們已經(jīng)創(chuàng)建了 /linoxide 目錄用于放置 chroot 環(huán)境,現(xiàn)在我們可以在這個(gè)目錄里面運(yùn)行 debootstrap 了:
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/
sudo chroot /linoxide /debootstrap/debootstrap --second-stage
你可以將 --arch 的參數(shù)換成 i386 或其他架構(gòu),只要存在這種架構(gòu)的鏡像源。你也可以把鏡像源 http://archive.ubuntu.com/ubuntu/ 換成離你最近的鏡像源,具體可參考 Ubuntu 官方鏡像主頁。
注意:如果你是在64位系統(tǒng)中創(chuàng)建32位系統(tǒng),你需要在上面第3行命令中加入 --foreign 選項(xiàng),就像下面的命令:
下載需要一段時(shí)間,看你網(wǎng)絡(luò)帶寬性能。最小系統(tǒng)大概有500M。
4. 完成 chroot 環(huán)境
安裝完系統(tǒng)后,我們需要做一些收尾工作,確保系統(tǒng)運(yùn)行正常。首先,保證主機(jī)的 fstab 程序能意識(shí)到 chroot 環(huán)境的存在:
在文件最后面添加下面的配置:
sysfs /linoxide/sys sysfs defaults 0 0
保存并關(guān)閉文件。
掛載一些文件系統(tǒng)到 chroot 環(huán)境:
$ sudo mount sysfs /linoxide/sys -t sysfs
復(fù)制 /etc/hosts 文件到 chroot 環(huán)境,這樣 chroot 環(huán)境就可以使用網(wǎng)絡(luò)了:
最后使用 schroot -l 命令列出系統(tǒng)上所有的 chroot 環(huán)境:
使用下面的命令進(jìn)入 chroot 環(huán)境:
測(cè)試安裝的版本:
# uname -a
為了在 chroot 環(huán)境中使用圖形界面,你需要設(shè)置 DISPLAY 環(huán)境變量:
目前為止,我已經(jīng)成功地在 Ubuntu 14.04 LTS 上安裝了 Ubuntu 13.10。
退出 chroot 環(huán)境:
清理一下,卸載文件系統(tǒng):
$ sudo umount /test/sys
相關(guān)文章

Ubuntu 26.04 LTS(Resolute Raccoon)發(fā)布:內(nèi)存要求提至6GB
2026-04-23,Ubuntu 26.04 LTS 正式版按計(jì)劃如期發(fā)布,Ubuntu 26.04 LTS 搭載 Linux 內(nèi)核 7.0 和 GNOME 50 桌面環(huán)境,原生集成英偉達(dá) CUDA,內(nèi)存要求提至 6GB2026-04-24
桌面生產(chǎn)力直接拉滿! Ubuntu安裝后別急著用這7個(gè)設(shè)置一定要改
Ubuntu桌面系統(tǒng)安裝成功后,不要急著使用,修改后桌面生產(chǎn)力直接拉滿,今天我就把這7個(gè)我每次必改的設(shè)置完整分享出來,配上詳細(xì)步驟和實(shí)際效果2026-04-15
CPU和硬盤要求保持不變! Ubuntu 26.04 LTS最低內(nèi)存運(yùn)行要求提高到 6GB
Canonical即將發(fā)布“Resolute Raccoon”Ubuntu 26.04 LTS操作系統(tǒng),資料顯示推薦內(nèi)存提高至6GB,這是2018年以來首次重大變動(dòng)2026-04-08
基于Linux7.0+GNOME50+Mesa26.0! Ubuntu 26.04 LTS Beta 版發(fā)布
Ubuntu 26.04 LTS測(cè)試版如期發(fā)布,此次更新將集成大量前沿開源技術(shù),Beta 測(cè)試版搭載了尚處于開發(fā)階段的 Linux 7.0 內(nèi)核、默認(rèn)采用最新的 GNOME 50.0 桌面組件、全新的 Mes2026-03-27
Ubuntu桌面系統(tǒng)爆致命漏洞! 30天可拿root權(quán)限
近日,全球知名網(wǎng)絡(luò)安全研究機(jī)構(gòu)Qualys的威脅研究部門正式披露了Ubuntu桌面系統(tǒng)的一個(gè)高危本地提權(quán)漏洞,其官方漏洞編號(hào)為CVE-2026-38882026-03-21
Ubuntu 25.10 系統(tǒng)正式發(fā)布:搭載 Linux 6.17 內(nèi)核
Ubuntu 25.10 系統(tǒng)代號(hào)“Questing Quokka”現(xiàn)已推出,集成最新的 GNOME 49 桌面環(huán)境,默認(rèn)僅啟用 Wayland 會(huì)話,提升了圖形體驗(yàn)2025-10-10
Debian 13升級(jí)后網(wǎng)絡(luò)轉(zhuǎn)發(fā)等功能異常怎么辦? 并非錯(cuò)誤而是管理機(jī)制變更
很多朋友反饋,更新到Debian 13后網(wǎng)絡(luò)轉(zhuǎn)發(fā)等功能異常,這并非 BUG 而是 Debian 13 Trixie 調(diào)整了管理機(jī)制,具體來說是sysctl變更為由systemd-sysctl主導(dǎo)且配置文件變成模塊2025-08-22
SSH中斷/寶塔面板異常/分區(qū)問題等! Debian 13升級(jí)注意事項(xiàng)匯總
前一段時(shí)間發(fā)布了debian13,我們也分享了debian12升級(jí)到debian13的圖文教程,很多朋友在升級(jí)的時(shí)候遇到了不少問題,今天我們就來看看Debian 13升級(jí)注意事項(xiàng)2025-08-21
Debian12怎么升級(jí)到Debian13? Debian系統(tǒng)升級(jí)教程
心念念的Debian13終于正式發(fā)布了,該怎么升級(jí)呢?下面我們就來看看Debian12升級(jí)到 Debian13的教程2025-08-21
Ubuntu 24.04.3 LTS 正式發(fā)布: 附更新內(nèi)容匯總
Ubuntu 24.04 這一長(zhǎng)期支持版本發(fā)布了第三個(gè)點(diǎn)版本升級(jí):Ubuntu 24.04.3 LTS,涵蓋桌面、服務(wù)器與云等版本,主要是將過去數(shù)月發(fā)布的安全更新、錯(cuò)誤修復(fù)和穩(wěn)定性改進(jìn)整合入2025-08-09


