

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ユーザー提供カーネル
<a name="UserProvidedKernels"></a>

Amazon EC2 インスタンスでカスタムカーネルが必要な場合は、必要としているものに近い AMI を使用して開始し、インスタンスでカスタムカーネルをコンパイルして、新しいカーネルを参照するようにブートローダーを更新します。このプロセスは AMI が使用する仮想化タイプによって異なります。詳細については、*Amazon EC2 ユーザーガイド*」の[「Linux AMI 仮想化タイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)」を参照してください。

**Topics**
+ [HVM AMIs (GRUB)](#HVM_instances)
+ [AMIs の準仮想化 (PV-GRUB)](#Paravirtual_instances)

## HVM AMIs (GRUB)
<a name="HVM_instances"></a>

HVM インスタンスボリュームは実際の物理ディスクのように扱われます。起動プロセスは、パーティション分割ディスクとブートローダーを備えるベアメタルオペレーティングシステムの起動プロセスに似ています。ブートローダーでは、現在サポートされているすべての Linux ディストリビューションを使用できます。最も一般的なブートローダーは GRUB または GRUB2 です。

起動が遅くなるため、デフォルトでは GRUB はインスタンスのコンソールに出力を送信しません。詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスコンソール出力](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-unreachable-instance.html#instance-console-console-output)」を参照してください。カスタムカーネルをインストールする場合は、GRUB 出力を有効にすることを検討してください。

フォールバックカーネルを指定する必要はありません。ただし、新しいカーネルをテストする場合は、フォールバックを設定することをお勧めします。GRUB では、新しいカーネルにエラーがあった場合に別のカーネルにフォールバックできます。フォールバックカーネルを設定すると、新しいカーネルが見つからない場合でも、インスタンスを起動できます。

Amazon Linux 用のレガシー GRUB では `/boot/grub/menu.lst` を使用します。GRUB2 for AL2 は を使用します`/etc/default/grub`。ブートローダーでデフォルトカーネルを更新する方法の詳細については、ご使用の Linux ディストリビューションのドキュメントを参照してください。

## AMIs の準仮想化 (PV-GRUB)
<a name="Paravirtual_instances"></a>

準仮想化 (PV) 仮想化を使用する AMIs、起動プロセス中に *PV-GRUB* と呼ばれるシステムを使用します。PV-GRUB は、パッチが適用されたバージョンの GNU GRUB 0.97 を実行する準仮想化ブートローダーです。インスタンスを起動すると、PV-GRUB では起動プロセスが開始され、お客様のイメージの `menu.lst` ファイルが指定するカーネルがチェーンロードされます。

PV-GRUB は標準の `grub.conf` または `menu.lst` コマンドを認識しますこれにより、現在サポートされているすべての Linux ディストリビューションとともに利用できます。Ubuntu 10.04 LTS、Oracle Enterprise Linux、CentOS 5.x など、古いディストリビューションでは特別な「ec2」や「xen」カーネルパッケージが必要です。新しいディストリビューションでは、デフォルトのカーネルパッケージに必要なドライバーが含まれています。

最新の準仮想 AMI では、デフォルトで PV-GRUB AKI を使用します (Amazon EC2 Launch Wizard Quick Start メニューで利用できるすべての準仮想 Linux AMI が含まれています)。そのため、使用するカーネルにディストリビューションとの互換性がある場合、インスタンスで別のカーネルを使用するために必要な追加の手順はありません。インスタンスでカスタムカーネルを実行する最適な方法としては、必要としているものに近い AMI を使用して開始し、インタンスでカスタムカーネルをコンパイルして、そのカーネルを使用して起動するように `menu.lst` ファイルを変更します。

AMI のカーネルイメージが PV-GRUB AKI であることを確認できます。次の [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを実行して (ご使用のカーネルイメージ ID に置き換えます)、`Name` フィールドが `pv-grub` で始まっているかどうかを確認します。

```
aws ec2 describe-images --filters Name=image-id,Values=aki-880531cd
```

**Topics**
+ [PV-GRUB の制約事項](#pv-grub-limitations)
+ [Configuring GRUB](#configuringGRUB)
+ [Amazon PV-GRUB カーネルイメージ ID](#AmazonKernelImageIDs)
+ [PV-GRUB の更新](#UpdatingPV-GRUB)

### PV-GRUB の制約事項
<a name="pv-grub-limitations"></a>

PV-GRUB には次の制約事項があります。
+ PV-GRUB の 64 ビットバージョンを使用して 32 ビットカーネルを起動したり、PV-GRUB の 32 ビットバージョンを使用して 64 ビットカーネルを起動したりすることはできません。
+ PV-GRUB AKI の使用時には、Amazon ラムディスクイメージ (ARI) を指定できません。
+ AWS は、PV-GRUB が EXT2, EXT3, EXT4、XFS、ReiserFS のファイルシステム形式で動作することをテストおよび検証しました。その他のファイルシステム形式では動作しない場合があります。
+ PV-GRUB は、gzip、bzip2、lzo、xz 圧縮形式を利用して圧縮されたカーネルを起動できます。
+ Cluster AMI は PV-GRUB をサポートせず、また、必要としません。完全ハードウェア仮想化 (HVM) が使用されるためです。準仮想インスタンスは PV-GRUB を使用して起動します。一方、HVM インスタンスボリュームは実際のディスクのように扱われ、その起動プロセスはパーティション分割ディスクとブートローダーを備えるベアメタルオペレーティングシステムの起動プロセスに似ています。
+ PV-GRUB バージョン 1.03 以前では、GPT パーティショニングをサポートしません。MBR パーティショニングがサポートされています。
+ Amazon Elastic Block Store (Amazon EBS) で Logical Volume Manager (LVM) を使用する場合、LVM の外側に別の起動パーティションが必要です。その場合、LVM で論理ボリュームを作成できます。

### 準仮想化 AMIs 向けの GRUB の設定
<a name="configuringGRUB"></a>

PV-GRUB を起動するには、GRUB `menu.lst` ファイルがイメージに含まれている必要があります。このファイルの最も一般的な場所は `/boot/grub/menu.lst` です。

次の例は、PV-GRUB AKI を使用して AMI を起動する `menu.lst` 設定ファイルです。この例では、Amazon Linux 2018.03 (この AMI の元のカーネル) と Vanilla Linux 4.16.4 ([https://www.kernel.org/](https://www.kernel.org/) の Vanilla Linux カーネルの新しいバージョン) の 2 つのカーネルエントリが選択できます。Vanilla エントリは、この AMI の元々のエントリからコピーされました。`kernel` と `initrd` パスは新しい場所に更新されました。`default 0` パラメータは、ブートローダーをそれが検出した最初のエントリ (この場合、Vanilla エントリ) にポイントします。`fallback 1` パラメータは、最初のエントリの起動に問題が発生した場合、次のエントリにブートローダーをポイントします。

```
default 0
fallback 1
timeout 0
hiddenmenu

title Vanilla Linux 4.16.4
root (hd0)
kernel /boot/vmlinuz-4.16.4 root=LABEL=/ console=hvc0
initrd /boot/initrd.img-4.16.4

title Amazon Linux 2018.03 (4.14.26-46.32.amzn1.x86_64)
root (hd0)
kernel /boot/vmlinuz-4.14.26-46.32.amzn1.x86_64 root=LABEL=/ console=hvc0
initrd /boot/initramfs-4.14.26-46.32.amzn1.x86_64.img
```

`menu.lst` ファイルにフォールバックカーネルを指定する必要はありません。ただし、新しいカーネルをテストするときは、フォールバックを設定することをお勧めします。PV-GRUB では、新しいカーネルにエラーがあった場合に別のカーネルにフォールバックできます。フォールバックカーネルを設定すると、新しいカーネルが見つからない場合でもインスタンスを起動できます。

PV-GRUB は、次の場所で `menu.lst` をチェックします。その際、それが検出した最初の場所が利用されます。
+  `(hd0)/boot/grub` 
+  `(hd0,0)/boot/grub` 
+  `(hd0,0)/grub` 
+  `(hd0,1)/boot/grub` 
+  `(hd0,1)/grub` 
+  `(hd0,2)/boot/grub` 
+  `(hd0,2)/grub` 
+  `(hd0,3)/boot/grub` 
+  `(hd0,3)/grub` 

PV-GRUB 1.03 以前では、このリストの最初の 2 つの場所うちの 1 つのみがチェックされることに注意してください。

### Amazon PV-GRUB カーネルイメージ ID
<a name="AmazonKernelImageIDs"></a>

PV-GRUB AKI は、アジアパシフィック (大阪) を除くすべての Amazon EC2 リージョンで利用できます。32 ビットと 64 ビットの両方のアーキテクチャタイプに AKI があります。最新の AMI では、デフォルトで PV-GRUB AKI が使用されます。

すべてのバージョンの PV-GRUB AKI がすべてのインスタンスタイプと互換性があるとは限らないため、常に最新バージョンの PV-GRUB AKI を使用することをお勧めします。次の [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用し、現在のリージョンの PV-GRUB AKI のリストを取得します。

```
aws ec2 describe-images --owners amazon --filters Name=name,Values=pv-grub-*.gz
```

PV-GRUB は、`ap-southeast-2` リージョンで利用できる唯一の AKI です。このリージョンにコピーする AMI が、このリージョンで利用できる PV-GRUB のバージョンを使用していることを確認してください。

各リージョンの現在の AKI ID は次のとおりです。新しい AMI は、hd0 AKI を使用して登録します。

**注記**  
hd00 AKI は、以前に利用可能であったリージョンでの下位互換性のために引き続き提供されます。


**ap-northeast-1、アジアパシフィック (東京)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-f975a998  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-7077ab11  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**ap-southeast-1、アジアパシフィック (シンガポール) リージョン**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-17a40074  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-73a50110  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**ap-southeast-2、アジアパシフィック (シドニー)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-ba5665d9  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-66506305  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**eu-central-1、欧州 (フランクフルト)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-1419e57b  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-931fe3fc  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**eu-west-1、欧州 (アイルランド)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-1c9fd86f  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-dc9ed9af  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**sa-east-1、南米 (サンパウロ)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-7cd34110  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-912fbcfd  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**us-east-1、US East (N. Virginia)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-04206613  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-5c21674b  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**us-gov-west-1、 AWS GovCloud (米国西部)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-5ee9573f  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-9ee55bff  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**us-west-1、米国西部 (北カリフォルニア)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-43cf8123  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-59cc8239  |  pv-grub-hd0\$11.05-x86\$164.gz  | 


**us-west-2、米国西部 (オレゴン)**  

| イメージ ID | イメージ名 | 
| --- | --- | 
|  aki-7a69931a  |  pv-grub-hd0\$11.05-i386.gz  | 
|  aki-70cb0e10  |  pv-grub-hd0\$11.05-x86\$164.gz  | 

### PV-GRUB の更新
<a name="UpdatingPV-GRUB"></a>

すべてのバージョンの PV-GRUB AKI がすべてのインスタンスタイプと互換性があるとは限らないため、常に最新バージョンの PV-GRUB AKI を使用することをお勧めします。また、古いバージョンの PV-GRUB はすべてのリージョンで使用できるわけではないため、旧バージョンを使用する AMI を、そのバージョンをサポートしないリージョンにコピーした場合、カーネルのイメージを更新するまで、その AMI から起動されたインスタンスを起動できなくなります。次の手順を使用してインスタンスの PV-GRUB のバージョンを確認し、必要に応じて更新します。

**PV-GRUB のバージョンを確認するには**

1. インスタンスのカーネル ID を見つけます。

   ```
   aws ec2 describe-instance-attribute --instance-id instance_id --attribute kernel --region region
   
   {
       "InstanceId": "instance_id", 
       "KernelId": "aki-70cb0e10"
   }
   ```

   このインスタンスのカーネル ID は、`aki-70cb0e10` です。

1. このカーネル ID のバージョン情報を表示します。

   ```
   aws ec2 describe-images --image-ids aki-70cb0e10 --region region
   
   {
       "Images": [
           {
               "VirtualizationType": "paravirtual", 
               "Name": "pv-grub-hd0_1.05-x86_64.gz", 
               ...
               "Description": "PV-GRUB release 1.05, 64-bit"
           }
       ]
   }
   ```

   このカーネルイメージは PV-GRUB 1.05 です。PV-GRUB のバージョンが最新バージョン ([Amazon PV-GRUB カーネルイメージ ID](#AmazonKernelImageIDs) を参照) でない場合、次の手順を使用して更新する必要があります。

**PV-GRUB のバージョンを更新するには**

インスタンスが古いバージョンの PV-GRUB を使用している場合は、最新バージョンに更新する必要があります。

1. [Amazon PV-GRUB カーネルイメージ ID](#AmazonKernelImageIDs) で、使用するリージョンとプロセッサアーキテクチャーの最新の PV-GRUB AKI を特定します。

1. インスタンスを停止します。使用されるカーネルイメージを変更するには、インスタンスを停止する必要があります。

   ```
   aws ec2 stop-instances --instance-ids instance_id --region region
   ```

1. インスタンスに使用するカーネルイメージを変更します。

   ```
   aws ec2 modify-instance-attribute --instance-id instance_id --kernel kernel_id --region region
   ```

1. インスタンスを再起動します。

   ```
   aws ec2 start-instances --instance-ids instance_id --region region 
   ```