|
zhgwbzhd
高级用户
积分 506
发帖 187
注册 2005-12-4
状态 离线
|
『楼 主』:
哪位朋友研究过再次引导计算机启动?
比如先让计算机启动到自己的OS,在这里里面有控制界面。输入密码正确之后,再让计算机启动到自己的操作系统。
原来俺使用int19,但是再很多机器上都不能使用。死机呀。
不知道有没有其他的什么更好的办法呀!
|
|
2007-6-18 00:36 |
|
|
zhgwbzhd
高级用户
积分 506
发帖 187
注册 2005-12-4
状态 离线
|
|
2007-6-18 22:24 |
|
|
AlexZhang
系统支持
积分 952
发帖 410
注册 2007-2-8
状态 离线
|
『第
3 楼』:
这就是相当于GDLDR LILO之类的东西 可以参考Aero实现。反汇编一下
|
|
2007-6-27 18:27 |
|
|
netwinxp
高级用户
积分 741
发帖 366
注册 2007-7-25
状态 离线
|
『第
4 楼』:
如果在实模式下,而又没有其他TSR程序(或者说中断向量表没被修改过),可以通过INT19H重新载入MBR启动,或者用GRUB载入其他系统,如果中断向量表被改过则很有可能死机,你只好通过JMP FAR FFFF:0000完全重新启动。
在保护模式下,由于内存访问模式不再是段:偏移量,而是平坦模式,上述可能无效或导致不可预知的后果。
|
|
2007-7-25 19:50 |
|
|
zhgwbzhd
高级用户
积分 506
发帖 187
注册 2005-12-4
状态 离线
|
『第
5 楼』:
在实模式下,我是不是可以先把中断向量表保存到其他位置,在准备重启时,
把中断向量表恢复一下,之后把MBR读到7c00处,再跳到7c00处执行。
也就是模拟一下刚刚启动的时刻。
不过,可惜的是,恢复中断向量表时就死机了。
不知道哪位高手告诉俺可能的原因在哪里呢??
十万个敬意送给你们呀!
|
|
2007-7-26 16:37 |
|
|
netwinxp
高级用户
积分 741
发帖 366
注册 2007-7-25
状态 离线
|
『第
6 楼』:
把MBR读到7c00处,已经覆盖了DOS重要的数据区,然后你又恢复了DOS一大堆中断,不死机才怪呢!中断向量只是一个指针,它指向的内容很多都被破坏了,你再恢复它有啥用?想弄开机密码你可以用BIOS密码,也可以用GRLDR内置密码,你这样到处乱改重要内存区的内容不是故意整死机吗?
|
|
2007-7-26 18:44 |
|
|
zhgwbzhd
高级用户
积分 506
发帖 187
注册 2005-12-4
状态 离线
|
『第
7 楼』:
首先是可以读MBR到7c00处的,这个时候不会引起死机。
就是在恢复中断向量表时,死机。
我猜测的原因是,可能DOS用到了他的一些中断,我在恢复时造成他们死机。
可是我怎么才可以不引起它死机呢??
|
|
2007-7-26 23:18 |
|
|
netwinxp
高级用户
积分 741
发帖 366
注册 2007-7-25
状态 离线
|
『第
8 楼』:
你处理方法就有点象只备份分区表,切把整个硬盘的内容全清除了,你说这种情况,你即使恢复分区表能启动吗?你酱紫想不死机基本上不太可能。对于有TSR驻留(特别是挂接键盘、定时中断的程序)的情况下,用GRUB重新载入系统都会死机。
|
|
2007-7-27 01:25 |
|
|
netwinxp
高级用户
积分 741
发帖 366
注册 2007-7-25
状态 离线
|
『第
9 楼』:
另外,你一乱修改中断向量表,不要说是调用DOS了,定时中断及一些挂在定时中断上的DOS中断马上就飞了。建议你多看看TSR的编写及DOS的内存调度机制这些方面的资料。
[ Last edited by netwinxp on 2007-7-27 at 01:36 AM ]
|
|
2007-7-27 01:30 |
|
|
zhgwbzhd
高级用户
积分 506
发帖 187
注册 2005-12-4
状态 离线
|
『第
10 楼』:
谢谢呀,我现在正在学习这个方面呢。所以呢还是确实有很多不了解的地方。
不过还是谢谢了。
|
|
2007-7-28 01:13 |
|