[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

    [+] [-]
"Возвращается мужик из командировки, а у него дома винда переставлена."-*** 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

Загрузка и подготовка установочного файла install.esd --- <утилита InstPrep> ---


Варианты загрузки:
  • прямая (только Windows 10)
  • через торрент
Прямая загрузка:
Выбрать требуемую конфигурацию из предложенных вариантов.
После загрузки будет произведено удаление первых 3-х индексов и оптимизация полученного install.esd
Загрузка через торрент:
Выбрать требуемую конфигурацию из предложенных вариантов.
После загрузки будет произведено извлечение и перепаковка install.wim -> install.esd
По завершении подготовки install.esd будет предложено создать установочный комплект WInst, который:
  • загрузит Winst
  • переместит подготовленный install.esd в папку:
    WInst\WInstall\<имя выбранной конфигурации>\install.esd
После чего папку WInst нужно вручную скопировать/переместить на флешку в произвольную папку.
Примечание: можно добавить свою коллекцию торрентов.
Для этого скопируйте свой торрент-файл(-ы) в папку torrents (допускается создание вложенных папок). Торрент-загрузка должна содержать один или несколько установочных iso-файлов.Загрузить InstPrep

Загрузочная среда BootMedia

Содержимое папки:
  • Оригинальные загрузочные образы Microsoft для запуска WInst c флеш-накопителя. Каждый образ поддерживает только свою разрядность.
  • Скрипт для самостоятельной подготовки загрузочного образа (представленные образы изготовлены из Windows 10 LTSC 2019).
  • Файлы "обвязки" bootfiles_x64.7z и bootfiles_x86.7z содержат папки boot и efi для создания самостоятельной загрузочной флешки.
Способ применения:
  • Изготовить загрузочный носитель с загрузочным образом.
  • При старте происходит поиск (и запуск, в случае успеха) по всем дискам скрипта "$:\Winst\Установка Windows.cmd".
Загрузить BootMedia -Новый комплект BootMedia:
  • Загрузочные образы на базе Windows 1909
  • Обновлённый скрипт создания загрузочного образа
Загрузить из

readme.txt

0. Назначение
   ----------
   Установка 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
"Установка Windows.cmd". Например:
   F:\
      Folder\
             WInst\
                   WInstall\
                            ПД\
                            ПД\
                            ПД\
                            ...
                   Установка Windows.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 соответствующие строки.
   Далее выполняется поиск ПД, расположенных в варианте "портативный" (папка WInstall).
Если по результатам поиска по первым двум вариантам не найдено ни одной ПД, то
начинается глобальный поиск по всем дискам в поисках файлов с расширением WIM, ESD, SWM
и размером более 1 000 000 000 байт.
   Варианты отображения найденных дистрибутивов:
- если в ПД существует файл описания, то отображается его содержимое
- если файла описания нет, то берется информация из первого индекса дистрибутива
   Пункт меню "Переключить режим отображения: "версия/путь"" позволяет переключать вид
с информации из первого индекса на полный путь к дистрибутиву.
                                Опции установки
                                ~~~~~~~~~~~~~~~
   Дистрибутив  - переключение вида "версия/путь"
   Папка $OEM$  - может располагаться в трех местах: ПД, ОП, WInstall. Соотв. будет
                  отображаться как $OEM$, ..\$OEM$, _WInst_\$OEM$
                  Если существуют все три варианта, нужный можно выбрать вручную.
   Файл ответов - аналогично папке $OEM$. Будут отображаться как:
                  unattend.xml, ..\unattend.xml, _WInst_\unattend.xml
                  В папках ОП и WInstall может быть несколько файлов с расширением xml,
                  нужный можно выбрать вручную.
   Установщик   - Если в ПД существует setup.exe, то он будет предложен для запуска.
                  Выбрать встроенный setup.exe можно вручную.
   Проверка целостности - перед установкой будет запущена проверка установочного файла.
   Перезагрузка         - можно отменить перезагрузку после развертывания дистрибутива.
   Лицензия EI.cfg      - переключение между Volume/Retail
   Выбор языка          - язык установки берется из первого индекса дистрибутива или
                          может быть выбран вручную.
4. Развёртывание
   -------------
   Суть развёртывания состоит в:
   - распаковке файла дистрибутива на раздел жёсткого диска (или в контейнер VHD)
   - добавлении нового пункта в меню загрузки Windows (или создании этого меню)
   Рассмотрим типовые сценарии развёртывания:
                                   Новый HDD
                                   ~~~~~~~~~
   Суть действий: нам необходимо установить Windows на новый (неразмеченный) HDD. Для
этого мы должны сперва разметить HDD и затем развернуть Windows.
   Подготавливаем новый HDD к развёртыванию:
   - выбираем "Disk preparing"
   - выбираем разметку ("MBR" или "GPT")
   - выбираем разбивку HDD "Microsoft standard"
   - выбираем тип загрузки (firmware)
   Собственно, само развёртывание в данном случае не требует дополнительных действий,
потому что все шаги выполнены стандартным образом (то есть разделы для Windows и
загрузчика определяются однозначно).
   В итоге получаем HDD разбитый на два раздела (260 Мб и всё оставшееся). На первом
разделе размещён загрузчик Windows, на второй развёрнута сама Windows.
                        HDD с уже установленной Windows
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Суть действий: нам необходимо выделить место для новой Windows. Для этого мы
"сожмём" существующий (в нашем случае, это второй) раздел и на освободившемся месте
создадим новый раздел. В новый раздел развернём Windows и добавим в меню загрузки новый
пункт.
   Сначала подготовим раздел для новой Windows:
   - выбираем "Disk preparing"
   - выбираем "Manual partitioning", "Manage partition", "Shrink partition"
   - выбираем размер раздела для новой Windows (например, 30000 Мб)
   - выбираем "Create partition", "Primary"
   Далее переходим к собственно развёртыванию:
   - выбираем "Windows applying"
   - выбираем "Volume for Windows applying" - это только что созданный новый раздел
     размером 30 Гб; указываем номер тома из списка (поскольку раздел только что
     создан и имеет формат RAW, его необходимо отформатировать в NTFS или FAT32)
   - выбираем "Volume for bootloader" - это раздел с загрузчиком Windows. В нашем
     случае это раздел размером 260 Мб и разметкой FAT32; указываем номер тома из
     списка
   - выбираем тип загрузки (firmware)
                       Установка Windows в контейнер VHD
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Некоторые редакции Windows (как правило, старшие) позволяют установку и работу из
контейнера VHD.
   Сначала выберем/создадим контейнер для новой Windows:
   - выбираем "Select/Create VHD container", где выбираем/создаем папку и имя
файла-контейнера.
   - указываем размер создаваемого контейнера (например, 30 Гб)
   Далее переходим к собственно развёртыванию, которое аналогично описанному в
предыдущем пункте (начиная с выбора "Windows applying").
5. Состав
   ------
   lang - файл локализации.
   tools64 - sfx-архив со вспомогательными утилитами.
   tools86 - sfx-архив со вспомогательными утилитами.
   setup64 - sfx-архив с установщиком х64.
   setup86 - sfx-архив с установщиком х86.
   readme.txt - файл справки.
   Установка Windows.cmd - файл запуска.
   Опционально:
   ~~~~~~~~~~~
   WInstall\ - папка для размещения общих $OEM$, unattend.xml и ПД для "портативного"
               варианта.
   dirlist.txt - список ОП для поиска по "классическому" варианту.
   shell.txt - строка запуска приложения (в свёрнутом виде) одновременно с WInst.
               Например:  "\TC\TOTALCMD.EXE" $d\
               означает запуск "TOTALCMD.EXE" из папки "\TC\" в корне текущего диска
               подстановочный знак "$d" разворачивается в имя текущего диска.
6. Примечания
   ----------
- предназначено для запуска:
  * для установки через setup.exe: из-под WinPE 7-10 x86/x64
  * для установки через развёртывание: из-под Win7-10 x86/x64 и WinPE 7-10 x86/x64
- поиск папок из dirlist.txt производится по всем дискам
- в случае "произвольного" расположения ПД, также можно пользоваться общими $OEM$ и
  unattend.xml из папки WInstall.
- при развёртывании выбор тома можно осуществлять не только по номеру, но и по букве,
  если буква у тома есть.
  Формат файла описания:
  - кодировка 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 взят из комплекта WinSetup2k10от korsak7
Загрузить WInst


Last edited by Ander_73 on 2019-12-20 17:23; edited 16 times in total

[Quote]

    vovan1982
  • 214
  • Longevity: 5 years
  • Posts: 1118
  • REPUTATION:65

    [+] [-]
  • Location: Ростов-на-Дону
dimo70, но это в WinPE расходует оперативку. Лично мое мнение я высказал, а так "на вкус и цвет товарищей нет".

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

    [+] [-]
Исправление.
Модули tools64 и setup64 перепакованы с использованием старого модуля Олега Щербакова (1.5.0.1794).
Это позволило побороть ошибку «Fail Fast» в ядрах сборок nikzzzz и Ratiborus.

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
Ander_73, спасибо за обновление. aa
У меня не было таких проблем, так как пользовал другие сборки, но раз так лучше, то будем обновляться. ab

[Quote]

    timon45
  • 2835
  • Longevity: 3 years 10 months
  • Posts: 63
  • REPUTATION:4

    [+] [-]
Есть вот такой вариант, запуска установки, с автоматической подменой библиотеки winsetup.dll для установки всех версий Win 7-10 1903
@echo off
setlocal enabledelayedexpansion
SET DD=sourc10
SET IN=NI
SET winsetup=%HOMEDRIVE%\sources\winsetup
for %%I 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 (
set IP=%%I:\!DD!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
dir /d !IP!\install.rg&&set IN=!IP!\install.rg
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
start /b %Windir%\no.cmd
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\Unattend.xml SET UN=/unattend:%IP%\Unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
for /f "tokens=3" %%i in ('2^>nul X:\Sources\wimlib-imagex.exe info "%IN%" 1^| find /i "major version: "') do ^
if %%i==10 (
if EXIST "%winsetup%.new" (
ren "%winsetup%.dll" winsetup.old
ren "%winsetup%.new" winsetup.dll
)
) else (
if EXIST "%winsetup%.old" (
ren "%winsetup%.dll" winsetup.new
ren "%winsetup%.old" winsetup.dll
)
)
set ST=X:\Sources\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit
но он отрабатывает не все варианты Win 10, т.к. для win 10 до 1803 нужна старая библиотека winsetup.dll как для win 7 и 8
wimlib-imagex анализирует major version: который для любой win10 старой и новой равен 10, я хотел бы предложить анализ значения не major version: а Build:
но при выполнении
wimlib-imagex.exe" info "e:\SBORKA_KONSTRUKTOR\Win7\sources\install.esd" 1 | find /i "Build: "
находит ещё Service Pack Build:
отсеиваем и получаем то что нужно
"...\wimlib-imagex.exe" info "...\install.esd" 1 | find /i "Build: " | find /V "Pack"
далее хотел сделать через GTR (больше)
if %%i GTR ...
но что то идет не так и не работает, не могу понять в чем причина
for /f "tokens=2" %%i in ('2^>nul X:\Sources\wimlib-imagex.exe info "%IN%" 1^| find /i "Build: " | find /V "Pack"') do ^
if %%i GEQ 17100 (
if EXIST "%winsetup%.new" (
ren "%winsetup%.dll" winsetup.old
ren "%winsetup%.new" winsetup.dll
)
) else (
if EXIST "%winsetup%.old" (
ren "%winsetup%.dll" winsetup.new
ren "%winsetup%.old" winsetup.dll
)
)
* 17100 это значение между билдами win 10 1709 и win 10 1803

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
Очень интересно. ab

[Quote]

    timon45
  • 2835
  • Longevity: 3 years 10 months
  • Posts: 63
  • REPUTATION:4

    [+] [-]
dimo70, это сарказм? я просто прошу помощи в написании скрипта, понял пока то что второй find некорректно отрабатывает в скрипте его надо как то экранировать или вывести.

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
timon45, какой сарказм? ag Просто и мне ето интересно. Жду андера чтоб ответил. aa В общем я пользую только WInst сейчас, так что развитие етого проекта очень даже волнует.

[Quote]

    timon45
  • 2835
  • Longevity: 3 years 10 months
  • Posts: 63
  • REPUTATION:4

    [+] [-]
всё разобрался "крышечку забыл" перед вторым find-ом ab
@echo off
setlocal enabledelayedexpansion
SET DD=sourc10
SET IN=NI
SET winsetup=%HOMEDRIVE%\sources\winsetup
for %%I 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 (
set IP=%%I:\!DD!
dir /d !IP!\install.wim&&set IN=!IP!\install.wim
dir /d !IP!\install.esd&&set IN=!IP!\install.esd
dir /d !IP!\install.swm&&set IN=!IP!\install.swm
dir /d !IP!\install.rg&&set IN=!IP!\install.rg
IF !IN! NEQ NI goto :INST
)
IF %IN% EQU NI (
start /b %Windir%\no.cmd
pause
pause
goto:RBT
)
:INST
echo %IP%
if exist %IP%\Unattend.xml SET UN=/unattend:%IP%\Unattend.xml
if exist %IP%\OEM\nul SET OEM=/m:%IP%\OEM
if exist %IP%\$OEM$\nul SET OEM=/m:%IP%\$OEM$
for /f "tokens=2" %%i in ('2^>nul X:\Sources\wimlib-imagex.exe info "%IN%" 1^| find /i "Build: " ^| find /V "Pack"') do ^
if %%i GEQ 17100 (
if EXIST "%winsetup%.new" (ren "%winsetup%.dll" winsetup.old & ren "%winsetup%.new" winsetup.dll)
) else (
if EXIST "%winsetup%.old" (ren "%winsetup%.dll" winsetup.new & ren "%winsetup%.old" winsetup.dll)
)
set ST=X:\Sources\Setup.exe
if not exist %ST% goto :BAD
cd /d %IP%
%ST% /installfrom:%IN% %OEM% %UN%
goto :RBT
:BAD
dir X:\ /b
echo Cannot find %ST% !
echo.
:RBT
exit
@echo Press a key to reboot now...
pause
wpeutil reboot
pause
:QUIT
exit
П.С. Первоначальный скрипт был позаимствован в сборках уважаемого Xemom1 его же PE и использую для установки. Скрипт совместим с 78Setup

[Quote]

    vovan1982
  • 214
  • Longevity: 5 years
  • Posts: 1118
  • REPUTATION:65

    [+] [-]
  • Location: Ростов-на-Дону
timon45, вот вы здесь наваяли кучу постов, зачем? Они имеют непосредственное отношение к WInst? Так еще и dimo70, кучу постов выдал, не несущих никакой смысловой нагрузки. Господа, прекращаем флудить. Впредь прошу писать в профильных темах. Например здесь или здесь уже готовый вариант.

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

    [+] [-]
69535т.к. для win 10 до 1803 нужна старая библиотека winsetup.dll как для win 7 и 8
Очень хочу увидеть живой пример.

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
Вообще нет никаких проблемм с WInst скриптом. Все ставиться отлично у меня. Каждый ден пользую 7-ки 32/64, 10-ки ставлю, проблем не было. Спасибо Ander_73 за супер утилитку. ab

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
Ander_73, в поисках новых возможностей загрузки я сного начал читать про WInst и твоя загрузочная среда BootMedia. По етому поводу хотел спросить, есть более новые образы, чем выложенные? И как можно подключить такое ядро к MLF?
Как описана там в шапку обработал вим с make.cmd до boot.wim, потом ядро положил в папку \images\WIM, но при загрузке всегда выдает ошибку на регистри файл. Я что то не так делаю, ето ясно, но что именно не знаю.


Last edited by dimo70 on 2019-12-15 17:53; edited 2 times in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

    [+] [-]
dimo70, вот ты вспомнил! Да я те образы забросил давно и забыл. Это просто загрузочные boot.wim из дистрибов 7/8.1/10, которые слегка "ужаты" за счёт выкидывания Recovery-функционала (посмотри бат-ник в файле make.7z). После того, как Xemom1 вернул в свои ядра нормальный функционал diskpart, нет необходимости "изобретать велосипед".
Подключить как любой WIM: через wimlets.

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 1 month
  • Posts: 974
  • REPUTATION:17

    [+] [-]
  • Location: BG
Ander_73, я WInst скрипта твоего вообще то каждый день пользую, но насчет оригинальных ядер не совсем ясно. Дилема у меня насчет оригинальных майкрософских ядер, которых у тебя есть в загрузочной среде BootMedia и Хемомовских. Ты что посоветуешь пользоваться? Хемомовские достаточно актуальные?

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

    [+] [-]
dimo70, ты чудной, ей-богу. Вот зачем тебе "актуальные" ядра? Решение проблемы начинают искать, когда эта проблема возникает. А ты решаешь проблему, которой нет. И не известно, будет ли она хоть когда-нибудь.
Самые "актуальные ядра" - из новейших дистрибов Вин10. Обрабатываешь их бат-ником и готово. При старте папка WInst ищется в корне флешки, если не ошибаюсь.

Page 18 of 19


Display posts:    

Current time is: 26-Jan 22:06

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum