如何将 usr/ 目录移动到 /home/usr 分区?

如何将 usr/ 目录移动到 /home/usr 分区?

我的计算机上有双启动的 Ubuntu 20.04,几天前我经常在根分区(20GB)中收到“释放磁盘空间”的建议。

当我检查磁盘使用情况时,我可以看到 /usr 目录使用了 7.2GB,/var 使用了 6.1GB,而 /opt 使用了 1.1GB。

当我安装 Ubuntu 时,我不知道要为根分区和主分区分配多少空间,因此我按照教程操作,为第一个分区分配了 20GB,为第二个分区分配了 130GB,现在根分区的使用率为 92%,主分区的使用率为 13%,因此我想为根分区提供更多主分区未使用的空间,或者将 /usr(/var 和 /opt 也是)移动到 /home 目录内,以便获得 /home/usr;home/var 和 home/opt 结构。

我刚刚看到这个帖子如何将 /usr 移动到新分区?这是具有相同问题的唯一可用方法,但我不想为 usr 创建新分区,所以我只是复制了目录,但我害怕继续下一步。

我不想冒险直接移动目录,因为从其他论坛来看这似乎很危险;而且显然我不想在“/”中保留副本,因为我需要释放那里的空间。

我已经按照其他帖子清理了旧的内核版本和无用的已安装软件包,但这还不够;目前我无法继续使用任何 Live CD 解决方案,因为我没有随身携带 USB 记忆棒。

我能做什么?

答案1

根本的解决方案是调整分区大小。

不过,系统的几个部分可以移至单独的分区,然后用符号链接替换。符号链接确保保留传统的文件系统层次结构标准。

这并不像听起来那么奇怪。从历史上看,Linux 系统从非常小的分区启动。链接用于指向存储在不同分区上的系统文件。例如,整个/usr目录安装在不同的分区上。然而,/usr现在尤其应该不是被移动,因为基本二进制文件(/bin)和库(/lib)已移至/usr/bin

单独的分区应使用支持 Linux 权限的文件系统进行格式化,并在启动时自动挂载。您的/home分区满足这些条件。移动应以保留所有文件属性和权限的方式进行。

原则上,任何在启动过程早期未使用的文件都可以被移动。您很可能用符号链接替换 ​​/opt。此外,/tmp 和 /var/tmp 也可以用符号链接替换。此外/snap/var/lib/flatpak很可能可以用符号链接替换,也可能还有其他文件,但您需要对此进行测试。

相关内容