私の問題は、いくつかの問題があってwindowsをリセットしたり再インストールしたりしなければならないのですが、開発のためにWSLの設定に多くの時間を費やしてしまったので、それを失いたくないということです
WSLの設定やインストールされているモジュール、プラグイン、ユーザーなどのWSL全体をバックアップして、windowsをリセットまたは再インストールした後に復元する方法はありますか?私はこのトピックをたくさん検索しましたが、有用な情報を見つけることができませんでした
バックアップする方法がない場合は、Windows 10をリセットすると、WSLを完全に削除されますか?
56 None 2017-01-08
Windows 10 v1903 組み込みのWSLエクスポート/インポートコマンドを搭載しています。具体的には、wsl --export
でtar
を生成し、wsl --import
で先にエクスポートしたtar
をインポートします。そして、このファイルをコンピュータ間で移動することができます
また、-
でstdin/stdoutを指定すれば、別のマシンに直接転送してssh
のようにリモートシェルを使ってインポートできるはずです
61 Bob 2019-05-12
バックアップの方法は?
方法はいくつでもありますが、一般的な方法としては、tarを使ってバックアップしたいファイルのアーカイブを作成することです (環境を作り直すときにすべてを再インストールするため)。簡単なbackup.sh
スクリプトを書けば、定期的にバックアップを繰り返すことが容易になるはずです
何をバックアップするか?
設定のほとんどは Linux .___config ファイルに保存されています。/etc/ssh/ssh_config
やその他の同様のシステム設定ファイルをバックアップすることもできますが、インスタンス固有のキーやデータなどを含む複雑な設定ファイルには注意してください
あなたはgenerate your apt package listをdpkg-query -f '${binary:Package}\n' -W
を使用して生成することができますし、あなたもバックアップすることができますファイルにエコーすることができます
バックアップ先は?
そして、これらの tar アーカイブを別の場所にコピーしてください。Windowsでアクセス可能なフォルダ(/mnt/c/backups
など)にコピーして、そこからOneDrive、DropBox、外付けHDD、FTPなどにコピーすることをお勧めします
2020-02-18更新しました
Windows 10 1903では、ディストロの内容を外部アーカイブへ/外部アーカイブからエクスポート/インポートする機能を含む更新されたwsl.exe
ツールが出荷され、マシン間でのディストロのバックアップや移動のプロセスが大幅に簡素化されました
HTH.
19 Richard Turner 2017-04-13
完全な WSL linux ディストリビューションをバックアップして復元するには、(1) ファイルシステムで .tar.gz
を作成し、(2) インターネットで利用可能なインストーラツールを使ってコピーを復元してみてください
- LxRunOffline には、カスタム linux ディストリビューションを複製してインストールするオプションがあります。
.tar.gz
ファイルからディストロをインストールすることができます - WSL-DistroLauncherでは、
rootfs.tar.gz
からディストリビューションをインストールすることができます - WSLInstall、WSL用の別のlinuxインストーラです
バックアップの作成
issue reportに基づいて、WSLのtar
を使用してバックアップを作成することができます。コピーの中のいくつかのフォルダ(例: /mnt)は無視しなければならないことに注意してください
# cd /
# tar vzcpf /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.tar.gz --exclude=/proc --exclude=/dev --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/tmp --exclude=/sys --exclude=/run / > /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.log 2> /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.error
バックアップファイルは、有効な/mnt/c
サブフォルダに作成するか、後で移動する必要があります。例では、ファイルは/mnt/c/tmp
に作成されています
lxRunOffline を使用してリストアします
lxRunOffline を使用すると、Windows のコマンドラインを使用して WSL に新しいディストリビューションとして tar をインストールすることができます
# lxrunoffline install -n <distro name> -d <installation folder> -f <file>
C:\wsl> lxrunoffline install -n mybackup -d c:\wsl\mybackup -f c:\tmp\ubuntu_20180729_00.tar.gz
バックアップを実行するには、同じ lxRunOffline を使用することができます
# lxrunoffline run -n <distro name> -w
C:\wsl> lxrunoffline run -n mybackup -w
DistroLauncherを使って復元します
Microsoftの例を参考にしたlinuxディストリビューション用のランチャーはたくさんあります。Yuk7版を試してみてもいいと思います
ディストリビューションファイルとlauncher.exe
をダウンロードする必要があります。上記と同じディストリビューションファイルを使うには、バックアップファイルの名前をrootfs.tar.gz
に、ランチャーの名前を希望のディストリビューション名に変更する必要があります。後日、管理者としてランチャーを実行する必要があります(私は通常のユーザとして実行するとエラーになりました)
c:\wsl> ren launcher.exe mybackup.exe
c:\wsl> ren .\ubuntu_20180729_00.tar.gz rootfs.tar.gz
c:\wsl> .\mybackup.exe
最初にランチャーを実行すると、ディストリビューションをインストールして実行します。次回はlinuxのディストリビューションを実行します
3 Jaime 2018-07-29
Jaimeさんの回答は完璧ですが、tarボールをインストールするためにlauncher.exeを使用した場合、なぜか/tmp
フォルダが再作成されません(具体的にはWSLのインストールをあるマシンから別のマシンに移動させることについて話しています)
そのため、/tmp
を作成し、必要な権利を割り当てなければなりません
私に効果があったアプローチは
# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start
0 Rajesh Thampi 2019-05-11