私の問題は、いくつかの問題のためにウィンドウをリセットまたは再インストールする必要があることですが、開発用にWSLを構成するために多くの時間を費やし、それを失いたくありません。
WSL全体をその設定とインストールされたモジュール、プラグイン、ユーザーなどでバックアップし、ウィンドウをリセットまたは再インストールした後に復元する方法はありますか?このトピックをよく検索しましたが、役立つ情報が見つかりませんでした。
それ以外の場合、バックアップする方法がない場合、windows 10のリセットはWSLを完全に削除しますか?
Windows 10 v1903組み込みのWSLエクスポート/インポートコマンドを含む 。具体的には、wsl --export
はtar
を生成し、wsl --import
は以前にエクスポートされたtar
をインポートします。その後、このファイルをコンピュータ間で移動できます。
-
でstdin/stdoutを指定することもできます。これにより、別のマシンに直接転送して、ssh
のようなリモートシェルを使用してインポートできます。
いくつかの方法がありますが、1つの一般的な方法は tarを使用して、バックアップするファイルのアーカイブを作成する (環境を再作成するときにすべてを再インストールするため)です。単純なbackup.sh
スクリプトを作成すると、定期的なスケジュールで繰り返しバックアップを簡単に行えるようになります。
ほとんどの設定はLinuxの.___設定ファイルに保存され、多くの場合〜/フォルダーにあります。 /etc/ssh/ssh_config
および他の同様のシステム構成ファイルをバックアップすることもできますが、インスタンス固有のキー/データ/などを含む複雑な構成ファイルには注意してください。
aptパッケージリストを生成dpkg-query -f '${binary:Package}\n' -W
を使用して、バックアップすることもできるファイルにエコーできます。
その後、これらのtarアーカイブを別の場所にコピーできます。 Windowsでアクセス可能なフォルダー(例:/mnt/c/backups
)にコピーし、そこからOneDrive、DropBox、外付けHDD、FTPなどにコピーすることをお勧めします。
Windows 10 1903では、更新されたwsl.exe
ツールが同梱されています。これには、ディストリビューションの内容を外部アーカイブに/からエクスポート/インポートする機能が含まれており、ディストリビューション間のバックアップおよび/または移動プロセスを大幅に簡素化します。マシン!
HTH。
WSL linuxディストリビューション全体をバックアップおよび復元するには、(1)ファイルシステムで.tar.gz
を作成し、(2)インターネットで入手できるいくつかのインストーラーツールを使用してコピーを復元します。
.tar.gz
ファイルからインストールできます。rootfs.tar.gz
からディストリビューションをインストールできます。バックアップの作成
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コマンドラインを使用して、作成されたtarをWSLの新しいディストリビューションとしてインストールできます。
# 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ディストリビューションを実行します。
Jaimeの答えは完璧ですが、launcher.exeを使用してtarボールをインストールするときに/tmp
フォルダが再作成されない(具体的には、WSLインストールをあるマシンから別のマシンに移動することについて話している)。
したがって、/tmp
を作成し、必要な権限を割り当てる必要があります。
私のために働いた1つのアプローチは:
https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/
# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start