Windows Server: aktualizacja Windows Server in-place

Wraz z zakończeniem okresu wsparcia systemów operacyjnych pojawiają się pytania.W jaki sposób zaktualizować Windows Server zachowując wszystkie dane i aplikacje? Jak wykonać Windows Upgrade In-Place systemu operacyjnego? W jaki sposób bezpiecznie podnieść wersje systemu operacyjnego zachowując swoje ustawienia i programy. Na te inne pytania znajdziecie sprawdzone rozwiązanie poniżej.

Zacznijmy od tego że mamy lata 20 XXI wieku i temat aktualizacji Windows in-place nie jest już taki straszny jak go nam przedstawiano. Patrząc praktycznie aktualizacja działającego systemu jest mniej problematyczna niż przygotowanie całkiem nowego środowiska. Pomijamy przecie przeniesienie aplikacji ich ustawień, zostawiamy profili użytkowników, zdania i konfiguracje, działające usługi. Odchodzi nam zmiana nazwy, monitorowanie i czy przygotowanie zarządzania i backupu dla nowej maszyny a na ewidencji kończąc.
Od wersji Windows Server 2016 Microsoft już nawet nie ostrzega że robisz upgrade in-place. Proces jest dobrze dopracowany, dzieli się na fazy i praktycznie wykonuje się bez naszego udziału. Każdorazowo jednak należy się do takiej aktualizacji przygotować, dzięki kilku poniższym punktom cały proces przebiegnie sprawnie

  • zaczynamy od ról jakie system Windows Server ma na sobie – nie podnosimy wersji systemu jeżeli mamy rolę kontrolera domeny (nie jest to wspierana i zalecana przez Microsoft ścieżka – lepiej postawić nowy kontroler).
  • sprawdzamy czy mamy dostępne wolne miejsce na dysku systemowym (powinno wystarczyć ok 15 GB).
  • na czas prac związanych z aktualizacja weryfikujemy parametry środowiska, jeżeli jest to maszyna wirtualna warto dorzucić kilka vCPU i trochę więcej pamięci (wg mnie minimum to 4 vCPU / 8 GB RAM). O ile teraz te wartości nikogo nie powinny dziwić to przypominam że aktualizujemy często maszyny które maja 8-10lat.
  • sprawdźmy listę aplikacji które są zainstalowane, o ile z produktami Microsoft nie powinno być problemu – aktualizowałem dziesiątki maszyn z MS SQL Server o tyle z dedykowanymi aplikacjami warto wcześniej sprawdzić dokumentacje czy program jest wspierany na docelowym OS
  • kolejnym ważnym aspektem jest medium instalacyjne – możemy przygotować sobie pendrive (odsyłam do Rufus’a) lub użyć ISO z obrazem Windows Server i tutaj ważna uwaga nie może to być obraz Evaluation – przy próbie jego użycia opcja pozostawienia danych i aplikacji będzie dla nas niedostępna.
  • w ramach przygotowań należy zadbać o backup, jeżeli nie mamy takich możliwości – raczej nie podejmowałbym się dalszych prac przypominam też, że snapshoot / chceckpoint to nie forma backupu.
  • system któremu będziemy podnosić wersje Windows powinien być aktualny – instalujemy wszystkie dostępne poprawki:
  • usuwamy odinstalowujemy aplikacje antywirusowe firm trzecich! to one bardzo często blokują lub spowalniają prawidłowy przebieg procesu
  • sprawdzamy czy mamy dostęp do lokalnego konta administratora, to z jego poziomu powinniśmy przeprowadzić taki proces (jeżeli nie ma takiego tworzymy je), logujemy się tym kontem weryfikując poprawność jego działania :
  • w przypadku serwera fizycznego sprawdzamy czy producent zapewnia wsparcie dla naszego docelowego systemu operacyjnego – wiem że da się zainstalować wszystko, natomiast problem może się potem rozchodzić o sterowniki konkretnych urządzeń a powrót do poprzedniej wersji nawet z użyciem backupu może być bardzo trudny

  • jeżeli aktualizujemy środowisko fizyczne zacznijmy od BIOS/UEFI – przypominam, że zmiana z 2008R2 na 2019 to inny tryb chociażby dla kluczy
  • na czas instalacji odpinam środowisko od sieci (zalecam to również w przypadku serwerów fizycznych) – pozostaje nam iDRAC / iLO / xClarity / iMM
    UWAGA: jeżeli montujemy ISO z użyciem powyższych warto najpierw zaktualizować firmware a następnie zabrać się za OS – ważne też aby sieć managmentowa nie miała poblokowanych portów iMM / xClarity lubi używać całej masy portów np 5900 !

Zaczynamy Windows In-Place Upgrade step by step….

W naszym wypadku aktualizujemy Windows Server 2012 R2 Standard z rolą IIS do Windows Server 2022 Datacenter. Nasza maszyna jest środowiskiem wirtualnym wpiętym do domeny, natomiast uwzględniając powyższe zalecania możecie spokojnie zastosować sprawdzony „przepis” również na fizykach czy maszynach w grupach roboczych.

