CentOS 6.7のAMIをインスタンス作成時にgrowpartしてrootディスクが拡張されるようにしておく

ひきつづきファッションニートの吉田真吾@yoshidashingo)です。

CentOS 6.7は、バニラ状態のAMIからEC2インスタンスを起動しても、rootディスクがgrowpartされません(↓以下のような状態)

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  100G  0 disk
└─xvda1 202:1    0    8G  0 part /

バニラなAMI

  • ちなみにバニラなAMIはいつものようにマッツォさんが公開してくれているのでみんな自己責任で使いましょう。どうやら本人曰く趣味というかライフワークらしいです。

understeer.hatenablog.com

dracutでgrowpartを仕込む

このままだとプロビジョニングツールで素早くサーバー構築するのに一手間(growpartして再起動してresize2fsする)かかってしまいます。特に再起動が曲者で、正確にサーバーのプロビジョニング(インスタンス作成→OS設定変更→ミドルインストール→アプリ配布)が完了する時間を予想するのが難しくなります。

ということで以下のとおり仕込む。ユーザーはec2-userのままで構いません。

$ sudo yum install dracut-modules-growroot
$ sudo dracut --force --add growroot /boot/initramfs-$(uname -r).img

これをやっておいてから「AMI化しておく」と、インスタンス作成(初回起動)時にルートディスクがgrowpartされるイメージになります。

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  100G  0 disk
└─xvda1 202:1    0  100G  0 part /