无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7470|回复: 20
打印 上一主题 下一主题

【求助】有人能放个光盘上使用grub启动不同类型iso的范例出来吗?

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-20 20:07:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的意思很简单,

我现在有4个小型iso文件,名字为1.iso,2.iso,3.iso,4.iso。

我想把这4个iso文件放到一个光盘里面,然后用grub和menu.lst来显示菜单,并启动对应的iso文件。

这4个iso文件包含有pe类型的,dos类型的,和linuxlivecd类型的可启动映像。

请高手路过并留下脚印,并请指点一下,grub本人很少用到,谢谢了。

如果能给个完整的配置文件。那就更感谢了。


下面帖子里面曾提到这种方法,无奈贴主匆匆略过

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=100737&highlight=%B6%E0%BA%CF%D2%BB


再提供一个制作方法,超简单

以GRLDR作光盘引导、配置文件MENU.LST(可内置)的多合一PE的制作方法:

需要文件:grldr,mkisofs.exe
先建立一个目录如D:\PENIN1,把grldr放入这个目录,配置好MENU.LST(如果想不看到这个MENU.LST文件先导入grldr)。在这个目录下再建一个子目录,如D:\PENIN1\BOOT,把所有镜像文件放入这个BOOT目录。在D:根目录放置mkisofs.exe及运行批处理MKISO.CMD,批处理内容如下:
mkisofs -R -J -b grldr -no-emul-boot -hide boot.catalog -hide-joliet boot.catalog -boot-load-size 4 -o NPE.iso  PENIN1
这样就生成了根目录下只有一个文件及一个目录的可启动光盘。

[ 本帖最后由 chinaren12 于 2008-8-20 20:10 编辑 ]
2#
发表于 2008-8-21 11:11:06 | 只看该作者
用grub4dos启动iso文件,恐怕只有下面两种格式:

  1. title MicroPE -- not mem(要求iso必须连续存放)
  2. find --set-root /boot/MicroPE.iso
  3. map ()/boot/MicroPE.iso (0xff)
  4. map --hook
  5. chainloader (0xff)

  6. title MicroPE - map --mem(将ISO完全读入内存进行仿真,要求你的内存足够大)
  7. find --set-root /boot/MicroPE.iso
  8. map --mem ()/boot/MicroPE.iso (0xff)
  9. map --hook
  10. chainloader (0xff)
复制代码


假设你的iso是纯DOS下的东西,这样启动是没有问题的,但如何你的iso是要启动PE,那就要视情况而定了。一个例子是参考chenall的“微型多功能系统维护专用PE 080314.rar”启动方法,它是先将iso文件连续存放的硬盘上,然后将光盘仿真并启动,光盘启动起来后,再次使用grub4dos加入仿真光盘中的winpe映像文件,如下:


  1. title 0. Micro Windows PE With Universal ATA driver (ramdisk only)
  2. chainloader ()/WXPE/SETUPLDR.B2N
  3. title 1. Micro Windows PE Without Sata/Raid/SCSI (WDSYS)
  4. map --mem --unsafe-boot ()/WXPE/WINPE.IMG (hd0)
  5. map --hook
  6. map (0xff) (0xff)
  7. map (hd32) (hd32)
  8. map --rehook
  9. chainloader (hd0,0)/setupldr.bin
  10. title 2. Micro Windows PE With Universal ATA driver (WDSYS)
  11. map --mem --unsafe-boot ()/WXPE/WINPE.IMG (hd0)
  12. map --hook
  13. map (0xff) (0xff)
  14. map (hd32) (hd32)
  15. map --rehook
  16. chainloader (hd0,0)/setupldr.b1n
  17. title 3. Micro Windows PE With S&R&S driver (WDSYS+SCSI.IMG)
  18. fallback 2
  19. find --set-root /MINIPE/SCSI.IMG
  20. map --mem --unsafe-boot (cd)/WXPE/WINPE.IMG (hd0)
  21. map ()/MINIPE/SCSI.IMG (fd0)
  22. map --hook
  23. chainloader (fd0)/io.sys
复制代码
回复

使用道具 举报

