Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
"Возвращается мужик из командировки, а у него дома винда переставлена."-*** WInst ***-
Назначение проекта: Установка Windows 7-10 через: - Автоматизацию запуска стандартной программы установки Windows setup.exe с ключами командной строки. Для установки новых редакций Windows 10 применяется метод подмены стандартной библиотеки winsetup.dll.
- Развёртывание Windows на жёсткий диск (как с возможностью его разметки, так и на уже подготовленный) или в контейнер VHD с помощью программы wimlib-imagex.exe и последующим добавлением в список загрузки.
Представляет собой: Область применения:- Операционная система:
- установка через setup.exe: WinPE 7-10
- развёртывание через wimlib-imagex.exe: Win7-10, WinPE 7-10
- Разрядность: x86/x64
Загрузочная среда BootMediaСодержимое папки: - Загрузочные образы (x86 и x64) на базе Windows 1909, 2009, 2022
- Загрузочный образ на базе Windows 8 x86
- Загрузочный образ на базе Windows 7 x86 с комплектом драйверов USB3/SATA-RAID/NVMe
- Обновлённый скрипт создания загрузочного образа
При старте происходит поиск (и запуск, в случае успеха) по всем дискам скрипта "$:\programs\WInst\*.cmd" или "$:\WInst\*.cmd". Загрузить BootMedia
readme.txt0. Назначение ---------- Установка Windows 7-10 через: - автоматизацию запуска стандартной программы установки Windows setup.exe с ключами командной строки. Для установки новых редакций Windows 10 применяется метод подмены стандартной библиотеки winsetup.dll - развёртывание Windows на жёсткий диск (как с возможностью его разметки, так и на уже подготовленный) или в контейнер VHD с помощью программы wimlib-imagex.exe и последующим добавлением в список загрузки. 1. Терминология ------------ Папка дистрибутива (ПД) ~~~~~~~~~~~~~~~~~~~~~~~ Папка, в которой содержатся: - установочный файл с расширением WIM, ESD, SWM. Обычно это "install.esd" - файл описания (необязательно) {формат файла описания см. в "Примечания"} - папка $OEM$ (необязательно) - файл ответов unattend.xml (необязательно) - установочный комплект setup.exe (необязательно) Допускается наличие в ПД множественных установочных файлов с файлами описаниями. Общая папка (ОП) ~~~~~~~~~~~~~~~~ Папка, в которой содержатся: - папки дистрибутивов - папка $OEM$ (необязательно) - файл(-ы) ответов unattend.xml (<любое_имя>.xml) 2. Концепция --------- Возможны три варианта расположения ПД: Классический ~~~~~~~~~~~~ ОП находится в произвольном месте флешки. Например: F:\ ОП\ ПД\ ПД\ ПД\ ... Портативный ~~~~~~~~~~~ ОП называется "WInstall" и находится в папке с установочным скриптом WInst "WInst.cmd". Например: F:\ Folder\ WInst\ WInstall\ ПД\ ПД\ ПД\ ... WInst.cmd Произвольный ~~~~~~~~~~~~ Папка ОП отсутствует, ПД располагаются в любом месте флешки. Например: F:\ Folder\ ПД Folder1\ Folder2\ ПД ПД Folder3\ ПД 3. Выполнение ---------- Поиск и отображение ~~~~~~~~~~~~~~~~~~~ Сначала выполняется поиск ПД, расположенных в варианте "классический". Для указания расположения ОП служит файл dirlist.txt Например, у нас есть флешка с такой структурой папок: F:\ Install\ Windows\ Win7x86\ Win81x64\ Win10x64\ В данном примере ОП - это F:\Install\Windows\ Отбрасываем букву диска с двоеточием и завершающий слэш, получаем "\Install\Windows" Именно это и записываем в файл dirlist.txt: \Install\Windows Если ОП больше одной, то добавляем в dirlist.txt соответствующие строки. Допускается указание в dirlist.txt непосредственно ПД (это целесообразно, если ПД содержит множественные установочные файлы). Если брать структуру папок из примера выше, то записываем в dirlist.txt: \Install\Windows\Win7x86\@ \Install\Windows\Win81x64\@ \Install\Windows\Win10x64\@ Далее выполняется поиск ПД, расположенных в варианте "портативный" (папка WInstall). Если поиск в вариантах "классический" и "портативный" не дал результатов, и в папке программы существует файл fudlist.txt (см. ниже), то информация о дистрибутивах берётся из него. Варианты отображения найденных дистрибутивов: - если для установочного файла существует файл описания, то отображается его содержимое - если файла описания нет, то берётся информация из первого индекса дистрибутива Дополнительные возможности ~~~~~~~~~~~~~~~~~~~~~~~~~~ Переключить режим отображения: "версия/путь" - переключить вид с информации из первого индекса на полный путь к дистрибутиву. Выбрать дистрибутив вручную - самостоятельно выбрать файл дистрибутива (файл с расширением ESD, WIM, SWM). Искать дистрибутивы на выбранных дисках - поиск на выбранных дисках файлов с расширением WIM, ESD, SWM и размером более 1 000 000 000 байт. Предварительная разметка диска - разметить новый (или без сохранения данных) накопитель с использованием сценариев diskpart. Создать/Открыть VHD(X) - создать новый/открыть существующий VHD(X)-файл и присоединить его к системе для последующей установки в него Windows. Техническое обслуживание - добавить раздел/VHD-контейнер в загрузчик Windows; интегрировать драйверы/установочные пакеты; удалить/откатить установленные драйверы; восстановить загрузочные записи раздела/диска. Поиск используется, в основном, при "произвольном" расположении ПД. Результаты поиска записываются в файл fudlist.txt и могут быть использованны при последующих запусках WInst (в отличие от dirlist.txt, содержит полные пути (без диска) к найденным дистрибутивам). Файл fudlist.txt можно конвертировать в dirlist.txt. Для этого переименуйте: fudlist.txt -> fud2dir.txt (или просто fud2dir) для перезаписи dirlist.txt fudlist.txt -> fud4dir.txt (или просто fud4dir) для добавления к dirlist.txt и запустите WInst. Предупреждение установщика о невозможности использовать раздел VHD для установки Windows нужно игнорировать. Опция "Fix boot": * MBR/PBR (PBR) - обновить только загрузочные записи. * MBR/PBR + update BCD - обновить загрузочные записи и BCD. * Advanced Boot Options - включить при загрузке меню "Advanced Boot Options". - для раздела "WINDOWS" обновляется загрузочная запись раздела; - для раздела "BOOTLOADER" обновляется загрузочная запись раздела и MBR диска, содержащего раздел "BOOTLOADER"; - после применения "Advanced Boot Options" в корне раздела "WINDOWS" создаётся файл "AdvBootOpt_off.cmd" для отключения опции. При интеграции драйверов средствами WInst в папке "\Windows\Temp" целевой системы создаётся файл "WInst_Add_Drivers.bak", содержащий список драйверов, установленных до интеграции. Таким образом, откат установленных драйверов - это удаление всех драйверов, которых нет в данном списке. Опции установки ~~~~~~~~~~~~~~~ Дистрибутив - переключение вида "версия/путь" Папка $OEM$ - может располагаться в трех местах: ПД, ОП, WInstall. Соответственно, будет отображаться как: $OEM$, ..\$OEM$, _WInst_\$OEM$ Если существуют все три варианта, нужный можно выбрать вручную. Файл ответов - аналогично папке $OEM$. Будет отображаться как: unattend.xml, ..\unattend.xml, _WInst_\unattend.xml В папках ОП и WInstall может быть несколько файлов с расширением xml, нужный можно выбрать вручную. Установщик - Если в ПД существует setup.exe, то он будет предложен для запуска. Выбрать встроенный setup.exe можно вручную. Если в файле настроек определены переменные "setup_x86.exe" и/или "setup_x64.exe", содержащие путь к setup.exe распакованного комплекта установки, то именно этот комплект будет использован в качестве встроенного установщика. Проверка целостности - перед установкой будет запущена проверка установочного файла. Перезагрузка - можно отменить перезагрузку после установки или развёртывания дистрибутива. Лицензия EI.cfg - переключение между Volume/Retail Выбор языка - язык установки берётся из первого индекса дистрибутива или может быть выбран вручную. Выбор Winsetup.dll - по умолчанию "прямой". Если в процессе установки появляется ошибка "Не найдено лицензионное соглашение", то можно сменить на "обратный". 4. Развёртывание ------------- Суть развёртывания состоит в: - распаковке файла дистрибутива на раздел жёсткого диска (или в контейнер VHD) - добавлении нового пункта в меню загрузки Windows (или создании этого меню) Порядок действий: 1. Выбрать раздел, куда будет распакован дистрибутив; 2. Выбрать раздел, где находится (или будет создан) загрузчик; 3. Выбрать тип загрузки. Разделы должны иметь файловую систему (нельзя использовать RAW) Окно выбора раздела для распаковки дистрибутива содержит в "шапке" [ WINDOWS = ... ] - если на разделе уже есть Windows, то будет предложено отформатировать раздел Окно выбора раздела для установки загрузчика содержит в "шапке" [ BOOTLOADER = ... ] - можно не устанавливать/не изменять загрузчик Тип загрузки может быть: * ALL - загружать систему и в режиме BIOS, и в режиме UEFI * BIOS - загружать систему только в режиме BIOS * UEFI - загружать систему только в режиме UEFI Опции развёртывания ~~~~~~~~~~~~~~~~~~~ New BCD - создать новый файл конфигурации BCD (вместо добавления новой записи в существующую конфигурацию) и обновить файлы загрузчика. Drivers - операции с драйверами после выполнения развёртывания. Reboot - перезагрузка после завершения развёртывания. Операции с драйверами: * Добавление - выбрать папку с распакованными драйверами, которые будут интегрированы в развёрнутую Windows. Дополнительно папка может содержать установочные пакеты Windows (файлы с расширением ".msu" или ".cab"), которые также будут интегрированы. * Удаление - удалить все сторонние драйверы из развёрнутой Windows. * Удаление+добавление - комбинация предыдущих пунктов. 5. Состав: ------ docs - папка с файлами справки. packs - папка с комплектами установки и вспомогательными утилитами. schemes - папка со сценариями diskpart для "Предварительной разметки диска". WInst.cmd - файл запуска. Опционально: ~~~~~~~~~~~ dirlist.txt - список ОП и ПД для поиска по "классическому" варианту. settings.txt - файл настроек для изменения значений параметров, используемых по умолчанию. WInstall - папка для размещения общих $OEM$, unattend.xml и ПД для "портативного" варианта расположения ПД. 6. Примечания ---------- - предназначено для запуска: * для установки через setup.exe: из-под WinPE 7-10 x86/x64 * для установки через развёртывание: из-под Win7-10 x86/x64 и WinPE 7-10 x86/x64 - поиск папок из dirlist.txt и файлов из fudlist.txt производится по всем дискам - в случае "произвольного" расположения ПД, также можно пользоваться общими $OEM$ и unattend.xml из папки WInstall - при "Развёртывании" и "Техническом обслуживании" создаются резервные копии файла конфигурации BCD в папках "\Boot\{WInst}.bak" и "\EFI\Microsoft\Boot\{WInst}.bak" для BIOS и UEFI соответственно. Формат файла описания: - кодировка WIN-1251 - имя файла описания = имя установочного файла + расширение "txt" Например: "install.esd.txt" - содержание: * первая строка - описание самой установки * следующие строки - описания редакций (необязательно) в формате "N=Title" Например, содержимое "install.esd.txt": Windows 7 SP1 (x86-x64) Russian 1=Windows 7 (x86) Максимальная 2=Windows 7 (x86_64) Максимальная 7=Windows 7 (x86) Домашняя базовая 8=Windows 7 (x86_64) Домашняя базовая При развёртывании редакции, для которой есть описание в файле описания, новый пункт в меню загрузки Windows будет называться как описание редакции, а не стандартно "Windows 7" или "Windows 10". Если такая редакция будет развёрнута на одном ПК несколько раз, то к названию будет добавляться индекс [N], где N=2,3 и.т.д. Дополнительная информацияУстановщик Windows (ver. 10.0.10586) взят из комплекта WinSetup2k10 от korsak7 с добавлением всех языковых пакетов. Благодарностиdimo70 за тестирование и выявление всякого. goga8686 за тестирование и видеролик про "Развёртывание". BalAngel за английские переводы файлов справки и настроек. Всем камрадам, кто принимал участие в тестировании и подкидывал идеи.
DriverPack для 7/8.1/10 NVMe/SATA-RAID/USB3Загрузить WInst
Последний раз редактировалось: Ander_73 (2021-07-31 22:25), всего редактировалось 33 раз(а)
|
 Отправлено: 23-Дек-2018 17:40
