在Ubuntu系統(tǒng)中配置chroot環(huán)境的教程

你可能會有很多理由想要把一個應用、一個用戶或者一個環(huán)境與你的 linux 系統(tǒng)隔離開來。不同的操作系統(tǒng)有不同的實現(xiàn)方式,而在 linux 中,一個典型的方式就是 chroot 環(huán)境。
在這份教程中,我會一步一步指導你怎么使用 chroot 命令去配置一個與真實系統(tǒng)分離出來的獨立環(huán)境。這個功能主要可以用于測試項目,以下這些步驟都在 Ubuntu 14.04 虛擬專用服務(wù)器(VPS)上執(zhí)行。
學會快速搭建一個簡單的 chroot 環(huán)境是一項非常實用的技能,絕大多數(shù)系統(tǒng)管理員都能從中受益。
Chroot 環(huán)境
一個 chroot 環(huán)境就是通過系統(tǒng)調(diào)用,將一個本地目錄臨時變成根目錄。一般所說的系統(tǒng)根目錄就是掛載點"/",然而使用 chroot 命令后,你可以使用其它目錄作為根目錄。
原則上,任何運行在 chroot 環(huán)境內(nèi)的應用都不能訪問系統(tǒng)中其他信息(LCTT譯注:使用 chroot 把一個目錄變成根目錄,在里面運行的應用只能訪問本目錄內(nèi)的文件,無法訪問到目錄外的文件。然而,運行在 chroot 環(huán)境的應用可以通過 sysfs 文件系統(tǒng)訪問到環(huán)境外的信息,所以,這里有個“原則上”的修飾語)。
Chroot 環(huán)境的用處
- 測試一個不穩(wěn)定的應用服務(wù)不會影響到整個主機系統(tǒng)。
- 就算使用 root 權(quán)限做了些不當?shù)牟僮?,?chroot 環(huán)境搞得一塌糊涂,也不會影響到主機系統(tǒng)。
- 可以在你的系統(tǒng)中運行另外一個操作系統(tǒng)。
舉個例子,你可以在 chroot 環(huán)境中編譯、安裝、測試軟件,而不去動真實的系統(tǒng)。你也可以在64位環(huán)境下使用 chroot 創(chuàng)建一個32位環(huán)境,然后運行一個32位的程序(LCTT澤注:如果你的真實環(huán)境是32位的,那就不能 chroot 一個64位的環(huán)境了)。
但是為了安全考慮,chroot 環(huán)境為非特權(quán)用戶設(shè)立了非常嚴格的限制,而不是提供完整的安全策略。如果你需要的是有完善的安全策略的隔離方案,可以考慮下 LXC、Docker、vservers等等。
Debootstrap 和 Schroot
使用 chroot 環(huán)境需要安裝 debootstrap 和 schroot,這兩個軟件都在 Ubuntu 的鏡像源中。其中 schroot 用于創(chuàng)建 chroot 環(huán)境。
Debootstrap 可以讓你通過鏡像源安裝任何 Debian(或基于 Debian 的)系統(tǒng),裝好的系統(tǒng)會包含最基本的命令。
Schroot 命令允許用戶使用相同的機制去創(chuàng)建 chroot 環(huán)境,但在訪問 chroot 環(huán)境時會做些權(quán)限檢查,并且會允許用戶做些額外的自動設(shè)置,比如掛載一些文件系統(tǒng)。
在 Ubuntu 14.04 LTS 上,我們可以通過兩步來實現(xiàn)這個功能:
1. 安裝軟件包
第一步,在Ubuntu 14.04 LTS 主機系統(tǒng)上安裝 debootstrap 和 schroot:
$ sudo apt-get install schroot
2. 配置 Schroot
現(xiàn)在我們有工具在手,需要指定一個目錄作為我們的 chroot 環(huán)境。這里創(chuàng)建一個目錄先:
編輯 schroot 的配置文件:
再提醒一下,我們現(xiàn)在是在 Ubuntu 14.04 LTS 系統(tǒng)上。如果我們想測試一個軟件包能不能在 Ubuntu 13.10(代號是“Saucy Salamander”) 上運行,就可以在配置文件中添加下面的內(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 命令會在你的 chroot 環(huán)境里面下載安裝一個最小系統(tǒng)。只要你能訪問鏡像源,你就可以安裝任何基于 Debian 的系統(tǒng)版本。
前面我們已經(jīng)創(chuàng)建了 /linoxide 目錄用于放置 chroot 環(huán)境,現(xià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 選項,就像下面的命令:
下載需要一段時間,看你網(wǎng)絡(luò)帶寬性能。最小系統(tǒng)大概有500M。
4. 完成 chroot 環(huán)境
安裝完系統(tǒng)后,我們需要做一些收尾工作,確保系統(tǒng)運行正常。首先,保證主機的 fstab 程序能意識到 chroot 環(huán)境的存在:
在文件最后面添加下面的配置:
sysfs /linoxide/sys sysfs defaults 0 0
保存并關(guān)閉文件。
掛載一些文件系統(tǒng)到 chroot 環(huán)境:
$ sudo mount sysfs /linoxide/sys -t sysfs
復制 /etc/hosts 文件到 chroot 環(huán)境,這樣 chroot 環(huán)境就可以使用網(wǎng)絡(luò)了:
最后使用 schroot -l 命令列出系統(tǒng)上所有的 chroot 環(huán)境:
使用下面的命令進入 chroot 環(huán)境:
測試安裝的版本:
# 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 25.04 Beta 發(fā)布:Linux 6.14 內(nèi)核
Canonical公司近日發(fā)布了Ubuntu 25.04 Beta版,這一版本被賦予了一個活潑的代號——“Plucky Puffin”(勇敢的海雀),據(jù)悉,正式的穩(wěn)定版預計將在2025年4月17日與廣大用戶2025-03-29如何讓 Ubuntu 居中顯示窗口? 3種方法實現(xiàn)Ubuntu窗口居中顯示
個人習慣不管打開終端窗口還是文件管理器窗口,都希望居中顯示,不太喜歡Linux下自動隨意的擺放位置,下面我們就來看看詳細設(shè)置方法2025-03-11Ubuntu 24.04.2 LTS 正式發(fā)布: 帶來全新硬件支持啟用堆棧HWE
buntu 24.04 LTS 的第 2 個小版本Ubuntu 24.04.2 LTS 正式發(fā)布,出了修復漏洞以外,它還帶來了全新的硬件支持啟用堆棧(HWE),讓系統(tǒng)性能和硬件兼容性更上一層樓2025-02-25怎么關(guān)閉Ubuntu無人值守升級? Ubuntu禁止自動更新的技巧
Ubuntu Linux系統(tǒng)禁止自動更新的時候,提示“無人值守升級在關(guān)機期間,請不要關(guān)閉計算機進程”,該怎么解決這個問題?詳細請看下文介紹2025-01-20高效管理你的Linux系統(tǒng): Debian操作系統(tǒng)常用命令指南
在Debian操作系統(tǒng)中,了解和掌握常用命令對于提高工作效率和系統(tǒng)管理至關(guān)重要,本文將詳細介紹Debian的常用命令,幫助讀者更好地使用和管理Debian系統(tǒng)2025-01-20debian更新系統(tǒng)的命令怎么用? 輕松配置Debian自動更新的技巧
Debian不手動更新怎么體驗新系統(tǒng)?Debian提供了一個既簡單又高效的解決辦法——自動更新,該怎么用呢?詳細請看下文介紹2025-01-20如何配置Ubuntu無人值守升級? 手動操作實現(xiàn)Ubuntu自動升級技巧
無人值守升級是一個用于自動更新 Debian 和 Ubuntu 系統(tǒng)的開源項目,該項目的主要目的是確保系統(tǒng)能夠定期自動安裝安全更新,從而保持系統(tǒng)的安全性和穩(wěn)定性2025-01-20Ubuntu系統(tǒng)怎么安裝Warp? 新一代AI 終端神器安裝使用方法
Warp是一款使用Rust開發(fā)的現(xiàn)代化AI 終端工具,該怎么再Ubuntu系統(tǒng)中安裝使用呢?下面我們就來看看詳細教程2025-01-20Debian如何查看系統(tǒng)版本? 7種輕松查看Debian版本信息的實用方法
Debian是一個廣泛使用的Linux發(fā)行版,用戶有時需要查看其版本信息以進行系統(tǒng)管理、故障排除或兼容性檢查,在Debian系統(tǒng)中,有幾種不同的方法可以查看版本信息2025-01-17解決VMware中Ubuntu虛擬機鼠標閃爍或指針位置不正確的方案
剛下載虛擬機后,電腦在虛擬機內(nèi)出現(xiàn)了鼠標閃爍或者鼠標指針位置不對的問題,該怎么解決呢?下面我們就來看看詳細教程2025-01-09