PDA

Показать полную графическую версию : внедрение сервис паков в дистрибутив win98se


Страниц : 1 [2] 3 4 5 6

boss911
17-04-2006, 19:51
Я вот тут читаю и улыбаюсь, Вы чего с ума сошли, это же прошлый век, какая 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

simplix
17-04-2006, 23:16
Интересно, что второй архив, который состоит из 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 (файлы минимальной загрузки которые обеспечивают функционал установщика насколько я понял)

simplix
18-04-2006, 02:21
Небольшая статистика, исследованная за вечер:
Одиночные архивы: 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

насколько я понимаю это все делается пеосредством хитро сформированных директив....

simplix
18-04-2006, 09:28
Найти бы архиватор, который может так запаковать - и чтобы один многотомный был, в котором томы разного размера и с разными именами, и чтобы каждый мог распаковываться отдельно. Это WinRAR при распаковке первой части распаковывает всё (а при распаковке например 10-й части, распаковывает только 10-ю и всё что за ней), к тому же он не показывает номера частей. А вот PowerArchiver умеет разархивировать каждый том отдельно, с извлечением файлов только этого тома, и если уединить файл и открыть, то покажет номер какой части вставлять следующей. Другие архиваторы не тестил. Может быть makecab тут сила?

ShaddyR
18-04-2006, 12:24
по сути, не обязательно сразу упаковывать с разными именами томов. При большом желании недолго сделать скрипт, который эти же имена потом раздаст (а-ля групп-ренеймеры, мож и досовский чего умеет).
Vovanchik: в свое время 98lite юзал, но у него малость сложный механизм работы... неудобный, может - сейчас уже не вспомню.

malshin
18-04-2006, 12:25
simplix
А может и не стоит искать такой архиватор? Ведь все равно дистр перебирать придется? Или вы хотите собрать дистр с обновлениями и пр. максимально похожий на дистр исходной винды? Если исходная весит 110Мб, то пересобранная и добавленная может 150-200Мб (скачать такое реально и по модему)...
... с майккабом я работал только для распаковки (когда возился с кабами P-CAD 2002/2004 Trial/Retail пытаясь интегрировать туда сервис-паки и сделать трансформ-пак "триал-ритейл"), правильно запаковать у меня не получалось ...
я конечно не спец по операционкам и их ковырянию, но наблюдать за успехами на этом фронте буду ...
.... и вдогонку:
boss911
...это же прошлый век, какая 98-я там ...
...вы тут извращением занимаетесь ...
...ХР форева, будуещее конечно за Vista, однозначно!!
Ты это военным заяви - они тебя в порошок сотрут - ты в курсе, что линейка Win не используется в военных программах? там в них вообще голый DOS (сам работал в этой области, поэтому за свои слова отвечаю) -
только представь, какие проблемы с реализацией интерфейса для привыкшего все делать визуально в дельфях и пр.!

boss911
18-04-2006, 16:21
Vovanchik
если же тебя ставят перед данностью того что работать будешь с ЭТИМ и не с чем другим то приходиться исходить из сложивщейся ситуевины...
Я вот об этом как раз и писал:
Правда стоит у моей мамы пенек 200-й, конечно 98-й для него очень хорошо подходит...
так что у меня анологичная ситуация была и пока остаетса, конечно пока я себе не возьму новую тачку, а свою отдам на замену 200-му пеньку, потом разве что 98-ю Win, я увижу только в страшном сне!! :)

ShaddyR
18-04-2006, 16:46
boss911: в страшном ты увидишь 95ю, причем не-OSR ;)
Кстати, месяцев пять назад попробовал залезть в дистрибут 98й, вырезать туториал... но покопавшись, понял, что ТАК много времени у меня нет... оставил на потом.

simplix
18-04-2006, 16:54
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 архив???

XXXler
18-04-2006, 21:29
может просто все файлы повытаскивать из архивов
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 удалил...

насчет пофайловой упаковки еще не пробовал, чета мне казалось что дистрибутив таких фокусов не поймет... слишком он уж древний
.

но вечером попробую

Demy
19-04-2006, 09:08
Vovanchik

В свое время (года три назад) делал так:

Ставил 98 до первой перезагрузки, подменял оригинальный autoexec.bat и config.sys и упаковывал акронисон в образ
При установке на клиентскую машину распаковывался этот образ, с помощью аутоекзека и конфига с компашки
подменялись оригинальные виндовые файлы на обновленные, интегрировались драйвера видеокарточек и сетевух
(вручную раскидывались файлы драйверов по каталогам), autoexec и cofig подменялись на оригинальные.
Дальше перезагрузка и винда ставилась своим чередом.

способа упаковки файлов в кабы я тогда не нашел.
Пробовал вариант упаковать все в 1 каб и поправить layout.inf, но на каком-то этапе установка вылетала.




© OSzone.net 2001-2012