无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 17443|回复: 40
打印 上一主题 下一主题

[已解决] 怎样用GRUB4dos启动那个CDLinux,用ISO

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-25 14:03:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有用过CDLinux的吗?暂时很想在U盘用一下这个。

用光盘倒是可以启动CDLinux,现在是想用grub4dos来加载iso文件。

总是只能启动到字符界面,然后就提示:can't find out where CDLinux is installed

百度了很久,倒是有不少人提相同问题,但都没解决啊

用过的语句:


title CDlinux1 (ISO emulation)
find --set-root /boot.ini
map --mem /cdlinux.iso (hd32)
map --hook
kernel (hd32)/CDlinux/bzImage CDL_DEV=hd1 quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/ CDL_IMG=cdlinux.iso
initrd (hd32)/CDlinux/initrd
map --unhook
boot



----------------
补充一下:
我现在是在vmware(7.1)里面装的一个Windows系统(2003),然后在c:\放了个grldr,
然后在boot.ini中加了个c:\grldr=GRUB,这样调用的GRUB
希望有在虚拟机中这样测试成功过的同学指教一下。。。


--
基本解决,谢谢大家。

记录一下,主要有三点,
一是用虚拟机VMware测试时,硬盘不要用SCSI格式,要用IDE格式
二是命令上要加参数, CDL_DEV,CDL_DIR, CDL_IMG
三是参数指定目录和文件时大小写要注意,必须和实际的一致

实在好奇的话,找出文件/etc/rc.d/rc.extra看一下就知道了,
CDL_DEV,CDL_DIR, CDL_IMG这些参数就是用来帮助搜索光盘文件的。
CDL_DEV用于搜索磁盘,一般用不着,不指定的话有脚本会自动搜索每个磁盘
CDL_DIR为指定的目录,启动时会自动在每个磁盘搜索是否有这个目录
CDL_IMG为指定的ISO文件名,启动时会搜索上面指定的目录下是否有这个文件

就是组合文件名 /磁盘/目录/文件名 一定要存在,
找到这个文件后CDlinux启动后会自动mount这个iso文件到 /media/__CD__ 以便使用。
找不到的话,当然就会报错了:can't find out where CDLinux is installed
  1.   MNT_DIR=`grep -w "^$REAL_DEV" /etc/mtab | awk '{print $2}'`


  2.   CDL_IMG_DIR="$CDL_DIR"

  3.   IMG_MNT=/media/__CDL__

  4.   mkdir -p "$IMG_MNT" &&

  5.   mount -o loop,ro "$MNT_DIR/$CDL_DIR/$CDL_IMG" "$IMG_MNT"
复制代码


看来是个很简单的事,只是因为不熟悉就变得很复杂了。。。。


--
要实验的话,自已在命令行窗口编辑那个文件 vi /etc/rc.d/rc.extra
在这个文件最前面手动加两个变量
CDL_IMG=xxxx.iso
CDL_DIR=xxxxx
然后再执行一下这个文件,就会提示一个绿色的 Found 了。
然后再startx也是可以进入图形界面的

