Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

NAS 儲存故障導致 Linux 無法開機?單人模式掛載根分區、清理日誌恢復實戰

編輯:關於 Linux

NAS 設備 (Linux 核心 + 檔案系統管理軟體) 開機卡在 cups 服務,Ctrl+C 無反應,硬碟狀態正常。根因:**根分區被 /var/log 填滿,cups 啟動寫入日誌失敗導致掛起**。本文記錄從單人模式進入、發現根分區滿載、手動掛載分區、清理日誌恢復開機的完整排查流程。

故障現象

  • NAS 開機至 Starting cups: 停住,無法進入多使用者模式。
  • 硬體 RAID 狀態正常,無報警。
  • 判斷為 Linux 系統層面問題,非硬體故障。

排查與修復流程

1. 進入單人模式 (繞過 cups)

  • GRUB 選單編輯核心參數加 single 或 1。
  • 成功進入單人模式 Shell。

2. 嘗試關閉 cups 開機自啟 (第一次修復失敗)


chkconfig --level 35 cups off
reboot
# 重開機仍卡在 cups,說明修改未生效或非根因

3. 再次進入單人模式深入排查


vi /etc/cups/cupsd.conf
# 提示 "write file in swap",檔案似在記憶體中
# 懷疑根分區未正確掛載

4. 驗證分區掛載狀態


df -h
# 顯示無根分區掛載,只有 tmpfs、proc、sysfs
fdisk -l
# /dev/sda1 (boot), /dev/sda2 (root), /dev/sdb1, /dev/sdc1 (RAID data)

5. 手動掛載根分區確認


mkdir /mnt /opt
mount /dev/sda2 /mnt   # 根分區
mount /dev/sda1 /opt   # /boot
ls /mnt
# 看到 etc、var、usr... 確認為根分區
ls /opt
# 看到 grub、vmlinuz... 確認為 /boot

6. 發現根分區 100% 滿載


df -h /mnt
# /dev/sda2  70G  70G  0  100% /mnt
du -sh /mnt/var/log
# 50.1G /mnt/var/log

7. 清理日誌恢復空間


# 確認可安全刪除的舊日誌
ls -lh /mnt/var/log/*.log.*
# 刪除舊壓縮日誌、輪轉日誌
rm -f /mnt/var/log/*.log.[0-9]*
rm -f /mnt/var/log/*.gz
# 或保留近期,刪除較舊
find /mnt/var/log -name "*.log.*" -mtime +30 -delete

8. 同步、卸載、重開機


sync
umount /mnt /opt
reboot
# 正常進入多使用者模式,cups 啟動成功,NAS 服務上線

核心教訓

  • 根分區滿載會導致服務啟動寫入日誌失敗而掛起,而非服務本身故障。
  • 單人模式下 預設不掛載資料分區,須手動掛載才能操作真實檔案系統。
  • NAS/嵌入式 Linux 往往無獨立 /var 分區,日誌暴增極易填滿根分區。
  • 建議:獨立 /var/log 分區、配置 logrotate、設定磁碟配額、監控 df -h 告警。

關鍵指令速查

階段指令
進入單人模式GRUB 編輯加 single
掃描分區fdisk -l / lsblk -f
手動掛載mount /dev/sda2 /mnt
查看空間df -h /mnt du -sh /mnt/var/log
清理日誌rm /mnt/var/log/*.log.* / find ... -delete
同步重開sync; umount /mnt; reboot

df -h 無根分區掛載

fdisk -l 分區佈局

掛載後 /mnt 內容

掛載後 /opt 內容

掛載後 df -h 顯示根分區滿載

Copyright © Windows教程網 All Rights Reserved