修改Solaris默认启动分区及timeout时间
发表于:2007-06-09来源:作者:点击数:
标签:
修改Solaris引导程序的默认启动分区及timeout时间 一、分析 对Solaris引导程序进行分析,并说明采用的修改方式 本人硬盘分区如下: 1. Windows 2000主分区5G 2.Winnt4.0主分区1G 3.BigDosExtend扩展分区剩下的全部空间 4.Solaris主分区2G ------------------
修改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]
xxxx FF 1E D50C call dword ptr ds

50C ; 引导用户分区
xxxx loc_94::
xxxx 5E pop si
xxxx C9 leave ; Procedure exit
xxxx C3 retn
sub_17 endp
修改原理:
在0B7C处加入一段代码:先要判断用户是否键入'4','ENTER',如是,则用户要引导Solaris,直接转到0BB4处return;否则设置[bp-2]及[bp-4],转到loc_92处。修改后, 直接按'ESC'或'ENTER'会引导自定分区,不会引导Solaris。
修改内容:
用下面的代码替换从loc_91开始的代码,
xxxx 0B C0 OR AX,AX
xxxx 75 3C JNZ short loc_93
xxxx A1 08 D5 MOV AX,[D508]
xxxx 39 46 FC CMP [BP-04],AX
xxxx 74 30 JZ short loc_92
xxxx C7 46 FC 01 00 MOV WORD PTR [BP-04],0001 ; 0001 -- 设置默认引导第一个分区
xxxx 8B 46 FC MOV AX,[BP-04]
xxxx 48 DEC AX
xxxx C1 E0 04 SHL AX,4
xxxx 01 46 FE ADD [BP-02],AX
xxxx 8B 46 FE MOV AX,[BP-02]
xxxx 89 46 04 MOV [BP+04],AX
xxxx EB 1D JMP short loc_93
二、修改方法1
直接修改硬盘Solaris引导扇区。
1. 修改默认引导分区 (扇区号为说明方便,以本人机器为例)
查看分区表找到Solaris分区第一个扇区(1023724

,加上8即为要修改的扇区(10237256),确认偏移017c处为 6A 1B E8 77 1B 83 C4 02,如果相同则修改为A1 08 D5 39 46 FC 74 30 C7 46 FC 01 00 8B 46 FC 48 C1 E0 04 01 46 FE 8B 46 FE 89 46 04 EB 1D。
2. 修改Timeout,由30秒改为8秒
Solaris分区首扇+28为10237276,确认偏移04A处为1E,修改为08,即可。
三、修改方法2
修改Boolblk文件,然后用installboot安装引导程序。
1. 修改默认引导分区
确认偏移0b7c处为 6A 1B E8 77 1B 83 C4 02,如果相同则修改为A1 08 D5 39 46 FC 74 30 C7 46 FC 01 00 8B 46 FC 48 C1 E0 04 01 46 FE 8B 46 FE 89 46 04 EB 1D。
2. 修改Timeout,由30秒改为8秒
确认偏移324A处为1E,修改为08,即可。
3. re-install Bootblk
#installboot /usr/platform/i86pc/lib/fs/ufs/pboot /usr/platform/i86pc/lib/fs/ufs/bootblk /dev/dsk/c0d0s2
四、说明
本人为 Solaris 8 2/02,采用Software #1 安装,没有x86 boot分区。
操作时一定要小心,分区表一定要备份到软盘或其他移动存储介质上,重要数据最好也要的备份,以防万一。
不当之处还望指正!
Zhjx@sina.com
2002.09.01
mmmmn 回复于:2002-09-01 23:16:18
|
看不懂。。。。
|
fuchw 回复于:2002-09-02 13:46:32
|
我也看不懂,请问有没有更简单的方法来改变引导分区吗???
|
josephxd 回复于:2002-09-02 14:08:09
|
在solaris里如何修改引導區啊?
|
lzmsgc 回复于:2002-09-04 16:02:37
|
兄弟的Solaris是那种机器上用的,高端工作站或服务器,低端工作站或服务器,微机
|
原文转自:http://www.ltesting.net