Błąd Microsoftu uziemił wczoraj wiele systemów, powodem aktualizacje
Wielu administratorów, w tym i my w dobrychprogramach, miało wczoraj gorący poranek po tym, jak systemy z Windows 10 i Windows Server 2016 na pokładzie odmówiły ponownego uruchomienia po rutynowej instalacji poprawek zabezpieczeń wydanych w ramach comiesięcznego Patch Tuesday. Niebieski ekran z kodem INACCESSIBLE_BOOT_DEVICE, mimo że dzisiaj jest dużo ładniejszy niż kiedyś i ma nawet kod QR, nadal nie jest zachęcającą perspektywą. Tym razem sytuacja została w miarę szybko wyjaśniona, Microsoft przyznał się do błędu, ale pozostaje spory niesmak.
12.10.2017 | aktual.: 12.10.2017 12:05
Na szczeście problem nie dotknął domowych użytkowników i małych sieci, gdzie najcześciej aktualizacje pobierane są bezpośrednio z Microsoft Update. Usterka pojawiła się natomiast w bardziej zaawansowanych mechanizmach dostarczania aktualizacji, takich jak Windows Server Update Services (WSUS), a także System Center Configuration Manager (pakiet do centralnego zarządzania wieloma komputerami w sieci) czy Microsoft InTune (podobne narzędzie, tylko działające w chmurze). Tam w ramach zbiorczego pakietu aktualizacji oznaczonego jako KB4041691 Microsoft przez pomyłkę udostępnił nie jeden, a dwa pliki instalacyjne tej samej aktualizacji jednocześnie: jeden to pełny, duży plik zawierający wszystkie łatki (tzw. Cumulative Update), a drugi to mniejszy plik (tzw. Delta Update), zawierający tylko łatki wydane od poprzedniego miesiąca.
Na pierwszy rzut oka nie jest to może nic nadzwyczajnego, ale niestety architektura systemu Windows została tak pomyślana, że instalowanie obu tych plików jednocześnie (zarówno Delta, jak i Cumulative) jest niedopuszczalne i skutkuje po prostu awarią systemu – po restarcie Windows nie uruchamia się już, pozostawiając użytkownika właśnie z komunikatem INACCESSIBLE_BOOT_DEVICE. Sam Microsoft ostrzega przed tym w artykule dla programistów, którzy przygotowują własne narzędzia do instalowania aktualizacji.
W instrastrukturze obsługującej portal dobreprogramy jest kilkanaście serwerów opartych o Windows Server, choć tylko kilka pracuje na najnowszej wersji Windows Server 2016. W związku z tym, aby ułatwić zarządzanie poprawkami, wykorzystujemy WSUS do centralnej dystrybucji. To sprawiło, że i u nas około 5 rano zaczęły się problemy po restartach serwerów. Problematyczne poprawki szybko odinstalowaliśmy offline (bez uruchamiania systemu operacyjnego, z nośnika instalacyjnego) za pomocą narzędzia DISM. Jeśli ktoś jest zainteresowany szczegółami, instrukcję postępowania znajdzie w tym samym artykule powyżej. Późniejsze przejrzenie logów tylko potwierdziło, że na dotkniętych problemem serwerach najpierw rozpoczeła się instalacja aktualizacji w wersji Delta, a po krótkiej chwili doszło do instalacji tej samej aktualizacji w wersji Cumulative.
Po odzyskaniu systemów zamieściliśmy wątek na forum Microsoftu licząc na więcej wyjaśnień. Choć oficjalnej odpowiedzi się tam nie doczekaliśmy, dziś już wiemy, że Microsoft przyznał się do błędu i zdążył nawet wycofać aktualizację Delta z dystrybucji. Z założenia bowiem powinny one być dostepne tylko na żądanie, do pobrania ze stron Microsoftu, a nie przez kanały dystrybucji typu WSUS czy Microsoft InTune. Komentarz firmy w tej sprawie uzyskała znana blogerka Mary Jo Foley z serwisu ZDNet.
Administratorom pozostaje teraz wyczyścić cache aktualizacji i liczyć, że podobny błąd nie pojawi się już w przyszłości. Oczywiście można też zrezygnować z automatycznego zatwierdzania aktualizacji bezpieczeństwa i każdą aktualizację samodzielnie sprawdzać w środowisku testowym... ale bądźmy szczerzy, po prostu nie zawsze i nie w każdej instytucji jest to racjonalne rozwiązanie.
Aktualizacja, 12.10.2017 11:50
Microsoft opublikował artykuł KB4049094, w którym oficjalnie opisuje problem z wczorajszą aktualizacją.