LoginSignup
0
0

WSL ディスク拡張

Posted at

WindowsにWSLをインストールすると、そのLinuxにはデフォルトで1TBの領域が割り当てられます。

今回、大きなディスク領域を必要とする作業を予定していて、Windows用のVMに3TBのディスクを割り当てましたが、WSLのUbuntuの領域としては1TBだけが割り当てられていました。この領域を拡張できることがわかったのでやってみました。

参考:

【作業前の状態】
Linux Df コマンドを使用して、WSL 2 と共にインストールされた Linux ディストリビューションの VHD で使用可能なディスク領域の量を確認します。

PowerShellにて
PS C:\Users\user01> wsl.exe --system -d Ubuntu df -h /mnt/wslg/distro
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc       1007G   99G  857G  11% /mnt/wslg/distro

参考)WSL Ubuntuコマンドラインからのdf -h出力

user01@DESKTOP-2RV6EAU:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
none             16G  4.0K   16G   1% /mnt/wsl
none            3.0T  230G  2.8T   8% /usr/lib/wsl/drivers
none             16G     0   16G   0% /usr/lib/modules
none             16G     0   16G   0% /usr/lib/modules/5.15.146.1-microsoft-standard-WSL2
/dev/sdc       1007G   99G  857G  11% /
none             16G  172K   16G   1% /mnt/wslg
none             16G     0   16G   0% /usr/lib/wsl/lib
rootfs           16G  1.9M   16G   1% /init
none             16G  792K   16G   1% /run
none             16G     0   16G   0% /run/lock
none             16G  168K   16G   1% /run/shm
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
none             16G   76K   16G   1% /mnt/wslg/versions.txt
none             16G   76K   16G   1% /mnt/wslg/doc
C:\             3.0T  230G  2.8T   8% /mnt/c
snapfuse        128K  128K     0 100% /snap/bare/5
snapfuse         74M   74M     0 100% /snap/core22/864
snapfuse         75M   75M     0 100% /snap/core22/1122
snapfuse         92M   92M     0 100% /snap/gtk-common-themes/1535
snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1276
snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1286
snapfuse         41M   41M     0 100% /snap/snapd/20290
snapfuse         40M   40M     0 100% /snap/snapd/21184

