如何使 mount --bind 永久生效?

如何使 mount --bind 永久生效?

当我这样做时:

mount --bind dirone dirtwo

操作系统重启后绑定丢失。

我正在检查绑定的目录/proc/mounts

我怎样才能使这些绑定永久存在且不堵塞/etc/fstab

以下是来自/proc/mounts

/dev/disk/by-uuid/4f5082d7-aba2-4bc7-8d64-3bbb3d773aab /home/username/dir ext4 rw,relatime,data=ordered 0 0

答案1

你所说的“堵塞/etc/fstab”是什么意思?最好的地方是 /etc/fstab;这就是它被制造出来的原因!

您所要做的就是在第一次挂载后添加一行:

# <device>                                 <dir>                 <type>  <options>                 <dump>  <pass>
UUID=288a84bf-876c-4c4b-a4ba-d6b4cc6fc0d2  /mnt/device            ext4    defaults,noatime,nofail   0       2
/mnt/device                                /srv/binded_device     none    bind                      0       0

答案2

最简单的方法是安装 --bind你需要什么

mount --bind /home/sda1/Windows/Users/Me/Dropbox ~/Dropbox

然后打开表格

sudo nano /etc/mtab

复制你的行

/home/sda1/Windows/Users/Me/Dropbox /home/me/Dropbox none rw,bind 0 0

并将其粘贴文件系统所以它会在重启时挂载

sudo nano /etc/fstab

如果您的文件夹位于已安装的磁盘上,请确保绑定行位于磁盘安装之后

答案3

另一个解决方案(当您使用 LVM 时很有用,并且接受的答案将不起作用,有些人可能认为更有用,因为它使用了更多的逻辑。另一个首选选项的用例场景是您使用需要密码的加密分区,因此您要确保它不会在安装卷之前尝试安装在那里。)会做类似这样的事情:

将以下内容附加到您的 crontab
# crontab -l | tail -1 ; cat /usr/sbin/custom-compiler-mount

@reboot /usr/sbin/custom-compiler-mount

本质上你可以使用 crond 在重启时执行脚本

#!/bin/bash
( until [[ $( (mount |& grep vg0-homevol 2>&1 9<&1 > /dev/null 1<&9) ) ]] ; 
do 
sleep 1 
done & wait;mount -o rbind /home/linuxgeek/experimental/s3/gcc/ /gcc & ) & >/dev/null 

答案4

如果这是“每个用户”挂载而不是系统范围的挂载,那么为什么不使用符号链接而不是使用mount --bind或创建条目呢?/etc/fstab

ln --symbolic target_dir access_point_of_target_dir

将此行添加到用户.profile文件的底部,以便登录时自动使用,而无需创建系统范围的fstab条目,也不需要像输入mount --bind脚本时那样具有 root 权限。

这不是一个完美的解决方案,但我发现在大多数情况下,符号链接的性能与访问物理目录的性能相同。

相关内容