(спустя 2 часа 34 минуты)
dimo70
 - Стаж: 7 лет 5 месяцев
- Сообщений: 3795
- Репутация:27[+] [-]
- Откуда: BG
|
Ander_73, Вот это будет замечательно!  Я сейчас пользую WInst как ядро на базе win 10 64 бит EN, которое очень класно получается с FullInstPrep. Запускаю автоматически лишь программу для проверки смарта, partition wizzard для работу с дисками и на всякий случай мой любимы 78setup с его тулами для английских файлов. Кроме етого на флещку записал несколько тулов, для сброса паролей учетных записей и прочее. Этого пока достаточно. Но было бы лучше усовершенствовать это дело. Не сомневаюсь, все будет. Большой плюс WInst, кроме быстрой работы, так и в универсальности языков, что в 78setup, к сожалению, так и не получилось. Про это говорил и KottoSOFT.
_________________ Подпись отключена за нарушение правил форума
|
user-789
  - Стаж: 9 лет 3 месяца
- Сообщений: 153
- Репутация:1[+] [-]
|
Ander_73, Приветствую Посоветуй чистую winpe для твоего проекта ???
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
user-789, дык в шапке же есть BootMedia. Это как раз оригинальные ПЕ-шки от MS, в которые вставлен поиск и запуск WInst.
|
user-789
  - Стаж: 9 лет 3 месяца
