4.3. 檔案系統格式

Red Hat Enterprise Linux 7 針對於檔案系統的格式加入了兩項重大變更。
  • /bin/sbin/lib/lib64 目錄現在已位於 /usr 目錄下。
  • /tmp 目錄現在已能作為暫時性檔案儲存系統(tmpfs)使用。

4.3.1. root 檔案系統的新格式

典型的 /bin/lib 目錄中僅有最少量的必要內容包含在內,以避免造成開機程序緩慢。部分工具程式必須位於 root(/)層級,以便掛載 /usr 分割區。這造成了其它工具程式將其內容散佈在不同層級目錄中的情況,比方說同時位於 /bin/usr/bin 中。
Red Hat Enterprise Linux 7 已將 /bin/sbin/lib/lib64 目錄移至 /usr 中。因為 /usr 檔案系統現在已能透過 initramfs 掛載,而非透過 root 層級目錄中的工具程式,因此已不再需要將套件內容分佈在兩個不同的目錄層級中。這能讓 root 檔案系統的大小減少許多,而讓系統更有效率地共享磁碟空間、更容易維護、更加靈活,且更加安全。
為了降低此變更帶來的影響,先前的 /bin 目錄現在已是 /usr/bin 的符號連結,而 /sbin 則為 /usr/sbin 的符號連結,以此類推。

4.3.1.1. 準備您的檔案系統進行升級

/usr 目前位於獨立的分割區上,請確保 /usr 分割區擁有足夠的空間存放 /bin/sbin/lib/lib64 的副本。
/usr 不位於獨立的分割區上,請確保 / 分割區擁有足夠的空間存放 /bin/sbin/lib/lib64 的副本。
/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
當您的準備完成時,請參閱《Red Hat Enterprise Linux 7 安裝指南》以取得執行升級程序的指示。

4.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~
若列出的任何檔案非符號連結,您將需要按照 節 4.3.1.3, “由失敗的升級程序中復原” 中的程序進行復原。

4.3.1.3. 由失敗的升級程序中復原

升級程序失敗可能基於幾個原因。請檢查以下指令的輸出,以查看哪裏出了問題:
# dmesg
# journalctl -ab --full
若找不到錯誤,請檢查:
  • / 是否可寫入
  • /usr 是否可寫入
  • /usr 是否已正確掛載
  • / 是否擁有足夠的空間
  • /usr 是否擁有足夠的空間
  • /var 是否有掛載在 rhelup 工具中
若您需要協助,請聯絡 Red Hat 支援人員。