web-dev-qa-db-ja.com

VirtualBox-動的仮想ディスクは拡張されません

Windows10ホストで64ビットのCentOS7 VMを使用していますが、動的に割り当てられたVHDが原因で問題が発生しています。

当初、VHDの最大サイズは16GBに設定されていましたが、機能的には約14.4が使用可能です。プロジェクトに取り組んでいるときに、もっと多くのスペースが必要になることに気づいたので、VBoxManageを使用して最大値を100GBに増やしました。次に、GPartedを使用してsda2パーティションを拡張し、余分なスペースを占有しました。

そのため、VirtualBoxはVHDが最大100GBに達する可能性があり、sda2がそのスペースの大部分を占めることを認識しています。現在のVHDの実際のサイズはまだ14.4GBです。ただし、ゲストOSのこのスペースをすべて埋めると(長いシーケンスをファイルに書き込むことによって)、ドライブは自動的に拡張されません。

注意すべき点がいくつかあります。

  1. 初めてスペースを埋めようとしたときに、VMを埋めた後に再起動したとき、ホスト上のVHDファイルは約1 GB増加しましたが、それ以上拡張されません今。

  2. ゲストOSが報告するデバイスとGPartedが報告するパーティションの間に不一致があるようです。 CentOS /dev/sda1と/ dev/mapper/centos-rootをリストします。これは/ dev/dm-0へのリンクですが、 GParted /dev/sda1と/ dev/sda2。これが問題の原因である可能性がありますか、それともこれは正常ですか?それが正常である場合、VirtualBoxがVHDを拡張しない理由について何か考えはありますか?

1

わかりました、問題が何であるかを見つけました。私のファイルシステムは、これまで使用したことのない論理ボリューム管理(LVM)を使用しているため、適切に処理する方法がわかりませんでした。 LVMの用語を使用すると、centosはボリュームグループです。

centos

sda2は、そのボリュームグループの物理ボリュームです。

sda2

ルートは、スワップとともに、そのボリュームグループ内の論理ボリュームです。

root

CentosVGとsda2PVは、割り当てた追加のストレージをすでに登録していましたが、残ったのは、その追加のスペースをルートLVに割り当てることだけでした(21504は、vgdisplayから取得した空き物理エクステント(PE)の数です)。 )::

$ Sudo lvextend /dev/centos/root /dev/sda2 -l+21504

次に、ルートファイルシステムを拡張して、この余分なスペースを利用できるようにします。

$ Sudo xfs_growfs /dev/centos/root

この後、ゲストOSは余分なスペースがあることを認識し、このスペースがいっぱいになると、ホストOS上の仮想ハードディスクのサイズがそれに応じて大きくなります。成功!

ソース: http://www.techotopia.com/index.php/Adding_a_New_Disk_to_a_CentOS_6_Volume_Group_and_Logical_Volume

2