wsl --export / wsl --import.
Това е подходът, който използвам, когато искам пълен snapshot на дистрибуцията — пакети, home, SSH ключове, конфигове.
Файловете под /mnt/c/ (Windows дискове) не влизат в export-а. Тях ги бекъпвам отделно, ако ми трябват.
1. Защо изобщо правя бекъп на WSL?
WSL2 държи цялата Linux файлова система във virtual disk (обикновено ext4.vhdx).
Ако нещо се обърка — грешен rm -rf, проблем след update, смяна на диск или машина —
без бекъп си изгубил часове настройка.
Аз правя бекъп преди големи промени, преди миграция на друг диск и периодично, когато средата вече работи стабилно.
Една команда wsl --export ми дава пълен snapshot, който мога да върна с wsl --import.
2. Какво ми е необходимо?
PowerShell или Command Prompt (за предпочитане като обикновен потребител, не задължително Admin). Достатъчно свободно място на диска — export-ът е приблизително колкото размера на дистрибуцията (или малко повече при TAR).
Първо виждам какво имам инсталирано:
wsl --list --verbose
Или по-кратко:
wsl -l -v
Имената, които виждам тук (например Ubuntu, Ubuntu-24.04), са точно тези, които подавам на export/import.
3. Спирам WSL преди бекъп
Не експортирам работеща дистрибуция, ако мога да я избегна. Докато има отворени файлове или процеси, snapshot-ът може да е непоследователен.
Спирам конкретна дистрибуция:
wsl --terminate Ubuntu
Или спирам всичко (всички дистрибуции + леката WSL2 VM):
wsl --shutdown
wsl --shutdown.
Така знам, че няма отворени файлове и бекъпът е чист.
4. Правя бекъп с export (TAR)
Това е класическият начин. Export-ът създава tar архив с цялата Linux файлова система на дистрибуцията.
Създавам папка за бекъпи и експортирам с дата в името (PowerShell):
New-Item -ItemType Directory -Force -Path "D:\WSL_Backups_2026"
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_Backup_$(Get-Date -Format dd-MM-yyyy).tar"
Командата работи тихо — няма progress bar. При стандартна Ubuntu с development инструменти отнема обикновено 1–5 минути, в зависимост от размера и диска.
Ако искам компресиран архив (по-малък файл):
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_Backup_$(Get-Date -Format dd-MM-yyyy).tar.gz" --format tar.gz
5. По-бърз вариант: export като VHD
При WSL2 мога да експортирам директно virtual disk-а. Това обикновено е по-бързо, защото не минава през tar serialization, а копира диска.
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_Backup_$(Get-Date -Format dd-MM-yyyy).vhdx" --format vhd
VHD форматът запазва и default user настройката по-чисто при restore. За редовни локални бекъпи често предпочитам именно него.
6. Какво влиза и какво не влиза в бекъпа
В export-а влизат:
- инсталираните пакети;
- home директориите и конфиговете;
- SSH ключове, .bashrc, .zshrc, docker данни вътре в Linux и т.н.
Не влизат файловете, достъпни през /mnt/c/, /mnt/d/ и други Windows mount-и.
Ако държа проекти на Windows диска, ги бекъпвам отделно (или ги държа в Linux home, ако искам да са в snapshot-а).
.wslconfig (глобалните настройки в Windows user profile) също не е част от export-а.
Ако го ползвам, копирам го отделно:
Copy-Item "$env:USERPROFILE\.wslconfig" "D:\WSL_Backups_2026\wslconfig_$(Get-Date -Format dd-MM-yyyy).bak"
7. Възстановяване от бекъп (Restore)
Restore-ът е import. Създавам нова дистрибуция от архива и ѝ задавам място за virtual disk-а.
Пример с TAR:
New-Item -ItemType Directory -Force -Path "D:\WSL\Ubuntu"
wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\WSL_Backups_2026\Ubuntu_Backup_22-08-2026.tar"
Пример с VHD:
New-Item -ItemType Directory -Force -Path "D:\WSL\Ubuntu"
wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\WSL_Backups_2026\Ubuntu_Backup_22-08-2026.vhdx" --vhd
Аргументите са: име, папка за install location, път до бекъп файла.
8. Връщам default user след import
Ако след restore влизам като root, задавам потребителя отново. Един от начините (ако дистрибуцията има helper команда):
ubuntu config --default-user fedya
(Името на командата може да е ubuntu2204.exe, ubuntu2404.exe и т.н. в зависимост от инсталацията.)
По-универсалният начин е през /etc/wsl.conf вътре в дистрибуцията:
wsl -d Ubuntu -u root
# вътре в Linux:
printf '[user]\ndefault=fedya\n' | tee /etc/wsl.conf
exit
wsl --terminate Ubuntu
След това отварям нормално:
wsl -d Ubuntu
9. Ако искам да заменя съществуваща дистрибуция
Import не презаписва съществуващо име. Ако искам да възстановя върху същото име, първо трябва да unregister-на старата.
wsl --unregister изтрива virtual disk-а на дистрибуцията.
Правя го само след като съм сигурен, че бекъп файлът е наличен и валиден.
wsl --shutdown
wsl --unregister Ubuntu
New-Item -ItemType Directory -Force -Path "D:\WSL\Ubuntu"
wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\WSL_Backups_2026\Ubuntu_Backup_22-08-2026.tar"
10. Миграция на друг диск (практичен сценарий)
Когато C: се напълни, местя WSL на D: чрез export → unregister → import на новото място.
wsl --shutdown
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_migrate.tar"
wsl --unregister Ubuntu
New-Item -ItemType Directory -Force -Path "D:\WSL\Ubuntu"
wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\WSL_Backups_2026\Ubuntu_migrate.tar"
# после връщам default user, както по-горе
След миграцията проверявам дали всичко е на място:
wsl -l -v
wsl -d Ubuntu -- whoami
wsl -d Ubuntu -- df -h
11. Клониране на дистрибуция
Понякога искам втора идентична среда (например за експерименти), без да пипам основната. Export + import с ново име върши работа:
wsl --shutdown
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_clone.tar"
New-Item -ItemType Directory -Force -Path "D:\WSL\Ubuntu-Dev"
wsl --import Ubuntu-Dev "D:\WSL\Ubuntu-Dev" "D:\WSL_Backups_2026\Ubuntu_clone.tar"
След това задавам default user и на клона. Мога да изтрия клона по всяко време с:
wsl --unregister Ubuntu-Dev
12. Import in-place (VHD на място)
Ако вече имам .vhdx файл и искам да го регистрирам без копиране:
wsl --import-in-place Ubuntu "D:\WSL\Ubuntu\ext4.vhdx"
Virtual disk-ът трябва да е ext4. Това е удобно, когато местя готовия VHD файл и не искам втори копие.
13. Моят практически workflow
За редовен бекъп преди рискова промяна правя следното:
чиста среда
TAR или VHD
файл + размер
промени / migrate
wsl --shutdown
New-Item -ItemType Directory -Force -Path "D:\WSL_Backups_2026"
wsl --export Ubuntu "D:\WSL_Backups_2026\Ubuntu_Backup_$(Get-Date -Format dd-MM-yyyy).tar"
Get-Item "D:\WSL_Backups_2026\Ubuntu_Backup_*.tar" | Select-Object Name, Length, LastWriteTime
Държа поне два поколения бекъпа. Не презаписвам единствения файл.
14. Полезни допълнителни команди
Няколко команди, които често ползвам около бекъп и поддръжка:
wsl --status
wsl --version
wsl --set-default Ubuntu
wsl --update
wsl -d Ubuntu -u fedya
15. TAR или VHD — кога кое?
| Формат | Предимства | Кога го ползвам |
|---|---|---|
tar (default) |
Универсален, работи навсякъде | Общ бекъп, прехвърляне между машини |
tar.gz |
По-малък файл | Когато мястото или мрежата са ограничени |
vhd |
По-бърз export/import, запазва default user по-добре | Редовни локални бекъпи, миграция на диск |
16. Командите накратко
| Команда | За какво я използвам |
|---|---|
wsl -l -v | Списък на дистрибуциите и версията им. |
wsl --shutdown | Спирам всички WSL инстанции преди бекъп. |
wsl --terminate NAME | Спирам само една дистрибуция. |
wsl --export NAME file.tar | Правя TAR бекъп. |
wsl --export NAME file.vhdx --format vhd | Правя VHD бекъп (по-бърз). |
wsl --import NAME path file.tar | Възстановявам от TAR. |
wsl --import NAME path file.vhdx --vhd | Възстановявам от VHD. |
wsl --import-in-place NAME file.vhdx | Регистрирам съществуващ VHD на място. |
wsl --unregister NAME | Изтривам дистрибуция (и данните ѝ). |
wsl --set-default NAME | Задавам default дистрибуция. |
wsl --status / wsl --version | Статус и версия на WSL. |
17. Заключение
Бекъпът на WSL2 не е сложен. Една добре направена wsl --export команда ми дава
пълен snapshot, който мога да върна с wsl --import на същото или на друго място.
Моят подход е прост: shutdown → export с дата в името → проверка на файла → после работа.
При restore внимавам с default user и никога не правя unregister, преди да съм сигурен,
че бекъпът е валиден.
Не усложнявам с външни инструменти, ако официалните команди вършат работа.
За мен комбинацията wsl --export / wsl --import е напълно достатъчна
за реална ежедневна употреба.