Linux 開機時出現錯誤訊息:原因與詳細解決方法

在啟動 Linux 時,有時畫面上會出現錯誤訊息,系統也可能在進入桌面前就停止。 雖然這些訊息看起來很可怕,但它們其實往往是找出真正原因最重要的線索。

本文將詳細說明 Linux 開機錯誤最常見的原因,以及遇到不同狀況時可以依序嘗試的解決方法。


1. 不要在沒看懂錯誤前一直強制重新開機

很多使用者一看到開機錯誤,就會連續不斷重新啟動電腦。 但如果問題和檔案系統或磁碟有關,這樣反而可能讓情況更嚴重。

比較好的做法是先做以下幾件事:

  • 把錯誤訊息完整記下來
  • 拍下螢幕畫面
  • 確認系統是在開機的哪個階段停住
  • 回想最近是否做過更新或設定變更

如果問題出現在更新之後,原因可能和核心或驅動程式有關。 如果之前有突然斷電,則檔案系統損壞的可能性更高。


2. 常見的開機錯誤類型

  • GRUB 或開機載入器錯誤
  • 檔案系統錯誤
  • 核心或 initramfs 問題
  • systemd 服務啟動失敗
  • GPU 驅動或顯示問題
  • 磁碟空間不足
  • 磁碟本身的硬體故障

雖然整體現象都像是「Linux 無法開機」,但實際上的解法會依照錯誤類型而不同。


3. 顯示詳細的開機訊息

許多發行版會使用 quiet splash 來隱藏詳細的開機訊息。 如果想看到真正的原因,可以先在 GRUB 中暫時移除它。

  1. 重新啟動電腦
  2. 開機後立刻多按幾次 ShiftEsc
  3. 在 GRUB 中選擇開機項目並按下 e
  4. 刪除 quiet splash
  5. 按 Ctrl + X 繼續開機

這樣就能更清楚看到系統到底在哪個步驟發生錯誤。


4. 如果出現 “grub rescue” 或 “no such partition”

如果一開機就出現 grub rescue,或看到像 “no such partition” 這類錯誤,通常代表問題和開機載入器或磁碟分割有關。

常見原因包括:

  • 分割區被修改或移動
  • Windows 雙系統把開機資訊覆蓋掉了
  • EFI 分割區或 /boot 分割區損壞
  • GRUB 設定檔損壞

很多情況下,可以透過 Live USB 開機後重新安裝 GRUB:

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi   # 僅 UEFI 系統需要

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

sudo chroot /mnt
grub-install /dev/sda
update-grub
exit
sudo reboot

請依照你的實際系統環境修改裝置名稱。


5. 如果系統進入 emergency mode

You are in emergency mode 這個訊息通常表示系統在掛載分割區或讀取重要設定時發現了嚴重問題。 很常見的原因是 /etc/fstab 裡有錯誤。

先查看紀錄:

journalctl -xb

再檢查 fstab:

cat /etc/fstab

常見錯誤包括:

  • UUID 寫錯
  • 掛載點不存在
  • fstab 裡有外接磁碟,但目前沒有接上

如果找到問題,可以修改該檔案:

nano /etc/fstab

修改完成後重新開機。


6. 如果錯誤和 fsck 或檔案系統有關

fsck failedUNEXPECTED INCONSISTENCY 這類訊息,通常代表檔案系統有損壞。 這種情況常見於突然斷電或強制關機之後。

最安全的做法是從 Recovery Mode 或 Live USB 進行檢查:

sudo fsck -f /dev/sda1

不要在已經掛載且正在使用中的 root 分割區上直接執行 fsck。

另外也建議檢查磁碟健康狀態:

sudo smartctl -a /dev/sda

如果 SMART 顯示大量錯誤,應優先備份重要資料。


7. 如果是 systemd 服務啟動失敗

有時 Linux 核心其實已經成功啟動,但某個重要服務沒有正常執行,導致後續系統無法完成登入。 這時常會看到以下訊息:

  • Failed to start ...
  • Dependency failed for ...

此時可以先切換到 TTY:

Ctrl + Alt + F2

登入後檢查失敗的服務:

systemctl --failed
journalctl -xb

若要查看某個特定服務:

systemctl status NetworkManager
journalctl -u NetworkManager -b

如果出問題的服務不是關鍵服務,也可以暫時停用,測試系統是否能繼續啟動。


8. 如果問題出在核心或 initramfs

如果錯誤是在更新核心之後才開始出現,原因可能是新的 kernel 或 initramfs 有問題。 這時可以先從 GRUB 啟動舊版本核心:

  1. 開啟 GRUB
  2. 選擇 Advanced options
  3. 選擇較舊的核心版本

如果舊核心能正常開機,就可以重新產生 initramfs:

sudo update-initramfs -u

9. 如果問題來自 GPU 驅動

有時 Linux 其實已經開機,但因為 GPU 驅動有問題,圖形介面無法正常顯示。 這種情況在 NVIDIA 更新之後特別常見。

可以先在 GRUB 中暫時加入 nomodeset

linux /boot/vmlinuz ... quiet splash nomodeset

如果這樣就能進入系統,通常就很可能是顯示驅動的問題。 接著可以再重新安裝對應的驅動程式。


10. 別忘了檢查磁碟剩餘空間

有時真正原因其實很簡單:root 分割區或 /boot 已經完全滿了。 在這種情況下,更新可能失敗,而下一次開機就會出現問題。

可以用以下指令檢查:

df -h

如果空間快用完了,就清除快取與舊套件:

sudo apt clean
sudo apt autoremove

必要時也要刪除舊核心和大型 log 檔案。


11. 如果所有方法都失敗,先備份資料

如果 TTY、Recovery Mode 以及一般修復方式都沒有幫助,最安全的做法就是先用 Live USB 開機,把重要檔案備份出來。 如果你懷疑磁碟有硬體故障,這一步就更重要。

透過 Live USB,你可以:

  • 複製重要檔案
  • 執行 fsck
  • 重新安裝 GRUB
  • 檢查設定檔
  • 評估磁碟健康狀況

總結

Linux 開機時出現錯誤訊息,不一定代表整個系統必須重灌。 很多情況下,只要仔細閱讀錯誤內容,並一步一步檢查原因,就有機會恢復正常。

  • 記下完整錯誤訊息
  • 顯示詳細開機紀錄
  • 使用 TTY、Recovery Mode 或 Live USB
  • 檢查 GRUB、檔案系統、服務、核心、驅動與磁碟空間
  • 若懷疑磁碟故障,先搶救資料

最重要的是不要在沒有判斷原因前就直接重灌,而是把錯誤訊息當成線索,慢慢找出真正的問題點。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *