Help us understand the problem. What is going on with this article?

EC2のディスク容量(EBS)を拡張する

More than 5 years have passed since last update.

口上

単純に snapshot をとってそこから大きくしたいサイズの volume を作って インスタンス に アタッチ しなおして resize2fs すればいーじゃんと思ってたら、"Nothing to do!" と出てしまいうまく行かなかったので、その時に対応した自分用メモ。Management Console の細かい操作については結構省いています。

対象インスタンスの環境

EC2 AMI : CentOS 6 (x86_64) - with Updates HVM
ディスク容量 : 8G → 36G

手順

  1. 対象インスタンスの snapshot を取得する(出来るなら停止させてからがベスト)
  2. snapshot から volume を作成する。この際に拡張したいサイズで作成する(今回は36Gで)
  3. AmazonLinux(HVM) でSSHの可能な EC2 作業用インスタンスを適当にたてる
  4. 作成したばかりの 3. の作業用インスタンスをいったん停止する
  5. 2. で作成した volume を 3. の作業用インスタンスにアタッチする(デバイスはここでは /dev/sdf にしました)
  6. 作業用インスタンスを起動する
  7. 作業用インスタンスに 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しか使ってない
    
  8. 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.
    
  9. 拡張したパーティションに 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
    
  10. ファイルシステムを拡張する

    $ 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 のパーティションであることがわかる
    
  11. 作業用インスタンスを停止する

  12. 拡張した volume を作業用インスタンスからデタッチする(この時点で作業用インスタンスは用済み)

  13. 対象インスタンスを停止して、元々アタッチされていた volume をデタッチする

  14. (容量を)拡張した volume を 対象インスタンスにアタッチする(たぶん /dev/sda1 で)

  15. 対象インスタンスを起動する

参考にさせて頂いたページ

EC2上のLinuxのパーティションを拡張する
Linux で EBS ボリュームのストレージ領域を拡張する
Linux パーティションを拡張する

tiida26
もうすぐアラフォーのサーバエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away