- Вопрос или проблема
- Введение
- Шаги для идентификации плохих обновлений
- Скачивание неповрежденной версии пакетов
- Сделать файлы обновлений доступными для DISM/SURT
- Восстановление поврежденных файлов
- Сноски
- Ответ или решение
- Шаг 1: Определение поврежденных обновлений
- Шаг 2: Загрузка исправленных версий пакетов
- Шаг 3: Подготовка файлов для DISM/SURT
- Шаг 4: Запуск DISM для восстановления
- Шаг 5: Проверка и устранение дальнейших проблем
- Заключение
Вопрос или проблема
Я пытаюсь обновить свою машину с Windows 7 с помощью обновлений Windows, но постоянно получаю ошибку 800B0100 (аналогичная той, что сообщается здесь, здесь и здесь). Приняв несколько шагов, упомянутых в этих руководствах (инструмент готовности к обновлению системы, проверка диска, средство устранения неполадок Windows Update, DISM, sfc, возможно, что-то еще, что я забыл), я остался почти без результатов.
Единственная подсказка, которую я получил, пришла из команды DISM /Online /Cleanup-image /Scanhealth
, которую я выполнил. Это сгенерировало этот файл CheckSUR.log. Некоторые моменты:
Проверка пакетов обслуживания Windows
Проверка манифестов и каталогов пакетов
(f) CBS MUM Поврежден 0x00000000 servicing\Packages\Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum Ожидаемое имя файла Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~neutral~~11.2.9412.0.mum не соответствует фактическому имени файла
(f) CBS MUM Поврежден 0x00000000 servicing\Packages\Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum Ожидаемое имя файла Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~neutral~~11.2.9412.0.mum не соответствует фактическому имени файла
(f) CBS MUM Поврежден 0x800F0900 servicing\Packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum Строка 1:
(f) CBS Каталог Поврежден 0x800B0100 servicing\Packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.cat
(f) CBS MUM Поврежден 0x800F0900 servicing\Packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum Строка 1:
...
Проверка списка наблюдения пакетов
Проверка списка наблюдения компонентов
Проверка пакетов
Проверка хранилища компонентов
(f) CSI Манифест Все нули 0x00000000 winsxs\Manifests\amd64_microsoft-windows-wow64_31bf3856ad364e35_6.1.7601.23136_none_c6c193f2071b07e3.manifest amd64_microsoft-windows-wow64_31bf3856ad364e35_6.1.7601.23136_none_c6c193f2071b07e3
(f) CSI Манифест Все нули 0x00000000 winsxs\Manifests\amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.23136_none_bc7a217a2167e4bd.manifest amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.23136_none_bc7a217a2167e4bd
(f) CSI Манифест Все нули 0x00000000 winsxs\Manifests\amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7601.23136_none_b772aa2a2bf98230.manifest amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7601.23136_none_b772aa2a2bf98230
(f) CSI Манифест Все нули 0x00000000 winsxs\Manifests\amd64_microsoft-windows-smss_31bf3856ad364e35_6.1.7601.23136_none_0ad673e548fd75d4.manifest amd64_microsoft-windows-smss_31bf3856ad364e35_6.1.7601.23136_none_0ad673e548fd75d4
(f) CSI Манифест Все нули 0x00000000 winsxs\Manifests\amd64_microsoft-windows-rpc-http_31bf3856ad364e35_6.1.7601.23136_none_fe94b8d86f1fbfc8.manifest amd64_microsoft-windows-rpc-http_31bf3856ad364e35_6.1.7601.23136_none_fe94b8d86f1fbfc8
...
servicing\packages\Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum
servicing\packages\Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum
servicing\packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_113_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_113_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
servicing\packages\Package_114_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
Как я могу исправить эти ошибки, чтобы в следующий раз, когда я запущу DISM
, я не получил их? Я надеюсь, что это исправит мою первоначальную ошибку (с кодом ошибки 800B0100 при обновлении Windows), так что, в качестве альтернативы, если у вас есть исправление для этого, я буду вам очень признателен.
Введение
DISM
будет ремонтировать только поврежденные обновления, если у него есть доступ к «хорошим» версиям обновлений в соответствующем подкаталоге %WINDIR%\Temp\CheckSUR\
. Без этих файлов DISM
или инструмент готовности к обновлению системы (SURT
) только сгенерирует список поврежденных файлов и не выполнит никаких ремонтов (как вы видели).
Итак, как можно идентифицировать поврежденные файлы и затем исправить их? Эта статья из базы знаний MS неплохо описывает это, хотя и с несколькими сломанными ссылками и отсутствующими деталями, на что в основном указывает эта другая статья MS. Огорчительно, что некоторая информация противоречит этой статье MS technet*(см. сноску). Предполагая, что вы предпочли бы прочитать о процедуре здесь, а не соединять несколько разных источников….
Шаги для идентификации плохих обновлений
В %WINDIR%\Logs\CBS\CheckSUR.log
, сгенерированном при установке SURT или запуске DISM, перейдите к нижней части файла и прочитайте строки, начинающиеся с servicing\packages\Package_
в разделе Недоступные файлы для восстановления:
. Где вы видите _for_KB######, KB###### (в вашем случае KB3040272) — это обновление, которое вам нужно загрузить. @magicandre1981 также идентифицировал KB3071756 как затрагивающее вас, предположительно, из части вашего лог-файла, не предоставленной напрямую в вопросе.
Скачивание неповрежденной версии пакетов
После того как вы идентифицировали сломанные KB, вы можете получить файлы обновлений Microsoft MSU
на соответствующей странице KB support.microsoft.com (/kb/######) или, используя IE, зайти на каталог обновлений Microsoft и найти соответствующий номер KB. На странице MS KB прокрутите вниз до раздела «Информация об обновлении» и ищите ссылку, которая говорит «Скачайте пакет сейчас» рядом с ссылкой для вашей версии операционной системы (x86 = 32-битная ОС; x64 = стандартная 64-битная; ia-64 только для высокопроизводительных серверов Intel 64-бит). Скачайте файл.
Сделать файлы обновлений доступными для DISM/SURT
После загрузки файлов вы можете разместить весь MSU, как указано ниже, или вы можете извлечь все mum
, cat
и manifest
файлы и затем переместить «хорошую» версию поврежденных пакетов, указанных в CheckSUR.log, в соответствующий каталог (снова, как указано ниже). Извлечение из файла msu можно выполнить с помощью следующей последовательности команд.
expand -f:* C:\path\to\msu.msu %temp%\msuexpanded\
expand -f:* %temp\msuexpanded\Windows6.1-KBnnnnnn-xnn.cab %temp\msuexpanded\cab\
update.cat
и update.mum
должны быть переименованы в соответствующее имя пакета – например, для вашего поврежденного пакета вы переименуете update.cat
в Package_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.cat
.
Затем переместите файлы (msu и/или другие расширения) на место из каталога %temp\msuexpanded\cab\ *(см. сноску):
Расширение файла | Абсолютный путь (создайте, если нужно) | Подтвержденная версия ОС (по)
-------------- | -------------------------------- | -----
msu | %SYSTEMROOT%\CheckSUR\packages\ | Windows 7 SP1 x64 (@chadnt‡)
(см. сноску для символов)
Расширение файла | Подкаталог %WINDIR%\Temp\CheckSUR\ (создайте, если нужно)
-------------- | -------
cat | servicing\Packages\
mum | servicing\Packages\
manifest | winsxs\Manifests\
msu (альтернативный) | Packages\
Как %SYSTEMROOT%
, так и %WINDIR%
по умолчанию равны C:\WINDOWS
Если файлы восстановления находятся в правильном каталоге, DISM/SURT теперь должны восстановить поврежденные файлы.
Восстановление поврежденных файлов
После KB2966583 – Улучшения для инструмента готовности к обновлению системы в Windows 7 и Windows Server 2008 R2 (статья KB | MSU
загрузка) была установлена, становится доступна командная версия “DISM”.
DISM становится версией CheckSUR, которую можно вызывать из командной строки, то есть инструмента готовности к обновлению системы (SURT) в Windows 7, чтобы вам не пришлось «устанавливать» SURT из статьи MS KB 947821 каждый раз, когда вам нужно проверить/восстановить поврежденные обновления MS.
Использование DISM следующее
DISM /Online /Cleanup-Image /Scanhealth
Команду необходимо выполнять от имени учетной записи администратора (то есть из командной строки Admin/с повышенными привилегиями или из панели задач с повышенными правами).
Или вы всегда можете снова установить SURT из KB947821.
После того как DISM или SURT были снова запущены, проверьте файл CheckSUR.log еще раз и посмотрите, исправил ли он ваши поврежденные пакеты. Если это не сработало, вы можете рассмотреть возможность выполнения установки в процессе обновления Windows.
Отказ от ответственности: части этого текста были взяты из ответа @magicandre1981. Поскольку я добавил так много деталей, я больше не считал, что простого редактирования его сообщения достаточно.
Сноски
*Что касается каталогов, на сайте Microsoft представлена противоречивая информация:
- KB947821 (Шаг 4 “Как исправить”) говорит, что
msu
следует копировать
в%SYSTEMROOT%\CheckSUR\packages
- KB2700601 говорит, что
msu
,
mum
иcat
должны находиться в%WinDir%\Temp\CheckSUR\Packages\
- MS Technet говорит (после исправления опечатки), что файлы
mum
иcat
должны помещаться в
%windir%\Temp\CheckSUR\servicing\packages
Аналогично, существует несколько мест, определяемых как подходящий каталог для файлов manifest
Попробуйте установить обновление KB2966583:
Улучшения инструмента готовности к обновлению системы в Windows 7 и Windows Server 2008 R2
http://support.microsoft.com/kb/2966583/en-us
Теперь вы должны иметь возможность выполнить эту команду DISM для восстановления поврежденных файлов:
DISM /Online /Cleanup-Image /Scanhealth
(Я никогда не проверял, действительно ли это работает. Пожалуйста, попробуйте и сообщите об этом)
Если это не сработает, сделайте следующее. Поскольку файлы обновлений KB3040272 и KB3071756 повреждены, загрузите файлы MSU из центра загрузок, поместите их в папку %SYSTEMROOT%\CheckSUR\packages
и снова запустите инструмент checksur KB947821.
Если это все еще не решает вашу проблему, восстановите Windows с помощью установки в процессе обновления.
Ответ или решение
Для решения проблемы с ошибками, указанными в вашем файле CheckSUR.log, и устранения ошибки Windows Update 800B0100, следуйте приведенным ниже рекомендациям. Этот процесс требует внимательности и последовательности.
Шаг 1: Определение поврежденных обновлений
В вашем файле CheckSUR.log указаны поврежденные пакеты. Вам необходимо идентифицировать и загрузить исправные версии этих пакетов. Обратите внимание на строки, начинающиеся с servicing\packages\Package_
, где указывается номер KB. В вашем случае это включает:
- KB3040272
- Вероятно также KB3071756 (как отмечено в других сообщениях).
Шаг 2: Загрузка исправленных версий пакетов
- Перейдите на сайт Центра обновлений Майкрософт или на страницу каталога обновлений.
- Воспользуйтесь поиском, чтобы найти и скачать обновления для вышеуказанных KB (например, KB3040272 и KB3071756). Убедитесь, что вы загружаете соответствующую версию для вашей системы (x86 для 32-битной системы или x64 для 64-битной).
Шаг 3: Подготовка файлов для DISM/SURT
После загрузки обновлений:
-
Вам нужно будет извлечь содержимое загруженных .msu файлов. Это можно сделать с помощью командной строки:
expand -f:* C:\путь\к\файлу.msu %temp%\msuexpanded\ expand -f:* %temp%\msuexpanded\Windows6.1-KBnnnnnn-xnn.cab %temp%\msuexpanded\cab\
Замените
C:\путь\к\файлу.msu
на путь к загруженному .msu файлу. -
После извлечения вам необходимо переименовать файлы
update.cat
иupdate.mum
в соответствии с названиями, указанными в вашем CheckSUR.log. Например, для пакета KB3040272:update.cat
можно переименовать вPackage_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.cat
.update.mum
аналогично.
-
Переместите файлы в соответствующие папки:
- Для
mum
иcat
файлов путь будет:%WINDIR%\Temp\CheckSUR\servicing\Packages\
. - Если у вас есть манифесты, переместите их в
%WINDIR%\Temp\CheckSUR\winsxs\Manifests\
.
- Для
Шаг 4: Запуск DISM для восстановления
После того как вы разместили все необходимые файлы в правильных директориях, выполните следующую команду из командной строки с правами администратора:
DISM /Online /Cleanup-Image /ScanHealth
Проверьте лог-файл CheckSUR.log на наличие изменений и повторите команду DISM, если это необходимо.
Шаг 5: Проверка и устранение дальнейших проблем
Если ошибка 800B0100 продолжает появляться:
- Убедитесь, что вы установили обновление KB2966583, которое улучшает работу инструментов для ремонта Windows.
- Запустите корректировку передовой безопасности для Windows:
DISM /Online /Cleanup-Image /RestoreHealth
- Если проблема сохраняется, рассмотрите возможность выполнения восстановления Windows.
Заключение
Следуя вышеуказанным шагам, вы сможете устранить ошибки, указанные в вашем Log-файле, а также решить проблему с обновлением Windows. Важно внимательно следовать инструкциям и собирать обновления, чтобы гарантировать восстановление целостности системы.