Windows Server 2012 R2 завис на

Windows Server 2012 R2 завис на "Обновление системы" | Решение

При обновлении сервера один из апдейтов не смог установиться и сервер начал делать откат обновлений. Спустя какое-то время сервер перезагрузился, появилось черное окно с надписью "Обновление вашей системы" без какого-либо прогресса:

Очевидно, что это не дело и проблему нужно начинать решать самому. По скриншоту можно заметить, что это виртуальная машина на Hyper-V, исходя из этого мы можем сделать следующее:

1. Выключить виртуальную машину. В большинстве случаем безусловно нужно выключать через кнопку Завершение работы..., но в данном случае она не поможет и придется воспользоваться кнопкой Выключить...

2. Изменить настройки автозапуска (выставить задержку в несколько 5 секунд). Это надо понадобится, чтобы успеть зайти в safe mode

3. Запускаем виртуалку и не забываем кликать на F8. Появится знакомое меню

4. Итак, теперь мы можем попасть в командную строку. Кликаем на пункт Troubleshoot и затем на Command Line

5. Теперь запускаем команду, чтобы получить список доступных дисков:

wmic logicaldisk get name

6. Теперь нам нужно определить какой из этих дисков является диском C, т.к в режиме safe буква диска может отличаться от той, что мы видим в системе. Проще всего опознать нужную нам букву - это найти директорию Windows, используя команду dir

7. Итак, вы знаете букву нужного нам диска, я буду указывать букву C, вы же замените на ту, что у вас. Переходим в директорию C:\Windows\Winsxs:

cd C:\Windows\Winsxs

8. Теперь нам нужно вывести список всех файлов, начинающихся с Pending

dir pending*

9. Переименуем все эти файлы, добавив в конец их имени _old. Команда выглядит так:

ren Pending.xml Pending_old.xml

10. Создадим новый, пустой файл Pending.xml

echo > pending.xml

11. Перейдём на ветку наверх и создадим новую директорию:

cd..
mkdir scratch

12. Удалим\отменим все висящие действия из поврежденного образа с помощью DISM:

DISM /Image:C:\ /Cleanup-Image /RevertPendingActions /scratchdir:C:\Windows\Scratch

13. Переименуем папку SoftwareDistribution в SoftwareDistributionOld

ren C:\Windows\SoftwareDistribution C:\Windows\SoftwareDistributionOLD

14. Запустим проверку:

sfc /scannow

15. По завершении проверки перезагрузим виртуалку, это может занять немного больше времени, чем обычно. Но в итоге мы должны увидеть такую картину:

Когда процесс завершится, сервер должен вернуться в нормальное состояние!

Показать комментарии ()