以下の手順で、Linux ディストリビューションの VHD サイズを、割り当てられたディスク領域の既定の最大容量である 1TB を超えて拡張することができます。

  1. WSL インスタンスを終了します。

    PowerShellにて
    PS C:\Users\user01> wsl.exe --shutdown
    
  2. Linux ディストリビューション(今回の例ではUbuntu)の .vhdx ファイルとディレクトリ パスを見つけます。

    PowerShellにて
    PS C:\Users\user01> (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq 'Ubuntu' }).GetValue("BasePath") + "\ext4.vhdx"
    C:\Users\user01\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx
    
  3. Diskpart コマンド インタープリターを起動します。

    PS C:\Users\user01> diskpart
    
    別ウィンドウでDiskPartが起動
    Microsoft DiskPart バージョン 10.0.22621.1
    
    Copyright (C) Microsoft Corporation.
    コンピューター: DESKTOP-2RV6EAU
    
    DISKPART> 
    
  4. 次のコマンドを入力し、ステップ2で取得したLinux ディストリビューションに関連付けられている ext4.vhdx ファイルへのディレクトリ パスを指定します。

    DISKPART> Select vdisk file="C:\Users\user01\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx"
    
    DiskPart により、仮想ディスク ファイルが選択されました。
    
  5. VHD が割り当てられている現在の最大サイズを表す仮想サイズなど、この仮想ディスクに関連付けられている詳細を表示します

    DISKPART> detail vdisk
    
    デバイスの種類 ID: 0 (不明)
    ベンダー ID: {00000000-0000-0000-0000-000000000000} (不明)
    状態: 追加済み
    仮想サイズ: 1024 GB
    物理サイズ:  100 GB
    ファイル名: C:\Users\user01\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx
    子: いいえ
    親ファイル名:
    関連付けられたディスク番号: 見つかりません。
    
  6. 仮想サイズを拡張します。今回は最大サイズを2TB (2048000MB) に拡張する例です。*サイズはメガバイト単位で指定します。その後、Diskpartを終了します。

    DISKPART> expand vdisk maximum=2048000
    
      100% 完了しました
    
    DiskPart により、仮想ディスク ファイルは正常に拡張されました。
    
    DISKPART> detail vdisk
    
    デバイスの種類 ID: 0 (不明)
    ベンダー ID: {00000000-0000-0000-0000-000000000000} (不明)
    状態: 追加済み
    仮想サイズ: 2000 GB
    物理サイズ:  100 GB
    ファイル名: C:\Users\user01\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx
    子: いいえ
    親ファイル名:
    関連付けられたディスク番号: 見つかりません。
    
    DISKPART> exit
    
    DiskPart を終了しています...
    PS C:\Users\user01>
    
  7. このディストリビューションのファイル システムのサイズを拡張できることを WSL に認識させます。

    WSLコマンドラインにて
    user01@DESKTOP-2RV6EAU:~$ sudo mount -t devtmpfs none /dev
    mount | grep ext4
    [sudo] password for user01:
    mount: /dev: none already mounted on /mnt/wsl.
    /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)
    /dev/sdc on /snap type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
    
    user01@DESKTOP-2RV6EAU:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    none             16G  4.0K   16G   1% /mnt/wsl
    none            3.0T  230G  2.8T   8% /usr/lib/wsl/drivers
    none             16G     0   16G   0% /usr/lib/modules
    none             16G     0   16G   0% /usr/lib/modules/5.15.146.1-microsoft-standard-WSL2
    /dev/sdc       1007G   99G  857G  11% /
    none             16G   88K   16G   1% /mnt/wslg
    none             16G     0   16G   0% /usr/lib/wsl/lib
    rootfs           16G  1.9M   16G   1% /init
    none             16G  744K   16G   1% /run
    none             16G     0   16G   0% /run/lock
    none             16G  168K   16G   1% /run/shm
    tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
    none             16G   76K   16G   1% /mnt/wslg/versions.txt
    none             16G   76K   16G   1% /mnt/wslg/doc
    C:\             3.0T  230G  2.8T   8% /mnt/c
    snapfuse         40M   40M     0 100% /snap/snapd/21184
    snapfuse        128K  128K     0 100% /snap/bare/5
    snapfuse         75M   75M     0 100% /snap/core22/1122
    snapfuse         41M   41M     0 100% /snap/snapd/20290
    snapfuse         92M   92M     0 100% /snap/gtk-common-themes/1535
    snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1286
    snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1276
    snapfuse         74M   74M     0 100% /snap/core22/864
    
  8. resize2fsコマンドを使用して、この Linux ディストリビューションの仮想ドライブ (ext4.vhdx) を新しいサイズに拡張します。以下は /dev/sdc を2TBに拡張する例です。

    WSLコマンドラインにて
    user01@DESKTOP-2RV6EAU:~$ sudo resize2fs /dev/sdc 2048000M
    resize2fs 1.46.5 (30-Dec-2021)
    Filesystem at /dev/sdc is mounted on /; on-line resizing required
    old_desc_blocks = 128, new_desc_blocks = 250
    The filesystem on /dev/sdc is now 524288000 (4k) blocks long.
    

【作業後の状態】

PowerShellにて
PS C:\Users\user01> wsl.exe --system -d Ubuntu df -h /mnt/wslg/distro
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        2.0T   99G  1.8T   6% /mnt/wslg/distro

参考)WSL Ubuntuコマンドラインからのdf -h出力

user01@DESKTOP-2RV6EAU:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
none             16G  4.0K   16G   1% /mnt/wsl
none            3.0T  230G  2.8T   8% /usr/lib/wsl/drivers
none             16G     0   16G   0% /usr/lib/modules
none             16G     0   16G   0% /usr/lib/modules/5.15.146.1-microsoft-standard-WSL2
/dev/sdc        2.0T   99G  1.8T   6% /
none             16G   88K   16G   1% /mnt/wslg
none             16G     0   16G   0% /usr/lib/wsl/lib
rootfs           16G  1.9M   16G   1% /init
none             16G  744K   16G   1% /run
none             16G     0   16G   0% /run/lock
none             16G  168K   16G   1% /run/shm
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
none             16G   76K   16G   1% /mnt/wslg/versions.txt
none             16G   76K   16G   1% /mnt/wslg/doc
C:\             3.0T  230G  2.8T   8% /mnt/c
snapfuse         40M   40M     0 100% /snap/snapd/21184
snapfuse        128K  128K     0 100% /snap/bare/5
snapfuse         75M   75M     0 100% /snap/core22/1122
snapfuse         41M   41M     0 100% /snap/snapd/20290
snapfuse         92M   92M     0 100% /snap/gtk-common-themes/1535
snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1286
snapfuse        132M  132M     0 100% /snap/ubuntu-desktop-installer/1276
snapfuse         74M   74M     0 100% /snap/core22/864
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0