| 自己编程实现多引导 |
 |
作者: 来源: 日期:2007-5-17 11:18:00 点击次数: |
|
03H分区起始柱面号的低位 04H分区系统标志,当该值为00H时,表示此分区为不可识别的系统;为04H时该分区为FAT16分区;为05H或0FH该分区为 扩展分区;为0B时该分区为FAT32分区 ;为83H时表示该分区为Linux分区, 为07时该分区为NTFS分区 05H分区结束磁头号 06H其高2位为分区结束柱面号的高位,底6位为分区结束扇区号 07H分区结束柱面号的低位 08H~0BH在线性寻址方式下的分区的扇区地址。 0CH~0FH以扇区为单位的该分区大小(总扇区数) 我们来看看BootMagic之类的软件是如何实现多系统引导的了,在表3中我们看到在偏移00H处的一个字节当其值为80H时代表该分区是一个引导区,当其值为00H时代表该分区不是引导区,其实多引导的实现原理就是通过改变该处的值来选择用来引导的分区。 假设你已经了解了以上原理,我们就完全可以做出自己的多重引导程序来了,我在此写出一个完整的实现程序,我将为大家分析这个程序应该怎么来写。假设你有一块硬盘,你在上面安装了一个windowsXP,可你现在想装个windows98,于是你用PartitionMagic将你的第一个扩展分区也就是你的D区设置为主分区,然后激活,重启动并用windows98安装光盘引导系统,并安装好windows98。就到这,你先不要急于安装BootMagic,让我们来试试动手做个自己的BootMagic怎么样。 很显然,要实现此功能,最少需要两个模块,模块一:被写入主引导扇区中,用来取代原MBR区,它必须能够在系统引导前获取执行权,实现主分区的引导选择后,将执行权交给被选择的操作系统,从而实现多系统引导;模块二:实现三个功能,首先将原主引导扇区备份一个到其他扇区(在我的例子中把它备份到0头0道 6扇),然后将模块一写入主引导扇区。另外模块二还实现多引导程序的卸载 模块二功能相对简单,其源程序如下: ;硬盘多引导安装程序(SYSGUIDE.EXE)模块二 DATA SEGMENT D1 DB 'choose' D2 DB 'Please choose the number (1)Install the SYSGUIDE',0dh,0ah,' DB ‘ (2) Delete the SYSGUIDE',0dh,'$' D3 DB 'SYSGUIDE.DAT',00H D4 DB 'Can not find file (SYSGUIDE.DAT)',0dh,0ah,'$' D5 DB 0dh,0ah DB 0dh,0ah DB 0dh,0ah DB ' ----------# MUCH SYSTEM GUIDE #------------',0dh,0ah DB ' E-mail:tyhhyf@hotmail.com',0dh,0ah DB ' OICQ:86633320',0dh,0ah,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET D5 MOV AH,09H INT 21H MOV AH,00H INT 16H 上一篇:比较详细的MBR的分析 下一篇:没有了 |
|
|
 |
| 北京总部: 4006-505-808 |
| 上 海 部: 021-58358765 |
| 深 圳 部: 0755-83692929 |
| 浙 江 部: 13666673722 |
| 广 州 部: 020-83821091 |
| 重 庆 部: 023-86870422 |
| 昆 明 部: 15987117834 |
| 哈尔滨部: 13946167430 |
| 其它地区: 4006-505-808 | | | |
|
 |
|