

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 VM Import/Export 進行故障診斷
<a name="vmimport-troubleshooting"></a>

當您匯入或匯出虛擬機器 (VM) 時，大多數錯誤都是因為嘗試執行不支援的動作而發生。為了避免這些錯誤，請務必仔細查看需求和限制。

匯入任務可能會在完成之前停止，然後失敗。您可以收集因失敗而似乎已停止的匯入任務詳細資訊，然後再變更為 `completed` 狀態。若要收集此類詳細資訊，請針對您用來描述進行中轉換任務詳細資訊的匯入操作使用適當的命令：
+ **ImportInstance** 和 **ImportVolume** – 使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeConversionTasks.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeConversionTasks.html)操作。
+ **ImportImage** – 使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImportImageTasks.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImportImageTasks.html)操作。
+ **ImportSnapshot** – 使用 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImportSnapshotTasks.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImportSnapshotTasks.html)操作。

**Topics**
+ [匯入影像錯誤](#import-image-errors)
+ [匯入執行個體錯誤](#import-instance-errors)
+ [VM Export 錯誤](#instance-export-errors)
+ [Windows VM 錯誤](#windows-vm-errors)
+ [Linux VM 錯誤](#linux-vm-errors)

## 匯入影像錯誤
<a name="import-image-errors"></a>

**錯誤代碼：InvalidParameter，錯誤訊息：訊息：參數 disk-image-size=0 的格式無效**  
不支援指定的映像格式。請使用下列其中一種受支援的映像格式來重試操作：VHD、VHDX、VMDK 或 raw。

**呼叫 CreateRole 操作時發生客戶端錯誤 (MalformedPolicyDocument)：策略中的語法錯誤**  
您必須在政策文件名稱前加上 `file://` 字首。

**ClientError：磁碟驗證失敗 [OVF 檔案剖析錯誤:不支援含區塊磁碟檔案的 OVA]**  
VM Import/Export 不支援匯入分隔為多個檔案的磁碟。檢查磁碟格式，然後將 VM 磁碟做為單一檔案重試該作業。

**ClientError：磁碟驗證失敗 【不支援的 VMDK 檔案格式】**  
VMDK 檔案必須經過串流最佳化。如需詳細資訊，請參閱[VM Import/Export 支援的影像格式](prerequisites.md#vmimport-image-formats)。

**ClientError：找到多個不同的 grub/menu.lst 檔案**  
VM Import/Export 在匯入任務期間找到下列至少一個項目的重複檔案：`grub.cfg`、 `grub.conf`或 `menu.lst`。不支援具有雙開機組態VMs。如需詳細資訊，請參閱[使用 VM Import/Export 匯入資源的限制](limitations-image-importing.md)。

**服務角色 `vmimport` 不存在，或沒有足夠的權限可讓該服務繼續進行**  
VM Import 服務角色遺失或不正確。如果嘗試開始匯入的使用者、小組或角色對於 Amazon EC2 資源沒有足夠存取權限，也會收到這個錯誤。  
如果任何呼叫 `ImportImage` 的使用者擁有 `Decrypt` 許可，但 `vmimport` 角色沒有，也會發生此錯誤。如果您使用[伺服器端加密搭配 AWS KMS受管金鑰 (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) 來保護 Amazon S3 中的靜態資料，則需要將額外的`Decrypt`許可指派給您的服務角色，如下列 JSON 程式碼所示：

```
{
   "Sid":"Allow vmimport to decrypt SSE-KMS key",
   "Effect":"Allow",
   "Principal":{
      "AWS":[
         "arn:aws:iam::accountid:role/vmimport"
      ]
   },
   "Action":[
      "kms:Decrypt"
   ],
   "Resource":"*"
}
```

## 匯入執行個體錯誤
<a name="import-instance-errors"></a>

**錯誤代碼：InvalidParameter，錯誤訊息：訊息：參數 disk-image-size=0 的格式無效**  
不支援指定的映像格式。請使用下列其中一種受支援的映像格式來重試操作：OVA、VHD、VMDK 或 raw。

**客戶。不支援：找不到可啟動分割區。(服務：AmazonEC2；狀態代碼：400；錯誤代碼：Unsupported；請求 ID：<RequestID>)**  
根磁碟區以 GUID 磁碟分割表格 (GPT) 分割。不支援以 GPT 分割的磁碟區。請將根磁碟區轉換為 MBR 分割區，然後再試一次。

**客戶端錯誤：頁腳不相同**  
您嘗試匯入差異 VHD，或者在建立 VHD 時發生錯誤。請再次匯入 VM，並重試將其匯入 Amazon EC2。

**客戶端錯誤：未壓縮的資料長度無效**  
VMDK 檔案已毀損。您可以嘗試修復或重新建立 VMDK 檔案，或使用其他檔案。

**錯誤：儲存貯體 <MyBucketName> 不在 <RegionName> 區域中，而在 <RegionName> 中**  
Amazon Simple Storage Service (Amazon S3) 儲存貯體與您要匯入 AWS 區域 的執行個體不同。請嘗試新增 `--ignore-region-affinity` 選項，這會忽略儲存貯體的區域是否符合建立匯入任務的區域。您也可以使用 Amazon Simple Storage Service 主控台建立 S3 儲存貯體，並將 區域設定為您要匯入 VM 的區域。再次執行命令，並指定您剛建立的新儲存貯體。

**錯誤：檔案使用不支援的壓縮演算法 0**  
VMDK 是使用 OVA 格式建立的，而非 OVF 格式。請以 OVF 格式建立 VMDK。

**S3 來源位置無效**  
命令語法或 S3 儲存貯體名稱不正確。在適用於 VM Import 的適當區域中建立 S3 儲存貯體，並將 VM 檔案上傳至儲存貯體的根目錄。

**給定的 S3 儲存貯體不是該區域的本地儲存貯體**  
用於 VM Import 的 S3 儲存貯體必須位於您要匯入 VM 的相同 AWS 區域 位置。

**ClientError：不明作業系統/缺少作業系統檔案**  
作業系統無法辨識。確認您的作業系統已在 VM Import/Export [您使用 VM Import/Export 匯入的資源需求](prerequisites.md) 中列為支援。

## VM Export 錯誤
<a name="instance-export-errors"></a>

**Client.UnsupportedOperation：此執行個體附加了多個磁碟區。Please remove additional volumes.**  
分離根磁碟區以外的磁碟區，然後再試一次。如果您需要磁碟區中的資料，可以將其複製到根磁碟區或將磁碟區匯入 Amazon EBS。

**Client.NotExportable：只能匯出匯入的執行個體。(服務：AmazonEC2；狀態代碼：400；錯誤代碼：NotExportable；請求 ID：<RequestID>)**  
您只能匯出特定執行個體。如需詳細資訊，請參閱[匯出執行個體的考量事項](vmexport-limits.md)。

**啟動執行個體時發生錯誤：無效的值 <instance ID> for instanceId。實例沒有在根目錄 (/dev/sda1) 附加磁碟區。**  
您嘗試在 VM Import 程序和所有轉換任務完成之前啟動執行個體。請等候 VM Import 程序和所有轉換任務徹底完成，然後再啟動執行個體。

**呼叫 CreateInstanceExportTask 作業時發生錯誤 (InvalidParameter)：指定的 S3 物件不是區域的本機物件。**  
EC2 執行個體與 S3 儲存貯體必須在相同的 AWS 區域區域。您還必須確保命令 `create-instance-export-task` 與要匯出的資源在相同的區域中執行。請使用 `--region` 參數指定區域。如需詳細資訊，請參閱[AWS CLI 用戶指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list)的*AWS Command Line Interface 《支援 全域命令列選項》*。

## Windows VM 錯誤
<a name="windows-vm-errors"></a>

### 客戶端錯誤：引導程式網路故障/執行個體無法存取。請安裝 .Net Framework 3.5 SP1 或更高版本後重試。
<a name="ClientErrorBooterNetworkingFailure"></a>

EC2 Config 服務需要 Microsoft .NET Framework 3.5 Service Pack 1 或更新版本。請在 Windows VM 上安裝 Microsoft .NET Framework 3.5 Service Pack 1 或更新版本，然後再試一次。

### 首次啟動失敗：此匯入要求失敗，因為 Windows 執行個體無法啟動並建立網路連線。
<a name="FirstBootFailures"></a>

當您收到 `FirstBootFailure` 錯誤訊息，表示您的虛擬磁碟映像無法執行以下其中一個步驟：
+ 開機和啟動 Windows。
+ 安裝 Amazon EC2 網路和磁碟驅動程式。
+ 使用 DHCP 設定網路界面來擷取 IP 地址。
+ 使用 Amazon EC2 Windows 大量授權啟動 Windows。

以下最佳實務可協助您避免 Windows 初次開機失敗：
+ **停用防毒軟體、反間諜軟體及防火牆** — 這些軟體類型會阻止安裝新的 Windows 服務或驅動程式，或阻止未知二進位檔執行。軟體和防火牆可以在匯入後重新啟用。
+ **不要強化您的作業系統** — 安全組態(有時稱為強化)會阻止自動安裝 Amazon EC2 驅動程式。有許多 Windows 組態設定會阻止匯入。這些設定可在匯入後重新套用。
+ **停用或刪除多個可開機磁碟區**-如果您的虛擬機器開機並要求您選擇要使用哪個開機分割區，則匯入可能會失敗。

虛擬磁碟映像無法啟動並建立網路連線可能是由於以下任何原因：

**TCP/IP 聯網和 DHCP 未啟用**  
**原因**：TCP/IP 聯網和 DHCP 必須啟用。  
**解決方法**：確保已啟用 TCP/IP 聯網。如需詳細資訊，請參閱 Microsoft 支援網站上的[變更 TCP/IP 設定](https://support.microsoft.com/en-us/help/15089/windows-change-tcp-ip-settings)。確認 DHCP 已啟用。如需詳細資訊，請參閱 Microsoft 網站上的[動態主機組態通訊協定 (DHCP)](https://docs.microsoft.com/en-us/windows-server/networking/technologies/dhcp/dhcp-top)。

**已安裝 Hyper-V 伺服器角色**  
**原因**：不支援匯入安裝了 Hyper-V 角色的虛擬機器。  
**解決方案**：從虛擬機器移除 Hyper-V 角色，然後再次嘗試匯入。

**虛擬機器上缺少 Windows 所需的磁碟區。**  
**原因**：將 VM 匯入 Amazon EC2 只會匯入開機磁碟，在匯入虛擬機器之前所有其他磁碟都必須先分離且 Windows 必須能夠開機。例如，Active Directory 通常將 Active Directory 資料庫存放在 `D:\` 磁碟機。如果 Active Directory 資料庫遺失或無法存取，則網域控制站無法開機。  
**解決方法**：在匯出前分離連接到 Windows VM 的所有次要和網路磁碟。將任何 Active Directory 資料庫從次要磁碟機或分割區移動到主要 Windows 分割區。如需詳細資訊，請參閱 Microsoft 支援網站上的[當您啟動 Windows 或 SBS 型網域控制站時，出現「無法啟動目錄服務」錯誤訊息](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/0xc00002e1-error-start-domain-controller)。

**Windows 總是開機進入系統復原選項**  
**原因**：Windows 會因多種原因而開機進入系統復原選項，包括將 Windows 從實體機器提取進入虛擬化環境 (也稱為物理到虛擬（P2V）轉換過程)。  
**解決方法**：確保在匯出和準備匯入之前，Windows 會開機進入登入提示畫面。請勿匯入來自實體機器的虛擬化 Windows 執行個體。

**虛擬機器是使用實體到虛擬(P2V)轉換過程建立的**  
**原因**：在實體機器上執行 Windows 安裝程序而建立磁碟映像，接著將 Windows 安裝複本匯入到 VM 時，會發生 P2V 轉換。VM Import/Export 不支援做為 P2V 轉換結果而建立的 VM。VM Import/Export 僅支援來源 VM 中原生安裝的 Windows 映像。  
**解決方法**：在虛擬化環境中安裝 Windows 然後將您已安裝的軟體遷移到這個新的 VM。

**Windows 啟用失敗**  
**原因**：在開機期間，Windows 會偵測硬體變更並嘗試啟用。在匯入程序中，我們會嘗試將 Windows 中的授權機制切換為 Amazon Web Services 提供的大量授權。不過，如果 Windows 啟用程序不成功，匯入會失敗。  
**解決方法**：確保您要匯入的 Windows 版本支援大量授權。Windows 的搶鮮版 (Beta) 或預覽版可能不支援。

**找不到可開機磁碟區**  
**原因**：在虛擬機器的匯入程序中，我們找不到開機分割區。  
**解決方法**：確保您要匯入的磁碟具有開機分割區。

## Linux VM 錯誤
<a name="linux-vm-errors"></a>

**客戶端錯誤：無效配置 - 無法讀取 fstab**  
不支援具有雙開機磁碟區或多個`/etc`目錄的 Linux VMs。

**客戶端錯誤：找到 BLSC 樣式 GRUB，但無法偵測到預設核心**  
VM Import/Export 無法偵測到預設核心。當它被移出主要 `grub.cfg` 檔案時，可能會發生這種情況。您可以將組態設定為 `$saved_entry`，並確保 `grubenv` 包含該 `bootloader` 項目作為預設值。

**客戶端錯誤：我們無法讀取您匯入的 initramfs/initrd，因此無法確定您的匯入需要在 EC2 中執行的驅動程式**  
在匯入 Linux VM 以便準備將其作為 Amazon EC2 中的執行個體執行時，我們無法讀取必要的檔案。您可以執行此 `lsinitramfs` 命令來驗證檔案的完整性。例如，您可以使用下列 命令：  

```
lsinitramfs /boot/initrd.img-5.4.0-77-generic 2>&1 | less
```
如果輸出中傳回錯誤，您可以嘗試重建 `initramfs` 檔案以解決問題，然後再次匯入 VM。

**客戶端錯誤：不支援的配置 - 邏輯磁碟區組啟動失敗 **  
虛擬磁碟映像上的邏輯磁碟區無法啟用。這可能表示檔案或磁碟損毀。請驗證上傳的磁碟映像檔案。

**客戶端錯誤： Unsupported configuration - Multiple directories found**  
不支援使用多重開機磁碟區或多重 `/etc` 目錄的 Linux VM。

**客戶端錯誤：未受支援的核心版本**  
不支援作業系統使用的核心版本。確認您的匯入符合作業系統列出的要求。如需詳細資訊，請參閱[VM Import/Export 支援的作業系統](prerequisites.md#vmimport-operating-systems)。

**請求的執行個體不支援 Linux**  
Linux VM 可以匯入至特定的執行個體類型。請使用下列其中一個支援的執行個體類型，再試一次。  
+ 一般用途：`t2.micro` \$1 `t2.small` \$1 `t2.medium` \$1 `m3.medium` \$1 `m3.large` \$1 `m3.xlarge` \$1 `m3.2xlarge`
+ 運算優化：`c3.large` \$1 `c3.xlarge` \$1 `c3.2xlarge` \$1 `c3.4xlarge` \$1 `c3.8xlarge` \$1 `cc1.4xlarge` \$1 `cc2.8xlarge`
+ 記憶體優化：`r3.large` \$1 `r3.xlarge` \$1 `r3.2xlarge` \$1 `r3.4xlarge` \$1 `r3.8xlarge` \$1 `cr1.8xlarge`
+ 儲存最佳化：`i2.xlarge` \$1 `i2.2xlarge` \$1 `i2.4xlarge` \$1 `i2.8xlarge` \$1 `hi1.4xlarge` \$1 `hi1.8xlarge`