Windows Server 2012 R2 вышел 18 октября 2013 года. С тех пор на эту серверную операционную систему Microsoft выпущено несколько сотен обновлений исправляющих уязвимости и дефекты продукта, а так же улучшающие функционал.
Огромное количество обновлений — источник головной боли. Наиболее актуальный дистрибутив сервера, так называемый «Update2», в который интегрированы обновления по ноябрь 2014 года, безнадежно устарел. Установив с него операционную систему, вы получите вдогонку еще 200+ обновлений, которые будут устанавливаться 2-4 часа.
В этой короткой инструкции мы освежим ноябрьский дистрибутив, интегрировав в него все кумулятивные пакеты обновлений и обновления безопасности.
Помимо дистрибутива мы освежим и память администратора, вспомнив как обновляется носитель для установки, зачем выполняется каждый шаг, и какие нас может ожидать подвохи на разных этапах.
Делать будем по максимуму просто, используя штатные инструменты.
Все работы лучше проводить на сервере с уже развернутом Windows Server 2012 R2, чтобы не было накладок с версией утилиты DISM. Так же на нем удобно подключать ISO файлы, не распаковывая их.
Для работы потребуются следующие каталоги:
ISO — в этот каталог копируются файлы дистрибутива. В скопируйте в него содержимое дистрибутива SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO, предварительно смонтировав образ, а затем размонтировав.
MOUNT — пустой каталог, в него будут монтироваться образы из wim-файла.
CU — в этот каталог поместим кумулятивные обновления
SU — в этом каталоге будут находиться обновления безопасности и другие обновления
Tip & Trick #1. Microsoft выпускает для Windows Server 2012 R2 кумулятивные пакеты обновлений, но в них входят только обновления, исправляющие ошибки и улучшающие функционал. Обновления безопасности не включены. При этом обновления и не особо кумулятивны. Некоторые не включают в себя предыдущие обновления, и надо ставить «кумулятивное» за каждый месяц. Бардак. В октябре эта ситуация изменится к лучшему.
Со списком кумулятивных обновлений вы можете ознакомиться на этой wiki странице.
С ноября 2014 года нам потребуется интегрировать следующие обновления:
1. December 2014 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3013769, cкачать.
2. July 2016 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3172614, скачать.
Пакеты за май и июнь поглощены этим июльским пакетом. Но перед установкой обязательно обновление April 2015 servicing stack update for Windows 8.1 and Windows Server 2012 R2. KB3021910, скачать.
3. August 2016 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3179574, скачать.
UPD: Я несколько преувеличил то, насколько Microsoft качественно подготовила дистрибутив. Обновления April 2014 и November 2014 действительно интегрированы. А все промежуточные — нет. Поэтому добавляем
May 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2955164, скачать
June 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2962409, скачать.
July 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2967917, скачать.
August 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2975719, скачать.
September 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2984006, скачать.
October 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2995388, скачать.
Tip & Trick #2. В разных статьях для интеграции обновлений предлагается извлечь из msu cab-файл. Делать это для offline-образа необязательно — интегрируйте msu без распаковки.
В папку CU разместите упомянутые выше msu файлы — Windows8.1-KB3013769-x64.msu, Windows8.1-KB3021910-x64.msu, Windows8.1-KB3138615-x64.msu, Windows8.1-KB3172614-x64.msu, Windows8.1-KB3179574-x64.msu.
Помимо кумулятивных обновлений интегрируем обновления, которые способна скачать утилита WSUS Offline Update.
Для этого:
ОСТОРОЖНО: Если в список попали KB2966828 или KB2966827, удалите их, иначе после установки не получится добавить компонент Net Framework 3.5 (подробности).
Обновления готовы, приступим к интеграции.
Для интеграции обновлений нам потребуется:
Этот процесс легко следующим автоматизировать командным файлом:
Tip: Запуская командный файл, перенаправьте вывод в журнал
В результате мы получим файл D:\WS2012R2\ISO\sources\install.wim размером в 6.15Gb. Можем ли мы его уменьшить? Да, с помощью экспорта можно получить оптимизированный файл размером в 5.85Gb.
Экономия небольшая, кроме того после этого не очень красиво выглядит диалог выбора операционной системы при установке, поэтому следующий шаг опционален.
Для сборки нам потребуется утилита oscdimg.exe из комплекта Windows ADK. Если у вас ее не оказалось, можно просто скачать утилиту по ссылке (не используйте из этого комплекта ничего, кроме самой утилиты).
Tip & Trick #3. Для того, чтобы не было проблем с загрузкой из образа, следует расположить загрузочные файлы в пределах первых 4 гигабайт образа. Для этого используем файл bootorder.txt
boot\bcd
boot\boot.sdi
boot\bootfix.bin
boot\bootsect.exe
boot\etfsboot.com
boot\memtest.exe
boot\en-us\bootsect.exe.mui
boot\fonts\chs_boot.ttf
boot\fonts\cht_boot.ttf
boot\fonts\jpn_boot.ttf
boot\fonts\kor_boot.ttf
boot\fonts\wgl4_boot.ttf
sources\boot.wim
Пути в этом файле указываются относительно корневой директории с образом, поэтому подстраивать пути на ваши фактические не требуется.
Tip & Trick #4. Если install.wim имеет размер больше 4700Mb, то инсталлятор вылетит с ошибкой «Windows cannot open the required file D:\sources\install.wim. Error code: 0x8007000D».
Нас учили что жизнь — это бой, поэтому разделим исходный install.wim на два командой
Оригинальный файл install.wim можно удалить.
Tip & Trick #5. Вообще Microsoft говорит, чтопить так делать нельзя.
Мы говорим, что будем! Инсталлятор прекрасно подхватывает swm-файл. Проблем с установкой не будет.
Собираем образ командой:
oscdimg -m -n -yoD:\WS2012R2\bootorder.txt -bD:\WS2012R2\ISO\BOOT\etfsboot.com -lIR5_SSS_X64FREV_EN-US_DV9 D:\WS2012R2\ISO en_windows_server_2012R2_August_2016.iso
Уважаемый ildarz подсказывает, что для создания образа, одинаково хорошо работающего с BIOS и EFI, следует руководствоваться KB947024 и создавать образ так:
Работоспособность проверена в ESXi с любым типом загрузки (BIOS/EFI).
Все получилось? Поздравляю!
Но решена ли проблема полностью? Для идеала необходимо интегрировать еще сотню «опциональных» и «рекомендованных» обновлений, но с этим не будем торопиться. Дадим Microsoft шанс самим разобраться в том бардаке, который они устроили с обновлениями.
PS. Зачем мы все это делали? Для того, чтобы освежить память, сделать работу чуть удобнее и получить несколько простых командных файлов, при помощи которых в дальнейшем можно практически автоматизированно интегрировать обновления в серверный дистрибутив, экономя время ввода сервера в эксплуатацию. Тем более есть надежда, что начиная с октября интегрировать обновления станет гораздо проще.
Точно так же вы сможете интегрировать Windows 7 convenience rollup и не наступить на грабли распаковки обновлений, невозможности загрузки из образа, превышения размера install.wim.
Спасибо за внимание и до новых встреч, друзья.
Если есть возможность поделиться опытом — жду вас в комментариях.
Огромное количество обновлений — источник головной боли. Наиболее актуальный дистрибутив сервера, так называемый «Update2», в который интегрированы обновления по ноябрь 2014 года, безнадежно устарел. Установив с него операционную систему, вы получите вдогонку еще 200+ обновлений, которые будут устанавливаться 2-4 часа.
В этой короткой инструкции мы освежим ноябрьский дистрибутив, интегрировав в него все кумулятивные пакеты обновлений и обновления безопасности.
Помимо дистрибутива мы освежим и память администратора, вспомнив как обновляется носитель для установки, зачем выполняется каждый шаг, и какие нас может ожидать подвохи на разных этапах.
Делать будем по максимуму просто, используя штатные инструменты.
Все работы лучше проводить на сервере с уже развернутом Windows Server 2012 R2, чтобы не было накладок с версией утилиты DISM. Так же на нем удобно подключать ISO файлы, не распаковывая их.
Готовим рабочие директории
Для работы потребуются следующие каталоги:
ISO — в этот каталог копируются файлы дистрибутива. В скопируйте в него содержимое дистрибутива SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO, предварительно смонтировав образ, а затем размонтировав.
MOUNT — пустой каталог, в него будут монтироваться образы из wim-файла.
CU — в этот каталог поместим кумулятивные обновления
SU — в этом каталоге будут находиться обновления безопасности и другие обновления
mkdir D:\WS2012R2\ISO
mkdir D:\WS2012R2\MOUNT
mkdir D:\WS2012R2\CU
mkdir D:\WS2012R2\SU
Скачиваем кумулятивные обновления
Tip & Trick #1. Microsoft выпускает для Windows Server 2012 R2 кумулятивные пакеты обновлений, но в них входят только обновления, исправляющие ошибки и улучшающие функционал. Обновления безопасности не включены. При этом обновления и не особо кумулятивны. Некоторые не включают в себя предыдущие обновления, и надо ставить «кумулятивное» за каждый месяц. Бардак. В октябре эта ситуация изменится к лучшему.
Со списком кумулятивных обновлений вы можете ознакомиться на этой wiki странице.
С ноября 2014 года нам потребуется интегрировать следующие обновления:
1. December 2014 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3013769, cкачать.
2. July 2016 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3172614, скачать.
Пакеты за май и июнь поглощены этим июльским пакетом. Но перед установкой обязательно обновление April 2015 servicing stack update for Windows 8.1 and Windows Server 2012 R2. KB3021910, скачать.
3. August 2016 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3179574, скачать.
Обновленный клиент центра обновления можно не интегрировать
Свежий Windows Update Client for Windows 8.1 and Windows Server 2012 R2: June 2016 вошел в KB3161606
KB3161606 поглощен KB3172614.
KB3161606 поглощен KB3172614.
UPD: Я несколько преувеличил то, насколько Microsoft качественно подготовила дистрибутив. Обновления April 2014 и November 2014 действительно интегрированы. А все промежуточные — нет. Поэтому добавляем
May 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2955164, скачать
June 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2962409, скачать.
July 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2967917, скачать.
August 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2975719, скачать.
September 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2984006, скачать.
October 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB2995388, скачать.
Tip & Trick #2. В разных статьях для интеграции обновлений предлагается извлечь из msu cab-файл. Делать это для offline-образа необязательно — интегрируйте msu без распаковки.
В папку CU разместите упомянутые выше msu файлы — Windows8.1-KB3013769-x64.msu, Windows8.1-KB3021910-x64.msu, Windows8.1-KB3138615-x64.msu, Windows8.1-KB3172614-x64.msu, Windows8.1-KB3179574-x64.msu.
Скачиваем обновления безопасности
Помимо кумулятивных обновлений интегрируем обновления, которые способна скачать утилита WSUS Offline Update.
Для этого:
- Скачиваем программу download.wsusoffline.net
- Выбираем обновления для Windows Server 2012 R2
- После скачивания открываем каталог wsusoffline\client\w63-x64\glb и *.cab файлы копируем в каталог C:\WS2012R2\SU
ОСТОРОЖНО: Если в список попали KB2966828 или KB2966827, удалите их, иначе после установки не получится добавить компонент Net Framework 3.5 (подробности).
Обновления готовы, приступим к интеграции.
Интеграция обновлений
Для интеграции обновлений нам потребуется:
- Смонтировать содержимое одного из образов в install.wim
dism /mount-wim /wimfile:{путь к wim файлу} /Index:{N} /mountdir:{путь к директории монтирования}
- Интегрировать в offline установку каждое обновление
dism /image:{путь к директории монтирования} /add-package /packagepath:{путь к *.msu или *.cab файлу}
- Сохранить изменения
dism /Unmount-WIM /MountDir:{путь к директории монтирования} /Commit
Этот процесс легко следующим автоматизировать командным файлом:
for /l %%N in (1,1,4) do (
dism /mount-wim /wimfile:"D:\WS2012R2\ISO\sources\install.wim" /Index:%%N /mountdir:D:\WS2012R2\MOUNT
for %%f in (D:\WS2012R2\CU\*.*) DO (dism /image:D:\WS2012R2\MOUNT /add-package /packagepath:%%f)
for %%f in (D:\WS2012R2\SU\*.*) DO (dism /image:D:\WS2012R2\MOUNT /add-package /packagepath:%%f)
dism /unmount-WIM /MountDir:D:\WS2012R2\MOUNT /Commit
)
Tip: Запуская командный файл, перенаправьте вывод в журнал
UpdateWIM.cmd >>log.txt 2>>&1
В результате мы получим файл D:\WS2012R2\ISO\sources\install.wim размером в 6.15Gb. Можем ли мы его уменьшить? Да, с помощью экспорта можно получить оптимизированный файл размером в 5.85Gb.
Экономия небольшая, кроме того после этого не очень красиво выглядит диалог выбора операционной системы при установке, поэтому следующий шаг опционален.
Что надо сделать?
Для получения сжатого образа необходимо:
Автоматизируем скриптом:
Удалите оригинальный install.wim, а сформированный install1.wim переименуйте в install.wim
- Экспортировать первый образ из оригинального wim-файла в новый файл
dism /export-image /sourceimagefile:{путь к исходному файлу wim} /sourceindex:1 /destinationimagefile:{путь к новому файлу wim} /compress:max
- Подключить следующий образ из оригинального wim-файла в точку монтирования
dism /mount-wim /wimfile:"D:\WS2012R2\ISO\sources\install.wim" /Index:2 /mountdir:{директория для монтированния образа}
- Добавить в новый файл следующий образ методом «захвата»
dism /append-image /imagefile:{путь к новому файлу wim} /captureDir:{директория с смонтированным образом} /name:{оригинальное имя} /description:{оригинальное описание}
- Размонтировать образ, повторить итерацию добавления для каждого дополнительного образа
dism /unmount-WIM /MountDir:{директория с смонтированным образом} /Discard
Автоматизируем скриптом:
dism /export-image /sourceimagefile:D:\WS2012R2\ISO\sources\install.wim /sourceindex:1 /destinationimagefile:D:\WS2012R2\ISO\sources\install1.wim /compress:max
dism /mount-wim /wimfile:"D:\WS2012R2\ISO\sources\install.wim" /Index:2 /mountdir:D:\WS2012R2\MOUNT
dism /append-image /imagefile:D:\WS2012R2\ISO\sources\install1.wim /captureDir:mount /name:"Windows Server 2012 R2 SERVERSTANDARD" /description:"Windows Server 2012 R2 SERVERSTANDARD"
dism /unmount-WIM /MountDir:D:\WS2012R2\MOUNT /discard
dism /mount-wim /wimfile:"D:\WS2012R2\ISO\sources\install.wim" /Index:3 /mountdir:D:\WS2012R2\MOUNT
dism /append-image /imagefile:D:\WS2012R2\ISO\sources\install1.wim /captureDir:mount /name:"Windows Server 2012 R2 SERVERDATACENTERCORE" /description:"Windows Server 2012 R2 SERVERDATACENTERCORE"
dism /unmount-WIM /MountDir:D:\WS2012R2\MOUNT /discard
dism /mount-wim /wimfile:"D:\WS2012R2\ISO\sources\install.wim" /Index:4 /mountdir:D:\WS2012R2\MOUNT
dism /append-image /imagefile:D:\WS2012R2\ISO\sources\install1.wim /captureDir:mount /name:"Windows Server 2012 R2 SERVERDATACENTER" /description:"Windows Server 2012 R2 SERVERDATACENTER"
dism /unmount-WIM /MountDir:D:\WS2012R2\MOUNT /discard
Удалите оригинальный install.wim, а сформированный install1.wim переименуйте в install.wim
Создание компактного образа install.esd
По совету D1abloRUS, если вы хотите получить инсталляционный диск минимального размера умещающийся на DVD5, можно экспортировать один (и только один) из образов в esd файл. Например, для экспорта Windows Server 2012 R2 Standard, используйте команду
Оригинальный install.wim можно удалить.
dism /export-image /sourceimagefile:D:\WS2012R2\ISO\sources\install.wim /sourceindex:2 /destinationimagefile:D:\WS2012R2\ISO\sources\install.esd /compress:recovery
Оригинальный install.wim можно удалить.
Сборка ISO-файла
Для сборки нам потребуется утилита oscdimg.exe из комплекта Windows ADK. Если у вас ее не оказалось, можно просто скачать утилиту по ссылке (не используйте из этого комплекта ничего, кроме самой утилиты).
Tip & Trick #3. Для того, чтобы не было проблем с загрузкой из образа, следует расположить загрузочные файлы в пределах первых 4 гигабайт образа. Для этого используем файл bootorder.txt
boot\bcd
boot\boot.sdi
boot\bootfix.bin
boot\bootsect.exe
boot\etfsboot.com
boot\memtest.exe
boot\en-us\bootsect.exe.mui
boot\fonts\chs_boot.ttf
boot\fonts\cht_boot.ttf
boot\fonts\jpn_boot.ttf
boot\fonts\kor_boot.ttf
boot\fonts\wgl4_boot.ttf
sources\boot.wim
Пути в этом файле указываются относительно корневой директории с образом, поэтому подстраивать пути на ваши фактические не требуется.
Tip & Trick #4. Если install.wim имеет размер больше 4700Mb, то инсталлятор вылетит с ошибкой «Windows cannot open the required file D:\sources\install.wim. Error code: 0x8007000D».
Нас учили что жизнь — это бой, поэтому разделим исходный install.wim на два командой
dism /split-Image /imagefile:D:\WS2012R2\ISO\sources\install.wim /swmfile:D:\WS2012R2\ISO\sources\install.swm /filesize:4096
Оригинальный файл install.wim можно удалить.
Tip & Trick #5. Вообще Microsoft говорит, что
In Windows 8.1 and Windows 8, Windows Setup does not support installing a split .wim file.
Мы говорим, что будем! Инсталлятор прекрасно подхватывает swm-файл. Проблем с установкой не будет.
Собираем образ командой:
Уважаемый ildarz подсказывает, что для создания образа, одинаково хорошо работающего с BIOS и EFI, следует руководствоваться KB947024 и создавать образ так:
oscdimg -m -u2 -udfver102 -yoD:\WS2012R2\bootorder.txt -bootdata:2#p0,e,bD:\WS2012R2\ISO\BOOT\Etfsboot.com#pEF,e,bD:\WS2012R2\ISO\EFI\microsoft\BOOT\efisys.bin -lIR5_SSS_X64FREV_EN-US_DV9 D:\WS2012R2\ISO en_windows_server_2012R2_August_2016.iso
Работоспособность проверена в ESXi с любым типом загрузки (BIOS/EFI).
Все получилось? Поздравляю!
Но решена ли проблема полностью? Для идеала необходимо интегрировать еще сотню «опциональных» и «рекомендованных» обновлений, но с этим не будем торопиться. Дадим Microsoft шанс самим разобраться в том бардаке, который они устроили с обновлениями.
PS. Зачем мы все это делали? Для того, чтобы освежить память, сделать работу чуть удобнее и получить несколько простых командных файлов, при помощи которых в дальнейшем можно практически автоматизированно интегрировать обновления в серверный дистрибутив, экономя время ввода сервера в эксплуатацию. Тем более есть надежда, что начиная с октября интегрировать обновления станет гораздо проще.
Точно так же вы сможете интегрировать Windows 7 convenience rollup и не наступить на грабли распаковки обновлений, невозможности загрузки из образа, превышения размера install.wim.
Спасибо за внимание и до новых встреч, друзья.
Если есть возможность поделиться опытом — жду вас в комментариях.