Окт 272018
 

Windows Server 2012 R2 вышел 18 октября 2013 года. С тех пор на эту серверную операционную систему Microsoft выпущено несколько сотен обновлений исправляющих уязвимости и дефекты продукта, а так же улучшающие функционал. Огромное количество обновлений — источник головной боли. Наиболее актуальный дистрибутив сервера, так называемый «Update2», в который интегрированы обновления по ноябрь 2014 года, безнадежно устарел. Установив с него операционную систему, вы получите вдогонку еще 200+ обновлений, которые будут устанавливаться 2-4 часа. В этой короткой инструкции мы освежим ноябрьский дистрибутив, интегрировав в него все кумулятивные пакеты обновлений и обновления безопасности. Помимо дистрибутива мы освежим и память администратора, вспомнив как обновляется носитель для установки, зачем выполняется каждый шаг, и какие нас может ожидать подвохи на разных этапах.

Делать будем по максимуму просто, используя штатные инструменты.

Все работы лучше проводить на сервере с уже развернутом Windows Server 2012 R2, чтобы не было накладок с версией утилиты DISM. Так же на нем удобно подключать ISO файлы, не распаковывая их, хотя все будет замечательно работать и в Windows 10.

Готовим рабочие директории

mkdir D:\WS2012R2\ISO
mkdir D:\WS2012R2\MOUNT
mkdir D:\WS2012R2\CU
mkdir D:\WS2012R2\SU
  • ISO — в этот каталог копируются файлы дистрибутива. В скопируйте в него содержимое дистрибутива SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO, предварительно смонтировав образ, а затем размонтировав
  • MOUNT — пустой каталог, в него будут монтироваться образы из wim-файла
  • CU — в этот каталог поместим кумулятивные обновления
  • SU — в этом каталоге будут находиться обновления безопасности и другие обновления
  •  
    Скачиваем кумулятивные обновления
    В папку CU разместите упомянутые ниже *.msu файлы
    Нам потребуется интегрировать следующие обновления:

  • 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, скачать.
  • December 2014 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3013769, cкачать.
  • April 2015 servicing stack update for Windows 8.1 and Windows Server 2012 R2. KB3021910, скачать.
  • July 2016 Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2. KB3172614, скачать.
  •  
    Скачиваем обновления безопасности
    Помимо кумулятивных обновлений интегрируем обновления, которые способна скачать утилита WSUS Offline Update, download.wsusoffline.net

    После скачивания, открываем каталог куда распаковывали ранее скачанную утилиту:

    ..\wsusoffline\client\w63-x64\glb

    и файлы только с расширением *.cab (остальные не нужны) копируем в каталог D:\WS2012R2\SU

    ВАЖНО! Если в список попали KB2966828 или KB2966827, удалите их, иначе после установки не получится добавить (при необходимости) компонент Net Framework 3.5 (подробности)

    Интеграция обновлений
    Для интеграции обновлений нам потребуется:

      1. Смонтировать содержимое одного из образов в install.wim
      2. Интегрировать в offline установку каждое обновление
      3. Сохранить изменения

    Автоматизируем процесс скриптом (скрипт размещаем в *.cmd файле)

    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
    )

    Запуская скрипт, можно перенаправить результат выполнения в текстовый файл:

    < название файла со скриптом>.cmd >>log.txt 2>>&1

    В результате мы получим файл D:\WS2012R2\ISO\sources\install.wim размером больше 8Gb. С помощью экспорта (сжатия) можно получить оптимизированный файл размером чуть меньше исходного. Экономия небольшая, кроме того после этого не очень красиво выглядит диалог выбора операционной системы при установке, поэтому следующий шаг опционален.
    Автоматизируем процесс скриптом (скрипт размещаем в *.cmd файле)

    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 Standart"
    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 DataCenter CORE"
    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 DataCenter"
    dism /unmount-WIM /MountDir:D:\WS2012R2\MOUNT /discard

    Удалите оригинальный install.wim, а сформированный install1.wim переименуйте в install.wim

    Если вы хотите получить инсталляционный диск минимального размера умещающийся на DVD5, можно экспортировать один (и только один) из образов (Вариантов установки Standart, DataCenter CORE или DataCenter) в esd файл. Например, для экспорта Windows Server 2012 R2 Standard, используйте команду:

    dism /export-image /sourceimagefile:D:\WS2012R2\ISO\sources\install.wim /sourceindex:2 /destinationimagefile:D:\WS2012R2\ISO\sources\install.esd  /compress:recovery

    Сборка ISO-файла
    Для того, чтобы не было проблем с загрузкой из образа, следует расположить загрузочные файлы в пределах первых 4 гигабайт образа. Для этого создаем в папке D:\WS2012R2 файл bootorder.txt с содержимым:

    sources\boot.wim
    boot\bcd
    boot\boot.sdi
    boot\bootfix.bin
    boot\bootsect.exe
    boot\etfsboot.com
    boot\memtest.exe
    boot\ru-ru\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

    Обязательно проверьте пути к файлам, особенно если у Вас отличный от русского исходный образ, иначе на конечном этапе Вас может ожидать неприятный сюрприз.

    Разделение образа
    Если install.wim имеет размер больше 4700Mb (а у нас с вами, по факту, именно так и будет), то инсталлятор вылетит с ошибкой «Windows cannot open the required file ..\sources\install.wim. Error code: 0x8007000D»

    dism /split-Image /imagefile:D:\WS2012R2\ISO\sources\install.wim /swmfile:D:\WS2012R2\ISO\sources\install.swm /filesize:4096

    Оригинальный файл install.wim удалить.

    Для сборки нам потребуется утилита oscdimg.exe из комплекта Windows ADK. Если у вас ее не оказалось, можно просто скачать утилиту по ссылке (не используйте из этого комплекта ничего, кроме самой утилиты).

    Собираем образ командой:

    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_RU-RU_DV9 D:\WS2012R2\ISO ru_windows_server_2012R2_Sep_2018.iso

    Все получилось? Мои поздравления!

     Leave a Reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    (required)

    (required)