逆引きマニュアル: Vagrant + CentOS 7でディスクをリサイズする方法

投稿日: 更新日: Vagrant CentOS VirtualBox Libvirt

やりたいこと

以下の組み合わせで、ディスクおよびパーティションのリサイズをする方法です。

前提条件

以下のバージョンで確認しています。

概要

  1. 仮想ディスクのサイズを増加
  2. 非インタラクティブにfdiskを使って、パーティションの作成
  3. partprobeコマンドを使って、パーティションの変更を認識
    • rebootする手順が多いが、partprobeで問題なく反映できた。
  4. PVを作成する。
  5. 作成したPVをVGに追加する。
  6. LVを拡張する。
  7. ファイルシステムを拡張する。

fdiskで既存のパーティションを変更すると、partprobeが使えない

以下のようなエラーが出る。リブートすれば可能だが、なるだけrebootしたくないため却下した。

Error: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.

手順

起動時に以下のスクリプトを流してください。 デバイス名は環境によって異なる可能性があります。KVM(libivrt)では/dev/vdaでした。

## resize disk
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk /dev/sda || true
n  # add a new partition
p  # primary
   # default
   # default
t  # change a partition's system id
4  # new partition
8e # Linux LVM
w  # write table to disk and exit
EOF

partprobe

## resize partition(CentOS 7, XFS)
pvcreate /dev/sda4

vgextend VolGroup00 /dev/sda4
lvextend -l +100%FREE /dev/VolGroup00/LogVol00
xfs_growfs /

制限事項

マニュアル


ページトップへ戻る