Показать полную графическую версию : внедрение сервис паков в дистрибутив win98se
Я вот тут читаю и улыбаюсь, Вы чего с ума сошли, это же прошлый век, какая 98-я там!! Правда стоит у моей мамы пенек 200-й, конечно 98-й для него очень хорошо подходит, но я как посидел за ним пол часика, так думал, что я попал в далекое прошлое, короче ужас!! Уважаемые, тут действительно на носу Vista подходит, а вы тут извращением занимаетесь, конечно некого нехочу этим обидеть, да и честно к Win2000 я тож критично отношусь!! ХР форева, будуещее конечно за Vista, однозначно!!
Vovanchik
17-04-2006, 21:30
boss911
все сказанное тобой верно только в том случае когда ТЫ выбираешь с чем тебе работать... если же тебя ставят перед данностью того что работать будешь с ЭТИМ и не с чем другим то приходиться исходить из сложивщейся ситуевины... ну не будешь ведь ты искать на полсотни компов 64-128 метров мозгов на каждый
Vovanchik
17-04-2006, 21:48
короче мнения разделились...
но судя по голосованию большая часть заинтересовалась... остальные думаю с интересом над реализацией этой затеи понаблюдают...
пора переходить к практическим действиям...
как вариант можно использовать 98lite/
'n такая еще досовская прога которая заточена именно под этот процесс...
как работает - сказать трудно, пока что особо глубоко не вникал....
но то что увидел - то расскажу...
короче методика ее работы основывается на все тех же inf файлах....
т.е. есть несколько предустановленных шаблонов которые описывают какие именно манипуляции нужно произвести с файлами... потом дистрибутив распаковывается, обрабатываается и запаковывается заново...
при этом имеем черный ящик с входными данными в виде изначального дистрибутива и выходными в виде обработанного подсунутым ему inf файлом...
малость несистемный подход...
вариант номер два - копаем биллову логику и разбираем как постороен сам дистрибутив.
насколько я понял при беглом просмотре дистрибутив представляет собой многотомный кабовский архив...
есть начальный том и все остальные связаны достаточно жестко между собой...
потом есть файл наподобие txtsetup.sif (название точно не помню, отпишусь чуть позже)
в нем прописано в каком томе архивном какой файл лежит, какого он размера в байтах и кой какая служебная информация...
если разберен этот механизм полдовина работы сделана...
останется толко обработать файлы и собрать дистрибутив заново.
пока что сделаю вроде небольшого блога...
кому интересно - следите за редактированием сообщения...
короче там 2 многотомных акрхива первый состоит из 2 файлов precopy1 и precopy2 и второй все остальные после них
аналогом txtsetup.sif выступает layout.inf с продолжениеv в layout1.inf и layout2.inf
(возможно здесь ограничение на количество строк в файле, потому и разбит на фрагменты)
искать в файлы архивах precopy1-2
Интересно, что второй архив, который состоит из Base*, Driver*, Net*, Win98* - это один многотомный архив, не смотря на разные названия. Тем не менее, при тестировании архива, не смотря на эти разные имена частей архивов, все они участвуют в тесте.
Vovanchik
17-04-2006, 23:19
simplix
да прям бери рар и выпаковывай первый том в папку - за ним все остальные автоматически выпакуются
вот кстати кусок layout.inf
[SourceDisksNames]
; Cabinet file names and associated disks
; <cab#> = <disk#>,<cabinet filename>, ID (Unused, must be 0)
1="Windows 98 Second Edition CD-ROM","PRECOPY1.CAB",0
2="Windows 98 Second Edition CD-ROM","PRECOPY2.CAB",0
3="Windows 98 Second Edition CD-ROM","CATALOG3.CAB",0
.......
61="Windows 98 Second Edition CD-ROM","WIN98_61.CAB",0
62="Windows 98 Second Edition CD-ROM","WIN98_62.CAB",0
63="Windows 98 Second Edition CD-ROM","WIN98_63.CAB",0
64="Windows 98 Second Edition CD-ROM","WIN98_64.CAB",0
65="Windows 98 Second Edition CD-ROM","WIN98_65.CAB",0
66="Windows 98 Second Edition CD-ROM","WIN98_66.CAB",0
67="Windows 98 Second Edition CD-ROM","WIN98_67.CAB",0
68="Windows 98 Second Edition CD-ROM","WIN98_68.CAB",0
[SourceDisksFiles]
;<file> = <cabinet number>,<subdir>,<filename>,<size>,<checksum>
;Note: File is not in a cabinet if cab# is 0
_nwnds.bat=7,,804
_pwmove.bat=7,,576
12520437.cpx=25,,2151
12520850.cpx=25,,2233
1394.cat=3,,7293
1394.inf=2,,7761
1394bus.sys=5,,37328
1green.gif=45,,4532
1stboot.bmp=22,,1518
31users.chm=22,,16619
3dblocks.bmp=22,,2754
5631_dig.ini=19,,38690
5631_hwc.ini=19,,38120
5631_swc.ini=19,,103445
737.dat=25,,524
кстати второй архив начинается с тома catalog3.cab
вызов precopy1.cab прописан в w98setup.bin тамже вызов mini.cab (файлы минимальной загрузки которые обеспечивают функционал установщика насколько я понял)
Небольшая статистика, исследованная за вечер:
Одиночные архивы: Chl99.cab, Mini.cab. Многотомные архивы, всего два, в порядке создания томов - 1) Precopy1.cab, Precopy2.cab. 2) Catalog3.cab, Base4.cab-Base6.cab, Net7.cab-Net10.cab, Driver11.cab-Driver20.cab, Win98_21.cab-Win98_68.cab.
Всего в layout.inf, layout1.inf, layout2.inf упоминается 5982 файлов, из них три (command.com, drvspace.bin, winboot.sys) в многотомных архивах повторяются, копии не считаем, итого 5979 файлов: в Precopy1.cab-Precopy2.cab 427 (430-3 копии) файлов, в Catalog3.cab-Win98_68.cab 5532 файла, их легко посмотреть распаковав первый том архива, т. е. всего в многотомных архивах 5959 файлов; остаётся 20 уникальных файлов (Chl99.cab, Deltemp.com, Dossetup.bin, Mini.cab, Save32.com, Scandisk.exe, Scandisk.pif, Scanprog.exe, Setup.exe, Setup.txt, Setup0.wav, Setup1.wav, Setup2.wav, Setupcor.exe, Smartdrv.exe, Suback.bin, Sucatreg.exe, W98setup.bin, Wb16off.exe, Xmsmmgr.exe) - все 20 находятся в корне дистрибутива, остальные корневые файлы в layout'ах не упоминаются.
Vovanchik
Есть идеи как этот второй многотомный потом назад запаковать? :)
Vovanchik
18-04-2006, 08:09
simplix
насколько я понимаю это все делается пеосредством хитро сформированных директив....
Найти бы архиватор, который может так запаковать - и чтобы один многотомный был, в котором томы разного размера и с разными именами, и чтобы каждый мог распаковываться отдельно. Это WinRAR при распаковке первой части распаковывает всё (а при распаковке например 10-й части, распаковывает только 10-ю и всё что за ней), к тому же он не показывает номера частей. А вот PowerArchiver умеет разархивировать каждый том отдельно, с извлечением файлов только этого тома, и если уединить файл и открыть, то покажет номер какой части вставлять следующей. Другие архиваторы не тестил. Может быть makecab тут сила?
по сути, не обязательно сразу упаковывать с разными именами томов. При большом желании недолго сделать скрипт, который эти же имена потом раздаст (а-ля групп-ренеймеры, мож и досовский чего умеет).
Vovanchik: в свое время 98lite юзал, но у него малость сложный механизм работы... неудобный, может - сейчас уже не вспомню.
simplix
А может и не стоит искать такой архиватор? Ведь все равно дистр перебирать придется? Или вы хотите собрать дистр с обновлениями и пр. максимально похожий на дистр исходной винды? Если исходная весит 110Мб, то пересобранная и добавленная может 150-200Мб (скачать такое реально и по модему)...
... с майккабом я работал только для распаковки (когда возился с кабами P-CAD 2002/2004 Trial/Retail пытаясь интегрировать туда сервис-паки и сделать трансформ-пак "триал-ритейл"), правильно запаковать у меня не получалось ...
я конечно не спец по операционкам и их ковырянию, но наблюдать за успехами на этом фронте буду ...
.... и вдогонку:
boss911
...это же прошлый век, какая 98-я там ...
...вы тут извращением занимаетесь ...
...ХР форева, будуещее конечно за Vista, однозначно!!
Ты это военным заяви - они тебя в порошок сотрут - ты в курсе, что линейка Win не используется в военных программах? там в них вообще голый DOS (сам работал в этой области, поэтому за свои слова отвечаю) -
только представь, какие проблемы с реализацией интерфейса для привыкшего все делать визуально в дельфях и пр.!
Vovanchik
если же тебя ставят перед данностью того что работать будешь с ЭТИМ и не с чем другим то приходиться исходить из сложивщейся ситуевины...
Я вот об этом как раз и писал:
Правда стоит у моей мамы пенек 200-й, конечно 98-й для него очень хорошо подходит...
так что у меня анологичная ситуация была и пока остаетса, конечно пока я себе не возьму новую тачку, а свою отдам на замену 200-му пеньку, потом разве что 98-ю Win, я увижу только в страшном сне!! :)
boss911: в страшном ты увидишь 95ю, причем не-OSR ;)
Кстати, месяцев пять назад попробовал залезть в дистрибут 98й, вырезать туториал... но покопавшись, понял, что ТАК много времени у меня нет... оставил на потом.
malshin
Думаю размер не вырастет, т. к. мы применим принцип замещения старых версий файлов. Кстати тоже думал о перепаковке другим методом, менее заумным чем такой многотомный архив с разными именами, единственный плюс которого - эти разные имена, по которым видно что где лежит. Но по сути пользователю, который ставит систему, всё равно как называется архив, даже если он будет вообще не многотомный, а обычный одним файлом (чего тоже нужно частично избежать, иначе долго будет распаковываться).
Vovanchik
18-04-2006, 20:32
simplix
в том то и дело что разбивка на тома тут уже не для того чтоб они на дискеты помещались а для того чтоб ради каждого файла всю эту гормадину не ковырять....
кстати далеко не факт что распаковка одного большого архива займет времени больше чем 68 маленьких... возможно получитсья как с милениумом - 10% времени дистрибутив копируется на хард и потом ставиться с него...
кстати совсем не обязательно вроде делать именно многотомный архив... возможно будет достаточно просто нескольких кабовских архивов.
Vovanchik
18-04-2006, 20:46
кстати вот по этой фразе какие мысли
;Note: File is not in a cabinet if cab# is 0
а может просто все файлы повытаскивать из архивов сложить их грудой и запаковать все это дело в sfx архив???
может просто все файлы повытаскивать из архивов
layout.inf сам в кабе - какие-то, нужные для старта сетапа прийдется исключить
если так прийдется весь layout.inf перестроить...
в sfx архив???
в смысле? А как потом компоненты доустанавливать?
Vovanchik
18-04-2006, 23:04
XXXler
вроде получилось без запаковки....
позже как все закончу отпишусь о технологии
а насчет доустановки компонентов можно сделать как у того же линолиума - распаковывать например в %windir%install и не удалять оттуда...
Boa Soft
19-04-2006, 03:49
Vovanchik
вроде получилось без запаковки....
В смысле, просто в дистрибутивную папкуссыпать, не трогая кабы. Или все распаковатьв кучу, а потом заместить?.
А вообще, если просто как в Nt пофайлово все "закабить". Так не пойдет?
Vovanchik
19-04-2006, 08:29
Boa Soft
просто все файлы высыпал в папку дистрибутива
ну и подправил layout.inf заменив все кабовские значения с 4 до 68 на нули
ну и другие инфы подправил в которых *.cab упоминается (порядка 2-3)
оригинальные же кабы с 4 по 68 удалил...
насчет пофайловой упаковки еще не пробовал, чета мне казалось что дистрибутив таких фокусов не поймет... слишком он уж древний
.
но вечером попробую
Vovanchik
В свое время (года три назад) делал так:
Ставил 98 до первой перезагрузки, подменял оригинальный autoexec.bat и config.sys и упаковывал акронисон в образ
При установке на клиентскую машину распаковывался этот образ, с помощью аутоекзека и конфига с компашки
подменялись оригинальные виндовые файлы на обновленные, интегрировались драйвера видеокарточек и сетевух
(вручную раскидывались файлы драйверов по каталогам), autoexec и cofig подменялись на оригинальные.
Дальше перезагрузка и винда ставилась своим чередом.
способа упаковки файлов в кабы я тогда не нашел.
Пробовал вариант упаковать все в 1 каб и поправить layout.inf, но на каком-то этапе установка вылетала.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC