Приветствую коллег. Решил поделиться рабочим моментом. Случай не самый редкий, но, возможно, кому-то сэкономит время, когда стандартные методы не работают.
Притаскивает клиент рабочий ноутбук (старенький HP). На борту десятка, куча настроенного софта, какие-то специфические рабочие базы и, как водится, важные документы раскиданы прямо по рабочему столу. Резервных копий нет. Главная боль в том, что точки восстановления системы были отключены. Сносить винду категорически нельзя.
Симптомы: после ночного обновления система ушла в бесконечный цикл. Логотип -> «Подготовка автоматического восстановления» -> синий экран -> перезагрузка. И так по кругу. Безопасный режим не грузится.
Что делаем? По классике техники безопасности: первым делом грузимся с LiveUSB, проверяем S.M.A.R.T. (диск оказался живым) и сливаем папку Users вместе с базами на внешний хард от греха подальше. Данные клиента дороже потраченного времени.
Далее грузимся с установочной флешки, идем в «Восстановление системы» и запускаем командную строку. Нам нужно откатить незавершенные обновления в оффлайн-режиме.
Первым делом через diskpart смотрю, какая буква присвоилась системному диску (в среде восстановления это не всегда C, в моем случае оказался диск D).
Далее пишу в консоли команду для отката. Сразу добавляю параметр ScratchDir, чтобы направить временные файлы на сам диск, иначе DISM может вывалиться с ошибкой нехватки места в среде восстановления: dism /image:D:\ /cleanup-image /revertpendingactions /ScratchDir:D:\Windows\Temp (Эта команда заставляет систему принудительно отменить все обновления, которые зависли в состоянии установки). Процесс пошел, консоль шуршала минут 20.
После успешного завершения, чтобы исключить повторную попытку установки битого пакета при старте, переименовываю файл pending.xml в папке WinSxS: ren D:\Windows\WinSxS\pending.xml pending.old
И заодно очищаю папку D:\Windows\SoftwareDistribution\Download, чтобы система не подтянула старый скачанный кэш этого же апдейта.
Вытаскиваю флешку, отправляю ноут в ребут. Компьютер задумывается на логотипе дольше обычного, пишет «Отмена изменений», висит так минут пять и спокойно пускает на экран приветствия.
После запуска посмотрел в журналах, какой именно KB положил систему, и скрыл его через официальную майкрософтовскую утилиту wushowhide.diagcab (Show or hide updates), чтобы проблема не повторилась через пару дней.
Все файлы, базы и настройки на месте. Клиент выдохнул, я получил свою оплату. Если точки отката мертвы — оффлайн DISM отлично вытаскивает систему.