V1
This commit is contained in:
commit
ab17ec1e48
4 files changed
+520
No files matched your search
@@ -0,0 +1,116 @@
|
||||
# wsl-manage
|
||||
|
||||
Outil PowerShell interactif de sauvegarde et de restauration des distributions WSL.
|
||||
Il gere aussi les donnees Docker Desktop lorsque la distribution `docker` ou
|
||||
`docker-desktop` est selectionnee.
|
||||
|
||||
## Fichiers
|
||||
|
||||
- `wsl-manage.cmd` : commande a lancer.
|
||||
- `wsl-manage-core.ps1` : implementation PowerShell.
|
||||
|
||||
Le dossier contenant ces fichiers doit etre dans le `PATH` Windows pour pouvoir
|
||||
lancer `wsl-manage` depuis n'importe quel terminal.
|
||||
|
||||
## Prerequis
|
||||
|
||||
- Windows avec WSL installe et accessible par `wsl.exe`.
|
||||
- PowerShell.
|
||||
- Docker Desktop doit etre completement arrete lorsqu'une sauvegarde ou une
|
||||
restauration Docker est concernee.
|
||||
- Le lecteur de destination doit etre accessible et disposer de suffisamment
|
||||
d'espace libre.
|
||||
|
||||
L'execution en administrateur n'est normalement pas necessaire. Elle peut etre
|
||||
necessaire pour acceder a certains fichiers VHDX ou effectuer un compactage.
|
||||
|
||||
## Sauvegarde
|
||||
|
||||
Lancer sans argument :
|
||||
|
||||
```powershell
|
||||
wsl-manage
|
||||
```
|
||||
|
||||
Le script :
|
||||
|
||||
1. Liste les distributions WSL disponibles.
|
||||
2. Demande de sauvegarder toutes les distributions ou une seule.
|
||||
3. Demande le lecteur de destination et affiche son espace libre.
|
||||
4. Demande confirmation.
|
||||
5. Arrete WSL avec `wsl --shutdown`.
|
||||
6. Exporte les distributions selectionnees au format `.tar`.
|
||||
7. Affiche une progression estimee et le temps ecoule.
|
||||
|
||||
Les sauvegardes sont rangees dans un dossier date sous `WSL-Backup` :
|
||||
|
||||
```text
|
||||
D:\WSL-Backup\2026-09-16_20-05-42\
|
||||
|-- Ubuntu.tar
|
||||
|-- Debian.tar
|
||||
`-- ...
|
||||
```
|
||||
|
||||
Le pourcentage affiche est une estimation basee sur l'espace utilise par la
|
||||
distribution. `wsl.exe --export` ne fournit pas de progression native.
|
||||
|
||||
## Donnees Docker Desktop
|
||||
|
||||
Si `docker` ou `docker-desktop` est selectionne, le script :
|
||||
|
||||
1. Verifie que Docker Desktop est arrete.
|
||||
2. Demande le chemin des donnees Docker.
|
||||
3. Utilise par defaut :
|
||||
|
||||
```text
|
||||
E:\WSL\Docker\desktop-data
|
||||
```
|
||||
|
||||
4. Verifie la presence des dossiers `disk` et `main`.
|
||||
5. Copie ces dossiers dans :
|
||||
|
||||
```text
|
||||
D:\WSL-Backup\2026-09-16_20-05-42\Docker\
|
||||
|-- disk\
|
||||
`-- main\
|
||||
```
|
||||
|
||||
La distribution `docker-desktop` exportee en `.tar` contient principalement
|
||||
les fichiers systeme. Les images, conteneurs et volumes Docker sont dans les
|
||||
donnees `disk` et `main`.
|
||||
|
||||
## Restauration
|
||||
|
||||
Lancer avec l'argument `restore` :
|
||||
|
||||
```powershell
|
||||
wsl-manage restore
|
||||
```
|
||||
|
||||
Le script :
|
||||
|
||||
1. Demande le lecteur contenant `WSL-Backup`.
|
||||
2. Demande la date de sauvegarde.
|
||||
3. Demande une distribution ou `Toutes les machines`.
|
||||
4. Demande confirmation apres recapitulatif.
|
||||
5. Arrete WSL.
|
||||
6. Importe les distributions sous `WSL-Install\DATE`.
|
||||
7. Restaure les donnees Docker uniquement si `docker` ou `docker-desktop` est
|
||||
selectionne.
|
||||
|
||||
Une distribution restauree porte le nom de son fichier sans extension :
|
||||
|
||||
```text
|
||||
Ubuntu.tar -> Ubuntu
|
||||
```
|
||||
|
||||
Le dossier d'installation d'une distribution ne doit pas deja exister.
|
||||
|
||||
## Conseils
|
||||
|
||||
- Quitter Docker Desktop depuis son icone de notification avant une operation
|
||||
Docker.
|
||||
- Ne pas interrompre la copie des fichiers VHDX.
|
||||
- Conserver une copie de secours des donnees Docker avant restauration.
|
||||
- Les anciennes sauvegardes ne contenant pas de dossier `Docker` ne permettent
|
||||
pas de restaurer les donnees Docker.
|
||||
Reference in new issue
Block a user