1、运行环境:
我用的grub 版本是grub4dos-0.4.3-src-2007-03-28,硬盘保护卡是联想硬盘保护卡,保护软件版本是V1.0。我的机子装了msdos7.0和WindowsXP(都在同一分区)。
2、要实现的功能和实现方法
我要实现的功能是系统先引导到DOS后运行一个dos程序再引导XP操作系统。我的做法是:修改BOOT.ini使系统默认进入MSDOS。然后在DOS下修改Boot.ini是XP成为默认的启动项后运行grub。
3、运行中出现的情况
在硬盘保护卡保护的情况下运行grub后,探测中断并恢复时挂起。在硬盘保护卡没有保护的情况下运行grub后,运行程序成功,但保护卡失去了保护的作用。我这两天看了下dosstart.s源程序,可能是因为恢复中断向量表时出现了错误。我知道硬盘保护卡是修改了INT13中断。
4、我的问题
1、我用读写硬盘扇区程序读MBR时发现在硬盘保护与没有保护的情况下只有少量标志位不同。如果后面引导XP时没有写硬盘的操作的话(我不清楚有没有写操作)是不是不要恢复中断向量表就可以引导系统了。
2、如果后面一定要用原始中断向量int 13,可不可以在probe_ini中用原始int 13 中断向量替换现在的13中断,再在pre_stage中最后跳转时改过来位现在的int 13中断 ,实现硬盘的保护,并能否告诉怎样实现。
3、从上面的运行结果看,修改过的INT13 中断服务程序应该在硬盘上,并且应该在硬盘的隐藏扇区,不知是否正确。另外原始INT13 的服务程序在BIOS 系统ROM的位置是固定的吗?
4、能否提供其他的方法实现相同的功能,我想自己编写代码,读取XP引导扇区到内存的相应位置,然后跳转执行能否实现相应的功能。还是要做一些环境保护。
我用的grub 版本是grub4dos-0.4.3-src-2007-03-28,硬盘保护卡是联想硬盘保护卡,保护软件版本是V1.0。我的机子装了msdos7.0和WindowsXP(都在同一分区)。
2、要实现的功能和实现方法
我要实现的功能是系统先引导到DOS后运行一个dos程序再引导XP操作系统。我的做法是:修改BOOT.ini使系统默认进入MSDOS。然后在DOS下修改Boot.ini是XP成为默认的启动项后运行grub。
3、运行中出现的情况
在硬盘保护卡保护的情况下运行grub后,探测中断并恢复时挂起。在硬盘保护卡没有保护的情况下运行grub后,运行程序成功,但保护卡失去了保护的作用。我这两天看了下dosstart.s源程序,可能是因为恢复中断向量表时出现了错误。我知道硬盘保护卡是修改了INT13中断。
4、我的问题
1、我用读写硬盘扇区程序读MBR时发现在硬盘保护与没有保护的情况下只有少量标志位不同。如果后面引导XP时没有写硬盘的操作的话(我不清楚有没有写操作)是不是不要恢复中断向量表就可以引导系统了。
2、如果后面一定要用原始中断向量int 13,可不可以在probe_ini中用原始int 13 中断向量替换现在的13中断,再在pre_stage中最后跳转时改过来位现在的int 13中断 ,实现硬盘的保护,并能否告诉怎样实现。
3、从上面的运行结果看,修改过的INT13 中断服务程序应该在硬盘上,并且应该在硬盘的隐藏扇区,不知是否正确。另外原始INT13 的服务程序在BIOS 系统ROM的位置是固定的吗?
4、能否提供其他的方法实现相同的功能,我想自己编写代码,读取XP引导扇区到内存的相应位置,然后跳转执行能否实现相应的功能。还是要做一些环境保护。
