まもなく Ubuntu 24.04 がリリースされます。OSがリリースされるとまっさらな状態でインストールして環境を引っ越すことも多いのではないでしょうか?設定ファイルなどは適宜コピーあるいは新たに設定してくわけですが、ホームディレクトリはまるごとコピー(あるいは同期)したいですよね。
一般的なサーバー間のコピーだと rsync を使うと思います。そうWSLでもrsyncを使ってコピーしてしまえば良いのです。
rsync のオプションに -e
があります。これはリモートシェル(通常は ssh)を変更するオプションです。このオプションに wsl.exe を使うことでディストロ間のやり取りが可能になります。
rsync -n -va -e '/mnt/c/WINDOWS/system32/wsl.exe -d' <ディストロ名>:<コピー元> <コピー先>
具体的に jammy
という名前の WSLディストロのユーザー foo のホームディレクトリをコピーしてみましょう。
rsync -n -va -e '/mnt/c/WINDOWS/system32/wsl.exe -d' jammy:/home/foo /home
これで出来上がりですが、オプション-n
を付けているのでまずは確認だけです。問題なければ-n
を外して実行すれば本当にコピーが実行されます。
デフォルトユーザー以外のファイルが含まれているのであれば以下のようにすることで root 権限でコピーすることも可能です。
sudo rsync -n -va -e '/mnt/c/WINDOWS/system32/wsl.exe -u root -d' jammy:/home/foo /home