VirtualBoxに作成した仮想マシン(CentOS7)で、『yum -y update』コマンドを実行した際に、「システムファイル空き容量が不足」っていうエラーが出たので、空き容量を増やしてみようという試みです。
そもそも、インストールとかほとんどしてないはずなのに、何故に空き容量が不足なのかが謎なのですが・・・(もしかしたら、仮想マシンの容量を8GBにして、CentOS7をdvd.isoでインストールしたのがまずかったのか)。
VirtualBoxで新しい仮想HDDを追加する
VirtualBoxを起動し、仮想HDDを追加したいVM(仮想マシン)を選択したら、『設定(S)』>『ストレージ』>『コントローラーSATA』> 『』を選択クリックします。
「仮想ハードディスクをコントローラー"SATA"に追加します。」とダイアログが表示されるので、『新規ディスク作成(N)』ボタンを選択クリックします。
デフォルトの『VDI(VirtualBox Disk Image)』を選択しました。
『VHD(Virtual Hard Disk)』でもOKみたいです。
今回は『可変サイズ(D)』を選択しました。
仮想ハードディスクの名前と容量を決めます。
手入力で、ファイルの場所を『CentOS_vol2.vdi』、容量を『2.00』GBにしました。
『作成』ボタンをクリックします。
『コントローラー:SATA』に仮想ハードディスクが追加されます。
追加した仮想ハードディスクをLinux(CentOS7)のボリュームに追加します
ルート『/』の空きを増やすには、
- 追加した仮想HDDにパーティションを作成
- 作成したパーティションで物理ボリュームを作成
- / にマウントしている論理ボリュームが割当てられているボリュームグループへ、物理ボリュームを追加
- 論理ボリュームを拡張
- ファイルシステムを拡張
の作業を行う必要があるようです。
1. 追加した仮想HDDにパーティションを作成
認識されているHDDを探すために、root権限(『su』コマンドを実行)になってから『ll /dev/sd*』コマンドを実行します。
『/dev/sdb』がパーテションの作成されてないものらしいです。
『fdisk /dev/sdb』 コマンドを実行し、新しいパーテションを追加します。
『p』コマンドで、現在のパーテションを確認します。
初期状態なので何もありません。
『n』コマンドで、新しいプライマリ・パーテションを作成します。
『p』コマンドを実行し、現在のパーテションを確認します。
パーティション番号は1、2GiB全て割当てるために、セクターは全て(2048-4194303)使用します。
※2048開始なのは、あらゆるRAIDでストライプ・サイズの倍数になっているから、セクタ位置合せで都合がよいらしいとのことです。
『p』コマンドを実行し、現在のパーテションを確認します。
新しいパーテション『/dev/sdb1』が作成されました。
『w』コマンドを実行し、パーテションを書き込みます。
2. 作成したパーティションで物理ボリュームを作成
VG Nameの調べ方
『vgdisplay』コマンドで、現在のボリュームグループを確認します。
『VG Size』が『7.51 GiB』になっています。
『VG Name』 は、『centos_centos7』となっているのも確認できます。
3. / にマウントしている論理ボリュームが割当てられているボリュームグループへ、物理ボリュームを追加
『pvcreate』コマンドで、パーテション『/dev/sdb1』の物理ボリュームを作成して、ボリュームグループ『centos_centos7(『pvcreate』コマンドで表示された一覧の中のVG Nameの項目に記載されてるものなので人それぞれ異なります。)』 へ追加します。
『vgextend [VG Name] /dev/sdb1』コマンドを実行します。
(※[VG Name]は『vgdisplay』コマンドで表示された一覧の中のVG Nameの項目に記載されてるものを入力します。自分はそれに気付かず何回か間違えました。)
成功すると、『Volume group *[VG Name]* successfully extended』と表示されます。
『vgdisplay』コマンドで、現在のボリュームグループを確認します。
『Free PE / Size』が 『2.04 GiB』に増え、『VG Size』が『9.50 GiB』になりました。
この、『Free PE / Size』の容量を、すべて論理ボリュームのrootに割り当てます。
4. 論理ボリュームを拡張
『lvdisplay』コマンドで、現在のLV SizeとLv PAthを確認します。
『lvextend -L+◯◯G [LV Path]』コマンドで、論理ボリュームを拡張します。
(※ ◯◯はFree PE / Sizeの容量内で任意の容量、[LV Path]は『lvdisplay』コマンドで表示される一覧のLV Pathの項目のもの)
『Logical volume root successfully resized』と表示されれば、成功です。
『lvdisplay』コマンドで、現在のLV Sizeを確認します。
『LV Size』が『8.66 GiB』に増えました。
5, ファイルシステムを拡張
CentOS7の場合、デフォルトのファイルシステムはxfsになっています。
『df -T』コマンドでファイルシステムタイプを確認してみます。
xfsの拡張は『xfs_growfs』コマンドを使用します。
『df』コマンドを実行します。
無事にルート空きが増えて、使用量が66%に落ちました。
⇩ 下記サイトを参考にさせていただきました。
・VirtualBoxで仮想HDDを追加して Linuxのディスク空き容量を増やす - Qiita
※2016/10/27に修正
urokoさん
より、ご指摘をいただき下記の点を修正したしました。
記事をご覧くださっていた皆様にはご迷惑をおかけしてすみませんでした。
urokoさん、ありがとうございました。
ブログ参考にさせて頂き、VM容量を増やすことに成功しました!有難うございます。
いくつか気づいた点を・・
1)2.3 物理ボリュームを追加 コマンドが間違っています。
正:pvcreate
誤:prsreate2)VG Nameの調べ方
vgdisplayを実行
VG Name [ここを確認]
追記して頂くと、と読者さんが分かりやすいと思います。
3)4. 論理ボリューム拡張コマンド
正:lvextend -L+1.99G /dev/centos_centos7/root
誤:lvextend -L+1.99 /dev/centos_centos7/root
誤だと容量が1.99MiB増えました。笑
4)5. xfsの拡張
正:xfs_growfs /dev/centos_centos7/root
誤:xfs_growfs
細かくすみません。
よろしくお願いしますm(__)m
今回はこのへんで。