OS/2 Repair Disk
Задача: иметь загружаемый CD, который даст командную стороку и доступ к винту. Другими словами, repair disk.
Данная статья не претендует на открытие чего-нибудь нового, кроме того, многие моменты я сам не могу объяснить. Это скорее протокол проделанного, за исключением итераций, которые, как вы понимаете, все же имели место :)
Комментарий banshee: этот метод, в отличие от описанного в предыдущей статье, позволяет разместить на диске большое количество полезных утилит -- все они будут запускаться с CD-ROM, а не с виртуального диска в памяти.
Прочитанные первоисточники
- How to create a [complete] OS/2 system bootable off a CD-ROM;
- Документация к cdboot.zip;
- Документация к cdboot2v200.zip.
Необходимый/полезный софт
- daniboot
- bootos2
- loaddf
- vfdisk20
- jjscdrom.dmd (искать на хоббесах)
- mkisofs с поддержкой ключей -national и -hpfsnames
- RSJ CD Writer или cdrecord
Последовательность действий
- Для работы нам будет необходим виртуальный диск:
DEVICE=C:\OS2\BOOT\VFDISK.SYS 4
у меня он имеет букву E: - mkisofs.exe и SAVEDSKF.EXE должны быть доступны в путях.
- Создаем следующую структуру каталогов и заполняем их указанными файлами:
(после ;; буду писать свои коментарии)общая структура каталогов:
\OS2BOOT 2.88 OS2 BOOT DLL ProtoType OS2 BOOT DLL SYSTEM IBM386FS FC2 Tools
Directory of J:\OS2BOOT
25.11.02 18:37 <DIR> 0 2.88 26.11.02 11:27 <DIR> 0 ProtoType 25.11.02 16:49 162 0 1_os2.cmd 25.11.02 11:31 143 0 3_iso.cmd 25.11.02 18:37 8577024 0 IMAGE.ISO ;; файл IMAGE.ISO создается сомандой 3_iso.cmd
Directory of J:\OS2BOOT\2.88
22.11.02 19:00 <DIR> 0 OS2 25.11.02 15:46 1113 0 config.sys ;; содержание config.sys смотри ниже 9.10.02 13:10 847746 54 os2krnl 9.10.02 14:14 44544 0 OS2LDR 29.10.01 20:38 8878 0 OS2LDR.MSG
Directory of J:\OS2BOOT\2.88\OS2
25.11.02 11:28 <DIR> 0 BOOT 24.11.02 14:28 <DIR> 0 DLL
Directory of J:\OS2BOOT\2.88\OS2\BOOT
9.08.96 1:35 3 0 altf1bot.scr 9.08.96 1:35 282 0 altf1top.scr 9.10.02 16:49 45159 0 CDFS.IFS 28.08.02 16:37 795 0 CHKDSK.SYS 25.10.01 18:20 4552 0 CLOCK01.SYS 24.09.01 15:46 50947 0 COUNTRY.SYS 30.09.02 3:12 25622 0 DanATAPI.FLT ;; переименованый DaniATAPI.FLT 20.02.02 1:00 5106 0 DaniBoot.FLT 5.11.02 1:52 67502 0 DaniS506.ADD 25.04.02 14:03 8714 0 IBMKBD.SYS 25.10.01 17:52 21374 0 ISAPNP.SNP 19.11.02 8:11 40264 0 JJSCDROM.dmd ;; использовать jjscdrom.dmd, а не os2cdrom.dmd! 25.04.02 14:07 24989 0 KBDBASE.SYS 3.10.01 6:45 315109 0 KEYBOARD.DCP 8.05.00 14:55 24274 0 MRAID.ADD ;; драйвер моего райда 9.10.02 16:58 37467 54 OS2DASD.DMD 16.10.01 13:25 31483 54 OS2LVM.DMD 3.04.02 15:23 2496 49 PCIBUS.SNP 25.10.01 17:51 2152 0 PNP.SYS 25.04.02 13:32 55402 0 RESOURCE.SYS 25.10.01 17:58 5257 0 RESRV.SNP 28.08.02 15:42 12172 0 screen01.sys 22.11.02 19:13 26 0 snoop.lst 24.09.01 17:45 2554 0 TIMER0.SYS 23.10.98 13:27 26002 0 tmscsiw.add ;; мой драйвер SCSI 3.10.01 6:43 225355 0 VIOTBL.DCP
Directory of J:\OS2BOOT\2.88\OS2\DLL
29.10.01 22:29 512 0 BKSCALLS.DLL 29.10.01 22:29 512 0 BMSCALLS.DLL 28.08.02 15:42 42385 49 bvhvga.dll 29.10.01 22:29 512 0 BVSCALLS.DLL 9.10.02 13:12 137445 0 DOSCALL1.DLL 29.10.01 22:29 1024 0 KBDCALLS.DLL 29.10.01 22:29 1024 0 MOUCALLS.DLL 29.10.01 22:29 512 0 MSG.DLL 29.10.01 22:29 512 0 NLS.DLL 29.10.01 20:40 21812 49 NPXEMLTR.DLL 29.10.01 22:29 512 0 OS2CHAR.DLL 29.10.01 22:29 1024 0 QUECALLS.DLL 29.10.01 22:29 1536 0 SESMGR.DLL 16.10.01 13:56 2048 0 VIOCALLS.DLL
Directory of J:\OS2BOOT\ProtoType
26.11.02 11:27 <DIR> 0 FC 24.11.02 18:26 <DIR> 0 IBM386FS 25.11.02 15:12 <DIR> 0 OS2 25.11.02 13:13 <DIR> 0 Tools 25.11.02 18:37 2949120 0 OS2BOOT.IMG ;; файл создается сомандой 1_os2.cmd
Directory of J:\OS2BOOT\ProtoType\FC
;; здесь лежит File Commander/2
Directory of J:\OS2BOOT\ProtoType\IBM386FS
;; здесь лежит HPFS386
Directory of J:\OS2BOOT\ProtoType\OS2
25.11.02 11:24 <DIR> 0 BOOT 25.11.02 14:53 <DIR> 0 DLL 24.11.02 18:26 <DIR> 0 SYSTEM 5.02.93 21:34 3094 0 BOS2REXX.EXE ;; это дает возможность пользовать REXX 1.04.94 22:45 9605 0 BOS2SHL.EXE ;; это дает возможность пользовать команду START ;; и переключение между задачами по Alt+Esc 29.10.01 22:56 70720 0 CHKDSK.COM 28.08.02 10:11 6417 0 CHKDSK32.EXE 9.10.02 17:19 87283 61 CHKLGJFS.EXE 9.10.02 16:51 100620 0 CMD.EXE 9.10.02 17:03 190132 54 JFS.IFS 16.10.01 13:28 12619 0 JFS.MSG 16.10.01 13:43 6495 0 JFSCHK32.EXE 16.10.01 13:28 9515 0 JFSH.MSG 25.03.99 16:23 34855 0 MORE.COM
Directory of J:\OS2BOOT\ProtoType\OS2\BOOT
29.10.01 23:04 1142 0 DOS.SYS 25.04.02 14:02 30947 0 MOUSE.SYS 16.10.01 13:56 6815 49 PMDD.SYS 25.10.01 17:33 3846 0 POINTDD.SYS 25.04.02 14:15 9808 0 TESTCFG.SYS
Directory of J:\OS2BOOT\ProtoType\OS2\DLL
;; очень многие файлы попали сюда из-за go.exe 29.10.01 22:29 512 0 ANSICALL.DLL 10.09.01 16:17 16797 49 BVHWNDW.DLL 28.08.02 10:23 147268 0 CHKDSK32.DLL 29.10.01 20:43 11425 49 FFST.DLL 9.10.02 16:59 166348 54 LVM.DLL 10.10.01 15:11 7022 0 MAILSLOT.DLL 29.10.01 22:29 1024 0 NAMPIPES.DLL 11.10.01 2:17 363813 0 NETAPI.DLL 11.10.01 2:14 63638 0 NETAPI32.DLL 10.10.01 15:11 2289 0 NETOEM.DLL 10.10.01 18:44 6588 0 NETSPOOL.DLL 16.10.01 13:31 248446 49 PMGPI.DLL 16.10.01 14:46 2231 0 PMGRE.DLL 3.09.02 20:03 1269801 49 PMMERGE.DLL 16.10.01 13:38 4549 0 PMSHAPI.DLL 6.09.00 12:45 44232 0 PMSHLTKT.DLL 28.08.02 11:05 280283 0 PMSPL.DLL 3.09.02 12:11 64242 4070 PMVIOP.DLL 16.10.01 13:33 11264 0 PMWIN.DLL 6.09.00 12:42 266031 0 REXX.DLL 6.09.00 12:42 40995 0 REXXAPI.DLL 6.09.00 12:42 8360 0 REXXINIT.DLL 3.09.02 11:39 416735 49 SOFTDRAW.DLL 28.08.02 11:05 7125 49 SPL1B.DLL 4.09.02 17:30 23331 61 UCONV.DLL 9.10.02 16:48 105008 0 UHPFS.DLL
Directory of J:\OS2BOOT\ProtoType\OS2\SYSTEM
29.10.01 19:22 175354 0 OSO001.MSG 29.10.01 19:23 240256 0 OSO001H.MSG
Directory of J:\OS2BOOT\ProtoType\Tools
1.07.96 12:20 32543 0 go.exe ;; а также любые другие утилиты по вкусу
- Содержимое некоторых файлов:
J:\OS2BOOT\1_os2.cmd:
REM *** e: -- виртуальный диск, созданный VDISK format e: /once /V:SYS C:\OS2\INSTALL\BOOTDISK\SYSINSTX.COM E: XCOPY \OS2BOOT\2.88\* e: /h/o/t/s/e/r/v SAVEDSKF.EXE e: \OS2BOOT\ProtoType\os2boot.img /D /A
J:\OS2BOOT\3_iso.cmd:
REM *** mkisofs чуствителен к регистру клавиатуры: имена файлов REM *** и каталогов должны в точности соответствовать тем, что на диске mkisofs -D -national -hpfsnames -o IMAGE.ISO -b OS2BOOT.IMG -c bootcat.bin -v -allow-lowercase -no-iso-translate -V ACP2 /OS2BOOT/ProtoType
Тут тоже позволю себе некоторые коментарии:
очень важен (в нескольких местах) порядок строкJ:\OS2BOOT\2.88\config.sys:
buffers=99 iopl=yes diskcache=D2,LW protectonly=yes pauseonerror=no RESERVEDRIVELETTER=Y: REM написал все что было, не факт что все это нужно REM CD при такой загрузке будет буквой Z: LIBPATH=.;\;A:\;\os2\dll;A:\OS2\dll;Z:\OS2\dll;Z:\IBM386FS; SET PATH=.;\;A:\;A:\OS2;Z:\FC;Z:\OS2;Z:\IBM386FS;Z:\FC2;Z:\Tools; SET DPATH=.;\;A:\;A:\os2;Z:\os2;Z:\OS2\SYSTEM;Z:\IBM386FS; MEMMAN=NOSWAP,MOVE COUNTRY=007,\OS2\BOOT\COUNTRY.SYS CODEPAGE=866,850 DEVINFO=KBD,RU441,\OS2\BOOT\KEYBOARD.DCP DEVINFO=SCR,VGA,\OS2\BOOT\VIOTBL.DCP basedev=ibmkbd.sys BASEDEV=TIMER0.SYS basedev=CHKDSK.SYS REM *** нужные мне драйвера basedev=tmscsiw.add basedev=mraid.add basedev=DaniS506.ADD /v BASEDEV=DanATAPI.FLT REM *** согласно первоисточникам, следующая строчка REM *** после переключения в PROTECT MODE сделает доступным REM *** загрузочный имидж OS2BOOT.IMG в виде буквы A: REM *** до переключения это делает BIOS REM *** я так и не понял зачем мне этот доступ после загрузки basedev=DaniBoot.FLT /D:2 basedev=os2dasd.dmd basedev=os2lvm.dmd REM *** после следующих двух строк появляется буква CD, REM *** в нашем случае Z: REM *** теперь можно грузить все, что угодно device=\OS2\BOOT\JJSCDROM.dmd /v ifs=\OS2\BOOT\cdfs.ifs /v /w REM *** дальнейшую загрузку проводим с CD REM *** не утверждаю, что все это нужно device=Z:\OS2\BOOT\dos.sys device=Z:\OS2\BOOT\mouse.sys DEVICE=Z:\OS2\BOOT\POINTDD.SYS DEVICE=Z:\OS2\BOOT\PMDD.SYS device=Z:\OS2\BOOT\testcfg.sys IFS=Z:\IBM386FS\HPFS386.IFS Z:\IBM386FS\hpfs386.ini /A:* ifs=Z:\OS2\jfs.ifs set os2_shell=Z:\OS2\CMD.EXE SET COMSPEC=Z:\OS2\CMD.EXE SET PROMPT=[$p] SET KEYS=ON PROTSHELL=Z:\IBM386FS\BOOTSH.EXE Z:\OS2\BOS2SHL.EXE REM *** без следующей строчки REXX не будет работать RUN=Z:\OS2\BOS2REXX.EXE
- Ну вот, собственно, и всё.
Запускаем сначала 1_os2.cmd, потом 3_iso.cmd. Получаем IMAGE.ISO, который при помощи RSJ/cdrecord/cdrdao записываем на болванку.
Попутно наступил на одни грабли: если диск содержит слишком мало данных, то загружается через раз (два, три).
Заключение
Самое трудное из проделанной работы -- писать эту статью, но Elephant насел очень крепко, и, похоже, что только он может заставить меня что-то сделать (кроме НН) :)
Буду рад, если кому она пригодится.
Не претендую на оптимальный вариант -- многое можно
добавить/убрать/заменить.
Если смогу, то отвечу на любые вопросы в форуме :)
Алексей Тимошенко
Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