【Linux】mount | bind mount

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值