- Сообщений: 153
- Репутация:1[+] [-]
|
Ander_73, А для чего нужны файлы : make boot_x64 boot_x86
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
user-789, маке - это батник для изготовления boot.wim для WInst из любого дистрибутивного boot.wim (7-10) а остальные - это файлы "обвязки". Всякие там boot.sdi, BCD и прочее. Чтобы сделать загрузочную флешку "с нуля". --- Где-то в теме есть FullInstPrep, он загрузочную флешку под WInst создает почти автоматом. Или мой новый проект - Multi-loaders flash, там WInst вообще идёт как аддон.
|
dimo70
 - Стаж: 7 лет 5 месяцев
- Сообщений: 3795
- Репутация:27[+] [-]
- Откуда: BG
|
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
60488А будет развитие проекта FullInstPrep? Скорее всего, нет. Там тупиковая ветвь. Идёт развитие MLF. Там и подготовка флешки, и система аддонов, и всё такое прочее. Другими словами: подготовив флешку в MLF и установив аддон WInst получим то же, что делает FullInstPrep. Только аддонов у MLF уже гораздо больше. И вся система и концепция гораздо гибче, мощнее и прочая. Никаких "программ по выбору" не будет.
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
dimo70, кстати, зацени комплектик (LaunchBar + PopSel, только х64): Скачать Распаковать в папку WInst. Папка WInst должна быть в корне, как положено. --- Как обычно - это концепт. Можно напихать своего.
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
Потихоньку "пилю" shell для WInst. "Причесал" менюшку. Наваял ещё один бессмысленный бат-ник (теперь входит в shell)
Fix USBСитуация: с помощью сторонних средств установили на ПК Windows 7/2008. После первой загрузки (внезапно!) выяснилось, что на ПК стоит USB3 и клава/мышь не работают. Казалось бы, есть отличная утиль от simplix (Win7USB3). Но есть нюанс. Она требует или интеграции в дистр, или при запуске из WinPE прописывает свой запуск в ветку RunOnce. Но в нашем случае на экране горит приглашение ввести имя пользователя/сменить пароль Админа. То есть до выполнения RunOnce мы ёще не доползли. И вот теперь, выполнив из WinPE бантик, получим запуск Win7USB3 из ветки HKLM\SYSTEM\Setup. Подробности в readme Скачать shell Ссылка на shell, надеюсь, теперь постоянная. Будет дополняться. Уже входит составной частью в аддон WInst проекта MLF. --- На всякий случай уточняю: если использовать shell или бат-ник сам по себе, то Win7USB3 нужно качать самостоятельно и поместить в папку к бантику, переименовав в Win7USB3+.exe При установке же в составе аддона всё это будет выполнено автоматически, разумеется.
|
 Отправлено: 31-Янв-2019 10:53