3#
发表于 2008-8-21 11:12:07 | 只看该作者
菜单内容大致如下吧,应该可以启动的,CD上的文件应该是连续存放的;如果不是连续存放的文件,map的时候就得加上--mem参数,将ISO映射到内存里去了(要内存够大才行)。不过诸如XP系统安装盘之类的,虽然可以引导安装,但是不久即出错而无法安装下去的。

title Start from 1.ISO
map 1.iso (hd32)
map --hook
chainloader (hd32)
回复

使用道具 举报

4#
发表于 2008-8-21 11:24:22 | 只看该作者
汗……版主的回复很详细很强大,我的回复可以忽略不看了。
回复

使用道具 举报

5#
 楼主| 发表于 2008-8-21 11:28:26 | 只看该作者
lyra
非常感谢版主和楼上朋友的回复,我所使用的winpe是lyra朋友制作的天琴座0808版。

是否使用下面的代码就ok了呢?

title MicroPE - map --mem(将ISO完全读入内存进行仿真,要求你的内存足够大)
find --set-root /boot/MicroPE.iso
map --mem ()/boot/MicroPE.iso (0xff)
map --hook
chainloader (0xff)

我的构想是全部预读到内存再启动。因为iso文件总共只有120多m吧,很小

还有一个fanx的基于slax的live cd中文版,是否可以用下面的代码启动。
title MicroPE -- not mem(要求iso必须连续存放)
find --set-root /boot/MicroPE.iso
map ()/boot/MicroPE.iso (0xff)
map --hook
chainloader (0xff)


另外2个都是基于dos的,一个是ubcd,一个是hirens 的工具集。

title MicroPE -- not mem(要求iso必须连续存放)
find --set-root /boot/MicroPE.iso
map ()/boot/MicroPE.iso (0xff)
map --hook
chainloader (0xff)

这个代码应该都可以启动吧。

如有不对的地方,还请版主指点,谢谢!!!!
回复

使用道具 举报

6#
 楼主| 发表于 2008-8-21 18:55:50 | 只看该作者
等版主来指点!!!!!!
回复

使用道具 举报

7#
发表于 2008-8-21 19:49:43 | 只看该作者
"要求iso必须连续存放"是什么意思?
回复

使用道具 举报

8#
 楼主| 发表于 2008-8-21 19:58:38 | 只看该作者
原帖由 lsj0416 于 2008-8-21 19:49 发表
"要求iso必须连续存放"是什么意思?


我也正在学习中。呵呵,问版主吧!!
回复

使用道具 举报

9#
 楼主| 发表于 2008-8-21 20:10:01 | 只看该作者
呵呵,碰到有意思的问题了。

我用下面的代码启动lyra朋友的天琴座0808 pe
title 我是grub
find --set-root /BOOT/pe0808.iso
map (cd)/BOOT/pe0808.iso (0xff)
map --hook
chainloader (0xff)

结果发现只加载了winpe,而没有加载任何工具。请问Climbing 版主,这是什么问题呢?为什么用grub启动iso文件不加载工具。而用原始iso文件启动就可以加载呢?请指点!!
回复

使用道具 举报

10#
 楼主| 发表于 2008-8-21 20:17:30 | 只看该作者
再报告一个问题
用grub启动fanx

title 我是fanx
find --set-root /BOOT/FanX2.iso
map (cd)/BOOT/FanX2.iso (0xff)
map --hook
chainloader (0xff)

测试结果为,显示
isolinux 3.61 2008-02-03 这一行字之后光标死机,虚拟机死机。

请grub高手指点,谢谢了!!
回复

使用道具 举报

11#
发表于 2008-8-21 21:35:55 | 只看该作者
我的印象中,MicroPE.iso 必须叫做这个名字,而且必须放在硬盘 /boot 目录中。有兴趣者可以改造(或者加强)这个机制,让光盘上的 MicroPE.iso 也能够被找到。这个机制的改造是指对 MicroPE.iso 文件中的某个设备挂接部分的改造。具体怎么改造,可以请教 chenall。

其他问题也都类似。grub4dos 的光盘仿真与以前的磁盘仿真类似,都是实模式下的仿真,进入保护模式后,虚拟盘就可能失踪了。因此,在运行 Linux 和 Windows 后,需要在 Linux 和 Windows 之内执行额外的挂接命令,重新找到原来的映像文件,通过这样曲折的方式,就可以继续访问虚拟光盘上的内容(实际上是访问 ISO 文件里面的内容)。
回复