----
顺便说一下,他那个脚本有个潜在的Bug:
/etc/rc.d/rc.extra , row 127
[ $CDL_LOOP = "yes" ] || {

这个条件判断在变量为空时会报错 : unary operator expected.
其实就和DOS里面的字符串防空一样,要把变量用引号括起来:

[ “$CDL_LOOP” = "yes" ] || {
这样就行了。

其实他这个脚本里面其他地方的判断都是加了引号的,估计这一行是疏忽了没加。
虽然按正常流程的话这个变量不会为空,但是终究是一个潜在的Bug。

[ 本帖最后由 我是神仙 于 2011-12-2 00:09 编辑 ]
2#
 楼主| 发表于 2011-11-25 14:54:03 | 只看该作者
http://cdlinux.info/wiki/doku.php/zh/doc/faq/bootiso
这是cdlinux网站上的一篇文章,但还是不行
(这个文档其实很差,很明显里面的路径就不大对,  kernel (hd32)/boot/CDlinux/bzImage  这里面的boot不应该再有了,会直接提示file not found。但就是改成   kernel (hd32)/CDlinux/bzImage 也只是能进到字符界面,还是会提示 can't find out where CDLinux is installed)



可否直接从 CDlinux 的 ISO 镜像启动?

可以。从 0.9.0 版开始,您可以直接从 CDlinux 的 ISO 镜像启动,不需要刻盘。

CDlinux 0.9.0 和以后的版本都将支持直接从 ISO 启动,这是通过不点的 GRUB4DOS 来实现的。GRUB4DOS 是一个基于 GRUB1 的通用启动管理器,功能十分强悍。

GRUB4DOS 的新版本支持直接从 ISO 光盘镜像启动 (ISO emulation)。您可以直接使用 CDlinux 里带的 GRUB4DOS。下面是一个例子,直接启动 CDlinux 的光盘镜像,您可以对其稍做修改,然后添加到您自己的 menu.lst 里:

#========================= begin =========================#
title GNU/CDlinux (ISO emulation)
  map --mem (hd0,0)/boot/CDlinux/CDL.iso (hd32)
  map --hook
  map --status
  kernel (hd32)/boot/CDlinux/bzImage quiet CDL_IMG=CDL.iso
  initrd (hd32)/boot/CDlinux/initrd
  map --unhook
  boot
#========================== end ==========================#

注意事项

上面仅是一个例子,您需要按您自己的实际情况做相应修改。

在这个过程中将会把 CDlinux 的 ISO 镜像整个加载到内存中,加载过程有可能只需数秒钟,也有可能得花上几十分钟,取决于您的具体硬件配置。尤其是当您从 USB 设备启动,而且 BIOS 又比较 buggy 时,花上几个小时也是有可能的。

由于要把整个 CDlinux 的 ISO 镜像加载到内存中,显然您的内存容量必须要比 ISO 镜像大(这些内存随后会被释放掉,不会浪费)。

在这种模式下 (直接从 ISO 镜像启动),您的设置、所做的更改不会被保存。

关于 GRUB4DOS 的具体用法,请参阅它的文档。GRUB4DOS 的文档非常出色,有大量详尽的例子和解释。

点评

www.rrdsw.com/drama/aomenfengyun/ 澳门风云  发表于 2014-8-19 17:13
回复

使用道具 举报

3#
发表于 2011-11-25 14:57:34 | 只看该作者
下面的菜单相对比较完美,但是明确的说想ud启动ISO是没戏的。。。


  1. map /BOOT/CDLINUX.ISO (0xff) || map --mem /BOOT/CDLINUX.ISO (0xff)
  2. map --hook
  3. rootnoverify (0xff)
  4. kernel /CDlinux/bzImage CDL_LANG=zh_CN.UTF-8 CDL_DIR=BOOT CDL_IMG=CDlinux.iso
  5. initrd /CDlinux/initrd
复制代码
回复

使用道具 举报

4#
 楼主| 发表于 2011-11-25 15:24:56 | 只看该作者
谢谢楼上的回复,不过,好像还是不行。都进不了系统。如图:
回复

使用道具 举报

5#
 楼主| 发表于 2011-11-25 15:26:19 | 只看该作者
http://bbs.ylmf.net/forum.php?mod=viewthread&tid=1757648
这里有一个是解压文件到c:\cdlinux的例子,但是试了还是不行。老样子,进不了图形界面

-------
yhm3020 发表于 2010-11-8 23:20

(BT5)CDlinux U盘启动的问题。可以引导,但进入不了系统。
在论坛上下载了BT5  本人菜鸟。里面的教程只有用光盘启动的。

所以在搜索了下CDlinux从U盘启动方法。用grub 引导的。

由于我的menu.lst上的 beini是这样的:
title  Beini 1.2.1
find --set-root /boot/bzImage
kernel /boot/bzImage quiet tinycore waitusb=6
initrd /boot/tinycore.gz
可以启动Beini .

其它方法CDlinux 的和beini的差不多。

可以引导进入到CDLINUX启动的画面,但之后就就动不了了
can't find out where CDLinux is installed  

----------

我的情况和你一样,解决了吗?

-----------

yhm3020 初出茅庐 发表于 2011-2-11 15:06
早已经解决了,title CDlinux
find --set-root /CDlinux/bzImage
kernel /CDlinux/bzImage CDL_DEV=hd0 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
boot
这样写代码。。。
回复

使用道具 举报

6#
 楼主| 发表于 2011-11-25 15:27:55 | 只看该作者
现在是在虚拟机vm上,用硬盘系统上的c:\grldr=GRUB这种方式来测试的
回复

使用道具 举报

7#
发表于 2011-11-25 15:47:16 | 只看该作者
随便测试一个。。。
可以提取里面的menu.lst,改名为CDLNUX.LST,然后直接用ZXW的RUN启动

测试菜单和grldr.rar (133.78 KB, 下载次数: 146)

CDLINUX.ISO可以是以下位置
/BOOT/CDLINUX.ISO
/CDLINUX/CDLINUX.ISO
/GRUB/CDLINUX.ISO

http://115.com/file/e6pgca6y#
TEST.iso

[ 本帖最后由 zhs509 于 2011-11-25 15:55 编辑 ]
回复

使用道具 举报

8#
 楼主| 发表于 2011-11-25 17:01:20 | 只看该作者




谢谢楼上的热心回复,还提供了ISO,感动。
下载test.ISO花了些时间。试了下,好像是grub 0.4.5,要新一些,不过还是老样子,
唉难道是俺RP有问题

用VMware虚拟机,直接加载test.iso,用光驱启动,可以正常启动到cdlinux的界面去。
复制到硬盘,即在c:\BOOT\CDLINUX.ISO,然后用c:\grldr启动,这时有两种情况:
一是光驱保持加载test.iso,这样就可以正常启动cdlinux,
一是光驱不加载test.iso,就是只有硬盘上的c:\BOOT\CDLINUX.ISO,这样就还是老样子,启动到不了图形界面
回复

使用道具 举报

9#
发表于 2011-11-25 17:10:18 | 只看该作者
title  12  启动 CDlinux中文标准版  \n\n   %n%
find --set-root /ABC/CDlinux.iso
map /ABC/CDlinux.iso (0xFF)
map --hook
root (0xFF)
kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/ABC CDL_IMG=CDlinux.iso
initrd /CDlinux/initrd

注意:CDL_DIR=/ABC   这里的/abc指的是你的CDlinux.iso镜像所在的位置,如果位置不正确,就没法启动。
回复

使用道具 举报

10#
 楼主| 发表于 2011-11-25 17:11:05 | 只看该作者
干脆直接加载你那个 test.iso

title find and boot test.iso
map /test.iso (0xff) || map --mem /test.iso (0xff)
map --hook
chainloader (0xff)


结果还是老样子。
估计就是启动到后面找不到光盘上的文件了。
回复

使用道具 举报

11#
发表于 2011-11-25 17:14:19 | 只看该作者

回复 #10 我是神仙 的帖子

看看9楼的 我以前也被为难过,一直都解开启动,后来才发现是命令写的不对
回复

使用道具 举报

12#
 楼主| 发表于 2011-11-25 17:27:35 | 只看该作者
都是照抄的楼上的,咋还是不行呢?
回复

使用道具 举报

13#
 楼主| 发表于 2011-11-25 17:38:40 | 只看该作者
看起来上面还是有很多成功的。

我想问一下,是不是可以用虚拟机测试的?

我现在是在vmware(7.1)里面装的一个Windows系统(2003),然后在c:\放了个grldr,
然后在boot.ini中加了个c:\grldr=GRUB,这样调用的GRUB

用这种方式来测试没什么问题吧?

还有我把grldr放在优盘上启动GRUB也试过,结果是一样的,不行就是不行啊

感觉用虚拟机测试更方便
回复

使用道具 举报

14#
发表于 2011-11-25 18:13:06 | 只看该作者

回复 #12 我是神仙 的帖子

CDlinux.iso的大小写,和你的文件名保持一致,试试。
不行,我就没办法了。
回复

使用道具 举报

15#
 楼主| 发表于 2011-11-25 18:33:26 | 只看该作者
原帖由 tingyue-wu 于 2011-11-25 18:13 发表
CDlinux.iso的大小写,和你的文件名保持一致,试试。
不行,我就没办法了。


嗯,一致了的。CDlinux.iso.
但还是不行呢。
回复

使用道具 举报

16#
 楼主| 发表于 2011-11-25 18:54:23 | 只看该作者
好像用光盘启动或把优盘量产成U盘的话,比较简单,容易成功。但始终觉得GRUB这种还是要好些。
一个优盘,加上个grldr文件,再加上一些iso文件,需要启动哪个就选哪个。。。

可惜,现实是复杂的。。。。
回复

使用道具 举报

17#
发表于 2011-11-25 19:06:41 | 只看该作者
为什么非要选择cdlinux呢?
其实puppy也是不错的选择。。。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202194
回复

使用道具 举报

18#
 楼主| 发表于 2011-11-25 19:10:02 | 只看该作者
原帖由 zhs509 于 2011-11-25 19:06 发表
为什么非要选择cdlinux呢?
其实puppy也是不错的选择。。。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202194



呵呵,正在下载puppy呢,马上就好了,也要试一下。。。
回复

使用道具 举报

19#
 楼主| 发表于 2011-11-25 19:15:30 | 只看该作者
好像也是要把需要的文件都整合进initrd.gz 和 vmlinuz 这两个文件才行?
像cdlinux这样启动到后半阶段又要读取光盘上的文件的话就不得行
回复

使用道具 举报

20#
发表于 2011-11-25 19:28:26 | 只看该作者

回复 #19 我是神仙 的帖子

用slitaz不需要initrd.gz 和 vmlinuz

直接
find --set-root /ABC/slitaz-0416.iso && map --mem /ABC/slitaz-0416.iso (0xff)
map --hook
chainloader (0xff)
boot
就行


CDlinux.iso方面,我真的想不出原因了。我自己是可以的,上个礼拜去一个学校进行救护员培训时还用CDlinux.iso破解了一个无线路由信号呢,可能是机器问题,或者是CDlinux.iso的文件不同吧。
我的CDlinux.iso是92M的
文件结构
CDlinux.iso
             ----mkisofs.sh
             ----CDlinux
                          ----bzimage
                          ----initrd
                          ----boot
                          ……

[ 本帖最后由 tingyue-wu 于 2011-11-25 19:35 编辑 ]
回复

使用道具 举报

21#
发表于 2011-11-25 21:30:21 | 只看该作者
同一个菜单有些机可以,有些机不可以,一般是U启速度快的机器才成功

  1. map /BOOT/CDLINUX.ISO (0xff) || map --mem /BOOT/CDLINUX.ISO (0xff)
  2. map --hook
  3. rootnoverify (0xff)
  4. kernel /CDlinux/bzImage CDL_LANG=zh_CN.UTF-8 CDL_DIR=BOOT CDL_IMG=CDlinux.iso
  5. initrd /CDlinux/initrd
复制代码


具体看旧帖
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202141
回复

使用道具 举报

22#
发表于 2011-11-25 23:48:44 | 只看该作者
如果用下面的菜单不成功,那就自己再找原因了(ISO不要放到UD区去,因为CDLINUX并不认UD区,至于路径和文件名,自己应该知道如何相应修改了——如果不知道,那就别玩算了):

title  CDLinux (ISO) \n\n 启动 CDLinux LiveCD (ISO)
  map /Linux/CDlinux-0.9.7.iso (hd32) || map --mem /Linux/CDlinux-0.9.7.iso (hd32)
  map --hook
  kernel (hd32)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR/Linux CDL_IMG=CDlinux-0.9.7.iso
  initrd (hd32)/CDlinux/initrd

[ 本帖最后由 xianglang 于 2011-11-25 23:50 编辑 ]
回复

使用道具 举报

23#
 楼主| 发表于 2011-11-28 18:23:03 | 只看该作者
谢谢大家啊

如果用下面的菜单不成功,那就自己再找原因了(ISO不要放到UD区去,因为CDLINUX并不认UD区,至于路径和文件名,自己应该知道如何相应修改了——如果不知道,那就别玩算了):

title  CDLinux (ISO) \n\n 启动 CDLinux LiveCD (ISO)
  map /Linux/CDlinux-0.9.7.iso (hd32) || map --mem /Linux/CDlinux-0.9.7.iso (hd32)
  map --hook
  kernel (hd32)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR/Linux CDL_IMG=CDlinux-0.9.7.iso
  initrd (hd32)/CDlinux/initrd

map /BOOT/CDLINUX.ISO (0xff) || map --mem /BOOT/CDLINUX.ISO (0xff)
map --hook
rootnoverify (0xff)
kernel /CDlinux/bzImage CDL_LANG=zh_CN.UTF-8 CDL_DIR=BOOT CDL_IMG=CDlinux.iso
initrd /CDlinux/initrd

具体看旧帖
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202141


回复 #10 我是神仙 的帖子

看看9楼的 我以前也被为难过,一直都解开启动,后来才发现是命令写的不对


正如上面说的,要仔细。上面各位大大给出的命令本来以为可以照抄,不料里面却分别设有机关,照抄是百分之百不得行的。不管是不是故意的,总之要根据他们给出的写法再改几处才行。(如大小写前后不一致,/号=号混用等)

还有一个是,我是在vmware虚拟机上测试的,和实机有点区别。主要就是虚拟机默认的磁盘是scsi格式的,要改成IDE格式的磁盘才得行。

在测试硬盘上的ISO整体启动时,硬盘分区是FAT才行。NTFS好像又不行了
回复

使用道具 举报

24#
 楼主| 发表于 2011-11-28 18:28:41 | 只看该作者
折腾了两天,用优盘或硬盘上的grub整体启动iso方式启动CDLinux\geexbox\玄天win7pe基本上都成功过了,就是有时成功有时不成功,根据机器的不同分别有差异。硬盘啊主板啊都有不同的。本来还以为很简单就用启动一个GRUB就可以方便的整体启动任意iso。。。。
回复

使用道具 举报

25#
发表于 2011-11-29 09:34:56 | 只看该作者
以上菜单没认真看,应当很多都可行。最重要的一点:别把CDlinux.ISO放在UD区!而要放在U盘可见区。所以你弄好后不要用虚拟机测试。
我也把我一直在用的菜单注上:
title 【 7 】启动CDlinux无线破解版
  find --set-root /ISO/CDlinux.iso
    map --mem /ISO/CDlinux.iso (hd32)
      map --hook
        kernel (hd32)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/ISO CDL_IMG=CDlinux.iso
          initrd (hd32)/CDlinux/initrd
            map --unhook
              boot
然后在U盘可见区建ISO文件夹,CDlinux.ISO放里面就行!
回复

使用道具 举报

26#
发表于 2011-11-29 10:58:58 | 只看该作者
ISO放在NTFS格式的硬盘上,CDLINUX是可以搜索到的——我的硬盘就全是NTFS格式的,ISO整体启动CDLINUX没有问题。一个关键是,LINUX是严格区分大小写的,而CD、NTFS格式也是区分大小写的,因此在写G4D的菜单时,相应的路径与文件名也要区分大小写。
回复

使用道具 举报

27#
 楼主| 发表于 2011-11-29 13:23:15 | 只看该作者
原帖由 xianglang 于 2011-11-29 10:58 发表
ISO放在NTFS格式的硬盘上,CDLINUX是可以搜索到的——我的硬盘就全是NTFS格式的,ISO整体启动CDLINUX没有问题。一个关键是,LINUX是严格区分大小写的,而CD、NTFS格式也是区分大小写的,因此在写G4D的菜单时,相 ...


我也是用的NTFS,没有预留一个FAT32的分区。
结果把grldr从0.4.4换成0.4.5b(其他都不变)后就成功整体启动cdlinux了,真是怪事

ntfs硬盘上一直启动不成功的其实是geexbox2.0。说它不支持NTFS吧,它启动后其实是可以播放NTFS格式硬盘上的视频的,但是在NTFS硬盘上就是启动不了。。。感觉geexbox那个linux,太精简了,进不了图形界面就想玩一下那个shell命令行,结果命令少得很,目录也几乎全是空的。。。。
回复

使用道具 举报

28#
发表于 2011-11-29 19:17:40 | 只看该作者
我用的BT5镜像,稍作改动能用RUN直接从U盘启动,不需要修改菜单的
只要把镜像分成两部分:
用UltraISO打开BT5镜像,把extra和local文件夹提取到U盘CDlinux目录下;
将镜像中的extra和local文件夹删掉(镜像体积小了很多),lang目录下没用的语言文件可以删掉,保存镜像(15MB);
镜像放到U盘\BOOT\IMGS\,可以在RUN模块直接生成的菜单或列表中启动,不用-mem


[ 本帖最后由 tulongwa 于 2011-11-30 09:28 编辑 ]
回复

使用道具 举报

29#
发表于 2011-11-30 13:50:01 | 只看该作者
原帖由 tulongwa 于 2011-11-29 19:17 发表
我用的BT5镜像,稍作改动能用RUN直接从U盘启动,不需要修改菜单的
只要把镜像分成两部分:
用UltraISO打开BT5镜像,把extra和local文件夹提取到U盘CDlinux目录下;
将镜像中的extra和local文件夹删掉(镜像体 ...


希望说的详细点儿,“RUN”怎么运行? 多谢!
另:我希望能将BT8(cdlinux 0.9.6.1)这个ISO镜像  1、集成到光盘镜像的一个菜单里    2、用grub启动的U盘菜单里(按照楼上说的内存启动ISO文件的方式没有启动)

问题:1、集成到光盘的一个菜单,是否把我的这个镜像内容完全复制到光盘文件夹里,然后用run命令还是BCDW?命令怎么写?
         2、我是用“grubinst_gui”启动的U盘,菜单如下,但是没有启动起来,提示找不到安装路径,问题在哪里?

title [00]--启动 CLLINUX测试
find --set-root /minipe/CDlinux.iso
map /minipe/CDlinux.iso (0xFF)
map --hook
root (0xFF)
kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/minipe CDL_IMG=CDlinux.iso
initrd /CDlinux/initrd

无法启动提示.jpg (63.9 KB, 下载次数: 147)

无法启动提示

无法启动提示

cdlinux BT8文件列表.jpg (82.79 KB, 下载次数: 151)

cdlinux 文教案列表

cdlinux  文教案列表
回复

使用道具 举报

30#
发表于 2011-11-30 19:13:45 | 只看该作者
这只我的光盘:

http://115.com/file/e6anow3e#
WIN7_XP_PE_LIVE.iso


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191301&extra=page%3D1
菜单是这样写的:
title --加载 ISO 镜像[FIRA MEM]
set front=--mem
command RUN --fira --automenu --show.ISO




放在U盘上,菜单和文件目录是一样的:









[ 本帖最后由 tulongwa 于 2011-11-30 20:58 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-1 00:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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