選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

將執行個體儲存體支援的 AMI 轉換為 EBS 支援的 AMI

焦點模式
將執行個體儲存體支援的 AMI 轉換為 EBS 支援的 AMI - Amazon Elastic Compute Cloud

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

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

您可將擁有的執行個體後端 Linux AMI 轉換為 Amazon EBS 後端 Linux AMI。

重要

您無法轉換不屬於您的 AMI。

將執行個體後端 AMI 轉換為 Amazon EBS 後端 AMI
  1. 從 Amazon EBS 後端 AMI 啟動 Amazon Linux 執行個體。如需詳細資訊,請參閱使用主控台中的啟動執行個體精靈,啟動 EC2 執行個體。Amazon Linux 執行個體已預先安裝 AWS CLI 和 AMI 工具。

  2. 請將您用來組合執行個體後端 AMI 的 X.509 私有金鑰上傳至您的執行個體。此金鑰是用來確定只有您與 Amazon EC2 可存取您的 AMI。

    1. 在執行個體上為 X.509 私有金鑰建立如下的暫時目錄:

      [ec2-user ~]$ mkdir /tmp/cert
    2. 使用 scp 等安全複製工具從電腦上將 X.509 私有金鑰複製到執行個體上的 /tmp/cert 目錄內。以下命令中的 my-private-key 參數為用來透過 SSH 連接執行個體的私有金鑰。例如:

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/ pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00
  3. 設定環境變數以使用 AWS CLI。如需詳細資訊,請參閱環境變數

    1. (建議) 為您的 AWS 存取金鑰、私密金鑰和工作階段權杖設定環境變數。

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key [ec2-user ~]$ export AWS_SESSION_TOKEN=your_session_token
    2. 為您的 AWS 存取金鑰和私密金鑰設定環境變數。

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
  4. 為新的 AMI 準備 Amazon Elastic Block Store (Amazon EBS) 磁碟區。

    1. 使用 create-volume 命令在與您執行個體相同的可用區域中建立空的 EBS 磁碟區。記下命令輸出中的磁碟區 ID。

      重要

      此 EBS 磁碟區的大小必須等於或大於原本的執行個體存放區根磁碟區。

      [ec2-user ~]$ aws ec2 create-volume --size 10 --region us-west-2 --availability-zone us-west-2b
    2. 使用 attach-volume 命令將磁碟區連接到您的 Amazon EBS 後端執行個體。

      [ec2-user ~]$ aws ec2 attach-volume --volume-id volume_id --instance-id instance_id --device /dev/sdb --region us-west-2
  5. 建立您的 bundle 資料夾。

    [ec2-user ~]$ mkdir /tmp/bundle
  6. 使用 /tmp/bundle 命令將執行個體後端 AMI 的 bundle 下載至 ec2-download-bundle

    [ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
  7. 使用 ec2-unbundle 命令從 bundle 重新建構映像檔。

    1. 將目錄變更為 bundle 資料夾。

      [ec2-user ~]$ cd /tmp/bundle/
    2. 執行 ec2-unbundle 命令。

      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
  8. 從解開映像將檔案複製到新的 EBS 磁碟區。

    [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
  9. 探測磁碟區中是否有任何解開的新分割區。

    [ec2-user bundle]$ sudo partprobe /dev/sdb1
  10. 列出區塊型儲存設備,以找出要掛載的設備名稱。

    [ec2-user bundle]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 202:0 0 8G 0 disk └─/dev/sda1 202:1 0 8G 0 part / /dev/sdb 202:80 0 10G 0 disk └─/dev/sdb1 202:81 0 10G 0 part

    在此範例中,要掛載的分割區為 /dev/sdb1,但您的設備名稱可能不同。如果磁碟區尚未分割,要掛載的設備會類似 /dev/sdb (沒有設備分割區尾碼)。

  11. 為新的 EBS 磁碟區建立掛載點,然後掛載磁碟區。

    [ec2-user bundle]$ sudo mkdir /mnt/ebs [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
  12. 用您偏好的文字編輯器 (例如 /etc/fstabvim) 在 EBS 磁碟區上開啟 nano 檔案,並移除執行個體 (暫時性) 存放磁碟區的任何項目。EBS 磁碟區掛載於 /mnt/ebs,因此 fstab 檔案位於 /mnt/ebs/etc/fstab

    [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab # LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig 0 2

    在此範例中,應該移除最後一行。

  13. 卸載磁碟區,並從執行個體分離。

    [ec2-user bundle]$ sudo umount /mnt/ebs [ec2-user bundle]$ aws ec2 detach-volume --volume-id volume_id --region us-west-2
  14. 從新的 EBS 磁碟區建立 AMI,如下所示。

    1. 建立新 EBS 磁碟區的快照。

      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id volume_id
    2. 檢查快照是否完整。

      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snapshot_id
    3. 使用 describe-images 命令找出原始 AMI 的處理器架構、虛擬化類型與核心映像 (aki)。在此步驟中,您需要擁有原始執行個體後端 AMI 的 AMI ID。

      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-id --output text IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3 ami-8ef297be amazon available public machine aki-fc8f11cc instance-store paravirtual xen

      在此範例中,其架構為 x86_64,核心映像 ID 為 aki-fc8f11cc。請將這些數值使用在下列步驟。如果上述命令的輸出也列出 ari ID,請將其記下。

    4. 使用新 EBS 磁碟區的快照 ID 和先前步驟中的數值登錄您的新 AMI。如果先前的命令輸出列出 ari ID,請用 --ramdisk-id ari_id 將其加入到下列命令。

      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snapshot_id} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
  15. (選用) 確認可以從新 AMI 啟動執行個體後,您便能刪除為此程序建立的 EBS 磁碟區。

    aws ec2 delete-volume --volume-id volume_id
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。