使用道具 举报

12#
发表于 2008-8-21 22:37:40 | 只看该作者
連續存放.....(就像 defrag 幫你搞的效果)
不肯定你的 ISO 是否連續存放,便使用 contig.exe (contig your.ISO) 搞搞它。
較大的文件,即使用了 contig 仍沒用,這時便要用 windows 的 defrag 了。

Climbing  及 不點 大俠:
加載不 map --mem 的 PE.ISO, 是不有這樣的說法, 該 PE.ISO 是以 ramdisk 的方式啟動(MS 的 ramdisk, winnt.sif BootDevice = "ramdisk(0)".......), 否則似乎會 BSOD 0x7b。這是 MS 搞的鬼。


關於提及的 Chenall示例 ,想你看看我的 menu.lst 有否不妥當, 是在  U 盤上使用的。

title abc
map --mem ()/boot_img/chk_scsi.img (fd0)
map ()/boot_img/oem_scsi.img (fd1)  ; 10mb的驅動文件, 想加快速度,不想用 --mem; 這個 10mb的 img ,如 map 作 hdx,進 dos 後讀不了。這個 img 的做法與做 pe.img 的方法相同,且pe.img (gz)是可以在 map 了在 dos 讀寫。
map --mem ()/boot_img/mype.iso (0xff) ; 故意地把 pe.gz 包在 iso 內.
map --hook
map --mem --unsafe-boot (0xff)/pe.gz (hd1)  ; 如作 hd0, 在boot進dos後,fd1 的源文件似乎會丟了. 因 fd1 不是 map --mem ??
map --rehook  ; 還是用 hook 才對 ?
chainloader (fd0)/io.sys
boot

現在這樣,工作是正常的,只是有些機在 fd0 啟動了後,看不見 map --mem 的 hd1, 這個是也許是bios問題,還是我的 menu.lst 不妥 ?  
而在只有 1 個 本地硬盤, 以 u 盤啟動, 當 map --mem .... (hd3) , 在 fd0 啟動 dos 後,任何機也看不見 該 map 了的 hd ,  這是 DOS 的問題嗎 ? hdd 必須連續 ? hd0=usb, hd1=local, hd 2 沒有,所以看不見 之後所有map 的盤 ?
即使dos下看不見該map 了的 pe hd, 但pe 還是正常啟動的,我在該dos再進入grub啟動pe.

這個做法只是頑固地要 把 oem_scsi.img 不作 map --mem, 如 map --mem 哪不如把它放在 pe.img (gz) 裡,不需 map 多一個 drive 了. 連帶  fd0 的 檢測 scsi 也不需分開,通通放在一起好了. 一切都是有些底版啟動不支持 USB 2的問題,為了提高啟動速度,只好出些怪招了。
回复

使用道具 举报

13#
 楼主| 发表于 2008-8-22 08:42:54 | 只看该作者
感谢不点的解答,看来我的iso有点复杂了,需要像以前那样解开iso文件再引导。

直接引导iso文件看来还是不现实的。
回复

使用道具 举报

14#
发表于 2008-8-22 08:50:27 | 只看该作者
map /1.iso (hd32)
map --hook
然后根据内核写.
回复

使用道具 举报

15#
发表于 2008-8-22 10:04:04 | 只看该作者
从我的经验来看,grub4dos无法仿真并直接启动使用isolinux制作的启动光盘iso,昨天我用这种方式启动ravlinux08.iso就失败了,不过,你可以先仿真iso映像,然后使用grub4dos直接加载映像中的Linux内核及initrd文件,例如:

  1. title linux live cd
  2. map /linux.iso (hd32)
  3. map --hook
  4. kernel (hd32)/vmlinuz  ....
  5. initrd (hd32)/initrd.gz
  6. ...
复制代码


这样肯定可以启动起来Linux的内核,但至于能够启动到什么程度,就不得而知了。
回复

使用道具 举报

16#
 楼主| 发表于 2008-8-22 10:54:09 | 只看该作者
