萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

fstab 錯誤導致 Linux 無法開機?單用戶模式 remount 根分區修復全紀錄

修改 /etc/fstab 錯誤 (如掛載點打錯、UUID 錯誤) 會導致開機進入 emergency mode,且根分區以唯讀掛載無法直接編輯。關鍵一招:mount -o remount,rw / 重新以讀寫模式掛載根分區。

故障現場

# 修改 fstab 將 /u01 改為 /weblogic 但目錄不存在
/dev/sda5  /weblogic  ext4  defaults  0  0

# 重啟後報錯
[FAILED] Failed to mount /weblogic
Welcome to emergency mode! 
Give root password for maintenance
(or press Control-D to continue):

修復步驟 (逐條執行)

  1. 輸入 root 密碼進入 emergency shell
  2. 重新以讀寫模式掛載根分區 (核心步驟)
    mount -o remount,rw /
        # 或指定裝置
        mount -o remount,rw /dev/sda2 /
        
  3. 編輯修正 fstab
    vi /etc/fstab
        # 修正錯誤行,或從備份還原
        # cp /etc/fstab.bak /etc/fstab
        
  4. 驗證語法無誤
    mount -a
        # 無錯誤輸出即正確
        
  5. 重啟驗證
    reboot
        

fstab 錯誤開機畫面

進階:無法進入 emergency mode 怎麼辦?

方案 A:GRUB 單用戶模式 (rd.break / init=/bin/bash)

# GRUB 選單按 e 編輯 kernel 行
# 加入 rd.break (systemd) 或 init=/bin/bash (SysVinit)
# 啟動後
mount -o remount,rw /sysroot
chroot /sysroot
vi /etc/fstab
touch /.autorelabel  # SELinux 重標記
exit
reboot

方案 B:Live CD/USB 救援模式

# 開機選 Rescue 模式或 Live 系統
mkdir /mnt/sysroot
mount /dev/sda2 /mnt/sysroot  # 確認根分區裝置
vi /mnt/sysroot/etc/fstab
reboot

方案 C:LVM 根分區額外步驟

# 掃描並啟用 LVM
lvm vgscan
lvm vgchange -ay
lvm lvs  # 確認邏輯卷名稱
mount /dev/vg_root/lv_root /mnt/sysroot
# 後續同方案 B

預防最佳實踐

  1. 修改前備份:cp /etc/fstab /etc/fstab.$(date +%F).bak
  2. 使用 UUID/標籤:blkid 取得 UUID,UUID=xxx /mount ext4 defaults 0 0
  3. 語法驗證:mount -a 重啟前必跑
  4. 自動化部署:Ansible mount 模組 + validate: 'mount -a'
  5. 監控告警:systemctl is-system-running 開機狀態監控

fstab 欄位速查

# <裝置>  <掛載點>  <類型>  <選項>         
UUID=xxx  /data     ext4    defaults,noatime  0      2
/dev/sdb1 /backup   xfs     nofail            0      0
# nofail:掛載失敗不阻塞開機 (適用雲端磁碟)

牢記 mount -o remount,rw / 這招,fstab 錯誤不再是噩夢,幾分鐘即可恢復系統運作。

copyright © 萬盛學電腦網 all rights reserved