WSLのOS引っ越しでvdhxファイルを自動マウント
ArchLinuxに不満が出てきた
ArchLinuxベースのManjaroを使っていたが、
pacmanアップデート時に証明書エラーが乱発するようになった。
一応復旧はできるんだが面倒くさいのでOSを変えたい。
ただ、データサイズがとんでもない量になっているので、
Windows経由だと時間がかかりすぎる。
(゜-゜) OS丸ごとデータドライブとしてマウントできないかな
今後同じようなこともありそうだし。
データ用のvhdxを持っておいて、
OSを簡単に変えられるようにしたいなぁ。
となるとマウントも自動にしなきゃな。
ということでOS自体を別OSにマウントする想定でやってみよう。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
マウントされるOSのvhdxファイルを用意
ホストOSをUbuntu、マウントされるOSをdebianとすると
wsl --install ubuntu
wsl --install debian
wsl --export Debian --vhd Debian.vhdx
wsl --unregister debian
ホストOSにマウント
ゲストOS側でマウントを実行。
Linux側からwsl.exeコマンドを呼び出す。
vhdxファイルの保存先をC:\work\Debian.vhdxをとすると
/c/Windows/System32/wsl.exe --mount "C:\work\Debian.vhdx" --name Debian --vhd
~/.profileにマウントコマンドを登録
マウントコマンドはシャットダウンすると解除される。
ただ、fstabやdiskpartでやる方法がどうも面倒くさい。
手っ取り早く.profile側に書いてしまおう
if [ ! -d /mnt/wsl/Debian ]; then
/c/Windows/System32/wsl.exe --mount "C:\work\Debian.vhdx" --name Debian --vhd
fi
参考:
How to automount an external vhdx file in WSL2
WSL2で他のディスクをマウント
------------------- ↓ 後書きはここから ↓-------------------
vhdxファイル作成方法
コントロールパネルにハードディスク パーティションの作成とフォーマット
という長い名前の機能がある。
ここでvhdxファイルを取り扱うことができるのだが、
OSが載ってるパーティションもごちゃ混ぜになってるUIなので使いたくない。
そこで、筆者はdistrodでAlpineなどの適当なゲストOSを作成して、
生成されたファイルを保存用vhdxとして使っている。
Discussion