免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2438 | 回复: 4
打印 上一主题 下一主题

修改Solaris默认启动分区及timeout时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-09-01 22:03 |只看该作者 |倒序浏览
修改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          &#59; 显示引导分区列表供选择,30秒内无选择,则默认引导Solaris
....   
xxxx  0B C0             or      ax,ax           &#59; Zero ?
xxxx  75 3C             jnz     short loc_93    &#59; no zero -- 表示用户有选择其他分区
xxxx            loc_91::                        
xxxx    ....                                      &#59; Zero -- 表示用户选择Solaris。直接按'ESC'或'ENTER'或键入'4','ENTER'
显示开始引导Solaris分区的信息
xxxx            loc_92::                        
xxxx  5E                pop     si
xxxx  C9                leave                   &#59; Procedure exit
xxxx  C3                retn
                                                
xxxx  90                nop
xxxx            loc_93::                        
xxxx  FF 76 FE          push    word ptr [bp-2] &#59; word ptr [bp-2] -- 用户选择的分区的地址
xxxx  8B 46 FC          mov     ax,[bp-4]       &#59; word ptr [bp-4] -- 用户选择的是第几个分区
xxxx  48                dec     ax
xxxx  50                push    ax
xxxx  E8 04DB           call    sub_24          &#59; 修改活动分区
xxxx  83 C4 04          add     sp,4
xxxx  8A 56 06          mov     dl,[bp+6]
xxxx  FF 1E D50C        call    dword ptr ds50C        &#59; 引导用户分区
xxxx            loc_94::                        
xxxx  5E                pop     si
xxxx  C9                leave           &#59; Procedure exit
xxxx  C3                retn
                sub_17  endp

修改原理:
在0B7C处加入一段代码:先要判断用户是否键入'4','ENTER',如是,则用户要引导Solaris,直接转到0BB4处return&#59;否则设置[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

论坛徽章:
0
2 [报告]
发表于 2002-09-01 23:16 |只看该作者

修改Solaris默认启动分区及timeout时间

看不懂。。。。

论坛徽章:
0
3 [报告]
发表于 2002-09-02 13:46 |只看该作者

修改Solaris默认启动分区及timeout时间

我也看不懂,请问有没有更简单的方法来改变引导分区吗???

论坛徽章:
0
4 [报告]
发表于 2002-09-02 14:08 |只看该作者

修改Solaris默认启动分区及timeout时间

在solaris里如何修改引導區啊?

论坛徽章:
0
5 [报告]
发表于 2002-09-04 16:02 |只看该作者

修改Solaris默认启动分区及timeout时间

兄弟的Solaris是那种机器上用的,高端工作站或服务器,低端工作站或服务器,微机
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP