のぶろぐ 30代のインフラエンジニアはこうです

(;'Д`)ハァハァ ようやく世の中が無菌室で無いことに気づいたよ

AWS EC2環境化のルートパーティションを8GBから拡張する

今までAmazon Linuxしか使ってなかったが、CentOSをEC2で作ることになった。

EBSに100GB割り当てたものの、8GBしかルートパーティション設定されてなかった。
本来だとシングルユーザモードかレスキューモードかなんかで/をアンマウントして
パーティション切り直しするんだろうが、EC2だからそれはできない。

公式手順をみると、別途OSの入ったEBSを作成してそちらで起動してから拡張したい
パーティションが含まれるEBS側のパーティション切り直しするとかあったけど
めんどくさくていい方法探してたら以下手順があった。

 


1 パーティション拡張用パッケージ追加

1-1 現在のパーティションを確認
# lsblk -l


1-2 パーティション拡張用のパッケージ追加
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -i epel-release-6-8.noarch.rpm
# yum -y --quiet install dracut-modules-growroot


1-3 epelのリポジトリを有効化
# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1 ←enabled=1にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


1-4 dracut-modules-growrootパッケージをインストール
# yum install dracut-modules-growroot
# dracut --force --add growroot /boot/initramfs-$(uname -r).img
2 パーティション拡張

2-1 システムを再起動
# shutdown -r now


2-2 再起動後にパーティションの状態を確認
# lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 100G 0 disk
xvda1 202:1 0 100G 0 part /

2-3 ファイルシステムを拡張
# resize2fs /dev/xvda1


2-4 ファイルシステムサイズを確認
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 99G 883M 93G 1% /
tmpfs 1.9G 0 1.9G 0% /dev/shm


3 パーティション拡張後設定

3-1 epelリポジトリ無効化
# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0 ←enabled=0にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


3-2 パッケージ削除
# rpm --erase dracut-modules-growroot パッケージ名


3-3 OS再起動
# shutdown -r now