Wielokrotnie realizowałem aktualizacje z Windows 2003 do wyższych i w każdym przypadku niezwykle ważna jest kolejność instalacji tzw. hopek.

W naszym przykładzie zgodnie z aktualną ścieżka aktualizacyjną mamy przed sobą dwie pełne aktualizacje – najpierw do 2019 a następnie do 2022.

Zaczynamy od zalogowania się jako administrator lokalny, wyłączamy maszynę. Następnie z poziomu wirtualizatora odpinamy kartę sieciową od naszej VM:

montujemy do maszyny nasze ISO z obrazem Windows Server:

Uruchamiamy ponownie maszynę, zamiast po RDP przechodzimy do jej konsoli (proponuje Vmware Remote Console zamiast web console), logujemy się ponownie jako lokalny administrator i jako administrator uruchamiamy setup.exe z naszego podmontowanego obrazu ISO:

instalator startuje, a my cierpliwie czekamy:

po dłuższej lub krótszej chwili (o czasochłonności procesu napisze na końcu) pojawi się nam pierwszy ekran, z doświadczenia odradzam pobieranie aktualizacji (dlatego odłączyliśmy kartę) oraz wysyłanie matadanych do Microsoft:

W kolejnym kroku wybieramy docelową wersje systemu (możemy podnosić z CORE do Desktop – odwrotnie nie działa), w naszym przykładzie docelowo idziemy z 2012R2 Standard do 2022 Datacenter, ale w pierwszym kroku aktualizujemy do 2019 Standard:

potwierdzamy zapisy licencyjne:

wybieramy opcje zachowania danych i aplikacji:

na tym etapie rozpocznie się proces sprawdzania systemu który wykaże ewentualne problemy (np. ze sterownikiem lub aplikacją):

w naszym przykładzie pojawił się błąd niezgodności ze sterownikiem karty graficzne serwowanym przez VMware Tools, oczywiście nabywając doświadczenia będziecie wiedzieć ze VMtoolsy usuwamy wraz z antywirusem 🙂 natomiast celem wpisuj jest wskazanie również ścieżki z błędem:

przechodzimy do panelu sterowania i usuwamy wskazana w błędzie aplikacje:

w przypadku VMware Tools zaliczymy po drodze restart naszej VM, po nim logujemy się ponownie jako administrator lokalny i jeszcze raz uruchamiamy setup.exe jako administrator.

Tym razem wizard poprowadzi nas w ten sposób (niech was nie zdziwi Windows 10 na pasku – Microsoft ma sporo taki błędów – aplikacja jest jedna dla wielu systemów ):

tym razem więcej błędów nie było, przechodzimy dalej:

rozpoczyna się proces preinstalacyjny, czekamy do restartu. A czekamy cierpliwie pierwszy etap chwile zajmie. Nasze 15% postępu to czasami 45 minut:

następnie system się zrestartuje (ok 54-56% postępu) i rozpocznie się właściwy etap instalacyjny, będziemy go podglądać w ten sposób jak poniżej, ponownie cierpliwie czekając na efekty:

etap ten zakończy się kolejnym restartem po którym spokojnie będziemy mogli się już zalogować do naszego nowego systemu:

Pierwszy krok do Windows Server 2022 mamy już za sobą, mamy środowisko z Windows Server 2019 Standard – nie musimy go aktywować kluczem! Montujemy do maszyny wirtualnej ISO z 2022 i rozpoczynamy proces instalacyjny ponownie (setup.exe jako administrator):

ponownie rezygnujemy z wysłania metadanych i pobierania aktualizacji:

tym razem wybieramy wersje Datacenter (bo taka ma być docelowa i taki klucz mamy):

akceptujemy licencje:

wybieramy opcje pozostawienia danych i aplikacji:

rozpoczynamy proces aktualizacji (tutaj tez mogą pojawić się błędy związane ze sterownikami lub aplikacjami):

jeżeli wszystko przebiegnie poprawnie pojawi się znany nam już procentowy licznik postępu związany z etapem preinstalacji – tak jak w przypadku 2019 czekamy cierpliwe – czasochłonność jest podobna:

środowisko się zrestartuje i a właściwy etap aktualizacji rozpocznie się podobnie jak wcześniej:

Jeżeli wszystko przebiegnie poprawnie logujemy się do systemu z użyciem poświadczeń lokalnego administratora i weryfikujemy działanie (np. uruchamiając menadżer zadań, urządzeń itp.):

Podłączamy kartę sieciowa do VM, po nawiązaniu połączenia aktualizujemy nasze środowisko z użyciem Windows Update. Obecny system aktualizacji Cumulative Update powinien pobrać nam mała ilość poprawek, wszystkie instalujemy i restartujemy OS.

