我的系统中有三个 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
但我也可以收集UUID
和PARTUUID
通过sudo blkid
dev/nvme2n1p2: LABEL="Storage" UUID="8E7C25407C252485" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="880d93fe-65da-45d9-b7ec-322bc51cdd52"
编辑:我才发现其他 Ask Ubuntu 答案对第一个问题提供解决方案。
我的第一个问题是,我是否应该遵循链接答案所呈现的模式我应该使用UUID
或PARTUUID
吗fstab
?
像这样(在使用的情况下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
更改为 吗?我还应该包括/删除哪些其他选项?type
fstab
ntfs
相当,我可以直接将驱动器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 下的第二个位置。