LoginSignup
1
1

WSLディストロ間でファイルコピー(rsync)する

Posted at

まもなく 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
1
1
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
1
1