创建基本目录并挂载host系统资源
创建

创建基本目录并挂载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 下面会出现一个新的字符设备文件。

创建