我在启动时安装了外部 NTFS HD,并希望将子目录绑定到我的 ~/Documents 文件夹。为此,我根据以下内容将以下条目添加到 fstab 中这个答案:
# Local HD Mounts
UUID=XXXXXXXXXX /mnt/dpvs auto nosuid,nodev,nofail,x-gvfs-show 0 0
# Local binds
/mnt/dpvs/Documents /home/username/Documents none defaults,bind 0 0
我可以挂载外部硬盘(第一个条目),但第二个条目在启动时不起作用。目录为空,设备显示“文档”挂载,卸载时出现错误(umount: /home/username/Documents: umount failed: Operation not permitted
)。奇怪的是,如果我启动时没有绑定条目,然后将其添加到 fstab 并使用 重新挂载mount -a
,它就可以正常工作。
我该怎么做才能挂载这个子目录?
答案1
在 fstab 中调用挂载绑定时,该外部驱动器的挂载可能尚未准备好。这可以通过在启动过程中稍后执行挂载命令来解决,例如将其放在文件中/etc/rc.local
,或者可能更好,因为这种方式在最新的 Ubuntu 版本中仍然是默认设置的,在 cron 作业中。
要创建 cronjob,请使用以下命令打开 crontab 文件
sudo crontab -e
添加挂载命令如下
@reboot mount --bind /mnt/dpvs/Documents /home/username/Documents
保存并关闭 crontab 文件。每次重启后都会执行该命令。
您最终可能会通过使用以下命令引入等待时间(例如 1 秒)来延迟启动sleep
:
@reboot ( sleep 1 ; mount --bind /mnt/dpvs/Documents /home/username/Documents )