WSL potrafi działać miesiącami bez żadnej ingerencji, aż nagle przestaje uruchamiać kontenery, aplikacje GUI albo narzędzia deweloperskie. Wtedy sama aktualizacja dystrybucji Ubuntu nie zawsze wystarczy, bo osobno aktualizuje się platformę WSL, system Windows i pakiety Linuksa. Pokażę, jak zrobić to bezpiecznie, jak sprawdzić wersję oraz co zrobić, gdy polecenie aktualizujące zwraca błąd.
Kilka minut wystarczy, aby poprawnie odświeżyć WSL
-
Platformę WSL aktualizujesz poleceniem
wsl --update. -
Dystrybucję Linuksa aktualizujesz osobno, na przykład przez
sudo apt updateisudo apt upgrade. - Przed diagnozą sprawdź status, wersję i uruchomione dystrybucje.
- Opcja
--web-downloadpomaga, gdy Microsoft Store nie pobiera aktualizacji. - Przed większą zmianą wykonaj eksport dystrybucji, szczególnie gdy przechowujesz w niej projekty lub dane.
Najpierw ustal, co właściwie aktualizujesz
Pod hasłem wsl update najczęściej kryje się aktualizacja samego środowiska Windows Subsystem for Linux. To komponent uruchamiany przez Windows, odpowiedzialny między innymi za jądro WSL 2, integrację z systemem, obsługę sieci oraz aplikacje graficzne przez WSLg.
Nie jest to jednak to samo co aktualizacja Ubuntu, Debiana czy Fedory. W praktyce masz trzy niezależne warstwy, które mogą wymagać odświeżenia.
| Co aktualizujesz | Przykładowe polecenie | Co się zmienia |
|---|---|---|
| Platforma WSL | wsl --update |
Komponenty WSL, kernel WSL 2 i integracja z Windowsem |
| Dystrybucja Linuksa | sudo apt update && sudo apt upgrade |
Pakiety Ubuntu, Debianu lub innego systemu |
| Windows | Windows Update | System gospodarza, sterowniki i składniki systemowe |
To rozróżnienie oszczędza sporo czasu. Jeżeli Ubuntu uruchamia się poprawnie, ale aplikacja GUI albo Docker zgłasza problem z WSL 2, zacząłbym od platformy WSL. Jeżeli brakuje konkretnego programu, na przykład pakietu .NET, problem zwykle leży po stronie dystrybucji.
Jak wykonać aktualizację WSL krok po kroku
Otwórz PowerShell albo Windows Terminal i sprawdź bieżący stan środowiska. Do podstawowej diagnostyki wystarczą trzy polecenia.wsl --status
wsl --version
wsl --list --verbose
Pierwsze pokazuje między innymi domyślną dystrybucję i wersję kernela. Drugie jest szczególnie przydatne w instalacji WSL dostarczanej przez Microsoft Store. Trzecie informuje, czy dana dystrybucja korzysta z WSL 1 czy WSL 2.
Samą aktualizację wykonasz tak:
wsl --update
W większości przypadków Windows pobierze najnowsze składniki i zainstaluje je automatycznie. Gdy korzystasz z komputera firmowego, masz ograniczony dostęp do Microsoft Store albo aktualizacja zatrzymuje się na pobieraniu, użyj alternatywnego źródła.
wsl --update --web-download
Po zakończeniu aktualizacji zamknij działające procesy WSL, aby nowe komponenty zostały załadowane przy kolejnym uruchomieniu.
wsl --shutdown
To polecenie zatrzymuje wszystkie uruchomione dystrybucje, więc niezapisane procesy i sesje zostaną przerwane. Pliki zapisane na dysku dystrybucji nie znikają, ale przed użyciem komendy zakończ pracę z bazą danych, serwerem deweloperskim lub kontenerami.
Po ponownym uruchomieniu sprawdź wersję jeszcze raz. Jeżeli korzystasz z Windows Terminal, możesz też zamknąć wszystkie karty WSL i otworzyć nową sesję. W mojej praktyce ten prosty restart rozwiązuje wiele sytuacji, w których użytkownik uznaje, że aktualizacja nie zadziałała.
Co zrobić, gdy wsl --update nie działa
System nie rozpoznaje polecenia
Komunikat o nierozpoznanym poleceniu zwykle oznacza, że WSL nie jest włączony, system Windows jest nieaktualny albo proces działa w nietypowym środowisku 32-bitowym. Najpierw uruchom Windows Update i zrestartuj komputer. Jeżeli dopiero włączasz WSL, możesz użyć instalacji z poziomu PowerShell.
wsl --install
Na starszych instalacjach Windows konieczne może być ręczne włączenie funkcji Windows Subsystem for Linux oraz Virtual Machine Platform. Po zmianie tych składników restart nie jest opcjonalnym dodatkiem. Bez niego system może nadal zachowywać się tak, jakby WSL nie był zainstalowany.
Aktualizacja dotyczy komputera bez WSL
Jeżeli pojawia się komunikat, że aktualizacja ma zastosowanie tylko do komputerów z Windows Subsystem for Linux, sprawdź, czy funkcja została faktycznie aktywowana. Taki błąd może też wystąpić przed ponownym uruchomieniem systemu po włączeniu WSL.
Nie instalowałbym w ciemno starego pakietu kernela MSI znalezionego w internecie. Współczesne instalacje korzystają z nowszego modelu dystrybucji WSL, dlatego najpierw spróbuj wsl --update, a dopiero przy starszym Windowsie sprawdź wymagania dla ręcznej instalacji.
Przeczytaj również: DataGrid w WPF krok po kroku - binding, edycja i wydajność
Microsoft Store lub sieć blokuje pobieranie
W środowisku firmowym aktualizacje mogą być ograniczane przez zasady grupy, proxy, zaporę albo usługę WSUS. W takiej sytuacji uruchom PowerShell jako administrator i spróbuj wariantu--web-download. Jeżeli komputer nie ma dostępu do internetu, potrzebujesz procedury offline zatwierdzonej przez administratora systemu.
Gdy problem wygląda na uszkodzenie plików Windows, można uruchomić skanowanie systemu z podwyższonymi uprawnieniami.
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Nie traktuję tych poleceń jako pierwszego kroku. Mają sens dopiero wtedy, gdy restart, Windows Update i ponowna próba aktualizacji nie przyniosły rezultatu.
Po aktualizacji WSL odśwież także dystrybucję
Aktualizacja platformy nie podnosi wersji pakietów w Ubuntu. Jeżeli używasz tej dystrybucji, uruchom w jej terminalu:
sudo apt update
sudo apt full-upgrade
apt update pobiera informacje o dostępnych pakietach, a full-upgrade instaluje aktualizacje i w razie potrzeby potrafi zmienić zależności. Na środowisku produkcyjnym najpierw sprawdziłbym listę proponowanych zmian, bo aktualizacja może usunąć pakiet zastąpiony nowszym odpowiednikiem.
Dla innych dystrybucji polecenia będą inne. Fedora i RHEL korzystają zazwyczaj z dnf upgrade, a Arch Linux z pacman -Syu. Najbezpieczniej aktualizować pakiety zgodnie z menedżerem używanym przez konkretną dystrybucję, zamiast kopiować komendy z poradnika przeznaczonego dla Ubuntu.
Po aktualizacji warto szybko sprawdzić środowisko deweloperskie.
uname -a
dotnet --info
node --version
git --version
To dobry moment, aby potwierdzić, że kernel działa, a narzędzia używane w projekcie nadal są dostępne. W przypadku aplikacji .NET, Azure CLI czy kontenerów nie zakładałbym, że każdy problem po aktualizacji pochodzi z WSL. Czasem winny jest zmieniony PATH, pakiet systemowy albo konfiguracja projektu.
WSL 2, WSLg i aplikacje desktopowe
WSL 2 uruchamia prawdziwe środowisko linuksowe z własnym kernelem, dlatego jego aktualizacja może wpływać na narzędzia korzystające z wirtualizacji, sieci i systemu plików. WSLg dodaje możliwość uruchamiania aplikacji graficznych Linuksa obok programów Windows, ale wymaga aktualnych składników WSL oraz zgodnego sterownika graficznego.
Jeżeli terminal działa, a aplikacja GUI nie startuje, wykonaj pełne zatrzymanie środowiska:
wsl --shutdown
Następnie uruchom dystrybucję i sprawdź, czy problem dotyczy jednej aplikacji, czy całego WSLg. Aktualizacja WSL nie zastępuje aktualizacji sterownika GPU, więc przy błędach OpenGL, akceleracji lub renderowania trzeba sprawdzić również sterownik NVIDIA, AMD albo Intela przeznaczony dla Windows.
Warto też pamiętać o lokalizacji plików. Projekty przechowywane w systemie plików Linuksa, na przykład w katalogu domowym, zwykle działają sprawniej z narzędziami linuksowymi niż katalogi umieszczone pod /mnt/c. Z drugiej strony pliki w katalogu Windows są wygodniejsze, gdy często otwierasz je bezpośrednio w desktopowych aplikacjach Windows.
Jak aktualizować WSL bez ryzyka utraty pracy
Aktualizacja platformy WSL nie powinna usuwać dystrybucji, ale rozsądny backup nadal ma sens. Eksport tworzy archiwum dystrybucji, które można później zaimportować na tym samym komputerze albo przenieść na inny dysk.
wsl --export Ubuntu D:\Backup\ubuntu.tar
Nazwa Ubuntu musi odpowiadać nazwie zwróconej przez wsl --list --verbose. Eksport może zająć od kilku sekund do wielu minut, zależnie od liczby plików. Obraz zawiera system plików dystrybucji, ale nie jest pełną kopią konfiguracji Windows, sterowników ani ustawień Windows Terminal.
Na komputerze używanym do pracy zrobiłbym aktualizację w takiej kolejności:
- Zapisz pracę i zatrzymaj kontenery oraz lokalne bazy danych.
- Sprawdź dystrybucje poleceniem
wsl --list --verbose. - Wykonaj eksport najważniejszej dystrybucji.
- Uruchom
wsl --update. - Zatrzymaj WSL przez
wsl --shutdown. - Uruchom projekt i sprawdź terminal, sieć, Git, .NET oraz kontenery.
Nie aktualizowałbym środowiska tuż przed prezentacją albo wdrożeniem. WSL nie oferuje wygodnego przełącznika typu „wróć do poprzedniej wersji platformy”, dlatego backup dystrybucji i test na mniej ważnym komputerze są praktyczniejszym zabezpieczeniem niż próba późniejszego odtwarzania konfiguracji ręcznie.
Mój praktyczny rytuał po aktualizacji środowiska
Na prywatnym komputerze wystarcza mi krótka kontrola raz na kilka tygodni oraz aktualizacja wtedy, gdy pojawia się konkretna poprawka potrzebna przez Docker, WSLg albo narzędzia deweloperskie. Nie widzę sensu uruchamiania aktualizacji kilka razy dziennie, ale wielomiesięczne ignorowanie zmian potrafi później skumulować kilka problemów naraz.
Najważniejsza zasada jest prosta: najpierw aktualizuj platformę WSL, potem dystrybucję i dopiero na końcu sprawdzaj aplikację. Dzięki temu łatwiej ustalić, która warstwa faktycznie wymaga naprawy, a aktualizacja przestaje być przypadkowym zestawem komend wykonywanych metodą prób i błędów.