(спустя 1 день 13 часов)
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
Бат-ник запуска (мессага выше) сделал универсальным. Порядок действий:- Загрузиться в WinPE
- Положить в одну папку с батником файл для запуска (*.exe *.msi *.bat)
- Запустить батник
Что делает:- Сохраняет ветку реестра HKLM\SYSTEM\Setup выбранной Windows
- Помещает в ветку реестра HKLM\SYSTEM\Setup выбранной Windows запуск батника, который:
- Запустит выбранную программу (из п.2 "Порядок действий")
- Восстановит ветку реестра HKLM\SYSTEM\Setup
- Удалит себя и выбранную программу
- Удаляет из корня выбранной Windows файл hiberfil.sys*
*однозначное определение "Спящего режима" мне неизвестно, поэтому так.Runner@echo off title Установка предзагрузчика >nul 2>nul copy %systemroot%\system32\config\system nul|| goto err_notWinPE cd /d "%~dp0" set fname=& for %%i in (*.exe, *.msi, *.bat) do set "fname=%%i" if not defined fname goto err_NoFile set DiskList=& set Disks=& for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if %%a neq %SystemRoot:~0,1% ^ if exist %%a:\Windows\System32\config\system ( if defined DiskList set Disks=1 call set DiskList=%%DiskList%%,%%a ) if not defined DiskList goto err_WinNotFound set DiskList=%DiskList:~1% set name=Установка "%fname%" в предзагрузку Windows set line=& for /l %%i in (0,1,100) do ( call set "let=%%name:~%%i,1%%" if defined let (call set line=%%line%%═) else goto next ) :next cls echo/ echo %name% echo %line% echo/ if not defined Disks ( set WinPth=%DiskList%:\Windows\System32\config\system goto next ) echo/ echo Найдены диски с Windows: echo ═══════════════════════ echo/ for %%j in (%DiskList%) do call :get_info %%j echo/ set ask=& set /p "ask=Выберите диск (только буква): " set WinPth=%ask%:\Windows\System32\config\system if not exist "%WinPth%" goto err_NotSelect :next echo/ echo ══════════════════════════════════════════════════ echo Целевая система: %WinPth% echo ══════════════════════════════════════════════════ echo/ set ask=& set /p "ask=Установить запуск '%fname%'? (1=Да/ 0=Нет): " if "%ask%" neq "1" exit echo/ reg.exe load HKLM\111 %WinPth%|| goto err_RegLocked reg.exe export HKLM\111\Setup %tmp%\0.reg /y reg.exe add HKLM\111\Setup /v CmdLine /t REG_SZ /d "cmd.exe /c \Setup.cmd" /f reg.exe add HKLM\111\Setup /v SetupType /t REG_DWORD /d 2 /f reg.exe unload HKLM\111 set log=%WinPth:~0,2%\Setup.cmd copy /y "%fname%" %WinPth:~0,2%\ 2>nul del /f/a/q %WinPth:~0,2%\hiberfil.sys set reg=!!!%random%%random%!!! reg.exe add HKCU\Software\%reg% /v Test /t REG_MULTI_SZ /d "%fname%" /f reg.exe export HKCU\Software\%reg% %tmp%\1.reg /y reg.exe delete HKCU\Software\%reg% /f set out=& for /f "skip=3" %%i in ('type %tmp%\1.reg') do call set out=%%out%%%%i set out=%out:00,=% set out=%out:\=% set out=%out:*:=% >%log% ( echo REGEDIT4 echo ;@echo off echo ;title Run "%fname%" echo ;cls echo ;echo/ echo ;echo Running "%fname%"... echo ;start /wait \"%fname%" echo ;regedit.exe /s \Setup.cmd echo ;echo/ echo ;set /p "=Press Enter to reboot... " echo ;start shutdown.exe -r -f -t 01 echo ;start cmd.exe /c del /q \Setup.cmd echo ;echo/ echo ;set /p "=Waiting for reboot..." echo ;exit echo/ echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager] echo "PendingFileRenameOperations"=hex(7^):5c,3f,3f,5c,43,3a,5c,\ echo %out%,00,00,00 echo/ echo [HKEY_LOCAL_MACHINE\SYSTEM\Setup] ) set out=& for /f "delims=" %%i in ('type %tmp%\0.reg') do ^ for /f "delims=\[" %%a in ("%%i") do ^ if /i "%%a"=="HKEY_LOCAL_MACHINE" ( if defined out (goto next) else set out=1 ) else if defined out >>%log% echo %%i :next echo ══════════════════════════════════════════════════ echo Готово. echo/ echo *** Перезагрузите ПК для запуска "%fname%" *** echo/ pause del /q %tmp%\0.reg %tmp%\1.reg exit ::---------------------------------------------------------------------------- :get_info >nul 2>nul reg.exe load HKLM\000 %1:\Windows\System32\config\software|| ( set "Name=Доступ запрещён (возможно, система находится в "Спящем режиме")" goto next ) set Name=& for %%i in (ProductName BuildLabEx) do ^ for /f "tokens=2* skip=2" %%a in ('reg query "HKLM\000\Microsoft\Windows NT\CurrentVersion" /v "%%i"') do ^ if not defined Name ( set Name=%%b ) else call set Name=%%Name%% (%%b) :next set Name=& echo %1: %Name% >nul 2>nul reg.exe unload HKLM\000 exit /b :err_NoFile set msg=Файл для запуска не найден goto error :err_notWinPE set msg=Только для запуска из WinPE goto error :err_WinNotFound set msg=Не найдено ни одной папки с Windows goto error :err_NotSelect set msg=Диск не выбран goto error :err_RegLocked set msg=Реестр заблокирован (возможно, целевая система в "Спящем режиме") :error echo/ echo *** Ошибка! %msg%! *** echo/ pause
|
Ander_73
  - Стаж: 8 лет 3 месяца
- Сообщений: 3985
- Репутация:127[+] [-]
|
nikzzzz, издеваешься? Твоя же идея! Я-то как раз всегда реестр проверял  Но ключа minint запросто может и не быть. Так что проверка "залоченности" реестра мне очень понравилась.
|
Страница 16 из 44
Текущее время: 02-Май 18:17
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|