slitaz-doc-wiki-data view pages/cn/handbook/chroot.txt @ rev 6

Add pages/cn folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:16:54 2011 +0000 (2011-02-26)
parents
children
line source
1 ====== Chroot 环境 ======
4 本文档叙述如何构建一个 chrooted 环境的必要步骤, 以改变系统根目录的位置. 这样在此chroot环境上编译测试就不会有影响到宿主系统的风险. 宿主系统可以是安装在硬盘上的Slitaz也可以是其他Linux发行版,如 Debian, Fedora, PCLinuxOS 等等. 要构建一个Chroot环境,你所需要的仅仅是一个可用的Slitaz ISO镜像和一点点时间. 注意所有命令都是以管理员(root)身份执行的。
6 注意
7 以下方法适用于所有Linux发行版,Slitaz的话,有更简便的方法,可以用tazlito extract-iso 解压 slitaz ISO镜像\\
8 参考:[[http://community.slitaz.org/node/47|Slitaz光盘重制基本歩骤]]
9 ===== 准备阶段 (适用于所有Linux发行版)=====
12 开始之前,我们必须把Slitaz ISO里的Live系统解压出来作为chroot环境. 可以解压到任意位置, 比如 ///home/slitaz/chroot-env//. 这里假设slitaz ISO就在此目录。
14 挂载slitaz iso文件,拷贝里面的rootfs.gz至当前目录。
15 <code>
16 # mkdir /tmp/loop
17 # mount -o loop slitaz-cooking.iso /tmp/loop
18 # mkdir -p /home/slitaz/chroot-env
19 # cp /tmp/loop/boot/rootfs.gz \
20 /home/slitaz/chroot-env
21 # umount /tmp/loop
22 </code>
24 解压此rootfs.gz文件至当前文件夹
26 <code>
27 # cd /home/slitaz/chroot-env
28 # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
29 # rm rootfs rootfs.gz
30 </code>
32 若解压失败,请尝试一下方法解压。。
34 <code>
35 # unlzma rootfs.gz -S .gz
36 # cat rootfs | cpio -id
37 </code>
39 === 改变根目录位置chroot ===
41 要使用此解压出来的系统,必须要挂载一些虚拟硬盘及使用chroot命令。 为了便利,我们写了个自动化脚本以完成这一步。 我们解压的系统在 ///home/slitaz/chroot-env// 新建一个脚本 chroot_in_env.sh 放在 ///home/slitaz//. 在非Slitaz系统下可以取消 ///dev// 及 ///tmp//的注释 - 注意:可以复制粘贴一下内容..
43 <code> # cat > /home/slitaz/chroot_in_env.sh << "EOF"
45 #!/bin/sh
46 # Chroot in SliTaz to hack.
47 #
48 ROOTFS="/home/slitaz/chroot-env"
50 # Mount virtual Kernel file systems and chroot.
51 #
52 #mount --bind /dev $ROOTFS/dev
53 #mount --bind /tmp $ROOTFS/tmp
54 mount -t proc proc $ROOTFS/proc
55 mount -t sysfs sysfs $ROOTFS/sys
56 mount -t devpts devpts $ROOTFS/dev/pts
57 mount -t tmpfs shm $ROOTFS/dev/shm
59 echo "Chrooting into $ROOTFS... "
60 chroot $ROOTFS /bin/sh --login
62 # Unmount virtual Kernel file systems on exit.
63 #
64 umount $ROOTFS/dev/shm
65 umount $ROOTFS/dev/pts
66 umount $ROOTFS/sys
67 umount $ROOTFS/proc
68 #umount $ROOTFS/tmp
69 #umount $ROOTFS/dev
71 echo "Exiting $ROOTFS chroot environment... "
73 EOF
75 </code>
77 修改脚本文件属性为可执行。
79 <code>
80 # chmod +x /home/slitaz/chroot_in_env.sh
81 # sh /home/slitaz/chroot_in_env.sh
82 </code>
84 激活网络。
85 <code> # udhcpc -i eth1 </code>
87 ===== 安装 安装包 =====
89 若可以上网的话,就可以用tazpkg get-install这个命令从仓库安装包了。
91 <code># tazpkg recharge
92 # tazpkg get-install slitaz-toolchain </code>
94 配置好后,你就可以在宿主Linux下测试Slitaz系统了.Cookbook里会有更详细的说明。
96 ===== Exit the environment =====
97 要退出chroot环境,只要输入exit就OK了。。
99 <code>
100 # exit
101 #
102 </code>