创建基本目录并挂载host系统资源
创建一个用做 chroot 实验的目录 /dist/lab/chroot,并创建 proc,dev/pts 目录,挂载 proc 虚拟文件系统到 /dist/lab/chroot/proc,挂载 devpts 到 /dist/lab/chroot/dev/pts。
mkdir -v /dist/lab/chroot mkdir -pv /dist/lab/chroot/proc mkdir -pv /dist/lab/chroot/dev/pts mount -t proc none /dist/lab/chroot/proc/ mount -t devpts none /dist/lab/chroot/dev/pts/
mount 命令的基本用法就是 "mount [选项] 设备 挂载点" ,对于有些文件系统 (-t 指定了文件系统) ,对应设备为 "none"。
none 设备的用法和 "—bind" 用法相似。比如 devpts 也可以这样挂载:
# mount --bind /dev/pts/ /dist/lab/chroot/dev/pts/
/dev/pts 下是虚拟终端设备,系统会根据需要自动生成1、2、3等设备文件,这 些设备文件是临时的,通过 "w" 或 "tty" 命令可以查看当前终端你在哪个终端。
# w 14:16:11 up 3 days, 5:13, 4 users, load average: 0.00, 0.12, 0.17 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/2 172.16.70.62:S.0 10:00 1:15m 0.12s 0.12s /bin/bash root pts/3 172.16.70.62:S.1 12:52 0.00s 0.17s 0.17s /bin/bash root pts/4 172.16.70.62:S.2 12:52 33:59 0.07s 0.07s /bin/bash root pts/5 172.16.70.24 14:05 5:18 0.10s 0.03s -bash # tty /dev/pts/3
除了按 Ctrl+Alt+[1-6] 得到的 tty1 到 tty6 终端,其他方式打开的控制台基 本都是虚拟终端。比如在图形界面启动一个终端软件(gnome-terminal),用 screen 打开一个终端,远程登录(telnet,ssh)得到的终端,等等。相应的 /dev/pts 下面会出现一个新的字符设备文件。
