mount
在 Linux 系统中,我们可以使用mount命令将设备挂载到目录中。这允许我们访问设备的文件系统。
例如,在/mnt/usb目录上,挂载一个 U 盘(用/dev/sdc1代指),然后ls其内容
$ mkdir /mnt/usb
$ mount /dev/sdc1 /mnt/usb
$ ls /mnt/usb
appendix.pdf pictures/
可以使用findmnt --real
列出所有已安装的设备:
$ findmnt --real
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime
├─/home /dev/sdb1 ext4 rw,relatime
├─/mnt/usb /dev/sdc1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,errors=remount-ro
└─/boot/efi /dev/sda1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,errors=remount-ro
如我们所见,系统上安装了四个设备,包括我们的 U 盘。
最后可以卸载U盘:
$ umount /dev/sdc1
bind mount
bind mount简介
bind是一种特殊的mount,可以把文件系统中的某一个部分进行挂载
简而言之,bind mount可以mount一个已有的文件夹。
这个特性是从linux2.4.0开始的。
用法
最基础的用法如下:
mount --bind olddir newdir
如果执行了上面这个命令,在olddir和newdir都可以访问相同的内容;
并且如果对其中一个目录内的内容进行了修改,在另一个目录会有相同的显示。
使用场景
我们希望让当前的文件系统的一个目录(例如/dev)出现在chroot的目录下.
但是又不希望对chroot这个目录进行更改
我们可以使用mount --bind
将/dev目录挂载到chroot的目录下:
mount --bind /dev $chrootdir/dev
这样,我们从chroot的目录和自己本身的文件系统的目录就都可以访问/dev目录
如果我们不希望挂载的目录是可以修改的,则可以将挂载的属性设置为readonly:
mount -o remount,ro,bind /dev $chrootdir/dev
参考:
https://xionchen.github.io/2016/08/25/linux-bind-mount/
https://blog.csdn.net/allway2/article/details/122136813