Приветствую всех, сегодня я продолжу начатую ранее статью про Ошибку DISM 0x800f081f. К своему позору я понял, что ту статью считать законченной просто нельзя. Так что идём дальше и разберём причины ошибки при восстановлении той Windows, что ещё способна загружаться. Ошибка ” DISM Не удалось найти исходные файлы ” после запуска команды DISM /Online /Cleanup-Image /RestoreHealth, как оказалось, очень типична для компьютеров под управлением Windows 8 и Windows 10. Оно и понятно – в предыдущих версиях среда DISM только-только разворачивалась. На фоне повествования ошибка сопровождается также характерными кодами типа 0x800f081f, 0x800f0906 или 0x800f0907. В этой статье я постараюсь представить вам знакомые мне варианты решения проблемы. Не судите, однако, строго: лично у меня сложилось мнение, что Windows последней версии живёт собственной жизнью, которая учёту со стороны пользователя редко поддаётся полностью. Лично я несколько машин – с абсолютно схожими проблемами – так и не вернул к работоспособным настройкам.
Чаще всего проблема вылезает на фоне получения или установки обновлений, активации .NET Framework 3.5 и т.п. Позволю себе причислить следующие, известные мне лично причины проблемы ” DISM Не удалось найти исходные файлы “:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT
;Папка хранения компонентов системы (она же WinSXS, открывающаяся в проводнике по адресу C:\Windows\winsxs) содержит все необходимые файлы для обслуживания Windows. Это и установка обновлений, и исправление багов и много чего ещё. Здесь же хранятся и файлы, активно используемые системой для ремонта и установки апплетов. Со временем (с добавлением всё новых компонентов) папка разрастается, файлы внутри почти неизменно бьются. Вывод прост – за директорией нужен постоянный уход в виде обыкновенной очистки и проверки на целостность. Так что возьмите за основу процедуру наведения порядка всякий раз, когда собираетесь обратиться за помощью к DISM. Но для начала убедитесь, что вы всё про папку WinSXS знаете. И знаете, как её почистить правильно и, самое главное, уменьшить в размерах. Вполне вероятно, что она и является корнем всех ваших проблем. Вобщем, если не уверены – обязательно прочтите статью выше по ссылке. А так – забирайте команды очистки папки:
net stop wuauserv del /s /q %windir%\SoftwareDistribution\*.* net start wuauserv
%SystemRoot%\System32\Cmd.exe /c Cleanmgr /sageset:65535 & Cleanmgr /sagerun:65535
Перезагружаемся и пытаемся запустить DISM в том виде, каком нужно вам:
DISM /Online /Cleanup-Image /RestoreHealth
DISM /Online /Cleanup-Image /StartComponentCleanup sfc /scannow DISM /Online /Cleanup-Image /AnalyzeComponentStore sfc /scannow
После последней (второй по счёту) команды sfc (если всё прошло гладко) перезагружаете компьютер. Не вышло?
Начинать, по идее, стоит именно с этого – читайте логи. Смысл следовать непонятным и обнаруженным то тут то там инструкциям, постоянно натыкаясь на одну и ту же ошибку? Так что примите к сведению факт: ни одно событие (в том числе ошибка DISM) не заканчивается иначе как отсылкой в собственный лог CBS.log, создаваемый по адресу C:\Windows\Logs\CBS\. Нередко просто полезно посмотреть на регистрируемые события, где можно выцепить проблемную зону и предпринять действие. Часто оно сводится к удалению либо самого пакета данных, либо затиранию точки в неё входа. А это, как вы знаете, всегда начинается в реестре. Так что…
notepad.exe C:\Windows\Logs\CBS\CBS.log
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ComponentBasedServicing
Если в какой-то момент ключи или конкретные параметры засопротивляются, заимейте на них права из контекстного меню всего раздела ComponentBasedServicing через Разрешения… Выберем Дополнительно – сменим Владельца, выбрав Изменить, и в поле выбора учётной записи введите (или начните вводить) имя собственной учётной записи. Перед Применить замените наследования и разрешения в чек-боксах окна, выставив в оконцовке разрешения Администраторам:
Когда мы разобрались с правами и резервной копией, приступаем к удалению параметров. Клавишей DELETE или из того же контекстного меню.
DISM /Online /Cleanup-Image /RestoreHealth
и сразу за ней
sfc /scannow
Если всё прошло гладко, от резервных копий реестра и пакетных файлов с Рабочего стола можно избавиться. Если процесс притормозился, но уже чуть дальше, снова проверяйте логи. Поверьте, вы на правильном пути: проблем может накопиться море. Ошибка в логах не исчезает? Переходите к восстановлению с флешки или диска в следующем абзаце.
По умолчанию DISM полезет в сеть за требуемыми файлами, но в большинстве случаев, к сожалению, и как мы с вами не раз убеждались, это срабатывает криво. И потому в качестве альтернативы среде лучше указывать на офлайн-источник (флаг команды /Source), до того из интернета скачанный. Вам понадобится пресловутый install.wim (install.esd) в чистом виде. Его можно найти на загрузочной флешке или диске, созданных при помощи двух-трёх популярных инструментов:
Все инструменты создания загрузочного образа равноценно результативны. Главное, чтобы содержимое носителя (на флешке, диске или в виде виртуального образа) отображалось в проводнике Windows. Среди файлов и папок носителя обнаружьте папку source и там файл install.wim (install.esd) вы и найдёте. Если это файл install.wim, команда в консоли cmd примет вид:
dism /Get-WimInfo /WimFile:X:\sources\install.wim
Если файл install.esd, то
dism /Get-WimInfo /WimFile:X:\sources\install.esd
где Х – буква носителя, на котором папка source находится. У меня виртуальному дисководу присвоена литера I:
После этого ваша задача определиться с индексом требуемой версии. О своей Windows об этом расскажет команда
winver
из той же консоли команд cmd. Определились? Пробуем (следите за расширениями главного файла):
DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:X:\sources\install.wim:номер-индекса /LimitAccess
или же
DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:X:\sources\install.esd:номер-индекса /LimitAccess
рис
Немалое число пользователей здесь снова подстерегает ошибка. Дело в том, что Windows 10 (по отношению к предыдущим версиям) крайне чувствительна к делегированию прав по системе. То есть вы снова можете столкнуться с ошибкой 0x800f081f DISM Не удалось найти исходные файлы. В таком случае знайте: файл install.wim (install.esd) следует перетащить из флешки или виртуального диска в папку, к которой у вас ТОЧНО есть весь набор прав. Часто это Рабочий стол или Загрузки. Туда его и скопируйте. Но. Вы будете смеяться, но здесь также есть свои нюансы, хотя процесс вроде бы не самый трудный.
А мы завершаем процесс извлечения той же командой проверки целостности системных файлов
sfc /scannow
В этом случае в качестве альтернативного источника будет использоваться именно флешка. И снова, как указано выше, копируем файл install.wim в конкретную папку. Его версия, как вы помните, должна совпадать с вашей согласно данным, полученным от winver.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
wim:путь-к-папке\install.wim:4
Теперь создаём параметр DWORD 32-x, присвоив имя UseWindowsUpdate. Его значение должно быть 2:
Всё закрываем, компьютер перезапускаем и снова пытаемся зарядить проверку DISM командой из консоли
DISM /Online /Cleanup-Image /RestoreHealth
Не гарантирую, но пару раз прокатывало.
Ну, вот и всё, что вам я могу предложить. У вас остались восстановление точками и сброс до заводских настроек с сохранением личных файлов (но удалением всех программ). Моё личное мнение, если после вышеописанных процедур система не ожила, её восстанавливать другими методами и не стоит. Отписывайтесь, как у кого что прошло.
Успехов.
Посмотреть комментарии
Спасибо за статью!
Отсутствовал один из файлов в папке winsxs, понял это по логу cbs. Хотел убрать его в реестре, но в итоге взял его с другого ПК, помогло, восстановление прошло успешно.
Обязательно ли версии системы должны быть одинаковы с образом? у меня в дсим определяет версию 10.0.22000.653, когда как образ 10.0.22000.1574 и валит в ошибку 0x800f081f.