修改Solaris引导程序的默认启动分区及timeout时间
一、分析
对Solaris引导程序进行分析,并说明采用的修改方式
本人硬盘分区如下:
1. Windows 2000 主分区 5G
2. Winnt 4.0 主分区 1G
3. Big Dos Extend 扩展分区 剩下的全部空间
4. Solaris 主分区 2G
------------------------------------------------
5. 逻辑分区1
6. 逻辑分区2
7. 逻辑分区3
....
用Solaris的引导程序来进行多系统引导。但比较麻烦的是我经常用Windows 2000,而Solaris的引导程序总是默认引导Solaris分区。
后来通过修改引导块记录(Bootblk)实现默认启动Windows2000。分析Bootblk引导过程如下:
xxxx E8 0238 call sub_20 ; 显示引导分区列表供选择,30秒内无选择,则默认引导Solaris
....
xxxx 0B C0 or ax,ax ; Zero ?
xxxx 75 3C jnz short loc_93 ; no zero -- 表示用户有选择其他分区
xxxx loc_91::
xxxx .... ; Zero -- 表示用户选择Solaris。直接按'ESC'或'ENTER'或键入'4','ENTER'
显示开始引导Solaris分区的信息
xxxx loc_92::
xxxx 5E pop si
xxxx C9 leave ; Procedure exit
xxxx C3 retn
xxxx 90 nop
xxxx loc_93::
xxxx FF 76 FE push word ptr [bp-2] ; word ptr [bp-2] -- 用户选择的分区的地址
xxxx 8B 46 FC mov ax,[bp-4] ; word ptr [bp-4] -- 用户选择的是第几个分区
xxxx 48 dec ax
xxxx 50 push ax
xxxx E8 04DB call sub_24 ; 修改活动分区
xxxx 83 C4 04 add sp,4
xxxx 8A 56 06 mov dl,[bp+6]