当我这样做时:
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 权限。
这不是一个完美的解决方案,但我发现在大多数情况下,符号链接的性能与访问物理目录的性能相同。