chroot运行完整linux发行版,chroot

chroot概念

chroot是操作系统级的“虚拟机”,其功能是切换程序运行时的根目录,将程序限制在指定的根目录中,从而隔离应用程序,这个目录叫作 chroot jail。

在chroot中运行的程序实际上使用的是真实系统的内核和资源,所以性能不会有损耗。

chroot 目的

切换根目录通常为了系统维护:

重新安装 bootloader.

重建 initramfs 镜像.

更新或 降级软件包.

重置 忘记的密码.

在干净的 chroot 中构建软件包

chroot必要条件

root 权限

另一个 linux 环境,例如 liveCD、USB 闪存介质或者一个已经安装的另一个 linux 发行版。

匹配的架构,chroot 前后的环境架构要一致(例如均为 i686 或 x86_64)。可以用  uname –m  命令查看当前环境的架构

提前加载 chroot 环境需要的内核模块

如果需要 swap, chroot 前先启用 swap (swapon /dev/sdxY)

如果需要网络,chroot 之前先建立好网络连接。

两种使用 chroot 的方式

>> arch-chroot bash 脚本是软件包 arch-install-scripts 的一部分,在运行 /usr/bin/chroot 前,这个脚本会挂载 /proc api 文件系统,建立可用的 /etc/resolv.conf。

进入 chroot

# arch-chroot /location/of/new/root

例如在 安装指南 中,chroot 到 /mnt:

# arch-chroot /mnt

退出 chroot:

# exit

运行一个命令并退出

# arch-chroot /location/of/new/root mycommand

例如要在 /mnt/arch 中运行 mkinitcpio -p linux 并退出:

# arch-chroot /mnt/arch mkinitcpio -p linux

>> 使用 chroot

警告: 使用 --rbind 选项时,将无法卸载某些 dev/ 和 sys/ 的子目录,用 umount -l 卸载将会破坏会话并需要重启,所以请尽可能使用 -o bind。

作为 root 挂载 api 文件系统:

# cd /location/of/new/root

#mount -t proc proc proc/#mount --rbind /sys sys/#mount --rbind /dev dev/

可选挂载:

# mount --rbind /run run/

如果已经建立了一个网络连接并且想在 chroot 环境中继续使用,将 DNS 服务器配置复制到新环境:

# cp -L /etc/resolv.conf etc/resolv.conf

chroot 到新环境中并启用指定 shell

# chroot /mnt/arch /usr/bin/bash

建立一个最小的chroot环境:

1.在 /home 目录下建立一个 rootfs目录,作为 chroot 的根目录

6dac0191f64e9fd70b1b36813faa9eb9.png

2.建立 bin 目录,并拷贝默认的 bash 命令和用于测试的 ls 命令:

211266519e9c6622639221fc041188d3.png

e3d94889b480a8219650e14eff53d49e.png

1b6689782299a90274cf69842716b4f1.png

3. ldd 找到两个命令的依赖,拷贝到相应的位置:

5b2c2bd02143649f70034f9753954d49.png

ac551ccd3458266f7d79865956cbe636.png

ebe76deb3f4ab652ef8159df53882c89.png

32c68767742c10df4f7f631b4397951f.png

4. chroot . 改变根目录,并使用 ls -a 测试,完成后exit退出:

37029edf0429fce991c02e2ca9bd1128.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值