/usr/lib、/usr/share 和 /usr/bin 符号链接到另一个分区上的目录

/usr/lib、/usr/share 和 /usr/bin 符号链接到另一个分区上的目录

我正在运行的服务器具有 15GB 根分区、1GB 交换分区和 216.9GB 主分区。显然,服务器在某个时候用完了根分区上的空间,并且该服务器的前任维护者没有扩展它,而是将 、/usr/lib/usr/share目录/usr/bin移入/home/usr并在目录的旧位置创建指向新位置的符号链接。

该服务器运行的是 Arch Linux 3.6.10-1。根分区和主分区均有一个 ext4 文件系统。

除了一些细微差别(例如find在搜索文件时必须明确指示遵循符号链接)外/usr,这种设置会有问题吗?我特别担心和好奇与设置相关的任何安全问题。

答案1

我会考虑两种可能的解决方案:

  1. 找出填满根分区的内容并修复它。
    这可能是正确的解决方案——使用 15GB 根分区(和合理的分区布局)您确实不应该填满根分区。
    当然,如果数据是合法的,而分区布局不合理(例如/var在根分区上),您可能对此无能为力。

  2. 使用合理的分区方案重建服务器。
    如果您确实填满了根分区,或者您的分区方案不合理,则应使用更合适的分区布局重建系统。
    此解决方案非常麻烦(您必须备份数据、重新安装系统并恢复数据),但它会为您带来一台干净的机器,不会有符号链接或绑定挂载点挂在它们不应该出现的地方,以免您或未来的管理员在以后遇到麻烦。

还有其他解决方案(例如aim 建议使用绑定安装),但我认为这些只是权宜之计,为您争取时间让系统运行,同时您计划制定真正的解决方案。

答案2

使用带绑定选项的 mount 而不是符号链接,你就不会遇到这样的问题

为此,您可以在/etc/fstab(来源; 法语) :

/home/usr/bin        /usr/bin     none   bind    0       0
/home/usr/share      /usr/share   none   bind    0       0
/home/usr/lib        /usr/lib     none   bind    0       0

一般语法:

/source              /destination none   [r]bind[,...] 0 0

相关内容