ログってなんぼ

日々のメモです

vagrant:vmdkをvdiに変更してCentOSのLVMで容量を拡張

まああんまりvagrant関係ない気もしますが。。。

vagrantboxから落としてきた仮想マシンのHDDが15GBしか無いので30GBにする作業をメモです。

仮想マシンを止める

$ vagrant halt

ディスクを拡張

VMのファイルが有るディレクトリを確認

$ ll
total 3183392
drwx------  6 okisanjp  staff         204  5 18 16:02 Logs
-rw-------  1 okisanjp  staff  1629880320  5 18 16:11 box-disk1.vmdk
-rw-------  1 okisanjp  staff        7970  5 18 16:02 virtual_machines_default_1400240111.vbox
-rw-------  1 okisanjp  staff        7970  5 18 16:02 virtual_machines_default_1400240111.vbox-prev

15GBの設定ですが、実際には1.5GBしかまだ使ってないですね。まあ15GBだとちょっと心配なので30GBにします。

$ VBoxManage modifyhd box-disk1.vmdk --resize 30720
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

vmdkだと失敗するようです・・・

30GBのvdiファイルを作る

空っぽの30GBイメージを作ってそちらにvmdkをクローンしたいと思う

f:id:Okisanjp:20160712164037p:plain

出来ました

clonehdコマンドでコピー

$ VBoxManage clonehd box-disk1.vmdk NewVirtualDisk1.vdi --existing
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: cd2ec392-4910-4bc0-83a6-a332202773ce

vmdkを割り当て解除してvdiの方に付け替え

VMを起動

f:id:Okisanjp:20160712164049p:plain

$ vagrant up

仮想マシンのOS(CentOS6)側で拡張作業

VMにログインしてrootになる

$ vagrant ssh
Last login: Sun May 18 16:03:29 2014 from 10.0.2.2
$ sudo -s
#

DISKを確認

# fdisk -l

ディスク /dev/sda: 32.2 GB, 32212238336 バイト
ヘッド 255, セクタ 63, シリンダ 3916
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0001959a

32.2GBと表示されているのでさっきよりも増えています

拡張作業

# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   13G  1.5G   11G  12% /
tmpfs                         499M     0  499M   0% /dev/shm
/dev/sda1                     485M   55M  405M  12% /boot
/vagrant                      233G  109G  125G  47% /vagrant

今回使ったCentOSのイメージはLVMでした

# fdisk /dev/sda

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): p

ディスク /dev/sda: 32.2 GB, 32212238336 バイト
ヘッド 255, セクタ 63, シリンダ 3916
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0001959a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1          64      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              64        1958    15214592   8e  Linux LVM

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 3
最初 シリンダ (1958-3916, 初期値 1958):
初期値 1958 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1958-3916, 初期値 3916):
初期値 3916 を使います

コマンド (m でヘルプ): p

ディスク /dev/sda: 32.2 GB, 32212238336 バイト
ヘッド 255, セクタ 63, シリンダ 3916
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0001959a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1          64      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              64        1958    15214592   8e  Linux LVM
/dev/sda3            1958        3916    15727654   83  Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。新しいテーブルは
次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
使えるようになるでしょう
ディスクを同期しています。

なんか怒られたので一旦リブート

# reboot

再度ログイン

$ vagrant ssh
Last login: Sun May 18 17:03:22 2014 from 10.0.2.2
$ sudo -s
#

作業再開

# fdisk -l

ディスク /dev/sda: 32.2 GB, 32212238336 バイト
ヘッド 255, セクタ 63, シリンダ 3916
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0001959a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1          64      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              64        1958    15214592   8e  Linux LVM
/dev/sda3            1958        3916    15727654   83  Linux

/dev/sda3をLVMに組み込んでいきます

その前に・・・

ディスクのシステムIDをLVMに変え忘れたので変えます・・

# fdisk /dev/sda

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): t
パーティション番号 (1-4): 3
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

拡張作業再開

# pvcreate /dev/sda3
  dev_is_mpath: failed to get device for 8:3
  Physical volume "/dev/sda3" successfully created
# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               14.51 GiB
  PE Size               4.00 MiB
  Total PE              3714
  Alloc PE / Size       3714 / 14.51 GiB
  Free  PE / Size       0 / 0
  VG UUID               utUBzg-ktdn-8ZXW-whR6-oshZ-biUq-UBGuPD

# vgextend VolGroup /dev/sda3
  Volume group "VolGroup" successfully extended

# lvextend -l +100%FREE /dev/mapper/VolGroup-lv_root
  Extending logical volume lv_root to 28.01 GiB
  Logical volume lv_root successfully resized

# resize2fs /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 7342080 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 7342080 blocks long.

# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   28G  1.5G   25G   6% /
tmpfs                         499M     0  499M   0% /dev/shm
/dev/sda1                     485M   55M  405M  12% /boot

以上です