はじめに
Zybo-Z7の開発環境としてWindows版のVivadoとVitis、WSL2のUbuntu(18.04.6 LTS)にPetaLinux、Linux版のVivdoとVitisをインストールしたら、465GBのC:ドライブの空き容量が心ものなくなってしまったので、WSL2の仮想ハードディスクファイル(vhdxファイル)をD:ドライブに移動した。
やり方としては、
- ディストリビューションを別領域に複製後、元のディストリビューションを削除
- ディストリビューションをexportし、ディストリビューションを削除、そして、exportしたファイルをimport
の2つあるので、それぞれをやってみた。
準備
起動中のUbuntuを終了する
-
exit
でWindowsターミナルを閉じただけでは、Running状態のままなので、wsl --shutdown
かwsl --terminate ディストリビューション
で終了させる。
- wslのコマンドで終了させる
PowerShell
PS C:\Users\ozora> wsl --terminate Ubuntu-18.04 この操作を正しく終了しました。 PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2
vhdxファイルの場所を確認する
- インストールされたvhdxファイルは、
C:\Users\ユーザ名\AppData\Local\Packages\CanonicalGroupLimited.○○○○\LocalState
にある- Ubuntu 18.04LTSをインストールした私の環境では、○○○○の部分は
Ubuntu18.04LTS_79rhkp1fndgs
だった。
- Ubuntu 18.04LTSをインストールした私の環境では、○○○○の部分は
- 複数のディストリビューションをインストールしているときは、vshxファイルの選択を間違えないように
vhdxファイルの複製
-
複製と言っても、実はvhdxファイルを import である。
-
ただし、異なるディストリビューション名にする必要がある
-
--import
オプションは、指定されたファイルを新しいディストリビューションとしてインポートする。デフォルトは tar ファイルだが、--vhd
オプションで vhdx ファイルを指定できる。 -
wsl --import 新しいディストリビューション名 複製元vhdxファイルのパス名 複製先vhdxファイルのパス名 --version 2 --vhd
-
ここで注意してほしいのは、フォルダの区切りは''(バックスラッシュ)で入力する必要がありそうだということ。キーボードから'¥'を入力したら、区切りではなく'¥'という文字として認識されてしまった。
-
本家のディストリビューション名が Ubuntu-18.04 なので '-' を '_' に変えた Ubuntu_18.04 にした。
PowerShellPS C:\Users\ozora> wsl --import Ubuntu_18.04 D:\wsl\Ubuntu18.04LTS\ext4.vhdx C:\Users\ozora\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04LTS_79rhkp1fndgsc\LocalState --version 2 --vhd インポート中です。この処理には数分かかることがあります。 この操作を正しく終了しました。
-
ディストリビューションリストを表示させて確認
PowerShellPS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 Ubuntu_18.04 Stopped 2
-
Ubuntu_18.04 を起動してみる
PowerShellPS C:\Users\ozora> wsl -d Ubuntu-18.04 root@DESKTOP-H3CE8QA:/mnt/c/Users/ozora#
-
起動はできたけれど、なぜか root でログインされてしまった。
PowerShellPS C:\Users\ozora> wsl -d Ubuntu_18.4 ozorakobo:/mnt/c/Users/ozora$
-
--user
or-u
オプションで、実行するユーザを指定することができるPowerShellPS C:\Users\ozora> wsl -d Ubuntu_18.04 -u ozorakobo ozorakobo:/mnt/c/Users/ozora$
- あるいは、
/etc/wsl.conf
でユーザを指定してもよい。/etc/wsl.conf[boot] systemd=true [user] default=ozorakobo
- wsl.configに[user]を追加して、起動してみる。
PowerShell
PS C:\Users\ozora> wsl -d Ubuntu_18.04 ozorakobo:/mnt/c/Users/ozora$
-
-
Ubuntu_18.04 を終了する
PowerShellozorakobo:/mnt/c/Users/ozora$ exit logout PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 Ubuntu_18.04 Running 2 PS C:\Users\ozora> wsl --terminate Ubuntu_18.4 この操作を正しく終了しました。 PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 Ubuntu_18.04 Stopped 2
-
元のディストリビューションを削除する
-
--unregister
オプションで、ディストリビューションの登録を解除し、ルート ファイルシステムを削除することができる。 -
ここでは、次の「vhdxファイルの export -> import」を行うため、複製した"Ubuntu_18.04"を削除する。
PowerShellPS C:\Users\ozora> wsl --unregister Ubuntu_18.04 登録解除。 この操作を正しく終了しました。 PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2
-
-
無事 vhdxファイルの移動ができた。
vhdxファイルの export -> import
- 現在のディストリビューション vhdxファイルと export し、別のパスに importする
- export後、ディストリビューションを削除すれば、同じディストリビューション名で import することができる
- 削除すると元に戻せないので、リスクを負うことなるので注意
- 手順として export するが、export せずファイルをコピーして、importしても大丈夫かもしれない
-
--export
オプションは、ディストリビューションをファイルにエクスポートする。デフォルトは tar ファイルだが、--vhd
オプションで vhdx ファイルを指定できる。 wsl --export ディストリビューション名 export先vhdxファイルのパス名 --vhd
- ここでは、D:¥Temp に export する
PowerShell
PS C:\Users\ozora> wsl --export Ubuntu-18.04 D:\Temp\Ubuntu-18.04.vhdx --vhd エクスポートが進行中です。これには数分かかる場合があります。 この操作を正しく終了しました。 PS C:\Users\ozora> dir d:\Temp ディレクトリ: D:\Temp Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2024/01/27 20:11 254678138880 Ubuntu-18.04.vhdx
- 思い切ってディストリビューションを削除する
PowerShell
PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu_18.04 Stopped 2 PS C:\Users\ozora> wsl --unregister Ubuntu-18.04 登録解除。 この操作を正しく終了しました。 PS C:\Users\ozora> wsl -l -v Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。 使用可能なディストリビューションを一覧表示するには、'wsl.exe --list --online' を使用します インストールするには 'wsl.exe --install <Distro>' と指定します。 ディストリビューションは、Microsoft Storeにアクセスしてインストールすることもできます: https://aka.ms/wslstore Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND
- ディストリビューションがなくなった。
- exportされたvhdxファイルをインポートする
- 将来複数のディストリビューションを扱う可能性を考慮して、
D:\wsl\Ubuntu18.04LTS
に import する。 - ディストリビューション名は、元と同じ
Ubuntu-18.04
とする。
PowerShellPS C:\Users\ozora> wsl --import Ubuntu-18.04 D:\wsl\Ubuntu18.04LTS C:\Temp\Ubuntu-18.04.vhdx --version 2 --vhd インポート中です。この処理には数分かかることがあります。 この操作を正しく終了しました。 PS C:\Users\ozora> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2
- 将来複数のディストリビューションを扱う可能性を考慮して、
- インポートされた。ヨシッ!
PowerShell
PS C:\Users\ozora> wsl -d Ubuntu-18.04 ozorakobo:/mnt/c/Users/ozora$
- 無事起動した。
- Vivado, vitisも起動できたので一安心。
おわりに
- vhdxファイルがC:ドライブを大きく占めるほど大きくなってしまったため、D:ドライブに移動させた。
- 移動の際は、ディストリビューションの複製と export -> import の二つの寳保を試した。
- 200GB以上もあるvhdxファイルの移動を試みたため、import, export にとても時間がかかってしまった。サイズが小さいうちに移動したほうがよい。
- ディストリビューションを消去してから、import するのはリスクが大きくなるので、ディストリビューション名を変える必要はあるものの複製するほうがいいと思う。そういう意味でも、もし失っても痛手のないうちに移動させておくほうがいいだろう。