问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在 Ubuntu 14.04 里面配置 chroot 环境

发布网友 发布时间:2022-04-18 16:26

我来回答

2个回答

热心网友 时间:2022-04-18 17:55

Chroot 环境

一个 chroot 环境就是通过系统调用,将一个本地目录临时变成根目录。一般所说的系统根目录就是挂载点"/",然而使用 chroot 命令后,你可以使用其它目录作为根目录。

原则上,任何运行在 chroot 环境内的应用都不能访问系统中其他信息(LCTT译注:使用 chroot
把一个目录变成根目录,在里面运行的应用只能访问本目录内的文件,无法访问到目录外的文件。然而,运行在 chroot 环境的应用可以通过 sysfs
文件系统访问到环境外的信息,所以,这里有个“原则上”的修饰语)。

Chroot 环境的用处

测试一个不稳定的应用服务不会影响到整个主机系统。

就算使用 root 权限做了些不当的操作,把 chroot 环境搞得一塌糊涂,也不会影响到主机系统。

可以在你的系统中运行另外一个操作系统。

举个例子,你可以在 chroot 环境中编译、安装、测试软件,而不去动真实的系统。你也可以在64位环境下使用 chroot 创建一个32位环境,然后运行一个32位的程序(LCTT泽注:如果你的真实环境是32位的,那就不能 chroot 一个64位的环境了)。

但是为了安全考虑,chroot 环境为非特权用户设立了非常严格的*,而不是提供完整的安全策略。如果你需要的是有完善的安全策略的隔离方案,可以考虑下 LXC、Docker、vservers等等。

Debootstrap 和 Schroot

使用 chroot 环境需要安装 debootstrap 和 schroot,这两个软件都在 Ubuntu 的镜像源中。其中 schroot 用于创建 chroot 环境。

Debootstrap 可以让你通过镜像源安装任何 Debian(或基于 Debian 的)系统,装好的系统会包含最基本的命令。

Schroot 命令允许用户使用相同的机制去创建 chroot 环境,但在访问 chroot 环境时会做些权限检查,并且会允许用户做些额外的自动设置,比如挂载一些文件系统。

在 Ubuntu 14.04 LTS 上,我们可以通过两步来实现这个功能:

1. 安装软件包

第一步,在Ubuntu 14.04 LTS 主机系统上安装 debootstrap 和 schroot:

$ sudo apt-get install debootstrap
$ sudo apt-get install schroot

2. 配置 Schroot

现在我们有工具在手,需要指定一个目录作为我们的 chroot 环境。这里创建一个目录先:

sudo mkdir /linoxide

编辑 schroot 的配置文件:

sudo nano /etc/schroot/schroot.conf

再提醒一下,我们现在是在 Ubuntu 14.04 LTS 系统上。如果我们想测试一个软件包能不能在 Ubuntu 13.10(代号是“Saucy Salamander”) 上运行,就可以在配置文件中添加下面的内容:

[saucy]
description=UbuntuSaucy
location=/linoxide
priority=3
users=arun
root-groups=root

根据你的系统要求,调整上面的配置信息。

3. 使用 debootstrap 安装32位 Ubuntu 系统

Debootstrap 命令会在你的 chroot 环境里面下载安装一个最小系统。只要你能访问镜像源,你就可以安装任何基于 Debian 的系统版本。

前面我们已经创建了 /linoxide 目录用于放置 chroot 环境,现在我们可以在这个目录里面运行 debootstrap 了:

cd /linoxide
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/
sudo chroot /linoxide /debootstrap/debootstrap --second-stage

你可以将 --arch 的参数换成 i386 或其他架构,只要存在这种架构的镜像源。你也可以把镜像源 http://archive.ubuntu.com/ubuntu/ 换成离你最近的镜像源,具体可参考 Ubuntu 官方镜像主页。

注意:如果你是在64位系统中创建32位系统,你需要在上面第3行命令中加入 --foreign 选项,就像下面的命令:

sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/

下载需要一段时间,看你网络带宽性能。最小系统大概有500M。

4. 完成 chroot 环境

安装完系统后,我们需要做一些收尾工作,确保系统运行正常。首先,保证主机的 fstab 程序能意识到 chroot 环境的存在:

sudo nano /etc/fstab

在文件最后面添加下面的配置:

proc /linoxide/proc proc defaults 00
sysfs /linoxide/sys sysfs defaults 00

保存并关闭文件。

挂载一些文件系统到 chroot 环境:

$ sudo mount proc /linoxide/proc -t proc
$ sudo mount sysfs /linoxide/sys -t sysfs

复制 /etc/hosts 文件到 chroot 环境,这样 chroot 环境就可以使用网络了:

