aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

RHEL6 AMIでブート領域を拡張する

背景

RHEL6系のAMIからEC2を起動する際にブート用EBSのサイズを大きくしても、OSからは認識されない。(Amazon Linuxは起動時に自動的にサイズを合わせてくれる)

考察

パーティションがGPTになっている。かつ、起動時に対応してくれるようなスクリプトがAMIに仕込まれていない。

 

対処方法(サマリ)

 

  1. 該当インスタンスのBoot EBSを100GBに指定して起動
  2. 該当インスタンス( A)をstopして /dev/sda1 にアタッチされているEBSをデタッチ
  3. 作業用インスタンス(B)を別途起動し、上記EBSを/dev/sdb にアタッチ
  4. 作業用インスタンス(B)にて作業 ( パーティションサイズ変更※ & ファイルシステムサイズ拡張※)
  5. 上記EBSを作業用インスタンス(B)からデタッチし、該当インスタンス(A)の /dev/sda1にアタッチ
  6. 該当インスタンス(A)をstartする

 

 

対処方法(詳細)

肝はこちらに書いてあるが、gdiskを使った。

docs.aws.amazon.com

作業用インスタンス(B)にて

まずはgdiskをインストール

$ sudo yum -y install gdisk 

gdiskを使用して、まずはパーティション情報を表示させる。赤字はメモっとく。

$ sudo gdisk /dev/svdb

Command (? for help): p

Disk /dev/xvdb: 209715200 sectors, 100.0 GiB

Logical sector size: 512 bytes

Disk identifier (GUID): C0E76C1A-B601-48A7-A1E0-CC49DEFF6CB4

Partition table holds up to 128 entries

First usable sector is 34, last usable sector is 20971486

Partitions will be aligned on 2048-sector boundaries

Total free space is 2014 sectors (1007.0 KiB)

 

Number  Start (sector)    End (sector)  Size       Code  Name

   1            2048        20971486   10.0 GiB    EF00  Linux

パーティションを削除する

Command (? for help): o

This option deletes all partitions and creates a new protective MBR.

Proceed? (Y/N): Y

新しいパーティションを作成する

Command (? for help): n

Partition number (1-128, default 1): 1

First sector (34-209715166, default = 2048) or {+-}size{KMGTP}: 2048

Last sector (2048-209715166, default = 209715166) or {+-}size{KMGTP}:

Current type is 'Linux filesystem'

Hex code or GUID (L to show codes, Enter = 8300): EF00

Changed type of partition to 'EFI System'

Expert モードに入って、ディスクGUIDを元に戻す(最初に表示した時のやつ)

Command (? for help): x

Expert command (? for help): g

Enter the disk's unique GUID ('R' to randomize): C0E76C1A-B601-48A7-A1E0-CC49DEFF6CB4

The new disk GUID is C0E76C1A-B601-48A7-A1E0-CC49DEFF6CB4

変更をディスクに書き込む

Expert command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

PARTITIONS!!

Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to /dev/xvdb.

The operation has completed successfully.

念の為、ファイスシステムのチェック。

$ sudo e2fsck -f /dev/xvdb1 

$ lsblk

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

xvda    202:0    0   10G  0 disk

└─xvda1 202:1    0    6G  0 part /

xvdb    202:16   0  100G  0 disk

└─xvdb1 202:17   0  100G  0 part

lsblkの結果を見る限り、これだけだと、パーティションは拡張したがファイルシステムは拡張していないので、拡張しておく。

$ sudo resize2fs /dev/xvdb1

この、ファイルシステム拡張についてだけが、こっち↓に書いてあって、ハマるポイント。

docs.aws.amazon.com

うまくいったら、元のインスタンスの/dev/sda1 にアタッチする。