slitaz-doc-wiki-data diff 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 diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pages/cn/handbook/chroot.txt	Sat Feb 26 12:16:54 2011 +0000
     1.3 @@ -0,0 +1,102 @@
     1.4 +====== Chroot 环境 ======
     1.5 +
     1.6 +
     1.7 +本文档叙述如何构建一个 chrooted 环境的必要步骤, 以改变系统根目录的位置. 这样在此chroot环境上编译测试就不会有影响到宿主系统的风险. 宿主系统可以是安装在硬盘上的Slitaz也可以是其他Linux发行版,如 Debian, Fedora, PCLinuxOS 等等. 要构建一个Chroot环境,你所需要的仅仅是一个可用的Slitaz ISO镜像和一点点时间. 注意所有命令都是以管理员(root)身份执行的。
     1.8 +
     1.9 +注意
    1.10 +以下方法适用于所有Linux发行版,Slitaz的话,有更简便的方法,可以用tazlito extract-iso 解压 slitaz ISO镜像\\
    1.11 +参考:[[http://community.slitaz.org/node/47|Slitaz光盘重制基本歩骤]]
    1.12 +===== 准备阶段 (适用于所有Linux发行版)=====
    1.13 +
    1.14 +
    1.15 +开始之前,我们必须把Slitaz ISO里的Live系统解压出来作为chroot环境. 可以解压到任意位置, 比如 ///home/slitaz/chroot-env//. 这里假设slitaz ISO就在此目录。
    1.16 +
    1.17 +挂载slitaz iso文件,拷贝里面的rootfs.gz至当前目录。
    1.18 +<code>
    1.19 + # mkdir /tmp/loop
    1.20 + # mount -o loop slitaz-cooking.iso /tmp/loop
    1.21 + # mkdir -p /home/slitaz/chroot-env
    1.22 + # cp /tmp/loop/boot/rootfs.gz \
    1.23 +   /home/slitaz/chroot-env
    1.24 + # umount /tmp/loop
    1.25 +</code>
    1.26 +
    1.27 +解压此rootfs.gz文件至当前文件夹
    1.28 +
    1.29 +<code>
    1.30 + # cd /home/slitaz/chroot-env
    1.31 + # (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so) | cpio -id
    1.32 + # rm rootfs rootfs.gz
    1.33 +</code>
    1.34 +
    1.35 +若解压失败,请尝试一下方法解压。。
    1.36 +
    1.37 +<code>
    1.38 + # unlzma rootfs.gz -S .gz 
    1.39 + # cat rootfs | cpio -id
    1.40 +</code>
    1.41 +
    1.42 +=== 改变根目录位置chroot ===
    1.43 +
    1.44 +要使用此解压出来的系统,必须要挂载一些虚拟硬盘及使用chroot命令。 为了便利,我们写了个自动化脚本以完成这一步。 我们解压的系统在 ///home/slitaz/chroot-env// 新建一个脚本 chroot_in_env.sh 放在 ///home/slitaz//. 在非Slitaz系统下可以取消 ///dev// 及 ///tmp//的注释 - 注意:可以复制粘贴一下内容..
    1.45 +
    1.46 +<code> # cat > /home/slitaz/chroot_in_env.sh << "EOF" 
    1.47 +
    1.48 +#!/bin/sh
    1.49 +# Chroot in SliTaz to hack.
    1.50 +#
    1.51 +ROOTFS="/home/slitaz/chroot-env"
    1.52 +
    1.53 +# Mount virtual Kernel file systems and chroot.
    1.54 +#
    1.55 +#mount --bind /dev $ROOTFS/dev
    1.56 +#mount --bind /tmp $ROOTFS/tmp
    1.57 +mount -t proc proc $ROOTFS/proc
    1.58 +mount -t sysfs sysfs $ROOTFS/sys
    1.59 +mount -t devpts devpts $ROOTFS/dev/pts
    1.60 +mount -t tmpfs shm $ROOTFS/dev/shm
    1.61 +
    1.62 +echo "Chrooting into $ROOTFS... "
    1.63 +chroot $ROOTFS /bin/sh --login
    1.64 +
    1.65 +# Unmount virtual Kernel file systems on exit.
    1.66 +#
    1.67 +umount $ROOTFS/dev/shm
    1.68 +umount $ROOTFS/dev/pts
    1.69 +umount $ROOTFS/sys
    1.70 +umount $ROOTFS/proc
    1.71 +#umount $ROOTFS/tmp
    1.72 +#umount $ROOTFS/dev
    1.73 +
    1.74 +echo "Exiting $ROOTFS chroot environment... "
    1.75 +
    1.76 +EOF
    1.77 +
    1.78 +</code>
    1.79 +
    1.80 +修改脚本文件属性为可执行。
    1.81 +
    1.82 +<code>
    1.83 + # chmod +x /home/slitaz/chroot_in_env.sh
    1.84 + # sh /home/slitaz/chroot_in_env.sh
    1.85 +</code>
    1.86 +
    1.87 +激活网络。
    1.88 + <code> # udhcpc -i eth1 </code>
    1.89 +
    1.90 +===== 安装 安装包 =====
    1.91 +
    1.92 +若可以上网的话,就可以用tazpkg get-install这个命令从仓库安装包了。
    1.93 +
    1.94 + <code># tazpkg recharge
    1.95 + # tazpkg get-install slitaz-toolchain </code>
    1.96 +
    1.97 +配置好后,你就可以在宿主Linux下测试Slitaz系统了.Cookbook里会有更详细的说明。
    1.98 +
    1.99 +===== Exit the environment =====
   1.100 +要退出chroot环境,只要输入exit就OK了。。
   1.101 +
   1.102 +<code>
   1.103 + # exit
   1.104 + #
   1.105 +</code>