$ sudo cp /etc/hosts /linoxide/etc/hosts

最后使用 schroot -l 命令列出系统上所有的 chroot 环境:

$ schroot -l

使用下面的命令进入 chroot 环境:

$ sudo chroot /linoxide/ /bin/bash

测试安装的版本:

# lsb_release -a
# uname -a

为了在 chroot 环境中使用图形界面,你需要设置 DISPLAY 环境变量:

$ DISPLAY=:0.0./apps

目前为止,我已经成功地在 Ubuntu 14.04 LTS 上安装了 Ubuntu 13.10。

退出 chroot 环境:

# exit

清理一下,卸载文件系统:

$ sudo umount /test/proc
$ sudo umount /test/sys

热心网友 时间:2022-04-18 19:13

1. 安装软件包
第一步,在Ubuntu 14.04 LTS 主机系统上安装 debootstrap 和 schroot:
$ sudo apt-get install debootstrap
$ sudo apt-get install schroot
2. 配置 Schroot
现在我们有工具在手,需要指定一个目录作为我们的 chroot 环境。这里创建一个目录先:
sudo mkdir /linoxide
编辑 schroot 的配置文件:
sudo nano /etc/schroot/schroot.conf
再提醒一下,我们现在是在 Ubuntu 14.04 LTS 系统上。如果我们想测试一个软件包能不能在 Ubuntu 13.10(代号是“Saucy Salamander”) 上运行,就可以在配置文件中添加下面的内容:
[saucy]
description=UbuntuSaucy
location=/linoxide
priority=3
users=arun
root-groups=root
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo y18l 死机卡在开机界面 vivoy18l手机频繁黑屏死机怎么办? vivo y18l 死机了怎么办 vivoY18l黑屏死机解决办法 vivo y18l刷机很久都开不了机怎么? 湖北自考专升本会有学籍吗? 湖北自考专升本后可以考研吗 湖北自考申请毕业证的时间在什么时候 湖北自考专升本学历怎么查询 湖北自考专升本为什么没有学籍 孕晚期血糖会原来越高吗?孕晚期血糖高应该注意什么? 孕32周妊娠血糖高怎么办 我嫂子怀孕31周,血糖有点高,请问应该怎么降下来 怎么设置手机QQ名片 里面头像和背景图一体的 速度急急急急急急 手机QQ名片中,头像怎么和背景融合在一起的? 钢结构如何拆图,拆完后要怎么画出来 有没有在QQ里面吧自己头像放在名片中间而且可以给我发名片和头像配套的,谢谢 qq名片背景和头像连起来的怎么做 这样的钢结构怎么画 有什么QQ名片是比较跟我的头像搭配的。 cad画图 钢结构屋架,同一幅图轴线用的是1:25,其余用大的比例,应该怎么画。 有谁知道QQ头像,和名片一套的怎么弄的吗? 图片上那种 我的眼睛近视225度,驾照体检可以过吗? 考驾照的体检项目中,如果我视力戴眼镜不到4.9以上能过吗? 左眼视力5.2右眼视力4.8驾驶证换证体检能过关吗? 考驾照眼睛多少度及格 想考驾照,体检对视力要求多少 耳机进洗衣机里洗了放回电仓了一下+没反应了会不会坏? 耳机不小心放到洗衣机里洗了,洗衣机会发生爆炸么,下水道会出现问题么? 大疆手机云台 灵眸Osmo Mobile 防抖手机云台3 手持稳定器 ,什么时候出? 怀孕31周查出餐后一小时血糖偏高,要如何控制? 我怀孕31周空腹检查血糖8,92严重吗 怀孕31周了血糖有点高能吃什么水果 孕31周的血糖有6.0高吗?总是担心血糖高了会影响胎儿健康。 怀孕31周血糖高控制不住对胎儿有影响吗 睡前喜欢喝茶的人,喝那些茶不会影响睡眠? 高通骁龙什么芯片支持qc3.0 QC3.0移动电源输出端:为什么使用FP6601Q FB端没有产生控制电压控制PAM2423升压芯片,可正常5V输出。 晚上喝茶会失眠吗? qc3.0闪冲对mtk芯片手机有用吗 可以查到真实人的姓名吗 可以查到真实人的姓名吗 通过能查到他是谁吗? 可以通过查到对方资料吗- 问一问 任嘉伦为什么会选择娶聂欢? 怎么把一个群黑掉?(我用的手机) 输入怎么查对方名字? 通过微信怎么查询个人信息知道咋样查询他的个人信息 微信小程序使用微信支付必须要注册微信支付商户号吗?微信支付商户号的审核好像有点严格 任嘉伦为何娶了聂欢