使用 fstab 在 /home 下绑定挂载的 SSD,可以使用 /proc/mounts 路径吗?

使用 fstab 在 /home 下绑定挂载的 SSD,可以使用 /proc/mounts 路径吗?

我的系统中有三个 SSD。第一个物理上位于硬件中(如果这很重要的话),是我的 Windows 安装,第二个是我的 Ubuntu 20.04 安装,第三个是 NTFS 存储驱动器。我试图更轻松地与存储驱动器交互。

我想要实现的行为是,/home我有一个“看起来像”我的存储驱动器的目录。也就是说,如果我打开该目录,它会显示驱动器上存在的所有相同的子目录和文件;在此目录中所做的任何更改都会自动同时发生在存储驱动器/数据上。这样我就可以使用它,而/home不必导航到另一个目录。


我正在审查这个 Ask Ubuntu 答案并且它似乎提供了部分解决方案。原始问题询问如何确保系统重启后绑定仍然存在。答案提供了解决方案,输入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

设备(由其 UUID 寻址)被安装到/mnt/device,然后/mnt/device绑定到/srv/binded_device。虽然我还不太清楚如何将其应用于我的情况。

因此,我的设备/dev/nvme2n1p2(横跨整个驱动器的 NTFS 分区)被安装/media/<user>/Storage/proc/mounts

dev/nvme2n1p2 /media/<user>/Storage fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0

但我也可以收集UUIDPARTUUID通过sudo blkid

dev/nvme2n1p2: LABEL="Storage" UUID="8E7C25407C252485" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="880d93fe-65da-45d9-b7ec-322bc51cdd52"

编辑:我才发现其他 Ask Ubuntu 答案对第一个问题提供解决方案。

我的第一个问题是,我是否应该遵循链接答案所呈现的模式我应该使用UUIDPARTUUIDfstab

像这样(在使用的情况下PARTUUID

# <device>                                 <dir>                 <type>  <options>                 <dump>  <pass>
UUID=880d93fe-65da-45d9-b7ec-322bc51cdd52   /mnt/storage         ntfs    defaults,noatime,nofail   0       2
/mnt/storage                                /home/StorageBind    none    bind

第二和第三,再次从链接的答案开始,我应该在哪里以及应该如何称呼安装位置?我可以这样称呼它吗?我应该将in/mnt/storage更改为 吗?我还应该包括/删除哪些其他选项?typefstabntfs


相当,我可以直接将驱动器fstab作为安装位置吗/proc/mounts本质上让我绕过了前三个问题......

就像这样

# <device>               <dir>               <type>  <options>  <dump> <pass>
/media/<user>/Storage    /home/StorageBind    none    bind

其他问题可能会影响我的具体用例的答案(尽管我认为这个问题仍然具有普遍的价值)。

此存储驱动器包含一些生成各种结果文件的代码。代码必须在 Docker 容器中运行,该容器只能在 Linux 安装下运行(nvidia-docker),尽管我仍然与使用 Windows 执行结果的各种管理任务密不可分。过去,或者在不使用存储驱动器时,我会使用Docker 的 bind-mount 选项在容器内挂载一个主机目录(包含我的代码库的目录)。

所以我特别担心/感兴趣这个绑定是否能按照预期和上面描述的方式工作,我能否进一步docker --mount绑定docker --volume到存储驱动器?

docker <...> -v /home/StorageBind/<codebase>:/code

答案1

我不明白这个问题的严重性以及其复杂的原因。

我想要实现的行为是,在 /home 下,我有一个“看起来像”我的存储驱动器的目录。也就是说,如果我打开该目录,它会显示驱动器上存在的所有相同的子目录和文件;在此目录中所做的任何更改都会自动同时发生在存储驱动器/数据上。这样我就可以使用 /home,而不必导航到另一个目录。

这正是您使用符号链接所实现的功能。在 /home 下创建指向存储驱动器挂载点的符号链接即可实现此目的。

符号链接很简单,也是这里的首选。它们可以作为任何实际用途的常规文件夹。对于特殊要求,当符号链接无法满足要求时,还有一个选项mount --bind,允许将已安装卷上的任何文件夹绑定到其他文件夹。因此,如果您愿意,可以有效地将存储驱动器安装在 /home 下的第二个位置。

相关内容