口上
単純に snapshot をとってそこから大きくしたいサイズの volume を作って インスタンス に アタッチ しなおして resize2fs
すればいーじゃんと思ってたら、"Nothing to do!" と出てしまいうまく行かなかったので、その時に対応した自分用メモ。Management Console の細かい操作については結構省いています。
対象インスタンスの環境
EC2 AMI : CentOS 6 (x86_64) - with Updates HVM
ディスク容量 : 8G → 36G
手順
- 対象インスタンスの snapshot を取得する(出来るなら停止させてからがベスト)
- snapshot から volume を作成する。この際に拡張したいサイズで作成する(今回は36Gで)
- AmazonLinux(HVM) でSSHの可能な EC2 作業用インスタンスを適当にたてる
- 作成したばかりの 3. の作業用インスタンスをいったん停止する
- 2. で作成した volume を 3. の作業用インスタンスにアタッチする(デバイスはここでは /dev/sdf にしました)
- 作業用インスタンスを起動する
-
作業用インスタンスに SSH して、5. でアタッチした volumeを
lsblk
コマンド で確認する$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 36G 0 disk └─xvdf1 202:81 0 8G 0 part ← 36Gのvolumeなのに8Gしか使ってない
-
parted
コマンド でパーティションを拡張する$ sudo parted /dev/xvdf GNU Parted 2.1 Using /dev/xvdf Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit s ← 単位をセクタ数に変更 (parted) print ← 現在の状態を表示させる Model: Xen Virtual Block Device (xvd) Disk /dev/xvdf: 75497472s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 2048s 16777215s 16775168s primary ext4 boot ← これが今の状態 (parted) rm 1 ← パーティションを一旦削除する (parted) mkpart primary 2048s 100% ← パーティションを作成(セクタ2048から最後まで指定) (parted) print Model: Xen Virtual Block Device (xvd) Disk /dev/xvdf: 75497472s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 2048s 75497471s 75495424s primary ext4 ← 拡張したのがわかる (parted) set 1 boot on ← Flags に boot を付与する (parted) (parted) print Model: Xen Virtual Block Device (xvd) Disk /dev/xvdf: 75497472s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 2048s 75497471s 75495424s primary ext4 boot ← boot が Flags に付与された (parted) (parted) quit ← parted をぬける Information: You may need to update /etc/fstab.
-
拡張したパーティションに
fsck
をかける (もし Fix? と聞かれたら全部 yes と応える)$ sudo e2fsck -f /dev/xvdf1 e2fsck 1.42.12 (29-Aug-2014) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/xvdf1: 25097/524288 files (0.2% non-contiguous), 828273/2096896 blocks
-
ファイルシステムを拡張する
$ sudo resize2fs /dev/xvdf1 resize2fs 1.42.12 (29-Aug-2014) Resizing the filesystem on /dev/xvdf1 to 9436928 (4k) blocks. The filesystem on /dev/xvdf1 is now 9436928 (4k) blocks long.
ここで
lsblk
で拡張っぷりを確認しておく$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 36G 0 disk └─xvdf1 202:81 0 36G 0 part ← 36G のvolume に対して 36G のパーティションであることがわかる
作業用インスタンスを停止する
拡張した volume を作業用インスタンスからデタッチする(この時点で作業用インスタンスは用済み)
対象インスタンスを停止して、元々アタッチされていた volume をデタッチする
(容量を)拡張した volume を 対象インスタンスにアタッチする(たぶん /dev/sda1 で)
対象インスタンスを起動する
参考にさせて頂いたページ
EC2上のLinuxのパーティションを拡張する
Linux で EBS ボリュームのストレージ領域を拡張する
Linux パーティションを拡張する