vagrantで作ったローカルの開発サイト(VirtualBox)を
構築していると下記のようなエラーが発生した
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32) rsync: write failed on "/var/www/html/xxxsitexxxx/public/scenario/data/fgimage/170425_mediaseek10703.png": No space left on device (28) rsync error: error in file IO (code 11) at receiver.c(301) [receiver=3.0.6] rsync: connection unexpectedly closed (45419 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
ディスクが足りない系のエラーなんだけど
VirtualBoxでのディスクの追加しないといけなかった
クラウドみたいに簡単に追加できると思っていたが超絶めんどくさい手順を踏まないといけなかった
VMをシャットダウンする
vagarnt halt
コマンドラインを開く
VirtualBoxのプログラムにパスが通っているのか下記のコマンドで確認する
path
自分の場合はとおっていない
VirtualBoxの場所を調べて追加する
set path=%path%;C:\Program Files\Oracle\VirtualBox;
もし1度、pathがとっているのか確認する
path
通っている事が確認できたら
VMのHDD一覧が取得する
VBoxManage list hdds
①ディスクのパスをメモする
②Storage formatを確認する
vmdk形式ではディスクの拡張ができません。
なので一旦拡張できるvdi形式のファイルに移して拡張後に再度vmdk形式に移す作業をします。
フォルダの場所に移動する
①で調べたパスに移動する
cd C:\Users\XXXXXX\VirtualBox VMs\centos672_default_1500365444800_52789\
vdi形式にクローンする
VBoxManage clonehd "centos-vm-disk1.vmdk" "centos-vm-disk1.vdi" --format vdi 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vdi'. UUID: 5fee9782-d3f6-4334-9287-1fafe54e5b5c
vdi形式で作ったディスクを20Gに増やす
VBoxManage modifyhd centos-vm-disk1.vdi --resize 20480
増やしたVMをもとのフォーマット形式に戻す
VBoxManage clonehd "centos-vm-disk1.vdi" "centos-vm-disk_20G.vmdk" --format vmdk
vm名を確認する
ファイルの前のフォルダのディレクトリ名がVM名になる
③の部分
アタッチの設定をかえる
VBoxManage storageattach centos672_default_1500365444800_52789 --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium centos-vm-disk_20G.vmdk
開発サーバーを起動する
vagrant up
開発サーバーにログインする
vagrant ssh
rootになる
su - Password:
fdiskコマンドでパーティションを設定する
fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. Its strongly recommended to switch off the mode (command "c") and change display units to sectors (command "u"). #★pと打つ Command (m for help): p Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00051d1a Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1275 9726976 8e Linux LVM #★nと打つ Command (m for help): n Command action e extended p primary partition (1-4) #★pと打つ p #★1,2とあるので次の3を設定するために3と打つ Partition number (1-4): 3 #★ディスクのシリンダーの設定 デフォルトでOK First cylinder (1275-2610, default 1275): 1275 Last cylinder, +cylinders or +size{K,M,G} (1275-2610, default 2610): 2610 #★設定した内容を反映する 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 or after you run partprobe(8) or kpartx(8) Syncing disks.
fdiskコマンドが成功したら、SSHで再ログインするために1度、ログアウトする
exit #rootのログアウト exit #vagrantのログアウト
開発サーバーにログインする
vagrant ssh
rootになる
su - Password:
既存のVGファイルシステムを拡張する
$ pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 9.27g 0 #このVGがグループになるのであとで使うのでメモする $ pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created $ vgextend VolGroup /dev/sda3 Volume group "VolGroup" successfully extended $ pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 9.27g 0 /dev/sda3 VolGroup lvm2 a-- 10.23g 10.23g # vgdisplay を実行し実行結果の" --- Physical volumes ---" の部分を見ることで、新しいPVが追加されたことを確認 $ vgdisplay -v VolGroup Using volume group(s) on command line. --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 19.50 GiB PE Size 4.00 MiB Total PE 4992 Alloc PE / Size 2374 / 9.27 GiB Free PE / Size 2618 / 10.23 GiB VG UUID vSK8ek-anHw-vzIU-hLSC-YyUi-JJCK-43dkaR --- Logical volume --- LV Path /dev/VolGroup/lv_root #★ ←ここが重要 LV Name lv_root VG Name VolGroup LV UUID BbyXpl-Lu8z-aDXc-hF5u-ib1j-ml0f-PRlYvR LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-11-02 23:49:55 +0900 LV Status available # open 1 LV Size 8.30 GiB Current LE 2124 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 yk1n3U-cHOX-jeC6-p8yJ-sMu5-YMLL-oOs2cH LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-11-02 23:49:56 +0900 LV Status available # open 1 LV Size 1000.00 MiB Current LE 250 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Physical volumes --- PV Name /dev/sda2 PV UUID hTIxaE-XcZT-GoSQ-sIy7-jD2T-vHZE-MvgwTM PV Status allocatable Total PE / Free PE 2374 / 0 PV Name /dev/sda3 PV UUID MEg0SN-JKw2-daD5-2wwN-XgFD-FqZC-6EuMiT PV Status allocatable Total PE / Free PE 2618 / 2618
LVの拡張
# vgdisplayで取得したパスをとにサイズを拡張する $ lvextend -l +100%FREE /dev/VolGroup/lv_root Size of logical volume VolGroup/lv_root changed from 8.30 GiB (2124 extents) to 18.52 GiB (4742 extents). Logical volume lv_root successfully resized
ファイルシステムの拡張
LVを拡張してもファイルシステムは以前の大きさのままなので、最後にファイルシステムの拡張も行う必要がある。
$ resize2fs /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 = 2 Performing an on-line resize of /dev/VolGroup/lv_root to 4855808 (4k) blocks. The filesystem on /dev/VolGroup/lv_root is now 4855808 blocks long.
処理完了後、dfコマンドでファイルシステムが拡張されたことを確認する。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 19G 5.3G 12G 31% / tmpfs 499M 0 499M 0% /dev/shm /dev/sda1 477M 57M 396M 13% /boot var_opt 465G 126G 340G 27% /var/opt vagrant 465G 126G 340G 27% /vagrant
インフラをやっているのでどうしてもコマンドですべて解決したくなった
fdiskでサイズを変更する所はGUIのツールの方が早くできたと思う
その部分に無駄にはまった
参考URL
stackoverflow.com
qiita.com
qiita.com
www.sandalot.com