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

Linux fstab 遺失導致無法開機?急救模式重建完整步驟

編輯:關於 Linux

/etc/fstab 遺失或損毀會導致根分區無法掛載,系統進入急救模式。本文說明如何在急救環境下掃描裝置、識別根分區、手動掛載並重建 fstab,讓系統恢復正常開機。

故障現象

  • 開機報錯:Cannot open /etc/fstab 或 Dependency failed for Local File Systems。
  • 進入急救模式 (initramfs/rescue shell)。
  • 光碟救援模式因缺 fstab 無法自動掛載系統分區。

修復核心流程

  1. 進入急救模式 (單人模式或安裝光碟 linux rescue)。
  2. 掃描磁碟分區:fdisk -l / lsblk -f / blkid。
  3. 識別根分區 (可用 e2label 檢查 label,或掛載後確認 /etc 存在)。
  4. 手動掛載根分區至臨時目錄 (如 /mnt/sysroot)。
  5. 重建 /mnt/sysroot/etc/fstab。
  6. 同步磁碟、卸載、重開機。

詳細操作指令

1. 進入急救模式

  • GRUB 選單編輯核心參數加 single 或 1。
  • 或使用安裝 ISO 選擇 Troubleshooting → Rescue a Linux system。

2. 掃描與識別分區


# 查看所有分區
fdisk -l

# 查看檔案系統 UUID、LABEL、TYPE
lsblk -f
# 或
blkid

# 若使用 LVM
vgscan
vgchange -ay
lvs

3. 手動掛載根分區


# 建立臨時掛載點
mkdir /mnt/sysroot

# 掛載根分區 (假設為 /dev/sda2 或 /dev/mapper/centos-root)
mount /dev/sda2 /mnt/sysroot
# 或
mount /dev/mapper/centos-root /mnt/sysroot

# 掛載 /boot (若獨立分區)
mount /dev/sda1 /mnt/sysroot/boot

# 掛載虛擬檔案系統 (供 chroot 使用)
mount --bind /dev /mnt/sysroot/dev
mount --bind /proc /mnt/sysroot/proc
mount --bind /sys /mnt/sysroot/sys

4. 進入 chroot 環境重建 fstab


chroot /mnt/sysroot

# 產生新 fstab (需安裝 genfstab 或手寫)
# 手寫範例:
cat > /etc/fstab <<'EOF'
#      
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /         ext4    defaults,noatime  0  1
UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  /boot     ext4    defaults          0  2
UUID=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz  swap      swap    defaults          0  0
EOF

# 或使用工具 (Arch/Manjaro)
# genfstab -U /mnt/sysroot > /mnt/sysroot/etc/fstab

5. 同步並重開機


exit          # 離開 chroot
umount -R /mnt/sysroot
sync
reboot

fstab 欄位說明

欄位說明範例
1. 裝置UUID=... / LABEL=... / /dev/sdXUUID=a1b2-c3d4
2. 掛載點目錄路徑/ /boot /home
3. 類型ext4, xfs, vfat, swap, nfs...ext4
4. 選項defaults, noatime, ro, rw...defaults,noatime
5. dump0=不備份, 1=備份0
6. fsck0=不檢查, 1=根分區優先, 2=其他1 (根), 2 (其他)

預防建議

  • 編輯 fstab 前備份:cp /etc/fstab /etc/fstab.bak.$(date +%F)。
  • 修改後立即驗證:mount -a 無錯誤才重開機。
  • 使用 UUID/LABEL 而非裝置名稱。
  • 重要系統建立 /etc/fstab.d/ 片段管理 (systemd 244+ 支援)。

fdisk -l 輸出範例

e2label 查看分區標籤

手動掛載根分區步驟

Copyright © Windows教程網 All Rights Reserved