Цитата SharkyEXE:
что каждая строка делает, что происходит вот в этих строчках файла FINISH »
|
давайте, распишу все строчки из оригинального Finish из ZZ_MultiLinux_Lite.
он довольно обширен, потому что должен работать "из коробки" и давать на выходе готовый iso с прописанным загрузчиком.
раз на выходе готовый iso, то и все "предИСОшные" операции т.к. копирование дополнительных файлов/папок в дистрибутив, удаление лишних файлов/папок из дистрибутива должны быть выполнены до этого.
вот Finish из ZZ_MultiLinux_Lite и содержит множество образцов для удаления и копирования.
Цитата:
SET WDir=%~1
SET VOLNAME=WXP_SP3
SET ISOFILE=WINXP.ISO
SET ISOLINUX=BOOT\ISOLINUX\ISOLINUX.BIN
SET MAKEISO=1
ECHO Создание мультизагрузочного диска.
|
задание переменных, которые используются при создании iso
если выходной iso делается
вручную то нужно отредактировать SET MAKEISO=0, а то и вообще это удалить.
Цитата:
REM Обход блокировки повторной интеграции аддона
Attrib -R "%I386%\ADDONS.LST"
FindStr /L /I /V /C:"ZZ_MultiLinux_Lite" "%I386%\ADDONS.LST"> "%I386%\ADDONS.TMP"
DEL "%I386%\ADDONS.LST"
REN "%I386%\ADDONS.TMP" *.LST
REM Удаление предыдщих попыток интеграции
IF EXIST "%Distr%\VOLD\" RD /s /q "%Distr%\VOLD" > nul
IF EXIST "%Distr%\VOLS\" RD /s /q "%Distr%\VOLS" > nul
IF EXIST "%Distr%\VOLM\" RD /s /q "%Distr%\VOLM" > nul
IF EXIST "%Distr%\BCDW\" RD /s /q "%Distr%\BCDW" > nul
IF EXIST "%Distr%\BOOT\" RD /s /q "%Distr%\BOOT" > nul
IF EXIST "%Distr%\ISO\" RD /s /q "%Distr%\ISO" > nul
IF EXIST "%Distr%\..\ISO\" RD /s /q "%Distr%\..\ISO" > nul
|
мне не нужно, я повторно ничего не интегрирую, использую UpdateIntegrator, там есть фишка что исходный дистрибутив сперва копируется в выходную папку, а затем в выходной папке происходит интеграция. При этом интеграция всегда выполняется однократно, за один проход.
т.е. в моём случае можно удалить.
Цитата:
REM Добавление персональных данных в файл сценария
Copy /b "%WDir%\WINNT.SID" + "%WDir%\userinfo.ini" "%I386%\WINNT.SID" > nul
|
одной из причин использования мультизагрузки - разделение установки на автоматическую и ручную. для автоматической установки необходим файл winnt.sit (в данном конкретном случае winnt.sid).
Для действительно автоматической установки в winnt.sit должен быть записан серийник от windows, если положить в публичный аддон winnt.sit с валидным серийником, то это будет в некоторой степени публикацией варёза

