最近我从
http://bbs.downbank.cn/viewthread.php?tid=15986
下载了“多功能电脑急救维护盘”(光盘版),发现了一个问题,这个问题似乎以前也有人讨论过。ISO 文件通过 grub4dos 的 ISO 仿真启动之后,进入 WinPE,则有很多工具找不到。这应该是系统进入保护模式之后,无法访问虚拟光盘所导致的。
由此我觉得这张光盘还有改进的余地。我对于 Windows 的这些启动过程不熟悉,但我熟悉 Linux 的一个古老的方法,不妨就用 Linux 来说事。
用如下的办法可以启动 Linux 系统:
kernel (...)/vmlinuz .......
initrd (...)/initrd.gz
其中,kernel 和 initrd 都是 grub 的命令,它们把内核以及 Linux 的内存盘装入内存中,就完事了,剩下的事情,在 boot 之后都由 Linux 来全权接管了,因此,这样的启动方案,不再使用仿真磁盘了,因此也不会失败了。
因此,如果把所有的文件都放置在 WinPE 所能使用的那个内存盘中,那么 WinPE 在 ISO 仿真下的启动过程应该也可以是同样完美的。
另外,补充说明一点。在上述 kernel 和 initrd 命令之后,即将进入 Linux,那么仿真磁盘和仿真光盘都将不再起作用了,因此此时可以卸载仿真,释放内存供 Linux 使用:
kernel (...)/vmlinuz .......
initrd (...)/initrd.gz
map --mem (hd32) (hd32) # 撤销可能的仿真光盘 hd32
map --mem (0xff) (0xff) # 撤销可能的仿真光盘 0xff
map --mem (fd0) (fd0) # 撤销可能的仿真软盘 fd0
map --mem (fd1) (fd1) # 撤销可能的仿真软盘 fd1
map --mem (hd0) (hd0) # 撤销可能的仿真硬盘 hd0
map --mem (hd1) (hd1) # 撤销可能的仿真硬盘 hd1
map --mem (hd2) (hd2) # 撤销可能的仿真硬盘 hd2
map --mem (hd3) (hd3) # 撤销可能的仿真硬盘 hd3
map --mem (hd4) (hd4) # 撤销可能的仿真硬盘 hd4
map --unhook # 脱钩 int13,恢复 int13 为原始的 BIOS 操作
boot
以上 map 都是必要的,如果仅仅只有最后一条 map --unhook 是不够的,因为 boot 命令会自动执行 map --hook,如果 boot 命令发现有仿真存在的话。撤销仿真磁盘时,参数 --mem 的意思是“强制撤销内存盘”。此处的参数 --mem 也能撤销“非内存”的普通仿真盘。
以上命令序列是安全的,即便在 kernel 之前不曾执行过磁盘仿真,也没有坏处。所以,建议以后启动 Linux 时都要这么做。
Last edited by 不点 on 2008-2-14 at 12:06 PM ]