我正在运行的服务器具有 15GB 根分区、1GB 交换分区和 216.9GB 主分区。显然,服务器在某个时候用完了根分区上的空间,并且该服务器的前任维护者没有扩展它,而是将 、/usr/lib
和/usr/share
目录/usr/bin
移入/home/usr
并在目录的旧位置创建指向新位置的符号链接。
该服务器运行的是 Arch Linux 3.6.10-1。根分区和主分区均有一个 ext4 文件系统。
除了一些细微差别(例如find
在搜索文件时必须明确指示遵循符号链接)外/usr
,这种设置会有问题吗?我特别担心和好奇与设置相关的任何安全问题。
答案1
我会考虑两种可能的解决方案:
找出填满根分区的内容并修复它。
这可能是正确的解决方案——使用 15GB 根分区(和合理的分区布局)您确实不应该填满根分区。
当然,如果数据是合法的,而分区布局不合理(例如/var
在根分区上),您可能对此无能为力。使用合理的分区方案重建服务器。
如果您确实填满了根分区,或者您的分区方案不合理,则应使用更合适的分区布局重建系统。
此解决方案非常麻烦(您必须备份数据、重新安装系统并恢复数据),但它会为您带来一台干净的机器,不会有符号链接或绑定挂载点挂在它们不应该出现的地方,以免您或未来的管理员在以后遇到麻烦。
还有其他解决方案(例如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