если положить winnt.sit с без серийника, но с инструкцией "впишите в строчку ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX ваш серийник" то найдутся пользователи, котрые в килобайтном файле эту строчку не найдут.
Поэтому авторы разделили winnt.sit на неизменную часть WINNT.SID и маленькую изменяемую часть userinfo.ini, а в этих строчках собирают его для помещения в дистрибутив.
эти строчки тоже можно удалить, если готовый WINNT.SID копируется каким либо другим образом, например лежит в папке Files\ForceCopy\ аддона или копируется updateintegrator'ом
Цитата:
XCopy "%WDir%\BOOT\*.*" "%Distr%\BOOT\" /E /H /R /Y > nul
|
единственная незаменимая строчка в Finish
копирование папки BOOT с isolinux'ом и образами для загрузки в выходной дистрибутив
Цитата:
REM Удаление совершенно ненужных папок и файлов.
REM Отредактировать по желанию.
IF EXIST "%Distr%\SUPPORT" RD /s /q "%Distr%\SUPPORT" > nul
IF EXIST "%Distr%\VALUEADD" RD /s /q "%Distr%\VALUEADD" > nul
IF EXIST "%Distr%\DOTNETFX" RD /s /q "%Distr%\DOTNETFX" > nul
IF EXIST "%Distr%\DOCS" RD /s /q "%Distr%\DOCS" > nul
rem IF EXIST "%Distr%\AUTORUN.INF" DEl /F /Q "%Distr%\AUTORUN.INF" > nul
IF EXIST "%Distr%\README.HTM" DEl /F /Q "%Distr%\README.HTM" > nul
IF EXIST "%Distr%\SETUPXP.HTM" DEl /F /Q "%Distr%\SETUPXP.HTM" > nul
rem IF EXIST "%Distr%\SETUP.EXE" DEl /F /Q "%Distr%\SETUP.EXE" > nul
IF EXIST "%Distr%\i386\BOOTFIX.BIN" DEl /F /Q "%Distr%\i386\BOOTFIX.BIN" > nul
REM Удаление ненужных папок.
REM Для чистой установки можно удалить все.
rem IF EXIST "%I386%\LANG" RD /S /Q "%I386%\LANG" > nul
IF EXIST "%I386%\WIN9XMIG" RD /S /Q "%I386%\WIN9XMIG" > nul
IF EXIST "%I386%\WIN9XUPG" RD /S /Q "%I386%\WIN9XUPG" > nul
rem IF EXIST "%I386%\WINNTUPG" RD /S /Q "%I386%\WINNTUPG" > nul
IF EXIST "%I386%\COMPDATA" RD /S /Q "%I386%\COMPDATA" > nul
IF EXIST "%I386%\DRW" RD /S /Q "%I386%\DRW" > nul
|
приведено для образца - "если хотите что-то удалить до создания iso, то делается это так"
я это удалил. ненужные папки и файлы лучше удалять именно удаляльными аддонами, а не аддонами для создания iso образа.
единственное, что действительно нужно удалять для конкретно этого аддона, это BOOTFIX.BIN - я внёс в DelOC.lst
Цитата:
REM Патч SETUPLDR.BIN для автоустановки.
COPY "%I386%\SETUPLDR.BIN" "%I386%\SETUPLDD.BIN" > nul
%WDir%\LdrPatch.exe "%I386%\SETUPLDD.BIN" /d:i386 /u:winnt.sid > nul
IF EXIST %I386%\$OEM$ MOVE %I386%\$OEM$ %Distr% > nul
|
описывалось выше. Помещение в дистрибутив файла SETUPLDD.BIN, который есть патченный на предмет WINNT.SIT/WINNT.SID SETUPLDR.BIN
я удалил и это
готовый SETUPLDD.BIN копируется у меня другим образом через папку Files\ForceCopy\ аддона
Цитата:
IF EXIST %I386%\$OEM$ MOVE %I386%\$OEM$ %Distr% > nul
rem Тут задаём путь к своим ОЕМ-папкам, которые будут скопированы в дистрибутив.
ECHO Копирование OEM-папок.
XCopy "%Distr%\..\Pre\*.*" "%Distr%\" /I /E /H /R /Y > nul
|
копироване $OEM$ папок из исходного дистрибутива (если были) и ещё откуда-то (если нужно)
Я $OEM$ папки не использую, поэтому удалил и эти строчки.
Глобально — это образец "как добавить папки/файлы в дистрибутив, перед созданием iso"
Этим я тоже не пользуюсь, нужные мне дополнительные файлы копируются updateintegrator'ом после этапа интеграции.
Цитата:
if %MAKEISO%==1 (
ECHO Создание образа %ISOFILE%.
MD "%Distr%\..\ISO"
start /wait %WDir%\CDIMAGE.EXE -n -h -m -p -x -b"%DISTR%\%ISOLINUX%" -l"%VOLNAME%" %DISTR%\ "%DISTR%\..\ISO\%ISOFILE%"
)
|
создание загрузочного iso. Я создаю
вручную, мне не нужно и это.