DOS与XENIX共享硬盘经验两则 谢沁 1995-06-02 一、将DOS分区隐含起来 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”文件上做文章,实际上还可对其进行改动,使其出现许多意料不到的功能。 (谢沁)