我知道这里的 DOS/BIOS 高手多, 大家齐心协力, 看看这是怎么回事.
新版的 GRUB 带来了许多新功能, 比如, 可以仿真任意尺寸的软盘或者硬盘映像; 不仅可以从仿真磁盘读出, 还可以写入仿真磁盘; 另外, 还可以启用 "就地仿真" 功能, 这样, 在 GRUB 的命令行状态就可以使用仿真了.
然而, 出现了一个奇怪的事情详述如下:
第一种情况, 我用
map (hd1,0)/dos98.img (fd0)
chainloader (hd0)+1
boot
这是从 C: 盘启动 win98, 这样启动后, 在 win98 里面可以正常访问仿真后的软盘内容.
第二种情况, 用
map (hd1,0)/dos98.img (fd0)
map --hook
(上述这条命令启用就地仿真功能)
chainloader (hd0)+1
boot
结果, 进入 win98 后发现软盘不能访问了, 软盘的第一扇区被改写了, 其它扇区似乎都还在, 没有遭到破坏.
第三种情况, 用
map (hd1,0)/dos98.img (fd0)
map --hook
map --unhook
(上述这条命令解除就地仿真功能)
chainloader (hd0)+1
boot
这样也不行, 软盘映像第一扇区仍然被毁.
第四种情况, 用
map --read-only (hd1,0)/dos98.img (fd0)
(上述这条命令禁止用 int13/AH=03h 或者 int13/AH=43h 写入软盘映像)
map --hook
chainloader (hd0)+1
boot
这样启动 win98, 软盘不再被毁.
根据以上情况, 初步可以断定是某个非常隐蔽的 int13/AH=03h 或者 int13/AH=43h 写入了软盘.
首先, win98 是在 vmware 中, 我没有安装多余的软件, 不可能染病毒; 其次, 即使 win98 染了病毒, 想想它为什么在第一种情况不破坏软盘呢? 所以, 应当不是 win98 等这类操作系统的原因造成的.
那么问题就集中在 GRUB 的代码上了. 然而 GRUB 上很少有写磁盘的操作, 尤其找不到写软盘的操作. GRUB 在极少数情况下才写入磁盘, 例如安装 GRUB 到 MBR 等等. 这类操作, 我们根本都不可能涉及, 怎么突然会出现写入软盘这样的动作呢?
实在是一头雾水!!
新版的 GRUB 带来了许多新功能, 比如, 可以仿真任意尺寸的软盘或者硬盘映像; 不仅可以从仿真磁盘读出, 还可以写入仿真磁盘; 另外, 还可以启用 "就地仿真" 功能, 这样, 在 GRUB 的命令行状态就可以使用仿真了.
然而, 出现了一个奇怪的事情详述如下:
第一种情况, 我用
map (hd1,0)/dos98.img (fd0)
chainloader (hd0)+1
boot
这是从 C: 盘启动 win98, 这样启动后, 在 win98 里面可以正常访问仿真后的软盘内容.
第二种情况, 用
map (hd1,0)/dos98.img (fd0)
map --hook
(上述这条命令启用就地仿真功能)
chainloader (hd0)+1
boot
结果, 进入 win98 后发现软盘不能访问了, 软盘的第一扇区被改写了, 其它扇区似乎都还在, 没有遭到破坏.
第三种情况, 用
map (hd1,0)/dos98.img (fd0)
map --hook
map --unhook
(上述这条命令解除就地仿真功能)
chainloader (hd0)+1
boot
这样也不行, 软盘映像第一扇区仍然被毁.
第四种情况, 用
map --read-only (hd1,0)/dos98.img (fd0)
(上述这条命令禁止用 int13/AH=03h 或者 int13/AH=43h 写入软盘映像)
map --hook
chainloader (hd0)+1
boot
这样启动 win98, 软盘不再被毁.
根据以上情况, 初步可以断定是某个非常隐蔽的 int13/AH=03h 或者 int13/AH=43h 写入了软盘.
首先, win98 是在 vmware 中, 我没有安装多余的软件, 不可能染病毒; 其次, 即使 win98 染了病毒, 想想它为什么在第一种情况不破坏软盘呢? 所以, 应当不是 win98 等这类操作系统的原因造成的.
那么问题就集中在 GRUB 的代码上了. 然而 GRUB 上很少有写磁盘的操作, 尤其找不到写软盘的操作. GRUB 在极少数情况下才写入磁盘, 例如安装 GRUB 到 MBR 等等. 这类操作, 我们根本都不可能涉及, 怎么突然会出现写入软盘这样的动作呢?
实在是一头雾水!!
因为我们亲手创建,这个世界更加美丽。

精华I
