PC

LVM内のパーティションを拡張する(メモ)

作業、テストなどに使っているLinux の VMwareイメージ。これのディスク容量が小さくなったので、広げるための手順のメモ。
/(ルートパーティション)を拡張するのはちょっと手間だったのと、いちいちコマンドを覚えていられないので。

  1. VMWareから、ディスクサイズを大きくする。
    普通なら大きなディスクに交換しなければならないけど、ここは仮想マシン。管理画面からディスクサイズを大きめに設定してやればあっという間に大きなディスクに変更される。
    今回は、 8GB から 16GBに広げました。
  2. 対象のlinuxを起動させて現状確認。
    論理ボリューム(LV)は当然8GB内から作られています。

    [root@centos46 ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup00-LogVol00
                          6.8G  3.8G  2.7G  59% /
    /dev/sda1              99M   14M   80M  15% /boot
    none                  506M     0  506M   0% /dev/shm
    none                  506M   84K  506M   1% /var/log
    none                  506M   24K  506M   1% /tmp
  3. fdiskでパーティションを操作。
    パーティション情報を操作しても、最後に書き込みしなければ反映されない ということを逆手にとって、
    削除 -> 拡張したサイズで再作成 – > 書き込み
    という流れで操作します。

    [root@centos46 ~]# fdisk /dev/sda
     
    The number of cylinders for this disk is set to 2088.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
     
    Command (m for help): p
     
    Disk /dev/sda: 17.1 GB, 17179869184 bytes
    255 heads, 63 sectors/track, 2088 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
     
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        1044     8281507+  8e  Linux LVM
     
    Command (m for help): d
    Partition number (1-4): 2
     
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (14-2088, default 14): (リターン)
    Using default value 14
    Last cylinder or +size or +sizeM or +sizeK (14-2088, default 2088): (リターン)
    Using default value 2088
     
    Command (m for help): t
    Partition number (1-4): 2
    Hex code (type L to list codes): 8e
    Changed system type of partition 2 to 8e (Linux LVM)
     
    Command (m for help): w
    The partition table has been altered!
     
    Calling ioctl() to re-read partition table.
     
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
  4. コンピュータを再起動。
    ただし、ubuntu のCDを用意して(他のlinuxでもOK)そこから起動させます。
    #オンラインでそのまま拡張できると思っていたんだけど、後の操作で、「オンラインじゃ操作できません」といったメッセージがでて操作できなかったので。
    以下ubuntuからの操作
  5. 物理ボリューム(PV)を拡張
    ubuntu@ubuntu:~$ sudo pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
  6. 論理ボリューム(LV)を拡張
    ubuntu@ubuntu:~$ sudo lvextend -L+10Gb VolGroup00/LogVol00
      Extending logical volume LogVol00 to 16.84 GiB
      Insufficient free space: 320 extents needed, but only 257 available

    最初の1回目は、本来より大きな値をセットしています。すると、257というっ設定すべき値が表示されるので、今度はその値を使って実際に拡張させます。

    ubuntu@ubuntu:~$ sudo lvextend -l+257 VolGroup00/LogVol00
      Extending logical volume LogVol00 to 14.88 GiB
      Logical volume LogVol00 successfully resized
  7. エラーが出ないようにfsck
    ubuntu@ubuntu:~$ sudo e2fsck -f /dev/VolGroup00/LogVol00
    e2fsck 1.41.11 (14-Mar-2010)
    Adding dirhash hint to filesystem.
     
    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/VolGroup00/LogVol00: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/VolGroup00/LogVol00: 96586/897600 files (3.2% non-contiguous), 1004439/1794048 blocks
  8. ファイルシステムを拡張
    ubuntu@ubuntu:~$ sudo resize2fs /dev/VolGroup00/LogVol00
    resize2fs 1.41.11 (14-Mar-2010)
    Resizing the filesystem on /dev/VolGroup00/LogVol00 to 3899392 (4k) blocks.
    The filesystem on /dev/VolGroup00/LogVol00 is now 3899392 blocks long.

手順5,6,7は本来の仮想マシンで実行できるんだろうけど、最後のファイルシステムを拡張するところは、別のパーティションから起動したlinuxから操作するというのが今回の味噌だった。

#SE奮闘記: 【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)を参考にして作業したんだけど、今もう一度検索しなおしたら、ext3 on LVMのサイズ拡張:のらねこ雑記帳:So-netブログにもっと細かく解説されたページがありました。

1件のコメント

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください