Fstab (檔案系統表) 是一種設定檔,用於定義 Linux VM 中的磁碟分割區、檔案系統和檔案共用掛接點,在系統重新啟動後如何保持不變。
本文列出多種情況,說明錯誤的 fstab 設定可能導致啟動問題,並提供疑難排解建議來修正問題。
以下列出幾個常見的 fstab 設定錯誤問題:
事前準備
- 如要在 Cloud Logging 中記錄序列埠輸出內容,請先熟悉 Cloud Logging。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
找出 fstab 問題
如果發生開機問題,Google 強烈建議您在 Linux VM 的序列主控台中查看開機記錄。虛擬機會進入緊急模式,並顯示錯誤訊息,指出問題與 fstab 有關。
[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device. [[1;33mDEPEND[0m] Dependency failed for /distribution. [[1;33mDEPEND[0m] Dependency failed for Local File Systems. ... Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode. Give root password for maintenance (or type Control-D to continue)
根據錯誤訊息,
/distribution
檔案系統有依附元件故障問題。檔案系統掛接點的依附元件故障情形會因使用的檔案系統名稱而異。解決方法
如要解決 Linux VM 中發生的
fstab
錯誤,請使用下列選項。 Google Cloud與手動方法相比,使用序列控制台可更快解決問題。如要使用下列方法解決 fstab 問題,請務必為 VM 啟用序列埠存取權。
方法 1:使用序列主控台以緊急模式登入 VM
從 Google Cloud 控制台登入 VM 的序列埠主控台。
在目前的緊急模式中,輸入根密碼即可存取 VM。
使用慣用的文字編輯器開啟
fstab
檔案。進行必要變更,然後將變更儲存至fstab
檔案。在以下範例中,我們使用vi
編輯器。vi /etc/fstab
在上述範例中,裝置會從 VM 分離。
/distribution
註解參考檔案系統的行,或移除/distribution
掛接點的 fstab 項目。如要進一步瞭解 fstab 設定和語法,請使用
man fstab
。儲存檔案並結束編輯器。如果您使用
vi
編輯器,請按ESC
+:wq!
儲存並退出編輯器。在提示中輸入 reboot,繼續執行開機程序。
成功修正問題後,VM 啟動程序應會完成,且序列主控台會顯示登入提示。
確認您可以使用 SSH 再次登入 VM。
選項 2 - 在序列主控台中使用單一使用者模式
如果未設定根密碼,可以使用這個選項。
必要條件:grub 設定檔中的
GRUB_TIMEOUT
參數必須設為非零值。這個檔案通常位於/etc/default/grub
,但在部分版本較舊的發行版上,該檔案可能位於非標準的目錄中。前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。 前往 VM 執行個體
從Google Cloud 控制台
登入虛擬機器的序列埠控制台。
在 Google Cloud 控制台中,按一下虛擬機器的「重設」。
在序列埠控制台視窗中,按一下箭頭鍵,在 GRUB 畫面或選單中暫停,中斷啟動程序。
在 grub 開機載入程式畫面中,從核心清單選擇核心,然後按下鍵盤上的
e
。在核心行結尾新增
rd.break
參數,然後按下ctrl
+x
。這有助於將 VM 開機進入單一使用者模式。以讀寫模式掛接根檔案系統。
分析、進行必要變更,然後儲存
fstab
檔案。如要進一步瞭解設定和語法,請使用man fstab
。使用您慣用的文字編輯器開啟fstab
檔案。在下方範例中,我們使用 vi 編輯器。vi /etc/fstab
在本例中,
/distribution
裝置已從 VM 分離,因此請註解該行,或移除/distribution
掛接點的 fstab 項目。儲存檔案並結束編輯器。如果您使用 vi 編輯器,請按
ESC
+:wq!
儲存並退出 fstab。在提示中輸入
reboot
,繼續啟動程序。成功修正問題後,VM 開機程序應會完成,且序列埠控制台會顯示登入提示。
確認您可以使用 SSH 登入 VM。
選項 3 - 搶救 VM
如果未設定根密碼,或無法使用單一使用者模式,可以採用這個選項。
詳情請參閱「救援無法存取的 VM」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-08 (世界標準時間)。
-