Mamy już aktualizacje to czas po sobie posprzątać z użyciem Disk Cleanup, zaznaczamy 2 pozycje:

ostatnim krokiem powinna być aktywacja odpowiednim kluczem produktu.

i gotowe!

Krótkie podsumowanie i o czym należy pamiętać.

Dość ważnym elementem jest cierpliwość aktualizującego OS – czasami proces postępuje bardzo wolno – choć powyższy przykład trwał realnie 2,5h to pamiętajmy, że środowisko było czysto labowe.
Wiele razy trafiałem na maszyny (również wirtualne) gdzie tzw. jedna hopka zajmowała 4-5h, wszystko zależy od środowiska (np dysków). Sprawdzonym elementem jest monitorowanie samej maszyny od strony wirtualizatora:

lub platformy zarządzania systemu fizycznego serwerem (iDRAC/iLO/xClarity/IMM) np patrząc na wartości dotyczące zasilania maszyny – CPU żyje – zasilanie rośnie:

Reasumując jeżeli ekran konsoli stoi a nasze CPU się poci, dyski pisza…. czekamy, czekamy cierpliwie.

Monitorować możemy też podczas preprocesu czyli tutaj:

z poziomu konsoli maszyny wcisnąć ALT+TAB i zobaczyć w menadżerze jakie procesy działają w tle – czy coś nas np nie blokuje.

Uwaga mogą pojawić się błędy i problemy – co wtedy?

Nie wszystkie aktualizacje przebiegają gładko, o ile w przypadku środowisk zwirtualizowanych możemy spokojnie przećwiczyć wszystko na klonie o tyle w przypadku maszyn fizycznych nie mamy tej możliwości. Tutaj wraca element przygotowania środowiska oraz kopi zapasowej – bez planu i backupu nie siadamy do aktualizacji.

Kiedy błąd już się pojawi warto pamiętać że proces aktualizacji in-place loguje wszystkie etapy swojej aktywności, a te logi znajdziecie tutaj:

C:\$WINDOWS.~BT\Sources\Panther

Znając kod błędu możemy spróbować rozwiązać problem szukajac go po prostu w zasobach internetu.
Najczęściej spotykane problemy dotyczą sterowników urządzeń zewnętrznych (np bibliotek taśmowych). Spotykałem też często problemy z odczytem ISO czy zerwaniem sesji konsoli gdzie mamy zmapowane ISO (w przypadku fizycznych maszyn).

Błąd z logu IOCTL_STORAGE_QUERY_PROPERTY failed: 0x15 sugeruje problem z dyskiem/partycja udało się go rozwiązać z użyciem konsoli i poleceń: chkdsk i SFC

chkdsk c: /scan
SFC /SCANNOW

Natomiast poniższy 0xC1900101 – 0x20017 dotyczył sterowników urządzeń:

wykonałem więc aktualizacje sterwoników, odłączyłem niepotrzebne sprzęty na czas aktualizacji i się udało.

Błąd CMountWIM::DoExecute: Failed to mount WIM file C:\$WINDOWS.~BT\Sources\SafeOS\winre.wim. Error 0xC1420127[gle=0xc1420127] dotyczył wpisu wpisu w rejestrze, usunąłem wszystkie pod klucze w gałęzi:

HLKM\SOFTWARE\Microsoft\WIMMount\Mounted Images

następnie uruchomiłem narzędzie DISM:

dism /online /cleanup-image /restorehealth

zrestartowałem serwer, powtórzyłem proces instalacji i mam już tam wspierany system operacyjny 🙂

Zdarzyło się też kilka przypadków gdzie musiałem uruchamiać setup.exe jako użytkownik SYSTEM z użyciem narzędzia PsExec z pakietu Sysinternals Suite.
Przed uruchomieniem aplikacji należy mieć podłączona kartę sieciowa, wywołać CMD jako SYSTEM i odłączyć kartę, następnie w CMD przejść do ISO i uruchomić setup.exe, polecenie poniżej dla PsExec poniżej:

PsExec.exe -s -i cmd.exe

Zdarzało się też że serwer miał tak namieszane w politykach zabezpieczeń że należało je zresetować, uruchamiamy wiersz poleceń jako administrator:

secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbosesecedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose

restartujemy komputer i ponownie uruchamiamy proces setup.exe

Bardzo krótkie podsumowanie: jak widzicie aktualizacja wymaga starannego przygotowania i cierpliwości – natomiast jest jak najbardziej możliwa i wg mnie w wielu przypadkach wskazana. W świecie maszyn wirtualnych żyjących w organizacji latami wg mnie to jedyna słuszna ścieżka.


Jeżeli mój wpis Ci się spodobał, pomógł w pracy? Chcesz mnie wspierać? Postaw kawę! To dzięki waszemu wsparciu nie ma reklam! Poniżej kod QR do płatności który jest jednocześnie linkiem do PayPal możesz też wpłacić BLIK z użyciem Przelewy24.pl