VirtualBox上のUbuntuのディスク拡張

Vagrant+VirtualBoxで作ったUbuntu 18.04で、/dev/sda1(partition: primary, filesystem: ext4)がfullになってしまったのでディスクを拡張したい。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
(略)
/dev/sda1       9.7G  9.7G   16K 100% /
(略)

環境

事前準備

  • VMを電源OFFにする
  • 念のためVMのバックアップを取る *.vbox*.vmdk、Logs、Snapshotsなどが入っているフォルダを丸ごとどこかにコピーしておく。

VMDK→VDIへの変換、ディスク拡張、アタッチ

VirtualBoxのコマンドでもできそうだったが、下記はGUIからの手順

VMDKをVDIに変換

VMDK形式だと拡張できないため、VDIに変換

  1. VirtualBoxGUIから、画面上部「ツール」 の右側のアイコン ->「メディア」を選択
  2. 対象のディスク(.vmdk)を選択して右クリック -> 「コピー」
  3. ディスクイメージのファイルタイプを聞かれるので、VDIを選択 -> 「次へ」
  4. 適当に名前をつけて「コピー」

ディスクの拡張

仮想化環境のディスク容量を拡張する - Avintonジャパン株式会社

こちらを参考に、VDIに変換済みのディスクを拡張。

拡張したディスクイメージ(VDI)をVMにアタッチ

  1. VirtualBox GUI上で対象のVMの「設定」 -> 「ストレージ」からもともとのディスクをデタッチする。 ※vagrantを使った場合ubuntu-bionic-18.04-cloudimg.vmdkubuntu-bionic-18.04-cloudimg-configdrive.vmdkがアタッチされているはず。両方とも「割り当てを除去」
  2. 「ハードディスクの追加」から、VDIに変換済みのディスクイメージを選択

拡張したディスクをOSから認識させる

※以下はVirtualBox関係なし

まだ容量の増えたDiskをアタッチしただけなので、OS上では認識されていない。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
(略)
/dev/sda1       9.7G  9.7G   16K 100% /
(略)

パーティションを拡張

$ sudo cfdisk /dev/sda
Disk: /dev/sdaSize: 20 GiB, 21474836480 bytes, 41943040 sectorsLabel: dos, identifier: 0x035e1d7d
   Device           Boot      Start            End        Sectors       Size       Id Type
>> /dev/sda1        *          2048       20971486       20969439        10G       83 Linux
   Free space              20971520       41943039       20971520        10G

/dev/sda1の後ろにFree spaceがあることがわかるので、[ Resize ]を選択し、パーティションを20GBにリサイズ。

Partition 1 resized.と出たあと、[ Write ]を選択して変更を書き込む。

ファイルシステム上でも拡張

$ sudo resize2fs /dev/sda1
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/sda1 is now 5242619 (4k) blocks long.

以下のとおり、OSから認識された。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
(略)
/dev/sda1        20G  9.7G  9.7G  50% /
(略)

参考

Vagrant (VirtualBox) でディスクサイズを変更する方法

Vagrant+VirtualBoxで、ディスクを拡張する - CLOVER🍀

vagrantのexperimental機能、Vagrant Disksを使う → Stderr: VBoxManage.exe: error: Could not find a controller named 'SATA Controller'というエラーが出たため断念