中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 01:30
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » grub4dos的磁盘和CD仿真之下启动保护模式的操作系统
可打印版本  4,860 / 10
第1楼 不点 发表于 2008-02-14 11:44
银牌会员 发帖 1,115 积分 2,491
grub4dos的磁盘和CD仿真之下启动保护模式的操作系统
最近我从

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 ]
第2楼 fddds 发表于 2008-02-14 17:34
初级用户 发帖 21 积分 58
以“KERNEL \boot\grub\grub.exe ”方式,WinPE 在 ISO 仿真下启动后,运行PE速度太慢了,请问不点有没有什么办法解决?
第3楼 fujianabc 发表于 2008-02-14 18:23
金牌会员 发帖 1,616 积分 3,467
支持不点。

你的想法对于linux很有效,对于winpe来说则没有机会撤销仿真。
因为linux在grub的initrd阶段就把系统载入了内存,而winpe要在离开grub之后由setupldr.bin把系统载入ramdisk。
第4楼 不点 发表于 2008-02-14 19:16
银牌会员 发帖 1,115 积分 2,491
fddds:暂且没有什么办法。我也似乎发现过这个问题,但没有找到原因。以后这个问题也确实应该解决,希望能够解决。

目前没有好的办法,只有一个建议,就是直接使用 grub4dos,不要使用别的引导器如 GNU GRUB,SYSlinux,LILO 等。

------------------

fujianabc:虽然 200 多兆的内存被 ISO 占据不能释放,浪费了,但是这仍然只是一个小问题,解决与否都不太要紧。如果确实想解决的话,我们可以研究 setupldr.bin 何时就已经完全装入ramdisk了(从而不再需要仿真磁盘了),这样我们就可以给 setupldr.bin 打个补丁,让它在那个适当的时机卸载磁盘仿真。或者如果可能的话,可以改用直接装入 sdi 文件的方式,来启动 windows,这样就应该和 Linux 的情况差不多了。

我前面的帖子所说的问题,就是把外部程序都放在 ramdisk 里面,启动 winPE 之后,这些程序都是可以访问的,算是比较完美了,而且这一点应该不难做到,对于这个软件的制作者来说。
第5楼 fujianabc 发表于 2008-02-15 11:30
金牌会员 发帖 1,616 积分 3,467
setupldr.bin的问题不解决也没关系,顶多就是多占了一些内存而已,毕竟hack setupldr.bin过于困难,而且setupldr.bin版本与ntldr一起时常在更新。

grub的直接载入sdi的启动方式也不错,不过只适用于xp embedded,不适用于pe
第6楼 不点 发表于 2008-02-15 16:31
银牌会员 发帖 1,115 积分 2,491
内存问题本来就不严重,只要 ISO 在硬盘上连续,就不需要 --mem 了。搜到下面这篇文章,似乎很容易把软件都集成在 WinPE 的内存盘中。

制作WinPE的基础知识
http://www.szeblog.cn/user2/12579/archives/2008/51634.html

如果 ISO 可被 grub4dos 完美引导的话,其实就没必要再为“多功能电脑急救维护盘”制作一个 U盘版了,而只用一个 ISO 版就可以了。

无非是用户需要多下载一个 contig 工具整理 ISO 文件的碎块。
第7楼 barton 发表于 2008-02-15 17:26
中级用户 发帖 197 积分 480 来自 黄冈
对于外置工具的PE,chenall的pe是在启动到pe的时候利用命令行工具挂载iso,启动外置程序

为内核增加了一个功能
可以在使用GRUB访真ISO启动时也可以使用ISO文件里面的外置程序.

这个功能只会在特定的条件下启用(在没有找到\MINIPE\SYSTEM.WIM时)
而且启动的ISO文件名必须为\BOOT\MICROPE.ISO

isocmd在开始的时候自动mount \boot\MicroPE.ISO

http://bbs.wuyou.com/viewthread.php?tid=118886&extra=page%3D1

[ Last edited by barton on 2008-2-16 at 10:00 AM ]
第8楼 fujianabc 发表于 2008-02-15 18:08
金牌会员 发帖 1,616 积分 3,467
Originally posted by 不点 at 2008-2-15 04:31 PM:
内存问题本来就不严重,只要 ISO 在硬盘上连续,就不需要 --mem 了。搜到下面这篇文章,似乎很容易把软件都集成在 WinPE 的内存盘中。

制作WinPE的基 ...

u盘版基本上与硬盘版没有什么差别的,而光盘版就是把硬盘版做成iso而已。
第9楼 不点 发表于 2008-02-15 23:51
银牌会员 发帖 1,115 积分 2,491
chenall 做的这个简直太棒了,从根本上解决了访问外置程序的问题。谢谢 barton 的指引。

===============

fujianabc:我说的意思是,连硬盘版都不需要做,只要把 ISO 放在硬盘或者U盘上,用 grub4dos 来启动就行了。看来 chenall 已经成功了,非常强悍,赞!
第10楼 gaogaozhen 发表于 2008-03-11 22:46
新手上路 发帖 5 积分 14
我在做grub4dos启动u盘的时候就在发出这样的疑问了:我下载了电脑公司版的xp安装盘iso,如果能用grub直接加载启动安装就爽了?
第11楼 fliger 发表于 2009-01-31 02:49
初级用户 发帖 11 积分 24
我也在尝试,能不能把XP系统镜像到ISO里去,然后用GRUB来引导启动,现在不是有光盘上运行的操作系统吗,只是光盘上运行太伤光盘了,速度也不行啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023