Перейти к содержанию
  • ArcheRAWG
    ArcheRAWG

    Восстановление Windows 10

    Бывают случаи, когда в Windows были удалены или повреждены системные файлы. Это могло произойти в результате сбоя файловой системы, действий вирусов или ошибочных действий самого пользователя. При этом система может загружаться, а может и нет. Не спешите переустанавливать систему или делать откат к заводским настройкам (в случае с Windows Server это невозможно или неприемлемо). Зачастую систему можно привести в рабочее состояние.

    Восстановление системы
    Восстановление системы впервые появилось в Windows Me. Тогда копии важнейших системных файлов (реестра в подавляющем большинстве) хранились в zip архивах. Чуть позже, в Windows XP, они хранились как есть, только скрытые с глаз долой в каталоге System Volume Information. Начиная с Windows Vista восстановление системы использует технологию теневого копирования. Именно из теневой копии Windows может восстановить свои файлы. Этот вариант подходит только для клиентских редакций Windows.

    1586785165_1584206197180519565.jpg.4b533a3d65518c43e9d6be4fc92dde8d.jpg

    Здесь следует помнить, что при использовании точки восстановления, из теневой копии будет восстановлено то, что в неё попало. Это значит, что если файлы на момент создания точки восстановления уже были повреждены или отсутствовали, чуда не произойдёт. Так-же следует отметить отсутствие этого механизма в Windows Server и его автоматическое отключение при установке клиентской редакции Windows на SSD диск.

    Восстановление загруженной операционной системы.
    Рассмотрим порядок действий, если восстановление системы не применимо или не помогло и система загружается.

    System File Checker
    Начать стоит с проверки системных файлов, в этом нам поможет утилита проверки целостности системных файлов. SFC проверяет системные файлы на несанкционированные изменения или удаление и попытается восстановить их их кэша, расположенного по пути: C:\Windows\WinSxS. Для начала проверки выполните в командной строке, запущенной с повышенными привилегиями команду:

    sfc /scannow

    Рассмотрим ситуацию на реальном примере, произошедшем со мной недавно:
    Windows Server 2016 с установленной ролью Windows Server Update Services. По пути C:\Program Files\Update Services\ отсутствует каталог Tools, что ставит крест на управлении сервером из командной строки. Можно скопировать каталог с аналогичного сервера, если такой есть. У меня не было и я скомандовал описанную ранее команду:

    1586785315_158420837717891194.jpg.a014f30bcf9f786d6d1114089a8aced4.jpg

    Защита файлов не смогла восстановить некоторые файлы. Нужно уточнить, вернулся-ли каталог Tools на своё место. Можно пройти по пути C:\Program Files\Update Services\ и посмотреть, но это не наш метод. SFC создаёт файл журнала, который мы будем изучать. Файл большой, поэтому предварительно отберём нужные данные:

    findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"

    Открываем файл блокнотом и ищем строку: «Update Services\Tools»

    1586785283_1584208418145220325.thumb.jpg.9e3d43a6516cb506468a05dabbc14b14.jpg

    Мы видим, что файл восстановлен. Отлично! Но программа сообщила об ошибках — значит капаем дальше. Проводим отбор по тексту ошибки:

    findstr /c:"[SR] Cannot repair member file" "%userprofile%\Desktop\sfcdetails.txt">"%userprofile%\Desktop\error.txt"

    Не восстановились некоторые ярлыки. В принципе на этом можно и закончить, но если хочется довести начатое до конца, то следует использовать DISM.

    DISM
    Утилита обслуживания образов развертывания и управление ими позволяет творить чудеса даже в очень трудных случаях. DISM занимается обслуживанием хранилища компонентов (WinSxS). Его проверка и восстановление как раз по плечу DISM.
    Давайте договоримся, что первой я буду указывать команду для cmd, а далее дублировать для PowerShell.

    Просмотр состояния хранилища компонентов
    Для отображения последнего выясненного состояния хранилища компонентов используется команда:

    DISM /Onine /Cleanup-Image /CheckHealth
    Repair-WindowsImage -Online -CheckHealth

    Эта команда не проверяет хранилище, а отображает последнее известное его состояние.

    Проверка хранилища компонентов
    Проверка хранилища, напротив, выполняется продолжительное время и отражает реальное положение дел в системе. Для проверки хранилища используется команда:

    DISM /Online /Cleanup-Image /ScanHealth
    Repair-WindowsImage -Online –ScanHealth

    Она найдет ошибки и предупредит об их наличии, но не восстанавливает. Как видим, у меня с системой всё в порядке.

    1586785477_1584208501168523070.jpg.0c5c856041f600bda69a5753ee2df8be.jpg

    Восстановление хранилища компонентов
    Для восстановления хранилища компонентов DISM требуется источник, откуда он будет брать исправные копии повреждённых компонентов. В качестве источника могут использоваться:

    • Windows Update или WSUS
    • Установочный образ ESD или WIM

    Как видим, вариантов источников много, их можно указывать последовательно в одной команде. Будет использоваться первый, где требуемый компонент будет найден. Есть особенность, что если мы укажем образ соседней системы и компонент там найден не будет, будет произведён поиск в Windows Update.
    Команда ниже проверит хранилище на наличие повреждённых компонентов и попробует их восстановить, скачав исходные файлы с центра обновления Windows:

    DISM /Online /Cleanup-Image /RestoreHealth
    Repair-WindowsImage -Online -RestoreHealth

    Однако метод может потерпеть неудачу, если отсутствует соединение с интернетом или повреждены компоненты центра обновления Windows. Рассмотрим восстановление с установочного носителя. С загрузочного образа, диска или флешки нам нужен всего один файл: install.wim или install.esd

    DISM /online /cleanup-image /restorehealth /source:D:\sources\install.wim
    Repair-WindowsImage -Online -RestoreHealth -Source E:\sources\install.wim

    1586785547_1584208525144322113.jpg.c0e201265c1d800c69f73e21c3b8293c.jpg

    Иногда требуется указать номер индекса требуемой редакции. Уточнить номер индекса требуемой редакции совсем несложно — например через PowerShell:

    Get-WindowsImage -ImagePath "E:\sources\install.wim

    1586785583_1584208542168568495.jpg.6f1b99d8d8a56337586e41b4a76ba647.jpg

    Индекс сборки потом указываете через двоеточие. Например:

    DISM /online /cleanup-image /restorehealth /source:D:\sources\install.esd:2

    Если требуется запретить использование Windows Update или WSUS, используйте параметр /LimitAccess.

    DISM /online /cleanup-image /restorehealth /source:D:\sources\install.wim /LimitAccess

    Восстановление системы, которая не загружается
    Рассмотрим случай, когда система уже не загружается. Для её восстановления нам потребуется доступ к системному диску. Мы можем использовать среду восстановления, имеющуюся на компьютере:

    1586785626_1584208556184560841.jpg.a88d02d71f2f1a478280cbdee6baecea.jpg

    Среду восстановления можно запустить с установочного носителя:

    1586785648_158420856919278054.jpg.bc6c2e61c8071ea0c7b63efab5895019.jpg

    Одним словом, не имеет значения как вы получите доступ к диску. Диск можно также подключить к другому компьютеру. Если использовали среду восстановления, то следует разобраться с буквами дисков. Може использовать для этих целей команду bcdedit или запустить notepad и через меню файл — открыть увидеть буквы дисков и их содержимое.

    System File Checker
    Утилита проверки целостности системных файлов и в этой ситуации может прийти на помощь! Для этого у ней есть соответствующие параметры /offbootdir и /offwindir. Нам остаётся лишь указать букву системного диска и путь папки Windows.

    sfc /scannow /offbootdir=c:\ /offwindir=c:\windows


    Программа работает долго, но зачастую результат превосходит ожидания.

    DISM
    DISM настолько крут, что и в такой ситуации найдёт выход. Подробнее про офлайн обслуживание хранилища компонентов поговорим в другой раз — сейчас сосредоточимся на восстановлении. Сразу скажу, что из среды восстановления PowerShell не работает. Команды управления образом апривожу на случай, если диск подключен к другой системе.

    Просмотр состояния хранилища компонентов
    Команда используется как и ранее с той лишь разницей, что мы указываем путь к системному диску повреждённой Windows
     

    Dism /Image:E:\ /Cleanup-Image /CheckHealth
    Repair-WindowsImage -Path "E:\" -CheckHealth

    Мы видим, что хранилище компонентов моей тестовой системы требует восстановления.

    1586785715_1584208599126251029.jpg.8cdf8decd99f7c74dde2d547f8510b18.jpg

    Проверка хранилища компонентов
    Проверка хранилища компонентов как и ранее работает долго, но даёт более актуальный результат в отличие от предыдущей команды.

    Dism /Image:E:\ /Cleanup-Image /ScanHealth
    Repair-WindowsImage -Path "E:\" -ScanHealth

    Восстановление хранилища компонентов
    Восстановление хранилиза компонентов по сути своей не отличается от ситуации с загруженной системой, поэтому не буду приводить полный список команд. Ограничусь простой командой восстановления через Windows Update. Разница лишь в указании пути к системе.

    Dism /Image:E:\ /Cleanup-Image /restorehealth
    Repair-WindowsImage -Path "E:\" -RestoreHealth

    Заключение
    Как видите есть масса способов привести систему в чувства и без переустановки Windows. Надеюсь предложенные способы помогут вам.
     




    Обратная связь

    Рекомендуемые комментарии

    Комментариев нет


×
×
  • Создать...