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

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


ArcheRAWG

Рекомендуемые сообщения

Бывают случаи, когда в 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. Надеюсь предложенные способы помогут вам.
 

 

Открыть запись

 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...