81 votes

Comment sauvegarder le sous-système Linux (WSL) pour Windows 10, avant la réinitialisation ou la réinstallation du système ?

Mon problème est que je dois réinitialiser ou réinstaller Windows à cause de certains problèmes, mais j'ai passé beaucoup de temps à configurer WSL pour le développement et je ne veux pas le perdre.

Existe-t-il un moyen de sauvegarder l'ensemble de WSL avec ses paramètres et les modules, plugins, utilisateurs installés, etc. et de le restaurer après avoir réinitialisé ou réinstallé Windows ? J'ai beaucoup cherché sur ce sujet mais je n'ai pas trouvé d'informations utiles.

Sinon, s'il n'y a aucun moyen de sauvegarder, est-ce que la réinitialisation de Windows 10 supprimera totalement WSL ?

97voto

Bob Points 58080

Windows 10 v1903 comprend une commande intégrée d'exportation/importation de WSL . Plus précisément, wsl --export qui produit un tar y wsl --import qui importe un produit précédemment exporté tar . Vous pouvez ensuite déplacer ce fichier entre les ordinateurs.

Vous pouvez également spécifier stdin/stdout avec - ce qui devrait vous permettre de transférer directement sur une autre machine et d'importer en utilisant un Shell distant comme suit ssh .

22voto

Richard Turner Points 1811

Comment faire une sauvegarde ?

De nombreuses façons, mais une pratique courante consiste à utiliser tar pour créer une archive des fichiers que vous voulez sauvegarder (afin de tout réinstaller lorsque vous recréez votre environnement). L'écriture d'un simple backup.sh script devrait faciliter les sauvegardes répétées selon un calendrier régulier.

Que sauvegarder ?

La plupart de votre configuration est stockée dans des fichiers de configuration Linux .___, souvent dans votre dossier ~/. Vous pouvez également sauvegarder vos fichiers /etc/ssh/ssh_config et d'autres fichiers de configuration système similaires, mais soyez prudent avec les fichiers de configuration complexes qui contiennent des clés/données/etc spécifiques à une instance.

Vous pouvez générer votre liste de paquets apt en utilisant dpkg-query -f '${binary:Package}\n' -W et pourrait faire écho dans un fichier que vous pouvez également sauvegarder.

Où faire une sauvegarde ?

Vous pouvez ensuite copier ces archives tar à un autre endroit. Nous vous recommandons de les copier dans un dossier accessible par Windows (par ex. /mnt/c/backups ) à partir duquel vous pouvez le copier vers OneDrive, DropBox, un disque dur externe, un autre site FTP, etc.

Mise à jour 2020-02-18 Mise à jour

Dans Windows 10 1903, nous avons expédié une mise à jour wsl.exe qui inclut la possibilité d'exporter/importer le contenu d'une distro vers/depuis une archive externe, simplifiant grandement le processus de sauvegarde et/ou de déplacement des distros entre les machines !

HTH.

4voto

Pour sauvegarder et restaurer une distribution linux WSL complète, vous pouvez essayer de (1) créer une .tar.gz avec votre système de fichiers et (2) restaurer la copie en utilisant certains outils d'installation disponibles sur Internet :

  • LxRunOffline a des options pour dupliquer et installer des distributions linux personnalisées. Vous pouvez installer une distribution à partir d'un .tar.gz archivo.
  • WSL-DistroLauncher vous permet d'installer une distribution à partir d'un rootfs.tar.gz .
  • WSLInstall un autre installateur linux pour WSL.

Création de la sauvegarde

Sur la base d'un rapport d'émission vous pouvez créer une sauvegarde en utilisant l'option tar dans la WSL. Notez que vous devez ignorer certains dossiers (par exemple /mnt) dans la copie.

# 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

Vous devez créer, ou déplacer ultérieurement, le fichier de sauvegarde dans un dossier valide. /mnt/c sous-dossier. Dans l'exemple, les fichiers sont créés dans le dossier /mnt/c/tmp .


Restauration à l'aide de lxRunOffline

Utilisation de lxRunOffline vous pouvez installer le tar résultant comme une nouvelle distribution dans WSL en utilisant la ligne de commande Windows.

# 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

Pour exécuter la sauvegarde, vous pouvez utiliser la même procédure que pour lxRunOffline.

# lxrunoffline run -n <distro name> -w
C:\wsl> lxrunoffline run -n mybackup  -w

Restauration à l'aide d'un DistroLauncher

Il existe de nombreux lanceurs pour les distributions linux basés sur le système Exemple de Microsoft . Je pense que vous pouvez essayer le Version Yuk7 .

Vous devez télécharger un fichier de distribution et le launcher.exe . Pour utiliser le même fichier de distribution que celui mentionné ci-dessus, vous devez renommer le fichier de sauvegarde en rootfs.tar.gz et le lanceur au nom de la distribution que vous voulez. Ensuite, vous devez exécuter le lanceur en tant qu'administrateur (j'ai eu des erreurs en l'exécutant en tant qu'utilisateur normal).

c:\wsl> ren launcher.exe mybackup.exe
c:\wsl> ren .\ubuntu_20180729_00.tar.gz rootfs.tar.gz
c:\wsl> .\mybackup.exe

La première fois que vous lancez le lanceur, il installe et exécute la distribution. La fois suivante, il exécute la distribution linux.

0voto

Rajesh Thampi Points 101

Alors que la réponse de Jaime est parfaite, d'une certaine façon, le /tmp n'est pas recréé lorsque launcher.exe est utilisé pour installer la boule de goudron (je parle spécifiquement du déplacement de l'installation WSL d'une machine à une autre).

Il faut donc créer /tmp et attribuer les droits nécessaires.

L'approche qui a fonctionné pour moi est la suivante :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X