2023年8月4日金曜日

WSL : WSL のディスク容量を拡張する

目的:

 WSLに割り当てられているディスク容量を拡張する

概要:

 WSL の空き容量に不安があったため、使用できるディスク容量の拡張を行う。
 WSL は仮想ハードディスク上にインストールされているため、この仮想ハードディスクの容量を増やし、WSLのファイルシステムサイズを拡張する。
 尚、WSLの仮想ハードディスクは ext4 であるが、ext4 の場合、拡張はできるが縮小はできないとのこと。
 容量の拡張は、
仮想ハードディスクの保存パスの探索
仮想ディスク容量の拡張
ファイルシステムのサイズを変更
 の順に行う。

手順:

事前準備

  1. 端末等、WSL が起動していれば 終了させる。
  2. PowerShell を 管理者権限で起動する。 念のため、PowerShell から
    wsl.exe --shutdown
    を実行しておく。

仮想ハードディスクの保存パスの探索

  1. ディストリビューションのパッケージ名を探す。
    PowerShell で "Get-AppxPackage" コマンドでディストリビューションのパッケージ名を探す。(Debian, Ubuntu, openSUSE 等で 探す)
    Get-AppxPackage "*[WSLディストリビューション名の一部]*" | select packagefullname
    例えば debian の場合
    Get-AppxPackage "*Debian*" | select packagefullname
    で パッケージ名が表示される。
  2. ディストリビューションのパスを探す。
    PowerShell で "Get-ChildItem" コマンドでパッケージのフルパスを探す。
    Get-ChildItem $env:LOCALAPPDATA\packages\[パッケージ名の先頭]
    を入力して Tab キー を押下すると パッケージのパスが表示される。
    (そのまま [Enter] を押下するとディレクトリの内容が表示される )

仮想ディスク容量の拡張

PowerShellで、以下の様に仮想ディスク容量の拡張を行う。
  1. diskpart コマンド起動
  2. select vdisk コマンドで 容量を拡張する仮想ディスクを指定する。
    仮想ディスクは ディストリビューションのパスに LocalState\ext4.vhdx を付加したもの。
  3. detail vdisk コマンド で現在の仮想ディスクの情報(サイズ等) を確認する。
  4. EXPAND VDISK MAXIMUN=[仮想ディスクサイズ] で 拡張を行う。
一連のコマンドは、以下の通り。
diskpart
select vdisk file=[パッケージのフルパス]\LocalState\ext4.vhdx
detail vdisk
EXPAND VDISK MAXIMUM=393216
exit

ファイルシステムのサイズを変更

仮想ディスクの容量を拡張した後、ファイルシステムのサイズを拡大する。
  1. WSLのディストリビューション(端末) を起動
  2. 現在のファイルシステムのデバイス名とサイズを確認しておく。
    WSLの端末から
    df -h
    を実行し、マウント位置 が / になっている デバイス名と容量を確認する。

    (この場合、デバイス名 /dev/sdb , 容量 251G)
  3. ファイルシステムサイズを変更
  4. resize2fs コマンドでファイルシステムサイズを変更。
    書式 : sudo resize2fs [デバイス名] [拡張後の容量]
    sudo resize2fs /dev/sdb 384G
  5. 拡張後のサイズを確認する。
  6. df -h
    結果例
    サイズが 377G に拡張されたことを確認できた。 



0 件のコメント:

コメントを投稿