原帖由 Climbing 于 2008-8-22 10:04 发表
从我的经验来看,grub4dos无法仿真并直接启动使用isolinux制作的启动光盘iso,昨天我用这种方式启动ravlinux08.iso就失败了,不过,你可以先仿真iso映像,然后使用grub4dos直接加载映像中的Linux内核及initrd文 ...



呵呵,非常感谢climbing版主的回复。谢谢拉!!

我看我还是解开pe0808.iso算了,至于fanx.iso,我想easyboot中的bcdw不知道能不能启动,其他两个dos的iso我想应该问题不大吧,呵呵,谢谢了!!

如果有问题,再来找版主吧!!!
回复

使用道具 举报

17#
发表于 2008-8-22 12:18:05 | 只看该作者
很抱歉,有些问题我能回答,有些我不能回答,因为我缺少使用经验,而这里的许多人都有丰富的使用经验,他们更适合回答。

map --rehook  ; 還是用 hook 才對 ?


用 --rehook 是对的。因为有了新的 map 项目,所以,用 --rehook 是对的,而用 --hook 似乎不太好,会出现某些问题。

只是有些機在 fd0 啟動了後,看不見 map --mem 的 hd1, 這個是也許是bios問題,還是我的 menu.lst 不妥 ?  
而在只有 1 個 本地硬盤, 以 u 盤啟動, 當 map --mem .... (hd3) , 在 fd0 啟動 dos 後,任何機也看不見該 map 了的 hd ,  這是 DOS 的問題嗎 ? hdd 必須連續 ? hd0=usb, hd1=local, hd 2 沒有,所以看不見 之後所有map 的盤 ?
即使dos下看不見該map 了的 pe hd, 但pe 還是正常啟動的,我在該dos再進入grub啟動pe.


我怀疑与硬盘个数有关。当你 map 一个硬盘,这个硬盘不是紧接着现有的硬盘号码,而是有跳跃,那么 map 就不会自动增加硬盘个数。而如果 map 没有为你增加硬盘个数,你需要手动指定硬盘个数。比如,

map ... (hd3)

后,你需要再指定一条

map --harddrives=4

建议最好不要跳跃,因为跳跃了之后,dos 访问 (hd2) 时很可能死机。因为 (hd2) 不存在,而在有些 buggy 的机器中,访问不存在的硬盘会死机。

如果你的机器没有 (hd0),而直接建立 (hd1) 虚拟盘,这也是跳跃。因此你可以指定 map --harddrives=2 试试。
回复

使用道具 举报

18#
发表于 2008-8-22 20:26:06 | 只看该作者
謝謝不點 :
看來從 U 盤啟動, 在不指定的機, 不知本地硬盤數目的情況下, 哪 U 盤是 hd0, map --mem 的用 hd1 是最保險的了.

我哪次跳盤符沒死機, 可能是因為利用了 ntfs4dos 去讀取 hd3 (ntfs compress), 而 ntfs4dos 找到不是 ntfs 的分區是會跳過不派盤符的.
回复

使用道具 举报

19#
发表于 2008-9-6 21:36:35 | 只看该作者
对于9楼的问题,我很同意11楼的解释。楼主的做法我也试过,一样。就是grub4dos读*.iso文件,*.iso文件中的引导程序setupldr.bin虚拟*.**_文件(如WINPE.IS_)并引导其中的PE内核后,交出权限,PE内核失去了读原*.iso镜像的能力,于是就加载不了外挂程序了。

其实,将iso解压也不错,PE是PE外挂是外挂(启动后不在一个盘了)!可以再加一些你喜欢的程序,甚至可以将PE环境下不能运行的程序,放到盘上,当软件盘用!呵呵——

映射过百兆的文件到内存,还是不怎么现实滴。

[ 本帖最后由 lifenjoiner 于 2008-9-6 22:24 编辑 ]
回复

使用道具 举报

20#
发表于 2008-9-6 23:24:34 | 只看该作者

无论是否解开ISO,都用同一grldr启动

似乎理顺了一系列关系,将对grub4dos的应用起到很好的促进。
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1
回复

使用道具 举报

21#
发表于 2008-9-27 20:50:15 | 只看该作者
GRUB启动livecd(或安装CD),对于UBUNTU是有专用的方案。而其他的LIVECD并不照顾硬盘启动的用户
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-9-18 03:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表