我將 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體變更為 Nitro 型執行個體,現在它無法啟動。
簡短描述
由於以下原因,將 Linux 執行個體變更為 Nitro 型執行個體後,它可能無法啟動:
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
移轉前自動檢查先決條件
若要在將 Xen 執行個體移轉到 Nitro 時自動檢查先決條件,請執行 AWSSupport-MigrateXenToNitroLinux AWS Systems Manager Automation 執行手冊。
或者,在將執行個體類型變更為 Nitro 之前,執行 nitro_check_script.sh 指令碼,以檢查先決條件。若要存取該指令碼,請參閱 GitHub 網站上的 nitro_check_script.sh。如需指令碼檢查內容的詳細資訊,請參閱 GitHub 網站上的 NitroInstanceChecks。
若要下載 nitro_check_script.sh 指令碼,請執行下列命令:
sudo wget https://raw.githubusercontent.com/awslabs/aws-support-tools/refs/heads/master/EC2/NitroInstanceChecks/nitro_check_script.sh -O /tmp/nitro_check_script.sh
若要授予您的環境執行指令碼的權限,請執行以下命令:
sudo chmod +x /tmp/nitro_check_script.sh
若要以根權限執行指令碼,請執行下列命令:
sudo bash /tmp/nitro_check_script.sh
**注意:**您必須以根使用者身分或使用 sudo 執行該指令碼。否則,您會收到 "This script must be run as root" (此指令碼必須以根身分執行) 錯誤訊息。
若要手動檢查先決條件,請執行下列動作。
確認您是否啟用了增強型網路並安裝了 ENA 驅動程式
測試您是否在執行個體上啟用了增強型網路。如果您的執行個體沒有 enaSupport 屬性,則啟用增強型網路。
若要檢查是否安裝了 ENA 驅動程式,請執行以下命令:
sudo modinfo ena |grep -i '^version:' || echo "ENA module not available, try modprobe ena"
如果您沒有安裝 ENA 驅動程式,請為您的 EC2 Windows 執行個體安裝 ENA 驅動程式。若要為 Linux 執行個體安裝 ENA 驅動程式,請參閱 GitHub 網站上的彈性網路介面卡 (ENA) 系列的 Linux 核心驅動程式。
安裝 NVMe 驅動程式
若要存取 NVMe 磁碟區,您必須安裝 NVMe 驅動程式。
檢查是否在 /etc/fstab 檔案中為掛載點使用了裝置名稱
若要檢查您是否使用了 UUID,請執行以下命令:
cat /etc/fstab |grep -iP 'uuid|dev/'
輸出範例:
UUID=90e29211-2de8-4967-b0fb-16f51a6e464c / xfs defaults,noatime 1 1
如果您未使用 UUID,請執行下列命令以擷取裝置名稱的 UUID:
lsblk -f device_name |tail -n 1 |awk '{print $4}'
**注意:**將 device_name 替換為您的裝置名稱。
輸出範例:
90e29211-2de8-4967-b0fb-16f51a6e464c
最佳做法是在編輯 /etc/fstab 檔案之前,執行以下命令來複製該檔案:
sudo cp /etc/fstab /etc/fstab-`date +%d%m%Y`
執行以下命令開啟 /etc/fstab 檔案:
cat /etc/fstab
然後,將裝置名稱替換為 UUID:
/dev/nvme0n1p1 / xfs defaults,noatime 1 1
**注意:**將 /dev/nvme0n1p1 替換為 UUID。
若要確認您是否正確更新了檔案,請重新執行 cat /etc/fstab 命令。輸出範例:
UUID=90e29211-2de8-4967-b0fb-16f51a6e464c / xfs defaults,noatime 1 1
確定您已將所有裝置名稱替換為 UUID。然後,停止您的執行個體。將執行個體變更為 Nitro 型執行個體,然後啟動該執行個體。