Mi problema es que tengo que restablecer o reinstalar Windows debido a algunos problemas, pero pasé mucho tiempo para configurar WSL para el desarrollo y no quiero perderlo.
¿Hay alguna forma de hacer una copia de seguridad de todo el WSL con su configuración y módulos instalados, complementos, usuarios, etc. y restaurarlo después de restablecer o reinstalar Windows? Busqué mucho este tema pero no pude encontrar ninguna información útil.
De lo contrario, si no hay forma de hacer una copia de seguridad, ¿el reinicio de Windows 10 eliminará totalmente WSL?
%USERPROFILE%/AppData/Local/lxss
. ¿Has intentado eso?Respuestas:
¿Cómo hacer una copia de seguridad?
De varias maneras, pero una práctica común es usar tar para crear un archivo de los archivos que desea respaldar (para volver a instalar todo cuando vuelva a crear su entorno). Escribir un
backup.sh
script simple debería facilitar la copia de seguridad repetida en un horario regular.¿Qué hacer una copia de seguridad?
La mayor parte de su configuración se almacena en archivos de configuración de Linux .___, a menudo en su carpeta ~ /. Es posible que también desee hacer una copia de seguridad de su
/etc/ssh/ssh_config
y otros archivos de configuración del sistema similares, aunque tenga cuidado con los archivos de configuración complejos que contienen claves / datos / instancias específicas de la instancia, etc.Puede generar su lista de paquetes apt usando
dpkg-query -f '${binary:Package}\n' -W
y podría hacer eco en un archivo que también puede respaldar.¿A dónde respaldar?
Luego puede copiar estos archivos tar en una ubicación separada. Recomendamos copiar en una carpeta accesible para Windows (p
/mnt/c/backups
. Ej. ) Desde la cual puede copiarla en OneDrive, DropBox, HDD externo, FTP en otro lugar, etc.HTH
fuente
Windows 10 v1903 incluye un comando de exportación / importación WSL incorporado . Específicamente,
wsl --export
que produce untar
ywsl --import
, que importa un exportado previamentetar
. Luego puede mover este archivo entre computadoras.También puede especificar stdin / stdout con
-
, lo que debería permitirle transferir directamente a otra máquina e importar utilizando un shell remoto comossh
.fuente
wsl --import
También puede importartar.gz
archivos. Esos comandos lanzan%SystemRoot%\System32\lxss\tools\bsdtar
internamente el binario ELF64.wsl --export
puede tomar más tiempo de lo esperado. En mi máquina, se sentó durante aproximadamente 10 minutos después de haber escrito solo unos pocos megabytes, luego finalmente escribió un archivo tar de 3.2 GB.Para hacer una copia de seguridad y restaurar una distribución completa de Linux de WSL, puede intentar (1) crear una
.tar.gz
con su sistema de archivos y (2) restaurar la copia usando algunas herramientas de instalación disponibles en Internet:.tar.gz
archivo.rootfs.tar.gz
.Crear la copia de seguridad
Según un informe de problemas , puede crear una copia de seguridad utilizando el
tar
en el WSL. Tenga en cuenta que debe ignorar algunas carpetas (por ejemplo, / mnt) en la copia.Debe crear, o mover más tarde, el archivo de respaldo a una
/mnt/c
subcarpeta válida . En el ejemplo, los archivos se crean en el/mnt/c/tmp
.Restauración usando lxRunOffline
Usando lxRunOffline , puede instalar el tar resultante como una nueva distribución en WSL usando la línea de comando de Windows.
Para ejecutar la copia de seguridad, puede usar el mismo lxRunOffline
Restauración usando un DistroLauncher
Hay muchos lanzadores para distribuciones de Linux basados en el ejemplo de Microsoft . Creo que puedes probar la versión Yuk7 .
Debe descargar un archivo de distribución y el
launcher.exe
. Para usar el mismo archivo de distribución mencionado anteriormente, debe cambiar el nombre del archivo de copia de seguridadrootfs.tar.gz
y el iniciador por el nombre de distribución que desee. Más tarde, debe ejecutar el iniciador como administrador (recibí errores al ejecutarlo como usuario normal)La primera vez que ejecuta el iniciador, se instala y ejecuta la distribución. La próxima vez, ejecuta la distribución de Linux.
fuente
Si bien la respuesta de Jaime es perfecta, de alguna manera la
/tmp
carpeta no se recrea cuando se utiliza launcher.exe para instalar la bola de alquitrán (específicamente estoy hablando de mover la instalación WSL de una máquina a otra).Entonces uno debe crear
/tmp
y asignar los derechos requeridos.El único enfoque que funcionó para mí es:
https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/
fuente