今日をどう過ごそうか

Twitter @01futabato10

【WSL2】仮想ハードディスクのサイズを拡張する

この記事はSecHack365 Advent Calendar 2024 3日目の記事です。

qiita.com


こんにちは、ふたばとです。

今回は、WSL の仮想ハードディスクサイズの拡張、つまり WSL に割くストレージの量を拡張します。

先日のこちらの記事は、Windows 側のストレージの話です。

01futabato10.hateblo.jp

1. 現在のディスク使用状況を確認する

まず、現在のディスク使用状況を確認します。以下のコマンドを実行してください。

$ df -h /mnt/wslg/distro

例として、以下のような出力が得られます。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        251G  239G     0 100% /mnt/wslg/distro

2. DiskPartを使用して仮想ディスクを選択する

次に、Windows PowerShell を開き、DiskPart を使用して仮想ディスクを選択します。 仮想ディスク(.vhdxファイル)のパスの取得の仕方は、以下のブログをご参照ください。

01futabato10.hateblo.jp

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\WINDOWS\system32> diskpart

Microsoft DiskPart バージョン 10.0.22621.1

Copyright (C) Microsoft Corporation.
コンピューター: FUTABATO-DESKTO

DISKPART> Select vdisk file="$env:USERPROFILE\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"

DiskPart により、仮想ディスク ファイルが選択されました。

仮想ディスクが選択されたことを確認し、詳細をみます。

DISKPART> detail vdisk

デバイスの種類 ID: 0 (不明)
ベンダー ID: {00000000-0000-0000-0000-000000000000} (不明)
状態: 追加済み
仮想サイズ:  256 GB
物理サイズ:  250 GB
(snip)

3. 仮想ディスクのサイズを拡張する

仮想ディスクのサイズを拡張するには、以下のコマンドを実行します。

DISKPART> expand vdisk maximum=524288

  100% 完了しました

DiskPart により、仮想ディスク ファイルは正常に拡張されました。

拡張が完了したことを確認してみます。

DISKPART> detail vdisk

デバイスの種類 ID: 0 (不明)
ベンダー ID: {00000000-0000-0000-0000-000000000000} (不明)
状態: 追加済み
仮想サイズ:  512 GB
物理サイズ:  250 GB
(snip)

DiskPart を終了します。

DISKPART> exit

DiskPart を終了しています...
PS C:\WINDOWS\system32>

4. ファイルシステムのサイズを調整する

WSL を起動します。

$ df -h /mnt/wslg/distro

この時点では、まだ何も変わっていないでしょう。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        251G  239G     0 100% /mnt/wslg/distro

バイスをマウントします。

$ sudo mount -t devtmpfs none /dev

既にマウントされている場合、mount: /dev: none は /mnt/wsl にマウント済みです. とメッセージが表示されます。

マウントされたファイルシステムを確認します。

$ mount | grep ext4

例として、以下のような出力が得られます。

/dev/sdc on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
/dev/sdc on /mnt/wslg/distro type ext4 (ro,relatime,discard,errors=remount-ro,data=ordered)

resize2fs コマンドを使用してファイルシステムのサイズを調整します。

$ sudo resize2fs /dev/sdc 524288M

例として、以下のような出力が得られます。

resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sdc is mounted on /; on-line resizing required
old_desc_blocks = 32, new_desc_blocks = 64
The filesystem on /dev/sdc is now 134217728 (4k) blocks long.

これにて正常に ext4 の仮想ハードディスクサイズが拡張されました。

5. 変更を確認する

$ df -h /mnt/wslg/distro

わいわい。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        503G  239G   237G  51% /mnt/wslg/distro

この記事はSecHack365 Advent Calendar 2024 3日目の記事です。

qiita.com

昨日 2 日の記事は しーぴーくん の WebUIをサッと作るツールとしてのhtmx でした。

zenn.dev

明日 3 日の記事があるかはわかりません。