我有一台带有 SSD 和 HDD 的计算机。我想将不经常更改的目录放在 SSD 中,将经常更改的目录放在 HDD 中。这意味着默认情况下将根保留/
在 SSD 中,以及大多数路径,然后放入 HDD /home
、/opt
、/root
、/tmp
和/var
,如果我没记错的话。
有两个选项:符号链接和 fstab 中的绑定安装。这在很多问题中都有解释:
- 如何在同一个分区挂载多个目录?
- 使用 mount --bind 代替符号链接有什么缺点吗?
- 如何在同一个分区挂载多个目录?
- 将主文件夹映射到 fstab 中的不同位置
- 如何将不同的分区重新挂载为/home?
- ubuntu安装后可以更改/home文件夹吗?
- Debian安装,将/var /tmp /home挂载在同一分区
- 还有很多...
每种方法都有不同的优点和缺点。最大的问题是符号链接不透明(例如到cd
或pwd
),并且绑定会重复路径和访问的数据(例如使用时find
)。
在这两个问题中,后者似乎更容易解决,但我在前面的链接中找不到任何提及这一点,因此我不得不问是否有任何解决方案。
我认为最好的解决方案可能是将以前的路径(/home
、/opt
、/root
、/tmp
和/var
)绑定为/.hdd
(一个新路径,定义为 HDD 分区中的挂载点)的子路径,然后隐藏/.hdd
以避免绑定目录时出现的问题。问题是如何隐藏/.hdd
以最简单、最有效的方式隐藏而不破坏任何东西。我可以想到两种方法。
- 将其权限设置为 000,这对于 root 或执行 sudo 时可能不太有用。
- 使用 chroot,这可能会破坏有些事情。
这些选项没有被任何人提及,所以我猜它们是无用的或者比无用更糟糕,为什么?有什么好的选择吗? (使/.hdd
子路径尽可能不可见,同时子路径保持透明绑定)。