0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2 をCドライブ以外で使う

Last updated at Posted at 2025-01-14

概要

WSL2の Linuxディストリビューションの仮想ディスク(vhdxファイル)を、Cドライブ以外に配置して使うための手順です。

WSL2の仮想ディスクはデフォルトでCドライブに配置されていますが、使っているとファイルサイズが大きくなります。Cドライブの空き容量が足りなくなったら移動すると良いです。

vhdxファイルが100GBを超えるくらい大きくなっていても、エクスプローラーでのファイルコピーには時間がかかりますが、その他の処理はすぐ終わります。

所要時間: 5~10分くらい

(1) WSLで Linuxをインストール

好きな Linuxディストリビューションをインストールして VHDXファイルを作成します。
※インストール済みのディストリビューションを移動する場合は、この作業は飛ばしてください

PowerShell
# インストールできる Linux 一覧を確認
PS> wsl -l -o
NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
...

# 好きな Linux をインストール
PS> wsl --install -d Ubuntu-24.04
インストール中: Ubuntu 24.04 LTS
Ubuntu 24.04 LTS がインストールされました。
Ubuntu 24.04 LTS を起動しています...

# ユーザー名とパスワードを入力
Enter new UNIX username: [ユーザー名を入力]
New password: [パスワードを入力]
Retype new password: [パスワードを再入力]

# Linuxシェルが起動したら終了させる
$ exit

(2) VHDXファイルを配置場所へコピー

コピー作業の前に、WSLを終了します。

PowerShell
# WSLを終了する
PS> wsl --shutdown

# インストール済みの Linux 一覧を表示
PS> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-24.04      Stopped         2

エクスプローラーで "C:\Users\ユーザー名\AppData\Local\Packages" を開いて、ディストリビューションのVHDXファイルを探します。Ubuntu 24.04 の場合は以下のフォルダにあります。

C:\Users\ユーザー名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_XXXXXXXXX\LocalState\

LocalStateフォルダ内の ext4.vhdx を別のドライブの好きな場所にコピーします。

(3) VHDXファイルを WSL にインポート

コピーした ext4.vhd (この例では "D:\XXX\My-Ubuntu-24\ext4.vhdx") を、新しい LinuxディストリビューションとしてWSLにインポートします。

PowerShell
# VHDXファイルを Linux「My-Ubuntu-24」としてインポート
PS> wsl --import-in-place My-Ubuntu-24 "D:\XXX\My-Ubuntu-24\ext4.vhdx"

# インストール済みの Linux 一覧を表示
PS> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-24.04      Stopped         2
  MY-Ubuntu-24      Stopped         2

# インポートした Linux「My-Ubuntu-24」を起動
PS> wsl -d My-Ubuntu-24

(4) 初期設定

インポートした Linux を起動すると、rootユーザーでシェルが起動するので、以下を実行します。

bash
# wsl.conf を修正
root@HOSTNAME# echo "
[user]
default=<普段使うユーザー名>

[interop]
enabled=true
" >> /etc/wsl.conf

# ユーザーを変更
root@HOSTNAME# su - <普段使うユーザー名>
Password: [パスワードを入力]

# .bash_profile を作成
$ echo "
# カレントディレクトリをホームに設定
[[ \$SHLVL -eq 1 ]] && cd ~

# .bashrc を読み込み
if [[ -f ~/.bashrc ]] ; then
  . ~/.bashrc
fi" >> ~/.bash_profile

# シェルを終了
$ exit

# rootのシェルを終了
root@HOSTNAME# exit

# WSLを終了
PS> wsl --shutdown

(5) 動作確認

PowerShelll
# Linux「My-Ubuntu-24」を起動
PS> wsl -d My-Ubuntu-24

移動前に Dockerを使用していた場合、Dockerコンテナはすべて消えています。docker compose up コマンドなどで作りなおします。

bash
# Dockerコンテナを表示
$ docker ps -a
CONTAINER ID   IMAGE                                                COMMAND                  CREATED          STATUS

(6) 古い仮想ディスクを削除

動作に問題がなければ、古い Linuxディストリビューションを削除します。この時、古い仮想ディスク (vhdxファイル) も自動的に削除されます。

PowerShell
# インストール済みの Linux 一覧を表示
PS> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-24.04      Stopped         2
  MY-Ubuntu-24      Stopped         2

# 古い Linuxディストリビューションを削除
PS> wsl --unregister Ubuntu-24.04

# インストール済みの Linux 一覧を表示。「Ubuntu-24.04」が消えた
PS> wsl -l -v
  NAME              STATE           VERSION
* MY-Ubuntu-24      Stopped         2

参考にした記事

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?