Установка обновлений
Ручной метод
Mетод svcpack.inf универсально подходит для интеграции обновлений Windows 2000-2003. Если у вас Windows XP с интегрированным SP2, то быстрее и проще будет использовать ключ /inegrate для интеграции каждого обновления в дистрибутив. К сожалению, этот способ 100% работает только с обновлениями, вышедшими после SP2 для Windows XP.
Ключ /integrateВ статье описывается как подготовить автоматическую установку обновлений, которая будет запущена за 13 минут до окончания установки Windows. Процесс установки обновлений может занять от 5 до 20 минут, в зависимости от их количества и конфигурации вашей системы. Сразу скажу, что процесс подготовки обновлений намного упростился по сравнению с pre-SP2 апдейтами.
Обновления и поддерживаемые ключи
Я буду опираться на статью МS Knowledge Base (MS KB) за номером 262841 - Command-Line switches for Windows software update packages. Microsoft использует несколько различных самораспаковывающихся пакетов, которые автоматически запускают программы обновлений содержающиеся внутри пакетов. Все пакеты обновлений для Windows XP и Windows 2003 Server содержат внутри программу Update.exe. Начиная с версии 5.4.15.0 эта программа поддерживает ключ /integrate:path, который нам очень поможет. А поможет он нам тем, что больше не понадобится вручную распаковывать обновления и вносить изменения в файлы svcpack.inf и dosnet.inf. Все это будет проделано автоматически. Для того, чтобы убедиться, что пакет на самом деле содержит Update.exe, загляните в свойства файла на закладку Версия. Там много полезной информации, включая даже ссылку на статью базы данных.
Ключ /integrate:path работает следующим образом. Первая часть его выполняет команду интеграции, а вторая задает путь к дистрибутиву, а точнее к директории содержащей папку i386. Таким образом для интеграции обновления в дистрибтив, находящийся в директории C:\XPCD нужно выполнить примерно такую команду:
WindowsXP-KB886185-x86-enu.exe /integrate:C:\XPCD
Об остальных ключах вы можете прочитать в вышеупомянутой статье МS KB, a я перейду к рассказу о том, что происходит при запуске обновления с ключом /integrate:path.
Интеграция обновлений
При запуске пакета обновления с ключом /integrate:path происходит следующее:
Новые версии файлов, содержащиеся в пакете обновлений распаковываются в i386, заменяя старые файлы. При этом они находятся в несжатом виде (*.dll вместо *.dl_)
Исполняемый файл обновления переименовывается в формат KBxxxxxx.exe в соответствии с номером статьи MS KB и копируется в директорию i386\svcpack
Каталоговый *.cat файл копируется в директорию i386\svcpack
В файл dosnet.inf в секцию [OptionalSrcDirs] вносится название каталога, содержащего обновления (svcpack)
В файл svcpack.inf добавляются запись для установки *.cat файла и запуска исполняемого файла обновления во время установки системы
После интеграции шести обновлений файл svcpack.inf выглядит следующим образом. В нем, кстати, видны и ключи /q /n /z, с которыми автоматически устанавливаются исполняемые файлы обновлений во время инсталляции системы.
CODE
[CatalogHeader]
[Version]
BuildNumber=2600
MinorVersion=1
MajorVersion=5
Signature=" NT$"
[SetupData]
CatalogSubDir="\I386\svcpack"
[SetupHotfixesToRun]
KB886185.exe /q /n /z
KB885626.exe /q /n /z
KB834707.exe /q /n /z
KB885836.exe /q /n /z
KB885835.exe /q /n /z
KB873339.exe /q /n /z
[ProductCatalogsToInstall]
KB886185.cat
KB885626.cat
KB834707.cat
KB885836.cat
KB885835.cat
KB873339.cat
Как видите, все что раньше приходилось делать вручную, теперь выполняется одной командой.
ПримечаниеВ Феврале Microsoft выпустила обновление KB885250, которое не интегрируется при помощи ключа /integrate, если в дистрибутив уже интегрировано обновление KB885835 (и наоборот).