Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.3. 文件系统布局

Red Hat Enterprise Linux 7 对文件系统的布局进行了两个主要更改。

  • /bin/sbin/lib/lib64 目录现在位于 /usr 目录中。
  • /tmp 目录现在可以用作临时文件存储系统(tmpfs)。
  • /run 目录现在用作临时文件存储系统(tmpfs)。应用程序现在可以使用 /run 与使用 /var/run 目录相同的方式。

2.3.1. root 文件系统的新布局

通常,/bin/lib 目录中仅包括最小的必要的内容,以避免减慢引导过程的速度。有些实用程序需要位于根(/)级别才能挂载 /usr 分区。这样一来,其他实用程序会将其内容分散到多个目录级别,例如在 /bin/usr/bin 中。

Red Hat Enterprise Linux 7 将 /bin/sbin/lib/lib64 目录移动到 /usr 中。因为 /usr 文件系统现在可以由 initramfs 而不是由 root 级别目录中的实用程序挂载,所以不再需要在两个不同的目录级别间分割软件包内容。这可实现更小的根文件系统,启用可以更有效地共享磁盘空间的系统,以及更容易维护、更灵活和更安全的系统。

要减少这个更改的影响,以前的 /bin 目录现在是 /usr/bin 的符号链接,/sbin/usr/sbin,以此类推。

2.3.1.1. 为升级准备文件系统

警告

请注意,如果 /usr 位于独立分区,则无法进行原位升级。如果您决定将 /usr 从独立分区中移出,请注意这是您自己的风险。

如果 /var 位于独立分区中,则必须手动将 /var/run/var/lock 转换为符号链接:

# mv -f /var/run /var/run.runmove~
# ln -sfn ../run /var/run
# mv -f /var/lock /var/lock.lockmove~
# ln -sfn ../run/lock /var/lock
重要

您必须确保解决有关分区方案的所有 preupgrade-assistant 结果。

完成准备后,请参阅 安装指南 以了解执行升级过程的更多详情。

2.3.1.2. 验证升级是否成功

执行升级过程后,务必要验证升级是否按预期工作。

  1. 检查是否存在以下符号链接:

    • /bin/usr/bin的符号链接
    • /sbin/usr/sbin的符号链接
    • /lib/usr/lib的符号链接
    • /lib64/usr/lib64的符号链接
    • /var/run/run的符号链接
    • /var/lock/run/lock的符号链接

      如果列出的目录是符号链接的,则需要两个额外的检查。

  2. 检查以下 find 命令的输出结果:

    # find /usr/{lib,lib64,bin,sbin} -name '.usrmove'

    响应此命令时显示的文件或目录无法复制到 /usr,因为 /usr 中已存在具有相同名称的文件和目录。您需要手动解决这些命名冲突。

  3. 检查以下要保留的文件的目录:

    • /var/run.runmove~
    • /var/lock.lockmove~

如果列出的任何目录不是符号链接,则需要遵循 第 2.3.1.3 节 “从失败的升级中恢复” 中介绍的恢复过程。

2.3.1.3. 从失败的升级中恢复

升级过程可能会因为多个原因失败。检查以下命令的输出结果以查看出错信息:

# dmesg
# journalctl -ab --full

如果没有错误信息,请检查:

  • / 为可写
  • /usr 是可写
  • / 有足够的空间
  • /usr 有足够的空间
  • /varrhelup 工具中挂载

如果您需要进一步帮助,请联系红帽支持团队。