Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
在我嘗試啟動 EC2 Linux 執行個體時,為什麼它會進入緊急模式?
當我啟動 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體時,執行個體會進入緊急模式,而啟動程序會失敗。然後,執行個體變得無法存取。
簡短描述
執行個體可能會因下列原因而以緊急模式啟動:
- 執行個體上的核心已損壞,導致出現核心危急錯誤。
- 由於 /etc/fstab 檔案中的項目不正確,導致自動掛載失敗,進而引發 Dependency failed (相依性失敗) 錯誤。
若要確定錯誤類型,請檢查執行個體的主控台輸出。
解決方法
核心危急錯誤
如果核心有問題,那麼您會收到類似於以下範例的錯誤訊息:
"Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)" (「核心危急 - 不同步:VFS:無法在未知區塊 (8,1) 上掛載根檔案系統」)
當 grub 組態或 initramfs 檔案損壞時,就會發生 Kernel panic (核心危急) 錯誤。若要對此問題進行疑難排解,請完成下列步驟:
- 將核心還原為先前的穩定核心。
- 重新啟動執行個體。
- 修正損壞核心錯誤訊息中列出的問題。
相依性失敗錯誤
當 /etc/fstab 檔案中的語法錯誤導致自動掛載失敗時,就會發生 Dependency failed (相依性失敗) 錯誤。當檔案中列出的 Amazon Elastic Block Store (Amazon EBS) 磁碟區與執行個體分離時,也會發生此錯誤。您會收到類似以下範例的錯誤訊息:
"[[1;33mDEPEND[0m] Dependency failed for /mnt.
[[1;33mDEPEND[0m] Dependency failed for Local File Systems.
[[1;33mDEPEND[0m]
Dependency failed for Migrate local... structure to the new structure.
[[1;33mDEPEND[0m] Dependency failed for Relabel all filesystems, if necessary.
[[1;33mDEPEND[0m] Dependency failed for Mark the need to relabel after reboot.
[[1;33mDEPEND[0m]
Dependency failed for File System Check on /dev/xvdf." (「[[;33mDEPEND[0m] /mnt 的相依性失敗。[[1;33mDEPEND[0m] 本機檔案系統的相依性失敗。[[1;33mDEPEND[0m] 將本機結構遷移到新結構的相依性失敗。[[1;33mDEPEND[0m] 如有需要,重新標記所有檔案系統的相依性失敗。[[1;33mDEPEND[0m] 重新啟動後標記需要重新標記的相依性失敗。[[1;33mDEPEND[0m] 對 /dev/xvdf 執行檔案系統檢查的相依性失敗。」)
在上述範例中,/mnt 掛載點在啟動過程中掛載失敗。若要確保啟動順序不會因為掛載失敗而進入緊急模式,請將以下組態新增至 /etc/fstab 檔案:
- 次要分割區的 nofail 選項,例如 /mnt。
**注意:**nofail 選項可確保即使磁碟區或分割區掛載失敗,啟動順序也不會中斷。 - 作為掛載點檔案中的最後一欄,0 表示關閉檔案系統檢查。
若要更新 /etc/fstab 檔案,請使用 EC2 序列主控台,執行 AWSSupport-ExecuteEC2Rescue 自動化,或使用救援執行個體手動編輯該檔案。
**重要:**在停止和啟動執行個體之前,請執行下列動作:
- 建立 EBS 磁碟區的備份。
**注意:**如果您的執行個體是執行個體儲存體備份,或具有包含資料的執行個體儲存體磁碟區,則當您停止執行個體時,Amazon EC2 會刪除該資料。 - 將執行個體關閉行為設定為停止,以確保執行個體在您停止時不會終止。
**注意:**當您停止和啟動執行個體時,該執行個體的公有 IP 位址也會變更。最佳做法是使用彈性 IP 位址而不是公用 IP 位址,將外部流量路由到執行個體。如需詳細資訊,請參閱停止並啟動 Amazon EC2 執行個體。
使用 EC2 序列主控台
**重要:**使用 EC2 序列主控台時,無需停止並啟動執行個體。
如果您啟動了適用於 Linux 的 EC2 序列主控台,則可以使用它來對支援的 Nitro 型執行個體類型和支援的裸機執行個體問題進行疑難排解。使用 EC2 序列主控台時,您不需要有效連線即可連線至執行個體。連線到 EC2 序列主控台,然後修改 /etc/fstab 檔案。
如果您之前沒有使用過 EC2 序列主控台,請確認您遵守先決條件。如果您的執行個體無法連線,且您尚未設定對序列主控台的存取權,那麼您將無法使用 EC2 序列主控台來修正 /etc/fstab 檔案。
執行 AWSSupport-ExecuteEC2Rescue 自動化文件
**先決條件:**確認您擁有使用 AWSSupport-ExecuteEC2Rescue 所需的 AWS Identity and Access Management (IAM) 權限。
執行 AWSSupport-ExecuteEC2Rescue 自動化文件以自動修正啟動問題。如需詳細資訊,請參閱在無法存取的執行個體上執行 EC2Rescue 工具。
使用救援執行個體手動編輯檔案
請完成下列步驟:
-
開啟 Amazon EC2 console (Amazon EC2 主控台)。
-
選擇 Instances (執行個體),然後選擇處於緊急模式的執行個體。
-
從已停止的執行個體分離 /dev/xvda 或 /dev/sda1 Amazon EBS 根磁碟區。
-
在與已停止執行個體相同的可用區域中啟動救援執行個體。
-
將根磁碟區作為次要裝置附加至救援執行個體。
**注意:**附加次要磁碟區時,您可以使用不同的裝置名稱。 -
若要為附加到救援執行個體的新磁碟區建立掛載點目錄,請執行下列命令:
sudo mkdir /mnt/rescue**注意:**將 /mnt/rescue 替換為您的掛載點目錄。
-
若要識別區塊型儲存設備名稱和分割區,請執行下列命令:
[root ~]$ lsblk輸出範例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 101G 0 disk └─xvdf1 202:81 0 101G 0 part -
若要將磁碟區掛載到掛載點目錄,請執行下列命令:
sudo mount -o nouuid /dev/xvdf1 /mnt/rescue
**注意:**將 /dev/xvdf1 替換為您的裝置名稱。 若要開啟 /etc/fstab 檔案,請執行下列命令:
sudo vi /mnt/rescue/etc/fstab
- 編輯 /etc/fstab 中的項目。以下範例顯示了兩個使用 UUID 定義的 Amazon EBS 磁碟區。這兩個次要磁碟區都新增了 nofail 選項,並且每個項目的最後一欄為 0:
$ cat /etc/fstab UUID=e75a1891-3463-448b-8f59-5e3353af90ba / xfs defaults,noatime 1 0 UUID=ce917c0c-9e37-4ae9-bb21-f6e5022d5381 /mnt ext4 defaults,noatime,nofail 1 0
- 儲存檔案,然後執行以下命令卸載該磁碟區:
sudo umount /mnt/rescue
- 從救援執行個體中分離磁碟區。
- 將磁碟區附加到原始執行個體。
- 若要確認是否可以啟動該執行個體,請啟動執行個體。
- 語言
- 中文 (繁體)

相關內容
- 已提問 1 年前
- 已提問 1 年前
- 已提問 2 年前
- 已提問 3 年前
AWS 官方已更新 9 個月前