DOS与XENIX共享硬盘经验两则
XENIX和DOS分享硬盘,通常的做法是设XENIX分区为激活分区,启动后,待屏幕出现BOOT:时键入dos进入DOS,或键入回车进入XENIX。经分析XENIX系统引导过程,当键入dos后,系统将控制权交与在XENIX根目录下名为“dos”的程序,再由其提交给出现BOOT:时键入dos,系统提示dos not found,这便给别人一个误导信息,认为你的硬盘上没有DOS分区,而实际上当你键入所更改的文件名时,同样可顺利地进入DOS。
二、实现高版本DOS与XENIX共享
笔者在同一硬盘上按正常方法安装DOS V6.22和XENIX系统后,在BOOT:提示后键入DOS,系统提示“dos:no dos partition”信息,不能由此进入DOS,经分析发现,在“dos”程序中,只承认分区类型为“04”(16位FAT的DOS)和“01”(12位FAT的DOS),而高版本DOS(V5.0以上)其在主引导记录分区表信息中的类型标记却为“06”(保留DOS),如表1
-d0280 02ff
118d:0280 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
118d:0290 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
118d:02A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
118d:02B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
118d:02C0 00 00 06 0B 70 63 30 00-00 00 D0 20 03 00 00 00
--|
118d:02D0 00 00 00|00 00 00 00 00-00 00 00 00 00 00 00 00
118d:02E0 00 00 00|00 00 00 00 00-00 00 00 00 00 00 00 00
118d:02F0 41 64 02|0B F0 93 00 21-03 00 00 EC 04 00 55 AA
|-->高版本DOS分区类型标记
表1
那么,能否改动“dos”程序,让其承认分区类型为“06”的DOS分区呢?回答是可行的,具体步骤如下:
1.在XENIX根目录下用“doscp -r dos a:dos”命令将“dos”文件拷至一经DOS格式化的备用盘上;
2.进入DOS系统,将拷有“dos”文件的备用盘插入A:驱:
c:\>debug a:dos
-u01ef 0205
118D:01EF 26 ES:
118D:01F0 803C80 CMP BYTE PTR [SI],80
118D:01F3 7502 JNZ 01F7
118D:01F5 8BDE MOV BX,SI
118D:01F7 26 ES:
118D:01F8 807C0401 CMP BYTE PTR [SI+04],01
118D:01FC 7407 JZ 0205
118D:01FE 26 ES:
118D:01FF 807C0404 CMP BYTE PTR [SI+04],04
118D:0203 7502 JNZ 0207 --|
118D:0205 8BFE MOV DI,SI |
-e0202 |
118D:0202 04.06 将分区类型模本改为“06”<---|
-w
writing 00241 bytes
-q
3.进入XENIX根目录,用“doscp -r a:dos dos”命令将备用盘上“dos”文件覆盖原文件,DOS与XENIX切换如常(此方法在DELL Optiplex 433/Le,SCO XENIX 2.3.4,DOS V6.22通过)。
上述两则经验均在“dos”文件上做文章,实际上还可对其进行改动,使其出现许多意料不到的功能。
(谢沁)