O zalecanej aktualizacji KB2871690, która kładzie wirtualny Windows na łopatki
14.02.2014 17:54
Wydawałoby się, że nie ma nic bardziej koszernego niż uruchamianie maszyn wirtualnych z systemem Windows na hypervisorach opartych o system Windows - w tym przypadku Hyper-V. Co będzie działać lepiej niż Windows wirtualizowany na Windows? Okazuje się jednak, że i tu zdarzają się problemy, o których nawet największym filozofom-sceptykom Microsoftu się nie śniło. Taki właśnie problem postanowiłem opisać, bo mimo że od jego ujawnienia mija już drugi miesiąc, to nadal brak jakiegokolwiek oficjalnego stanowiska czy artykułu KB z zaleceniem, jak go rozwiązać.
Rzecz jest niebagatelna. Nie dotyczy tylko wybranych, skomplikowanych konfiguracji sprzętowych ani nie chodzi tu o kompatybilność z rzadkim, specjalistycznym oprogramowaniem lub kombinacją włączonych usług. Scenariusz do odtworzenia problemu jest następujący: najnowszy Hyper-V 2012 R2 (lub Windows Server 2012 R2 bądź Windows 8.1 z Client Hyper-V), a na nim maszyna wirtualna Generacji 2 z systemem Windows Server 2012. Zakładam że problem pojawi się także na Windows 8, ale osobiście tego nie sprawdzałem. Jeśli ktoś chce sprawdzić, chętnie się dowiem ;‑) Instalujemy system na maszynie wirtualnej, a po instalacji uruchamiamy Windows Update i instalujemy wszystkie zalecane poprawki - czyli te, które są domyślnie zaznaczone do instalacji i które i tak same się zainstalują, gdy skonfigurujemy usługę automatycznych aktualizacji.
Robimy restart i...na tym żywot tego serwera się kończy. System wpada w pętle restartów z komunikatem, że instalacja poprawek się nie powiodła. Po godzinie i kilkunastu restartach system wstaje, ale jeśli skonfigurowaliśmy aktualizacje automatyczne, przy następnej okazji znowu spróbuje zainstalować poprawki, co skutkować będzie identycznym efektem i godziną restartowania. Ostatecznie nie zainstalujemy już nigdy żadnych nowych poprawek, tylko będziemy mieli codziennie restartujący się i ponawiający instalację system.
Diagnoza? W dzienniku zdarzeń brak rozsądnych informacji. Mamy tylko wpisy mówiące o tym, że instalacja większości z obecnie oferowanych 75 aktualizacji nie powiodła się z powodu błędu 800F0922. Ten błąd po kilku chwilach googlowania prowadzi do uszkodzonego magazynu Windows Update, ale nawet po jego zresetowaniu (co jest dość upierdliwe) problem występuje dalej. Zresztą, przecież przed chwilą zainstalowaliśmy czysty Windows - co też miało by się uszkodzić?
Okazuje się, że winna jest jak zwykle jedna aktualizacja: KB2871690 z grudnia 2013, która dotyczy UEFI i Secure Boot. Wycofuje ona dziewięć podpisów cyfrowych dla modułów UEFI, które z jakiegoś powodu nie są już uznawane przez Microsoft za bezpieczne. Sęk w tym, że w maszynach wirtualnych Generacji 2 pod Hyper-V 2012 R2 funkcja Secure Boot jest domyślnie włączona. Instalacja tej aktualizacji zawsze zakończy się tu błędem, choć treść tego błędu pozostawia wiele do życzenia. W Internecie nie ma zbyt wielu informacji na ten temat. Jeśli nie znamy numeru KB i nie wiemy o co pytać, spędzimy długie godziny na błądzeniu w poszukiwaniu rozwiązania. Zawsze można też bawić się w instalowanie 75 aktualizacji jedna po drugiej, aby sprawdzić, która jest odpowiedzialna za całe to zamieszanie.
Rozwiązanie problemu, gdy już problem dokładnie poznamy, jest proste. Najlepiej w ogóle nie instalować tej poprawki i ukryć ją, aby nie była instalowana automatycznie w przyszłości. Gdy już ją zainstalowaliśmy i mamy system w pętli restartów, możemy w opcjach maszyny wirtualnej wyłączyć Secure Boot, co umożliwi dokończenie instalacji i poprawną pracę systemu.
Najdziwniejsze jest to, że większość wątków na forach Microsoftu na ten temat pozostaje albo bez odpowiedzi, albo z odpowiedziami kompletnie nietrafionymi. Nie znalazłem żadnej wypowiedzi techników Microsoftu na forum ani żadnego artykułu KB, który opisywałby problem z maszynami w Hyper-V i sugerował rozwiązanie. Bądź co bądź obecnie, i to już od dwóch miesięcy, w domyślnej konfiguracji Windows Server 2012 na Hyper-V 2012 R2 po prostu nie działa. Zespół Microsoft Security Response Center we wpisie na Twitterze z końca grudnia zapewniał, że nie słyszał o żadnych problemach. Naprawdę? Jakoś trudno mi sobie to wyobrazić. Czyżby nikt najnowszego Hyper-V do wirtualizacji nie używał?... ;‑)