Howto

ATDEで使用できるディスク容量を大きくする(VirtualBox)

まっさらなATDEの仮想ディスクには20GB以上の空き領域がありますが、Debianパッケージを追加したり開発コンポーネントや作業ファイルが増えていくにつれて不足することがあります。実際のハードディスクに余裕がある場合は、ATDEのディスクを増設して解決できます。

動作確認に使用した環境

VirtualBoxOracle VM VirtualBox 7.0.18
ATDEATDE9(atde9-amd64-20240925.ova)、ATDE10(atde10-amd64-20241030.ova)

手順を誤った場合、ATDEを起動できなくなる可能性があります。ご使用中のATDEに適用する場合、必ずバックアップやスナップショットを取ってから作業を行ってください。

作業の前に

標準でATDEに割り当てられている32GiBのディスクのサイズを変更すると、ATDEを起動できなくなる場合があります。 このため、割り当てられているディスクのサイズを変更するのではなく、新たにディスクを割り当てるという方法でディスク容量を大きくします。 ここでは、64GiBのディスクを新たに割り当てる(計96GiB)ものとして説明します。

ATDEのディスクは、Logical Volume Manager(LVM)というものを使って構築されています。目的は単純ですが、このLVMのために実際の作業はやや面倒です。以下のような流れで手順を追っていきます。

  1. VirtualBoxでディスクを新たに割り当てる
  2. 追加したディスクをボリュームグループに登録する
  3. 論理ボリュームに割り当てる物理拡張領域を増やす
  4. ルートファイルシステムの容量を増やす

1. VirtualBoxでディスクを新たに割り当てる

まず、VirtualBoxがATDEに割り当てているディスクを新たに追加します。

  1. Oracle VM VirtualBox マネージャーで目的のATDEを選択し、パワーオフになっていることを確認する。
  2. [設定]-[ストレージ]-[コントローラー: SATA]から[ハードディスクの追加]を選択する。

  1. ハードディスク選択のダイアログで[作成]をクリックする。
  2. [VMDK (Virtual Machine Disk)]を選択して[次へ]をクリックする。
  3. 「ファイルの場所とサイズ」で、所望のサイズ(ここでは64.00 GB)を指定して[完了]をクリックする。

  1. 新たに作成したディスクを[選択]して[OK]をクリックする。

2. 追加したディスクをボリュームグループに登録する

ここからはATDE上からの操作になります。ATDEを起動してログインし、ターミナルを開いてください。

新たにディスク(/dev/sdb)が追加されていることを確認します。

[ATDE ~]$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb
[ATDE ~]$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

/dev/sdbのサイズが64GiBとして認識されています。

初めからあった/dev/sda5が属するボリュームグループ名(下記出力のVGに記載されています)を確認します。ここではatde9-vgになります。

[ATDE ~]$ sudo pvs
  PV         VG       Fmt  Attr PSize   PFree 
  /dev/sda5  atde9-vg lvm2 a--  <31.52g 44.00m

先ほど新たに作成したディスク(/dev/sdb)を、同じボリュームグループatde9-vgに登録します。

[ATDE ~]$ sudo vgextend atde9-vg /dev/sdb
  Physical volume "/dev/sdb" successfully created.
  Volume group "atde9-vg" successfully extended

このボリュームグループの中に/dev/sdbが追加されたことを確認します。

[ATDE ~]$ sudo pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sda5  atde9-vg lvm2 a--  <31.52g  44.00m
  /dev/sdb   atde9-vg lvm2 a--  <64.00g <64.00g

3. 論理ボリュームに割り当てる物理拡張領域を増やす

現在の論理ボリュームの状態を表示します。

[ATDE ~]$ sudo lvs
  LV     VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   atde9-vg -wi-ao----  30.52g                                                    
  swap_1 atde9-vg -wi-ao---- 976.00m                                                    

root atde9-vgと表示された30.52GiBが、今までルートファイルシステムが使用していたディスクサイズです。

現在のボリュームグループを表示します。

[ATDE ~]$ sudo vgs
  VG       #PV #LV #SN Attr   VSize   VFree  
  atde9-vg   2   2   0 wz--n- <95.52g <64.04g

VFreeとして表示された約64GiBが、先ほどまでの手順で追加したディスクサイズになります。この追加分すべてを、/dev/atde9-vg/rootに割り当てます。

[ATDE ~]$ sudo lvresize -L +64GiB /dev/atde9-vg/root
  Size of logical volume atde9-vg/root changed from 30.52 GiB (7814 extents) to 94.52 GiB (24198 extents).
  Logical volume atde9-vg/root successfully resized.

再び論理ボリュームの状態を表示します。

[ATDE ~]$ sudo lvs
  LV     VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   atde9-vg -wi-ao----  94.52g                                                    
  swap_1 atde9-vg -wi-ao---- 976.00m                                                    

root   atde9-vgへの割り当てが、94.52GiBに増えたことがわかります。

4. ルートファイルシステムの容量を増やす

最後に、LVMで追加したディスク増量分を使って、ルートファイルシステムの容量を増やします。resize2fsコマンドを実行するだけで、新たなディスク容量に合わせて自動的にサイズ変更されます。

[ATDE ~]$ sudo resize2fs /dev/atde9-vg/root
resize2fs 1.46.2 (28-Feb-2021)
Filesystem at /dev/atde9-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 12
The filesystem on /dev/atde9-vg/root is now 24778752 (4k) blocks long.

dfコマンドを実行してみると、ルートファイルシステムの容量が増えたことが確認できます。

[ATDE ~]$ df -hl
ファイルシス               サイズ  使用  残り 使用% マウント位置
udev                         1.9G     0  1.9G    0% /dev
tmpfs                        392M  1.2M  391M    1% /run
/dev/mapper/atde9--vg-root    93G   12G   78G   13% /
tmpfs                        2.0G   84K  2.0G    1% /dev/shm
tmpfs                        5.0M  4.0K  5.0M    1% /run/lock
/dev/sda1                    470M  231M  215M   52% /boot
tmpfs                        392M   96K  392M    1% /run/user/1000