Vagrantの容量を変更する方法
vagrantを停止する
対象のディレクトリで以下を実行
1 | vagrant halt |
VDI形式の仮想ディスクへ変換
ゲストOSのVMディレクトリに移動する
1 | cd ~/VirtualBox\ VMs/LaunchCart_default_1467552216579_32085 |
ディレクトリ名は {{ box名 }}default{{ ユニークな文字列 }}
で構成されています。
VBoxManage clonehdでVDI作成
1 | VBoxManage clonehd "box-disk1.vmdk" "clone-disk1.vdi" --format vdi |
作成したVDIの情報を以下で確認
1 | VBoxManage showhdinfo clone-disk1.vdi |
以下のように表示されている (8GBの時)
1 | Capacity: 8192 MBytes |
容量を増やす
1 | VBoxManage modifyhd clone-disk1.vdi --resize 20480 |
容量が変わっているのを確認
1 | VBoxManage showhdinfo clone-disk1.vdi |
先ほどのCapacityが8192から20480に変わっていればOK.
VMDK形式の仮想ディスクを作成する
VBoxManage clonehd でvmdk形式へ変換する
1 | VBoxManage clonehd "clone-disk1.vdi" "box-disk2.vmdk" --format vmdk |
作成したvmdkの情報確認
1 | VBoxManage showhdinfo box-disk2.vmdk |
Capacityの所が20480になっていればOK.
ゲストOSの仮想ディスクを差し替える
VBoxManage showvminfoで、仮想マシンの仮想ディスクの情報を確認する。
1 2 | VBoxManage showvminfo LaunchCart_default_1467552216579_32085 | grep ".vmdk" ATA (0, 0): ~/VirtualBox\ VMs/LaunchCart_default_1467552216579_32085/box-disk1.vmdk (UUID: 550be626-6968-4c71-b34b-23023fceb55f) |
2行目の先頭にある文字列が仮想OSのインターフェース名で、これを以下で使用する
仮想ディスクの差し替え
1 2 3 | VBoxManage storageattach Launchcart_default_1467552216579_32085 \ --storagectl "SATA Controller" --port 0 --device 0 \ --type hdd --medium box-disk2.vmdk |
box名と作成したvmdkファイル名、上述のインターフェース名以外は固定で気にしなくて良い。
差し替えたVMの確認
1 | VBoxManage showhdinfo box-disk2.vmdk |
以下の行が加わっているのを確認出来ればOK. (UUIDは適当)
1 | In use by VMs: Launchcart_default_1467552216579_32085 (UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx) |
ゲストOSに増やした容量を認識させる
パーティションの作成
1 2 | vagrant up vagrant ssh |
でvagrant起動後後に基本パーティションの追加する。
今のディスク状況をまず確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # fdisk -l ディスク /dev/sda: 17.2 GB, 17179869184 バイト ヘッド 255, セクタ 63, シリンダ 2088 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00010ab2 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 1 64 512000 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 64 1045 7875584 8e Linux LVM ディスク /dev/mapper/VolGroup-lv_root: 7205 MB, 7205814272 バイト ヘッド 255, セクタ 63, シリンダ 876 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 ディスク /dev/mapper/VolGroup-lv_swap: 855 MB, 855638016 バイト ヘッド 255, セクタ 63, シリンダ 104 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 |
基本パーティションの追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # fdisk /dev/sda 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 3 最初 シリンダ (1045-2088, 初期値 1045): 初期値 1045 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1045-2088, 初期値 2088): 初期値 2088 を使います |
実際にパーティションを割り当てる手順
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | コマンド (m でヘルプ): p ディスク /dev/sda: 17.2 GB, 17179869184 バイト ヘッド 255, セクタ 63, シリンダ 2088 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00010ab2 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 1 64 512000 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 64 1045 7875584 8e Linux LVM /dev/sda3 1045 2088 8383252 83 Linux |
システムタイプを Linux LVM に変更する。
1 2 3 4 | コマンド (m でヘルプ): t パーティション番号 (1-4): 3 16進数コード (L コマンドでコードリスト表示): 8e 領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました |
上記の実行コマンドの反映
1 2 3 4 5 6 7 8 9 10 | コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。 カーネルはまだ古いテーブルを使っています。新しいテーブルは 次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に 使えるようになるでしょう ディスクを同期しています。 |
一旦ゲストOSの再起動
1 2 3 | vagrant halt vagrant up vagrant ssh |
Physical Volumeの作成
前述で作成したパーティションを物理ボリュームとして認識させる
現状の確認
1 2 3 4 5 6 7 8 9 10 11 | # pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup PV Size 7.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1922 Free PE 0 Allocated PE 1922 PV UUID LFLXxR-2OME-gshx-KcVm-Z3pR-ltUG-rMsms8 |
pvcreateコマンドで物理ボリューム作成
1 | pvcreate /dev/sda3 |
サイズ無指定のボリュームのみの状態を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name VolGroup PV Size 7.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1922 Free PE 0 Allocated PE 1922 PV UUID LFLXxR-2OME-gshx-KcVm-Z3pR-ltUG-rMsms8 "/dev/sda3" is a new physical volume of "7.99 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 7.99 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 3wQR2H-Kqt8-NqIJ-xKm2-45wP-toJy-ISwiT1 |
Volume Groupに物理ボリュームの追加
vgdisplayコマンドでGroupの確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 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 7.51 GiB PE Size 4.00 MiB Total PE 1922 Alloc PE / Size 1922 / 7.51 GiB Free PE / Size 0 / 0 VG UUID 8Ahbmm-Z3FT-nl1k-6lnR-lV1T-KYD4-zA24lQ |
vgextendコマンドでVolGroupに物理ボリュームの追加
1 2 | # vgextend VolGroup /dev/sda3 Volume group "VolGroup" successfully extended |
再度 vgdisplay を実行すればサイズが適用されたボリュームを確認可能。
論理ボリュームに物理ボリュームを追加認識させる
lvdisplayコマンドでLogical Volumeの詳細を確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # lvdisplay --- Logical volume --- LV Path /dev/VolGroup/lv_root LV Name lv_root VG Name VolGroup LV UUID BTzWJS-s3At-lrdL-Mwuj-eKZl-EQEa-IkBWNj LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-04-19 23:48:23 +0900 LV Status available # open 1 LV Size 6.71 GiB Current LE 1718 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/VolGroup/lv_swap LV Name lv_swap VG Name VolGroup LV UUID wQxJ4j-dp0n-HOyu-Uc2M-RCzn-h71g-7k0vUJ LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-04-19 23:48:24 +0900 LV Status available # open 1 LV Size 816.00 MiB Current LE 204 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 |
lvextendコマンドで論理ボリュームのサイズを拡張。
vgdisplay実行時の数値 “Free PE / Size”と”PE Size”を掛けあわせた数値を算出しておく。
1 2 3 | # lvextend -L +8184 /dev/VolGroup/lv_root Size of logical volume VolGroup/lv_root changed from 6.71 GiB (1718 extents) to 14.70 GiB (3764 extents). Logical volume lv_root successfully resized |
ファイルシステム全体のリサイズ
最後にゲストOSのファイルシステム全体のリサイズを実施
1 2 3 4 5 6 | # resize2fs -f /dev/VolGroup/lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/VolGroup/lv_root to 3854336 (4k) blocks. The filesystem on /dev/VolGroup/lv_root is now 3854336 blocks long. |
完了
領域の確認
1 2 3 4 5 6 7 | # df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 48G 6.4G 39G 15% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/sda1 477M 33M 420M 8% /boot vagrant 931G 296G 636G 32% /vagrant |
Author Profile
スターフィールド編集部
SHARE