<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VirtualBox | ばすにっきTips</title>
	<atom:link href="https://takabus.com/tips/tag/virtualbox/feed/" rel="self" type="application/rss+xml" />
	<link>https://takabus.com/tips</link>
	<description>プログラミングやサーバー、日々のTipsをメモしています。</description>
	<lastBuildDate>Wed, 26 Jan 2022 13:19:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://takabus.com/tips/wp-content/uploads/2022/12/cropped-tips-1-32x32.png</url>
	<title>VirtualBox | ばすにっきTips</title>
	<link>https://takabus.com/tips</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【VirtualBox】仮想マシンのディスク容量を増やすには？サイズ変更からLinuxのパーティション・LVM拡張までの全手順</title>
		<link>https://takabus.com/tips/552/</link>
					<comments>https://takabus.com/tips/552/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Sun, 07 Nov 2021 04:27:42 +0000</pubDate>
				<category><![CDATA[サーバー]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[xfs]]></category>
		<category><![CDATA[parted]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=552</guid>

					<description><![CDATA[VirtualBoxの仮想マシン（Linux）の容量を増やす手順をまとめておきます。仮想ハードディスクファイルのサイズ変更から、Linuxのパーティション変更、LVMについての話まで、網羅的にまとめています。]]></description>
										<content:encoded><![CDATA[
<p>ある日、仮想マシンサーバーのWordPressの動きがおかしいなあと思っていたら、ルートディレクトリの使用率が98%に迫っていました。容量が足りなかったんですね。。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  908M     0  908M    0% /dev
tmpfs                     920M     0  920M    0% /dev/shm
tmpfs                     920M  8.5M  911M    1% /run
tmpfs                     920M     0  920M    0% /sys/fs/cgroup
/dev/mapper/centos-root   8.0G  7.8G  243M   98% /
/dev/sda1                1014M  178M  837M   18% /boot
tmpfs                     184M     0  184M    0% /run/user/0</code></pre>



<p>こういったとき、<strong><span class="red"><span class="marker-under">VirtualBoxの仮想マシン（Linux）の容量を増やす手順をまとめておきます。</span></span></strong>仮想ハードディスクファイルのサイズ変更から、Linuxのパーティション変更、LVMについての話まで、網羅的にまとめています。</p>



<h2 class="wp-block-heading" id="step1-仮想ハードディスクを大きくする">&lt;STEP1&gt;仮想ハードディスクを大きくする</h2>



<p>まずは、仮想ハードディスクファイルのサイズを拡張しないといけません。</p>



<p>「VirtualBoxマネージャー」から、仮想マシンの起動ディスクファイル名をチェックしておきます。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-394.png" alt="スクリーンショット" class="wp-image-4032"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-395.png" alt="スクリーンショット" class="wp-image-4033"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-396.png" alt="スクリーンショット" class="wp-image-4034"/></figure></div>



<p>次に、「仮想メディアマネージャー」から仮想ディスクを拡張します。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-397.png" alt="スクリーンショット" class="wp-image-4035"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-398.png" alt="スクリーンショット" class="wp-image-4036"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-399.png" alt="スクリーンショット" class="wp-image-4037"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-400.png" alt="スクリーンショット" class="wp-image-4038"/></figure></div>



<p>サイズを大きくします。ここでは10GBを20GBまで拡張することにしました。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-401.png" alt="" class="wp-image-4039"/></figure></div>



<p>サイズ指定後、[適用]ボタンを押します。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-memo block-box has-border-color has-light-green-border-color">
<p>サイズ変更後、[適用]を押すと、エラーになることがあります。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-403.png" alt="スクリーンショット" class="wp-image-4042"/></figure></div>



<p>これは仮想ハードディスクファイルがVDIではないためです。この場合は一旦、仮想ハードディスクファイルを.vdi形式に変換する必要があります。「仮想ディスクマネージャー」にて、[コピー]をクリックし、VDI形式に変換後、再度サイズ変更を実施してみてください。</p>
</div>



<h2 class="wp-block-heading" id="step2-linuxから拡張したディスクを使えるようにしよう">&lt;STEP2&gt;Linuxから拡張したディスクを使えるようにしよう</h2>



<p>サイズを拡張したら、とりあえずマシンを起動して、Linuxでパーティション構成を見てみましょう。</p>



<p>Linuxではpartedというコマンドを使って、パーティションテーブルを確認・操作することが可能です。parted -lでディスクに存在するパーティションを表示できます。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# parted -l
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  10.7GB  9663MB  primary                    lvm</code></pre>



<p>2つのパーティションが確認できました。</p>



<p>OSが読み書きできるのは、あくまでパーティションです。ディスク容量を増やしただけでは、パーティションのサイズは変わらず、OSから使用することはできません。拡張した分は、パーティションが割り当てられていない空の領域となってしまいます。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-405.png" alt="パーティションの解説" class="wp-image-4044"/></figure></div>



<p>そこで、パーティションのサイズを拡張することが必要となります。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-404.png" alt="パーティションの解説" class="wp-image-4043"/></figure></div>



<p>実際の方法ですが、パーティション2の終点をディスク末尾に変更するようにします。</p>



<p>まず、2番のパーティションを削除します。そして、始点をそのままにして、終点のみディスク末尾のセクタに変更し、パーティションを作り直すようにします。これならすでに存在しているデータを破壊せず、後からパーティションを拡張することが可能です。当記事では、この 詳しい手順を紹介します。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<p>パーティションを削除というところで、<strong>「データ消えちゃうんじゃないの？」</strong>と思った方もいるかも知れませんが、大丈夫です。パーティションというのはあくまで「仕切り」ですので、一度消しても後から同じ位置に戻せば、データが消えることはありません。</p>



<p>とはいえ、間違って操作すると、一瞬でデータが飛びます。<strong>必ずバックアップしてから、以降の操作を行ってください。</strong></p>
</div>



<h3 class="wp-block-heading" id="環境">環境</h3>



<p>改めて、今回の環境をまとめておきます。</p>



<ul><li>マシン（A）<ul><li>Oracle VM VirtualBox 5.2.22 r126460</li><li>OS：CentOS7.4</li></ul></li><li>パーティション変更を行うマシン（B）<ul><li>Oracle VM VirtualBox 5.2.22 r126460</li><li>OS：ubuntu-18.04.5-desktop-amd64.iso</li></ul></li></ul>



<p>パーティションの変更は、対象のディスクがマウントされていない状態で行わなければなりません。よって、用意した別のマシンにディスクを接続し、パーティショニングする必要があります。（つまり、マシンの起動に使用しているディスクをパーティショニングすることはできません。）</p>



<p>当記事では、仮想マシンのディスクを別の仮想マシンからパーティショニングします。UbuntuのISOイメージから別の仮想マシンをもう一つ立ち上げ、仮想ディスクのパーティションを変更するようにしていますが、UbuntuなどのISOを仮想マシンの仮想ディスクドライブにセットして、Liveで立ち上げてもOKです。なお、実機では、UbuntuなどをUSBやCDに焼いてセットし、そこから起動すれば、当記事と同じ手順で実行できます。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-423.png" alt="スクリーンショット" class="wp-image-4080"/><figcaption>仮想高額ドライブにUbuntuのISOをセット。</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-420.png" alt="スクリーンショット" class="wp-image-4061"/><figcaption>ISOからLiveで立ち上げれば、パーティションの変更が可能となる。</figcaption></figure></div>



<h2 class="wp-block-heading" id="方法">方法</h2>



<p>１つずつ、やり方を紹介していきます。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box alert-box">
<p><strong>コマンドはすべてスーパーユーザー（rootユーザー）で実行してください。</strong>一般ユーザーでは、ディスクが正しく表示されない場合があります。</p>
</div>



<h3 class="wp-block-heading" id="手順1-現在のディスク情報を取得">【手順1】現在のディスク情報を取得</h3>



<p>まず、パーティション変更前のフォーマットを取得し、メモしておきます。</p>



<pre class="wp-block-code"><code>
&#91;root@ts02 ~]# df -Th
ファイルシス            タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs                devtmpfs   908M     0  908M    0% /dev
tmpfs                   tmpfs      920M     0  920M    0% /dev/shm
tmpfs                   tmpfs      920M  8.6M  911M    1% /run
tmpfs                   tmpfs      920M     0  920M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs #←チェック！ 8.0G  7.8G  243M   98% /
/dev/sda1               xfs       1014M  178M  837M   18% /boot
tmpfs                   tmpfs      184M     0  184M    0% /run/user/0</code></pre>



<p>Tオプションにより、フォーマットを表示させています。今回はxfsが採用されていることが確認できました。フォーマットは後で必要になるので、覚えておいてください。</p>



<p>次に、partedで拡張したいディスクを開きます。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# parted /dev/sda
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ！ コマンド一覧を見るには 'help' と入力してください。</code></pre>



<p>partedで開くときは、パーティションではなくデバイスを指定します。/dev/sda1など、末尾に数字がついているものはパーティションです。そうではなくて、<strong>数字なしで/dev/sdaのように指定します。</strong></p>



<p>とりあえずprintしてみます。</p>



<pre class="wp-block-code"><code>(parted) print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  10.7GB  9663MB  primary                    lvm</code></pre>



<p>間違ったデバイスを指定していないことを確認したら、<strong>表示単位をセクタに変更</strong>します。</p>



<pre class="wp-block-code"><code>(parted)unit s</code></pre>



<p>セクタ単位にしたら、もう一度printします。この出力も後で必要になります。確実にメモしておいてください。<strong>とくに開始と終了の値は、1文字でも間違うとデータが飛ぶので要注意です。</strong></p>



<pre class="wp-block-code"><code>(parted) print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 41943040s
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始      終了       サイズ     タイプ   ファイルシステム  フラグ
 1    2048s     2099199s   2097152s   primary  xfs               boot
 2    2099200s  20971519s  18872320s  primary                    lvm</code></pre>



<h3 class="wp-block-heading" id="手順2-パーティションテーブルの変更">【手順2】パーティションテーブルの変更</h3>



<p>ここからいよいよパーティションテーブルを変更していきます。</p>



<p>まず、2番めのパーティションを削除します。</p>



<pre class="wp-block-code"><code>(parted)rm 2</code></pre>



<p>以下のエラーが表示された場合は、ディスクが使用中です。マウントされていないか確認してください。</p>



<pre class="wp-block-code"><code>できませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。</code></pre>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box alert-box">
<p>使用中のディスクは、パーティショニングできません。必ず別のマシン（もしくはLiveイメージのOS）からパーティショニングする必要があります。</p>
</div>



<p>問題なければ、パーティションを作成します。mkpartコマンドを実行し、プロンプトに従ってください。</p>



<pre class="wp-block-code"><code>(parted) mkpart
Partition type? primary/extended? primary
File system type? &#91;ext2]? xfs
Start? 2099200s
End? 100%</code></pre>



<p>いくつか質問されますので、以下のように回答します。</p>



<ul><li>パーティションタイプはPrimaryを指定します。</li><li>File system typeは確認しておいたフォーマット（ここではxfs）を指定します。</li><li>Startはメモしておいたパーティション2の開始（ここでは2099200s）を指定します。単位付きで指定してください。</li><li>Endはディスクの未割り当て領域すべてをパーティションに割り当てたいので、100%を指定します。</li></ul>



<p>すべてやったら、printします。問題なさそうなら、qと入力してpartedを終了します。</p>



<h3 class="wp-block-heading" id="手順3-ファイルシステムの拡張">【手順3】ファイルシステムの拡張</h3>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>ここからは、元のマシン（B）に戻って作業を行ってもOK</p>
</div>



<p>次に、ファイルシステムの拡張を行います。</p>



<p>ファイルシステムの拡張を行うことで、OSから拡張した分のパーティションを使用できるようになります。使用するコマンドは、ディスクのフォーマットによって異なります。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-amber-border-color">
<ul><li><strong>XFS以外(ext4など)→resize2fsコマンド</strong></li><li><strong>XFSの場合→xfs_growthfsコマンド</strong></li></ul>
</div>



<p>今回はxfsだったので、xfs_growthfsコマンドを使用します。</p>



<pre class="wp-block-code"><code># xfs_growfs /dev/centos/root</code></pre>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/02/image-421.png" alt="スクリーンショット" class="wp-image-4063"/></figure></div>



<p>うまくいけば、下のようなメッセージが表示されます。その場合は拡張成功です。</p>



<pre class="wp-block-code"><code>data blocks changed from 2096128 to 4699136</code></pre>



<p>一方、スクリーンショットのように、拡張に成功した旨のメッセージが表示されない場合は失敗です。次の手順に進んでください。</p>



<h2 class="wp-block-heading" id="うまくいかなかったときは">うまくいかなかったときは？</h2>



<p><strong>今回の手順でうまく行かなかった場合、おそらくLVMが使用されています。</strong></p>



<p>LVMというのは、ディスクを仮想的に認識するシステムです。LVMが使用されているときにパーティションを変更した場合は、その変更をLVMにも認識させる必要があります。</p>



<p>以下に手順を掲載していますので、続けて操作してください。</p>



<h3 class="wp-block-heading" id="手順4-パーティションにlvmフラグを立てる">【手順4】パーティションにLVMフラグを立てる</h3>



<p>はじめに、拡張したパーティションにpartedでLVMフラグを立てます。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>ここは別マシンでやる必要はありません。フラグに関しては、使用中のディスクに対しても設定することができます。</p>
</div>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# parted /dev/sda
GNU Parted 3.1
/dev/sda を使用
GNU Parted へようこそ！ コマンド一覧を見るには 'help' と入力してください。
(parted) set 2 lvm on
(parted) print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 21.5GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  xfs               boot
 2    1075MB  21.5GB  20.4GB  primary                    lvm ＃LVMフラグが付いた
(parted)q</code></pre>



<p>LVMフラグが立ちました。</p>



<h3 class="wp-block-heading" id="手順5-lvmの拡張">【手順5】LVMの拡張</h3>



<p>次に、LVMを拡張していきます。まず、PV（物理ボリューム）を拡張します。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               &lt;9.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2303
  Free PE               0
  Allocated PE          2303
  PV UUID               l24sPn-F5Es-m6NA-135o-FIkb-IGGk-FP1E2r

&#91;root@ts02 ~]# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

&#91;root@ts02 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               &lt;19.00 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               2560
  Allocated PE          2303
  PV UUID               l24sPn-F5Es-m6NA-135o-FIkb-IGGk-FP1E2r</code></pre>



<p>PV Sizeのところに注目すると、ちゃんと容量が増えたことがわかります。</p>



<p>つづいて、LV（論理ボリューム）の拡張を行います。</p>



<p>論理ボリュームの拡張は、<code>lvextend</code>コマンドで行います。partedでパーティションに10GB追加したので、とりあえず10GB追加するようコマンドします。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# lvextend -L +10G /dev/centos/root
  Insufficient free space: 2560 extents needed, but only 2535 available</code></pre>



<p>エラーとなりました。誤差が生じるので、単純な計算通りにはいきません。追加できる最大値がエラー内に表示されているので、その値を＋の次に指定すればOKです。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# lvextend -L +2535 /dev/centos/root
  Size of logical volume centos/root changed from 8.09 GiB (2072 extents) to 17.90 GiB (4583 extents).
  Logical volume centos/root successfully resized.</code></pre>



<p>うまくいきました。</p>



<p>最後にファイルシステムを拡張します。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=524032 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2096128, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2096128 to 4699136 # 拡張された！</code></pre>



<h3 class="wp-block-heading" id="手順6-完了">【手順6】完了！</h3>



<p>これでミッション完了です。dfコマンドでチェックしてみると、きちんと容量が追加されたことが確認できます。</p>



<pre class="wp-block-code"><code>&#91;root@ts02 ~]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  908M     0  908M    0% /dev
tmpfs                     920M     0  920M    0% /dev/shm
tmpfs                     920M  8.5M  911M    1% /run
tmpfs                     920M     0  920M    0% /sys/fs/cgroup
/dev/mapper/centos-root    18G  7.8G   11G   44% / # ふえた！！
/dev/sda1                1014M  178M  837M   18% /boot
tmpfs                     184M     0  184M    0% /run/user/0</code></pre>



<h2 class="wp-block-heading" id="まとめ">まとめ</h2>



<p>仮想マシンはラフに使えることもあり、気づいたら容量がパンパンになっていた（汗）ということがありがちです。</p>



<p>当記事で紹介した手順通りやれば、かんたんに容量を拡張することができます。空きが足らなくなって困ったときは、参考にしていただければ幸いです。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/552/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
