

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

# Amazon EC2 執行個體上磁碟區的區塊型儲存設備映射
<a name="block-device-mapping-concepts"></a>

您啟動的每個執行個體均有一個相關聯的根磁碟區，這可能是 Amazon EBS 磁碟區或執行個體儲存體磁碟區。您可以使用區塊型儲存設備映射，來指定執行個體啟動時要連接的其他 EBS 磁碟區或執行個體儲存體磁碟區。您也可以將其他的 EBS 磁碟區連接到執行中的執行個體。但是，唯一能將執行個體儲存體磁碟區連接至執行個體的方式，就是使用區塊型儲存設備映射來連接磁碟區，如同執行個體啟動時一樣。

**Topics**
+ [區塊型儲存設備映射概念](#block-device-mapping-def)
+ [將區塊型儲存設備映射新增至 AMI](ami-block-device-mapping.md)
+ [將區塊型儲存設備映射新增至 Amazon EC2 執行個體](instance-block-device-mapping.md)

## 區塊型儲存設備映射概念
<a name="block-device-mapping-def"></a>

*區塊型儲存設備*是一種儲存設備，它可依位元組或位元 (區塊) 的順序移動資料。這些裝置支援隨機存取，且通常使用緩衝 I/O。例如硬碟、CD-ROM 光碟機和快閃磁碟機。區塊型設備可實際連接至電腦，或如同實際連接至電腦一般進行遠端存取。

Amazon EC2 支援兩種類型的區塊型設備：
+ 執行個體存放磁碟區 (基礎硬體實際連接到執行個體主機電腦的虛擬設備)
+ EBS 磁碟區 (遠端儲存設備)

*區塊型設備映射*定義要連接到執行個體的區塊型儲存設備 (執行個體存放磁碟區和 EBS 磁碟區)。您可在建立 AMI 時指定區塊型設備映射，如此從 AMI 啟動的所有執行個體都會使用該映射。或者，也可在啟動執行個體時指定區塊型設備映射，則此映射將覆寫啟動執行個體之 AMI 中指定的映射。請注意，某一執行個體類型支援的所有 NVMe 執行個體存放磁碟區會在執行個體啟動時自動列舉，並獲指派設備名稱；將這些磁碟區加入區塊型設備映射中並無作用。

**Topics**
+ [區塊型儲存設備映射項目](#parts-of-a-block-device-mapping)
+ [區塊型儲存設備映射執行個體存放區 Caveat](#instance_store_caveats)
+ [區塊型儲存設備映射範例](#block-device-mapping-ex)
+ [如何在作業系統中將設備變為可用](#bdm-to-os)

### 區塊型儲存設備映射項目
<a name="parts-of-a-block-device-mapping"></a>

建立區塊型設備映射時，您需為要連接至執行個體的每個區塊型儲存設備指定下列資訊：
+ Amazon EC2 內使用的裝置名稱。執行個體的區塊型儲存設備驅動程式，會在掛載磁碟區時指派實際的磁碟區名稱。指派的名稱可能和 Amazon EC2 建議的名稱不一樣。如需詳細資訊，請參閱 [Amazon EC2 執行個體上磁碟區的裝置名稱](device_naming.md)。

對於執行個體存放區磁碟區，您也可以指定下列資訊：
+ 虛擬裝置：`ephemeral[0-23]`。請注意，可供執行個體使用的執行個體存放磁碟區數量和大小，根據執行個體類型而異。

對於 NVMe 執行個體存放區磁碟區，也適用下列資訊：
+ 這些磁碟區會自動列舉，並獲指派設備名稱；將這些磁碟區加入區塊型設備映射中並無作用。

對於 EBS 磁碟區，您也可以指定下列資訊：
+ 用於建立區塊型儲存設備之快照的 ID (snap-*xxxxxxxx*)。若已指定磁碟區大小，則此值是選用的。無法指定已封存快照的 ID。
+ 磁碟區的大小 (GiB)。指定的大小必須大於或等於指定快照的大小。
+ 是否在執行個體終止時刪除磁碟區 (`true` 或 `false`)。根磁碟區的預設值為 `true`，連接磁碟區的預設值為 `false`。建立 AMI 時，其區塊型設備映射會從執行個體繼承此設定。啟動執行個體時，其會從 AMI 繼承此設定。
+ 磁碟區類型對於一般用途 SSD 為 `gp2` 和 `gp3`，對於佈建 IOPS SSD 為 `io1` 和 `io2`，對於輸送量最佳化 HDD 為 `st1`，對於冷 HDD 為 `sc1`，對於磁帶為 `standard`。
+ 磁碟區支援的每秒輸入/輸出操作數 (IOPS)。(僅與 `io1` 和`io2` 磁碟區搭配使用。)
+ 有些執行個體類型支援多個 EBS 卡。您可以指定 EBS 卡索引，為要連接的磁碟區選取 EBS 卡。如需詳細資訊，請參閱[EBS 卡](ebs_cards.md#ebs_cards.title)。

### 區塊型儲存設備映射執行個體存放區 Caveat
<a name="instance_store_caveats"></a>

使用區塊型設備映射中有執行個體存放磁碟區的 AMIs 啟動執行個體時，有幾個注意事項。
+ 部分執行個體類型包含的執行個體存放磁碟區較多，有些執行個體類型則完全沒有執行個體存放磁碟區。如果您的執行個體類型支援一個執行個體存放磁碟區，而 AMI 有兩個執行個體存放磁碟區的映射，則執行個體將以一個執行個體存放磁碟區啟動。
+ 執行個體存放磁碟區只能在啟動時映射。您無法停止沒有執行個體存放磁碟區的執行個體 (例如 `t2.micro`)，請將執行個體變更為支援執行個體存放磁碟區的類型，然後重新啟動含執行個體存放磁碟區的執行個體。但您可從執行個體建立 AMI，並在支援執行個體存放磁碟區的執行個體類型上啟動，然後將這些執行個體存放磁碟區映射至執行個體。
+ 如果啟動有執行個體存放磁碟區映射的執行個體，接著停止執行個體，將其變更為執行個體存放磁碟區較少的執行個體類型，並重新啟動執行個體，則一開始啟動的執行個體存放磁碟區映射仍會出現在執行個體中繼資料內。但是，只有該執行個體類型支援的執行個體存放磁碟區數量上限可供執行個體使用。
**注意**  
停止執行個體時，執行個體存放磁碟區上的所有資料都會遺失。
+ 根據啟動時的執行個體存放區容量而定，除非於啟動時指定，否則 M3 執行個體啟動時可能會忽略 AMI 執行個體存放區的區塊型設備映射。您應在啟動時指定執行個體存放區的區塊型設備映射，即使要啟動的 AMI 在 AMI 內具有執行個體存放磁碟區映射，以確保執行個體存放磁碟區在執行個體啟動時可用。

### 區塊型儲存設備映射範例
<a name="block-device-mapping-ex"></a>

下圖顯示 EBS 後端執行個體的區塊型設備映射範例。其將 `/dev/sdb` 映射至 `ephemeral0`，並映射兩個 EBS 磁碟區，一個映射至 `/dev/sdh`，另一個映射至 `/dev/sdj`。亦顯示為根磁碟區 `/dev/sda1` 的 EBS 磁碟區。

![\[執行個體、執行個體存放磁碟區和 EBS 磁碟區之間的關係。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/block_device_mapping_figure.png)


請注意，此區塊型設備映射範例使用於本主題的命令和 API 範例中。您可在[指定 AMI 的區塊型儲存裝置對應](ami-block-device-mapping.md#create-ami-bdm)和[啟動執行個體時更新區塊型儲存裝置對應](instance-block-device-mapping.md#Using_OverridingAMIBDM)中找到建立區塊型設備映射的命令和 API 範例。

### 如何在作業系統中將設備變為可用
<a name="bdm-to-os"></a>

Amazon EC2 使用 `/dev/sdh` 和 `xvdh` 等設備名稱來描述區塊型儲存設備。Amazon EC2 使用區塊型設備映射來指定要連接到 EC2 執行個體的區塊型儲存設備。區塊型儲存設備連接至執行個體之後，作業系統必須掛載儲存設備，接著方可供存取。區塊型儲存設備與執行個體分離之後，作業系統會卸載儲存設備，於是便無法再存取。

**Linux 執行個體** – 執行個體第一次啟動時，區塊型儲存設備映射中指定的設備名稱會映射至對應的區塊型儲存設備。執行個體類型將決定預設要格式化及掛載的執行個體存放磁碟區。您可在啟動時掛載額外的執行個體存放磁碟區，只要不超過執行個體類型可用的執行個體存放磁碟區數量即可。如需詳細資訊，請參閱 [EC 2 執行個體的執行個體儲存體暫時區塊儲存](InstanceStorage.md)。執行個體的區塊型儲存設備驅動程式決定格式化及掛載磁碟區時要使用的設備。

**Windows 執行個體** – 執行個體第一次啟動時，區塊型儲存設備映射中指定的設備名稱會映射至對應的區塊型儲存設備，然後 Ec2Config 服務將初始化並掛載磁碟機。根磁碟區將掛載為 `C:\`。執行個體存放磁碟區將掛載為 `Z:\`、`Y:\`，並以此類推。掛載 EBS 磁碟區時，其可用任何可用的磁碟機代號掛載。不過，您可設定指派磁碟機代號至 EBS 磁碟機的方式；如需詳細資訊，請參閱 [Amazon EC2 Windows 執行個體的 Windows 啟動代理程式](configure-launch-agents.md)。

# 將區塊型儲存設備映射新增至 AMI
<a name="ami-block-device-mapping"></a>

每個 AMI 皆有區塊型設備映射，其指定從 AMI 啟動時要連接至執行個體的區塊型儲存設備。若要新增更多區塊型儲存設備至 AMI，您必須建立自己的 AMI。

**Topics**
+ [指定 AMI 的區塊型儲存裝置對應](#create-ami-bdm)
+ [檢視 AMI 區塊型儲存裝置對應的 EBS 磁碟區](#view-ami-bdm)

## 指定 AMI 的區塊型儲存裝置對應
<a name="create-ami-bdm"></a>

有兩種方法可在建立 AMI 時指定除了根磁碟區以外的其他磁碟區。如果您從執行個體建立 AMI 之前已將磁碟區連接至執行中的執行個體，AMI 的區塊型設備映射將包含這些相同的磁碟區。如為 EBS 磁碟區，現有資料將儲存至新快照，而區塊型設備映射中將指定這個新快照。如為執行個體存放磁碟區，資料將不會保留。

如為 EBS 後端 AMI，您可用區塊型設備映射新增 EBS 磁碟區和執行個體存放磁碟區。如為 Amazon S3 支援的 AMI，您只能在登錄映像時修改映像工作資訊清單檔案中的區塊型儲存設備映射項目，以此方式來新增執行個體儲存體磁碟區。

**注意**  
如為 M3 執行個體，您必須在啟動時在執行個體的區塊型設備映射中指定執行個體存放磁碟區。啟動 M3 執行個體時，若未指定為執行個體區塊型設備映射，AMI 區塊型設備映射中指定的執行個體存放磁碟區將遭忽略。

------
#### [ Console ]

**將磁碟區新增至 AMI**

1. 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體並選取 **Actions (動作)**、**Image and templates (影像和範本)**、**Create image (建立影像)**。

1. 輸入影像的名稱和說明。

1. 執行個體磁碟區會出現在 **Instance volumes (執行個體磁碟區)** 下。若要新增其他磁碟區，請選擇 **Add volume (新增磁碟區) **。

1. 針對 **Volume Type (磁碟區類型)**，選擇一種磁碟區類型。對於**Device (裝置)**，請選擇裝置名稱。對於 EBS 磁碟區，您可以指定其他詳細資訊，例如：快照、磁碟區大小、磁碟區類型、IOPS 和加密狀態。

1. 選擇**建立映像**。

------
#### [ AWS CLI ]

**將磁碟區新增至 AMI**

使用 [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 命令，指定基於 EBS 的 AMI 的區塊型儲存設備映射。使用 [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) 命令，指定基於 Amazon S3 的 AMI 的區塊型儲存設備映射。

使用 `--block-device-mappings` 參數指定區塊型儲存設備映射。可以直接在命令列指定以 JSON 編碼的引數，或參考 JSON 檔案，如下所示。

```
--block-device-mappings file://mapping.json
```

若要新增執行個體存放磁碟區，請使用下列映射。請注意，會自動新增 NVMe 執行個體儲存體磁碟區。

```
{
    "DeviceName": "device_name",
    "VirtualName": "ephemeral0"
}
```

若要新增空的 100 GiB 磁碟區，請使用下列映射。

```
{
    "DeviceName": "device_name",
    "Ebs": {
      "VolumeSize": 100
    }
}
```

若要以快照為基礎新增 EBS 磁碟區，請使用下列映射。

```
{
    "DeviceName": "device_name",
    "Ebs": {
      "SnapshotId": "snap-1234567890abcdef0"
    }
}
```

若要省略設備的映射，請使用下列映射。

```
{
    "DeviceName": "device_name",
    "NoDevice": ""
}
```

------
#### [ PowerShell ]

使用 [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet，指定基於 EBS 的 AMI 的區塊型儲存設備映射。使用 [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) cmdlet，指定基於 Amazon S3 的 AMI 的區塊型儲存設備映射。

新增 `-BlockDeviceMapping` 選項，在 `bdm` 中指定更新：

```
-BlockDeviceMapping $bdm
```

下列範例根據快照，新增磁碟區。

```
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.SnapshotId = "snap-1234567890abcdef0"
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "device_name"
$bdm.Ebs = $ebd
```

以下映射會新增 100 GiB 的空磁碟區。

```
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.VolumeSize = 100
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "device_name"
$bdm.Ebs = $ebd
```

------

## 檢視 AMI 區塊型儲存裝置對應的 EBS 磁碟區
<a name="view-ami-bdm"></a>

您可輕鬆列舉 AMI 區塊型設備映射中的 EBS 磁碟區。

------
#### [ Console ]

**若要檢視 AMI 的 EBS 磁碟區**

1. 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **AMIs** (AMI)。

1. 從 **Filter (篩選條件)** 清單中選擇 **EBS images (EBS 映像)**，以顯示 EBS 後端 AMI 的清單。

1. 選取所要的 AMI，然後檢視 **Details (詳細資訊)** 索引標籤。根磁碟區至少具有以下資訊 (其中**根裝置**一詞等同於**根磁碟區**)：
   + **Root Device Type (根設備類型**)`ebs` ()
   + **Root Device Name (根設備名稱)** (例如，`/dev/sda1`)
   + **Block Devices (區塊型儲存設備)** (例如，`/dev/sda1=snap-1234567890abcdef0:8:true`)

   如果使用區塊型設備映射建立含額外 EBS 磁碟區的 AMI，**Block Devices (區塊型儲存設備)** 欄位也會顯示額外磁碟區的映射。(此畫面不會顯示執行個體存放磁碟區。)

------
#### [ AWS CLI ]

**若要檢視 AMI 的 EBS 磁碟區**  
使用 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Image[0].BlockDeviceMappings
```

------
#### [ PowerShell ]

**若要檢視 AMI 的 EBS 磁碟區**  
使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet。

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).BlockDeviceMappings
```

------

# 將區塊型儲存設備映射新增至 Amazon EC2 執行個體
<a name="instance-block-device-mapping"></a>

根據預設，您所啟動的執行個體包含啟動執行個體之 AMI 區塊型設備映射中指定的任何儲存設備。您可在啟動執行個體時指定變更執行個體的區塊型設備映射，這些更新將覆寫或合併 AMI 的區塊型設備映射。

**限制**
+ 如為根磁碟區，只能修改：磁碟區大小、磁碟區類型和 **Delete on Termination (在終止時刪除)** 旗標。
+ 修改 EBS 磁碟區時，您無法減少其大小。因此，您所指定的快照大小必須等於或大於 AMI 區塊型設備映射中的快照。

**Topics**
+ [啟動執行個體時更新區塊型儲存裝置對應](#Using_OverridingAMIBDM)
+ [更新執行中執行個體的區塊型儲存裝置對應](#update-instance-bdm)
+ [檢視執行個體區塊型儲存裝置對應的 EBS 磁碟區](#view-instance-bdm)
+ [檢視執行個體區塊型儲存裝置對應的執行個體存放區的磁碟區](#bdm-instance-metadata)

## 啟動執行個體時更新區塊型儲存裝置對應
<a name="Using_OverridingAMIBDM"></a>

您可在啟動執行個體時新增 EBS 磁碟區和執行個體存放磁碟區至執行個體。但請注意，更新執行個體的區塊型設備映射，不會永久變更啟動執行個體之 AMI 的區塊型設備映射。

------
#### [ Console ]

**若要在啟動時更新執行個體的磁碟區**

1. 遵循程序來[啟動執行個體](ec2-launch-instance-wizard.md)，但在完成下列步驟以更新磁碟區之前，請勿啟動執行個體。

1. (選用) 若要新增磁碟區，請選擇**設定儲存**、**新增新磁碟區**。選取磁碟區大小和磁碟區類型。

1. (選用) 若要隱藏由 AMI 的區塊型儲存設備映射指定的磁碟區，請選擇**設定儲存**、**移除**。

1. (選用) 若要修改 EBS 磁碟區的組態，請在**設定儲存**窗格中選擇**進階**。展開磁碟區的資訊，並進行任何所需變更。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**若要在啟動時更新執行個體的磁碟區**  
請使用 `--block-device-mappings` 選項並搭配 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。

```
--block-device-mappings file://mapping.json
```

例如，假設 AMI 區塊型儲存設備映射可指定下列內容：
+ `/dev/xvda` - EBS 根磁碟區
+ `/dev/sdh` - 從 `snap-1234567890abcdef0` 中建立的 EBS 磁碟區
+ `/dev/sdj` - 空白 EBS 磁碟區，大小為 `100`
+ `/dev/sdb` - 執行個體儲存體磁碟區 `ephemeral0`

假設以下是 `mapping.json` 中的執行個體區塊型儲存設備映射。

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "VolumeSize": 100
        }
    },
    {
        "DeviceName": "/dev/sdj",
        "NoDevice": ""
    },
    {
        "DeviceName": "/dev/sdh",
        "Ebs": {
            "VolumeSize": 300
        }
    },
    {
        "DeviceName": "/dev/sdc",
        "VirtualName": "ephemeral1"
    }
]
```

執行個體區塊型儲存設備映射會執行下列動作：
+ 覆寫根磁碟區的大小，`/dev/xvda`，將其增加到 100 GiB。
+ 防止 `/dev/sdj` 連接至執行個體。
+ 覆寫 `/dev/sdh` 的大小，將其增加到 300 GiB。請注意，不需要再次指定快照 ID。
+ 新增暫時性磁碟區，`/dev/sdc`。如果執行個體類型不支援多重執行個體儲存體磁碟區，這將沒有效果。如果執行個體類型支援 NVMe 執行個體儲存體磁碟區，會自動列舉這些磁碟區並包含在執行個體區塊型儲存設備映射中，且無法覆寫。

------
#### [ PowerShell ]

**若要在啟動時更新執行個體的磁碟區**  
搭配使用 `-BlockDeviceMapping` 參數與 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 以及 `-BlockDeviceMapping` 參數。

```
-BlockDeviceMapping $bdm
```

假設以下是 `$bdm` 中的執行個體區塊型儲存設備映射。

```
$bdm = @()

$root = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$root.DeviceName = "/dev/xvda"
$ebs1 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebs1.VolumeSize = 100
$root.Ebs = $ebs1
$bdm += $root

$sdj = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdj.DeviceName = "/dev/sdj"
$sdj.NoDevice = ""
$bdm += $sdj

$sdh = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdh.DeviceName = "/dev/sdh"
$ebs2 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebs2.VolumeSize = 300
$sdh.Ebs = $ebs2
$bdm += $sdh

$sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdc.DeviceName = "/dev/sdc"
$sdc.VirtualName = "ephemeral1"
$bdm += $sdc
```

執行個體區塊型儲存設備映射會執行下列動作：
+ 覆寫根磁碟區的大小，`/dev/xvda`，將其增加到 100 GiB。
+ 防止 `/dev/sdj` 連接至執行個體。
+ 覆寫 `/dev/sdh` 的大小，將其增加到 300 GiB。請注意，不需要再次指定快照 ID。
+ 新增暫時性磁碟區，`/dev/sdc`。如果執行個體類型不支援多重執行個體儲存體磁碟區，這將沒有效果。如果執行個體類型支援 NVMe 執行個體儲存體磁碟區，會自動列舉這些磁碟區並包含在執行個體區塊型儲存設備映射中，且無法覆寫。

------

## 更新執行中執行個體的區塊型儲存裝置對應
<a name="update-instance-bdm"></a>

您不需要為了變更屬性而停止執行個體。

------
#### [ AWS CLI ]

**若要更新執行中執行個體的區塊型儲存設備映射**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

新增 `--block-device-mappings` 選項：

```
--block-device-mappings file://mapping.json
```

在 `mapping.json` 中，指定更新。例如，下列更新會將根磁碟區變更為持續存在。

```
[
  {
    "DeviceName": "/dev/sda1",
    "Ebs": {
      "DeleteOnTermination": false
    }
  }
]
```

------
#### [ PowerShell ]

**若要更新執行中執行個體的區塊型儲存設備映射**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

新增 `-BlockDeviceMapping` 選項：

```
-BlockDeviceMapping $bdm
```

在 `bdm` 中，指定更新。例如，下列更新會將根磁碟區變更為持續存在。

```
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.DeleteOnTermination = false
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "/dev/sda1"
$bdm.Ebs = $ebd
```

------

## 檢視執行個體區塊型儲存裝置對應的 EBS 磁碟區
<a name="view-instance-bdm"></a>

您可輕鬆列舉映射至執行個體的 EBS 磁碟區。

------
#### [ Console ]

**若要檢視執行個體的 EBS 磁碟區**

1. 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並查看**儲存體**索引標籤中顯示的詳細資訊。根磁碟區至少具有以下資訊 (其中**根裝置**一詞等同於**根磁碟區**)：
   + **根裝置類型** (例如：** EBS**)
   + **Root device name (根裝置名稱)** (例如：`/dev/xvda`)
   + **區塊型儲存設備** (例如：`/dev/xvda`、`/dev/sdf` 和 `/dev/sdj`)

   如果執行個體是使用區塊型儲存裝置對應的其他 EBS 磁碟區來啟動，則其會顯示在 **Block devices (區塊型儲存裝置)**。任何執行個體存放區的磁碟區都不會顯示在此索引標籤上。

1. 若要顯示 EBS 磁碟區的其他資訊，請選擇其磁碟區 ID 以移至磁碟區頁面。

------
#### [ AWS CLI ]

**若要檢視執行個體的 EBS 磁碟區**  
使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[*].Instances[0].BlockDeviceMappings
```

------
#### [ PowerShell ]

**若要檢視執行個體的 EBS 磁碟區**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -InstanceId i-0bac57d7472c89bac).Instances.BlockDeviceMappings
```

------

## 檢視執行個體區塊型儲存裝置對應的執行個體存放區的磁碟區
<a name="bdm-instance-metadata"></a>

執行個體類型會決定執行個體可用執行個體儲存體磁碟區的數量和類型。如果區塊型設備映射中的執行個體存放磁碟區的數量，超過執行個體可用的執行個體存放磁碟區，請忽略額外的磁碟區。若要檢視執行個體的執行個體儲存體磁碟區，請執行 **lsblk**命令 (Linux 執行個體) 或開啟 **Windows Disk Management** (Windows 執行個體)。若要了每個解執行個體類型支援多少執行個體儲存體磁碟區，請參閱 [Amazon EC2 執行個體類型規格](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)。

檢視執行個體的區塊型設備映射時，您只會看見 EBS 磁碟區，而非執行個體存放磁碟區。您用來檢視執行個體的執行個體存放區磁碟區的方法取決於磁碟區類型。



### NVMe 執行個體存放區磁碟區
<a name="nvme-instance-store"></a>

#### Linux 執行個體
<a name="nvme-instance-store-linux"></a>

您可以使用 NVMe 命令列套件 ([nvme-cli](https://github.com/linux-nvme/nvme-cli)) 來查詢區塊型設備映射中的 NVMe 執行個體存放區磁碟區。在您的執行個體上下載並安裝套件，然後執行下列命令。

```
[ec2-user ~]$ sudo nvme list
```

以下是執行個體的範例輸出。Model (模型) 欄中的文字指出磁碟區是 EBS 磁碟區還是執行個體存放區磁碟區。在本範例中，`/dev/nvme1n1` 和 `/dev/nvme2n1` 是執行個體存放區磁碟區。

```
Node             SN                   Model                                    Namespace
---------------- -------------------- ---------------------------------------- ---------
/dev/nvme0n1     vol06afc3f8715b7a597 Amazon Elastic Block Store               1        
/dev/nvme1n1     AWS2C1436F5159EB6614 Amazon EC2 NVMe Instance Storage         1         
/dev/nvme2n1     AWSB1F4FF0C0A6C281EA Amazon EC2 NVMe Instance Storage         1         ...
```

#### Windows 執行個體
<a name="nvme-instance-store-windows"></a>

您可以使用磁碟管理或 PowerShell 同時列出 EBS 和執行個體儲存體 NVMe 磁碟區。如需詳細資訊，請參閱[將 Amazon EC2 Windows 執行個體上的 NVMe 磁碟映射至磁碟區](windows-list-disks-nvme.md)。

### HDD 或 SSD 執行個體存放區磁碟區
<a name="hdd-ssd-instance-store"></a>

您可以使用執行個體中繼資料來查詢區塊型設備映射中的 HDD 或 SSD 執行個體存放區磁碟區。不包含 NVMe 執行個體存放磁碟區。

執行個體中繼資料所有請求的基底 URI 為 `http://169.254.169.254/latest/`。如需詳細資訊，請參閱[使用執行個體中繼資料管理您的 EC2 執行個體](ec2-instance-metadata.md)。

#### Linux 執行個體
<a name="hdd-ssd-instance-store-linux"></a>

首先，連接至執行中的執行個體。從執行個體使用此查詢，取得其區塊型設備映射。

------
#### [ IMDSv2 ]

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/
```

------
#### [ IMDSv1 ]

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/
```

------

回應將包含執行個體的區塊型儲存設備名稱。例如，執行個體存放區支援的 `m1.small` 執行個體的輸出看起來如下。

```
ami
ephemeral0
root
swap
```

`ami` 設備是執行個體看到的根磁碟區。執行個體存放磁碟區將命名為 `ephemeral[0-23]`。`swap` 設備用於分頁檔。如果您也映射了 EBS 磁碟區，其將顯示為 `ebs1`、`ebs2` 等等。

若要取得區塊型設備映射中個別區塊型儲存設備的詳細資訊，請將其名稱附加到先前的查詢，如下所示。

------
#### [ IMDSv2 ]

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
```

------
#### [ IMDSv1 ]

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
```

------

#### Windows 執行個體
<a name="hdd-ssd-instance-store-windows"></a>

首先，連接至執行中的執行個體。從執行個體使用此查詢，取得其區塊型設備映射。

```
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/
```

回應將包含執行個體的區塊型儲存設備名稱。例如，執行個體存放區支援的 `m1.small` 執行個體的輸出看起來如下。

```
ami
ephemeral0
root
swap
```

`ami` 設備是執行個體看到的根磁碟區。執行個體存放磁碟區將命名為 `ephemeral[0-23]`。`swap` 設備用於分頁檔。如果您也映射了 EBS 磁碟區，其將顯示為 `ebs1`、`ebs2` 等等。

若要取得區塊型設備映射中個別區塊型儲存設備的詳細資訊，請將其名稱附加到先前的查詢，如下所示。

```
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
```