中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » grub4dos的磁盘和CD仿真之下启动保护模式的操作系统
作者:
标题: grub4dos的磁盘和CD仿真之下启动保护模式的操作系统 上一主题 | 下一主题
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『楼 主』:  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 ]



因为我们亲手创建,这个世界更加美丽。
2008-2-14 11:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fddds
初级用户





积分 58
发帖 21
注册 2007-9-22
状态 离线
『第 2 楼』:  

以“KERNEL \boot\grub\grub.exe ”方式,WinPE 在 ISO 仿真下启动后,运行PE速度太慢了,请问不点有没有什么办法解决?

2008-2-14 17:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 3 楼』:  

支持不点。

你的想法对于linux很有效,对于winpe来说则没有机会撤销仿真。
因为linux在grub的initrd阶段就把系统载入了内存,而winpe要在离开grub之后由setupldr.bin把系统载入ramdisk。

2008-2-14 18:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 4 楼』:  

fddds:暂且没有什么办法。我也似乎发现过这个问题,但没有找到原因。以后这个问题也确实应该解决,希望能够解决。

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

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

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

我前面的帖子所说的问题,就是把外部程序都放在 ramdisk 里面,启动 winPE 之后,这些程序都是可以访问的,算是比较完美了,而且这一点应该不难做到,对于这个软件的制作者来说。



因为我们亲手创建,这个世界更加美丽。
2008-2-14 19:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 5 楼』:  

setupldr.bin的问题不解决也没关系,顶多就是多占了一些内存而已,毕竟hack setupldr.bin过于困难,而且setupldr.bin版本与ntldr一起时常在更新。

grub的直接载入sdi的启动方式也不错,不过只适用于xp embedded,不适用于pe

2008-2-15 11:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 6 楼』:  

内存问题本来就不严重,只要 ISO 在硬盘上连续,就不需要 --mem 了。搜到下面这篇文章,似乎很容易把软件都集成在 WinPE 的内存盘中。

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

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

无非是用户需要多下载一个 contig 工具整理 ISO 文件的碎块。



因为我们亲手创建,这个世界更加美丽。
2008-2-15 16:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
barton
中级用户





积分 480
发帖 197
注册 2006-9-20
来自 黄冈
状态 离线
『第 7 楼』:  

对于外置工具的PE,chenall的pe是在启动到pe的时候利用命令行工具挂载iso,启动外置程序

  Quote:
为内核增加了一个功能
  可以在使用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 ]

2008-2-15 17:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by 不点 at 2008-2-15 04:31 PM:
内存问题本来就不严重,只要 ISO 在硬盘上连续,就不需要 --mem 了。搜到下面这篇文章,似乎很容易把软件都集成在 WinPE 的内存盘中。

制作WinPE的基 ...

u盘版基本上与硬盘版没有什么差别的,而光盘版就是把硬盘版做成iso而已。

2008-2-15 18:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 9 楼』:  

chenall 做的这个简直太棒了,从根本上解决了访问外置程序的问题。谢谢 barton 的指引。

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

fujianabc:我说的意思是,连硬盘版都不需要做,只要把 ISO 放在硬盘或者U盘上,用 grub4dos 来启动就行了。看来 chenall 已经成功了,非常强悍,赞!



因为我们亲手创建,这个世界更加美丽。
2008-2-15 23:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gaogaozhen
新手上路





积分 14
发帖 5
注册 2008-3-11
状态 离线
『第 10 楼』:  

我在做grub4dos启动u盘的时候就在发出这样的疑问了:我下载了电脑公司版的xp安装盘iso,如果能用grub直接加载启动安装就爽了?

2008-3-11 22:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fliger
初级用户





积分 24
发帖 11
注册 2008-11-4
状态 离线
『第 11 楼』:  

我也在尝试,能不能把XP系统镜像到ISO里去,然后用GRUB来引导启动,现在不是有光盘上运行的操作系统吗,只是光盘上运行太伤光盘了,速度也不行啊

2009-1-31 02:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: