Как интегрировать обновления в Windows 7
Задача: Проработать – Как интегрировать обновления в Windows 7
Т.е. можно подготовить свои излюбленные обновления для системы под управлением Windows 7 SP1 Pro X64 Russian
которая используется либо на тест, либо на продуктив. Но это подходит/используется если в Вашей локальной сети не используется WSUS
. В противном случае это бессмысленно. Не если его нет, то порой полезно воссоздать систему чтобы оттестировать код на системе, где установлено то или иное обновление Windows
. Я с таким встречался и встречаюсь. Ниже набор работающих шагов по тому, как сделать образ Windows 7 + msu
файлы и проверить на системе виртуализации Debian 10 + Proxmox 6, а не как раньше я использовал Ubuntu 18.04 + QEMU/KVM.
Шаг №1: Текущая система: SW_DVD5_Win_Pro_7w_64BIT_Russian_-2_MLF_X17-59431.iso (Version 6.1.7601)
Установлен архиватор 7z
Шаг №2: Устанавливаю на нее (текущую операционную систему) пакет Windows AIK (KB3AIK_RU.iso)
, проверяю также версию утилиты dism.exe (6.1.7600.16385)
Шаг №3: Создаю необходимую структуру каталогов:
Пуск – Все программы – Стандартные
– и через правый клик мышью на «Командная строка» запускаю, как «Запуск от имени администратора
»
C:\isoproject -> распакованный образ Windows
C:\Windows\system32>if not exist c:\isoproject mkdir c:\isoproject
C:\Drivers -> каталог с драйверами.
C:\Windows\system32>if not exist c:\drivers mkdir c:\drivers
C:\mount -> для подключения install.wim в папку
C:\Windows\system32>if not exist c:\mount mkdir c:\mount
C:\update -> каталог с обновлениями: *.msu & *.cab
C:\Windows\system32>if not exist c:\update mkdir c:\update
Windows6.1-KB3162835-x64.msu – установка TimeZone
C:\iso -> каталог с дистрибутивами
C:\Windows\system32>if not exist c:\iso mkdir c:\iso
Шаг №4: Распаковываю iso
образ Windows 7
в директорию c:\isoproject
1 | C:\Windows\system32>”c:\Program Files\7-Zip\7z.exe” x “c:\iso\WIN7_x64fre_client_ru-ru_OEM_Professional-GRMCPRXFREO_RU_DVD.iso” -o”c:\isoproject\” -y |
Шаг №5: Если в образе несколько редакций то извлекаю ту которая соответствует редакции PRO:
123456789101112131415161718192021222324252627 | C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim C:\WINDOWS\system32>dism /export-image /sourceimagefile:c:\isoproject\sources\install.wim /sourceindex:3 /destinationimagefile:c:\windows\temp\install.wim /compress:max /checkintegrity /sourceindex:3 – это у меня редакция в моем ISO-образе Windows 7 Pro C:\WINDOWS\system32>copy /Y c:\windows\temp\install.wim c:\isoproject\sources\install.wim C:\WINDOWS\system32>del c:\windows\temp\install.wim C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim Cистема DISM Версия: 6.1.7600.16385 Сведения об образе : c:\isoproject\sources\install.wim Индекс: 1 Имя : Windows 7 Профессиональная Описание : Windows 7 Профессиональная Размер (байт): 11 945 156 754 Операция успешно завершена. |
Шаг №6: Монтирую образ install.wim
в директорию C:\Mount:
1 | C:\Windows\system32>dism /mount-wim /wimfile:”c:\isoproject\sources\install.wim” /index:1 /mountdir:c:\mount |
После данной процедуры в каталоге C:\mount
будет структура каталогов и файлов, как если бы операционная система была установлена на железе или виртуальную систему:
C:\mount\PerfLogs
C:\Program Files
C:\Program Files (x86)
C:\Windows
C:\Пользователи
Шаг №7: Добавляю в образ install.wim
каталог с пакетами обновлений: (файл с расширение msu
)
123456789101112131415 | C:\Windows\system32>dism /image:c:\Mount /add-package /packagepath:”c:\Update” Cистема DISM Версия: 6.1.7600.16385 Версия образа: 6.1.7600.16385 Обрабатывается 1 из 1 – Добавление пакета c:\Update\Windows6.1-KB3162835-x64.msu [==========================100.0%==========================] Операция успешно завершена. |
Шаг №8: Если нужно то добавляю в образ install.wim
файлы драйверов на материнскую плату, дисковую и сетевую подсистему: (Файлы с расширением: inf & cat
файлы)
1 | C:\Windows\system32>dism /image:c:\mount /add-driver:c:\Drivers /recurse /forceunsigned |
Шаг №9: Собираем папку c:\mount
обратно в образ install.wim:
123456789101112131415161718192021 | C:\Windows\system32>dism /unmount-wim /mountdir:c:\mount /commit Cистема DISM Версия: 6.1.7600.16385 Файл образа: c:\isoproject\sources\install.wim Индекс образа: 1 Сохранение образа [==========================100.0%==========================] Отключение образа [==========================100.0%==========================] Операция успешно завершена. C:\Windows\system32> |
На заметку: Перед выполнением все открытые окна и оснастки взаимодействующие с каталогом c:\mount
должны быть закрыты. Иначе вы получите ошибку 0xc1420117
: «Не удалось полностью отключить каталог. Обычно это происходит при наличии в каталоге подключения файлов, открытых приложениями. Чтобы завершить процесс отключения, закройте эти файлы и повторите попытку.
»
Шаг №10: Выводим сведения о подключенных образах WIM:
1234567891011 | C:\Windows\system32>dism /get-mountedwiminfo Cистема DISM Версия: 6.1.7600.16385 Подключено образов: Подключенные образы не найдены. Операция успешно завершена. |
Шаг №11: Удаляем ресурсы, связанные с поврежденными подключенными образами WIM:
1234567891011 | C:\Windows\system32>dism /cleanup-wim Cистема DISM Версия: 6.1.7600.16385 Поиск устаревших файлов на диске C Операция успешно завершена. C:\Windows\system32> |
Шаг №12: После собираем образ из распакованных файлов каталога c:\isoproject
в один файл iso:
123 | C:\Windows\system32>cd /d “C:\Program Files\Windows AIK\Tools\amd64” C:\Program Files\Windows AIK\Tools\amd64> oscdimg -u2 -m -o -lWIN7PROX64 -b”c:\Program Files\Windows AIK\Tools\PETools\amd64\boot\etfsboot.com” c:\isoproject c:\Win7_SP1_Pro_amd64.iso |
Итого образ готов.
Шаг №13: Загружаю образ в хранилище на Proxmox 6:
https://IP&DNS:8006 – Datacenter – Storage – local(srv-proxmox) – Upload –
Content: ISO image
И через Select File…
указываю местонахождение сформированного/собранного iso
файла, у меня он именуется, как: Win7_SP1_Pro_amd64.iso
, а после нажимаю Upload.
Шаг №14: Проверяю его (образа) работу, создав VM
на системе виртуализации Proxmox 6
которая у меня развернута по заметке.
Параметры VM
на ноде под управлением Proxmox 6:
Node: srv-proxmox
VM ID: 105 (или установщик подставит последовательное значение к уже существующим VM)
Name: W7X64TEST
Use CD/DVD disk image file(iso) – ISO Image: выбираю свой образ Win7_SP1_Pro_amd64.iso
Type: Microsoft Windows
Version: 7/2008r2
Graphic card: Default
SCSI Controller: Virtio SCSI
Bus/Device: SATA / 0 (если указать IDE, то также работает, а если SCSI то увы установщик Windows Не видит интегрированные драйвера в образ Install.wim, только если явно указывать используя еще один привод с драйверами)
Storage: local
Disk size (GiB): 40
Cache: Write back
Format: QEMU image format (qcow2)
Sockets: 1
Cores: 2
Type: Default (kvm64)
Memory (MiB): 4096
Bridge: vmbr0
(о том как его настроить см. здесь)Model: VirtIO (paravirtualized)
Start after created: отмечаем галочкой
И нажимаем Finish. VM
запустится и открыв Console
можно наблюдать за процессом и т.к. у меня не интегрирован файл ответов Autounattend.xml
взаимодействовать с мастером установки.
И система успешно развернулась с интегрированными драйверами и пакетом обновления:
1234567 | C:\Windows\system32>wmic qfe get hotfixid | find “KB3162835” KB3162835 C:\Windows\system32>wmic qfe | find “KB3162835” C:\Windows\system32>wmic qfe | findstr /I “KB316835” |
Итого: Пакет обновления успешно установился вместе с системой в среде виртуализации Proxmox
внутри операционной системы Windows 7
. Таким образом я приблизился еще на один шаг к тому чтобы подготовить сетевую установку через FOG Project на proxmox 6
своих систем: Windows 7, Windows 10, Server 2008 R2, Server 2012 R2, Server 2016
и конечно же Ubuntu
-систем где будет все:
- Определенные пакеты обновления (если используется
WSUS
интегрировать драйвера не нужно) - Определенные драйвера
- Файл ответов
На заметку: Если обновлений несколько важно чтобы вместе с ними были все файлы зависимых обновлений.
На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.