2023年01月05日(木) [長年日記]
■ [windows] WSLのディストリビューションを非Cドライブに移動した
CドライブでWSLが使用している領域が大きかったので、別のドライブへ移動した。やったことをメモ。
インストールされているディストリビューションの確認
- インストールされている Linux ディストリビューションを一覧表示する (WSL の基本的なコマンド)
> wsl -l -v NAME STATE VERSION * Debian Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2
このDebianを移動したい。
エクスポートする
移動するために対象のディストリビューションをエクスポートする。
- ディストリビューションのインポートとエクスポート (WSL の基本的なコマンド)
--vhdオプションを付けた方が速くエクスポートできるようだ。
コマンドを実行したフォルダに巨大なファイルが作られるので注意。
> wsl --export Debian debian.vhdx --vhd エクスポートが進行中です。これには数分かかる場合があります。 この操作を正しく終了しました。
インポートする
> wsl --import debian2 M:\kenichi\wsl\debian debian.vhdx --vhd インポート中です。この処理には数分かかることがあります。 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * Debian Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2 debian2 Stopped 2
Mドライブへ別名でインポートした。インポート時にも --vhd オプションが必要。
この段階でインポートしたディストリビューションが動くことを確認したらいい。Windows Terminalでdebian2を選べるようになっているはず。
既定のディストリビューションを変更する
今後はdebian2の方を使うので、それを既定に設定する。
- 既定の Linux ディストリビューションを設定する (WSL の基本的なコマンド)
> wsl --set-default debian2 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * debian2 Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2 Debian Stopped 2
移動元のディストリビューションを削除する
インポートしたディストリビューションが動くことを確認できたら移動元の方は削除する。
これでCドライブの空き容量が増えた。
> wsl --unregister Debian 登録解除。 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * debian2 Running 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2
既定のユーザーを設定する
インポートしたディストリビューションは起動するとログインユーザがrootになる。これを変更するにはディストリビューション内に /etc/wsl.conf を作るのがいいようだ。日本語の説明はわかりにくかったので英語版から引用。
- Change the default user for a distribution (Basic commands for WSL)
Warning
This command will not work for imported distributions, because these distributions do not have an executable launcher. You can instead change the default user for imported distributions using the /etc/wsl.conf file.
$ cat /etc/wsl.conf [user] default=kenichi
- ユーザー設定 (WSL での詳細設定の構成)