Board logo

标题: 请教:关于用syslinux引导grub4dos的问题。 [打印本页]

作者: lianjiang2004     时间: 2008-1-3 14:29    标题: 请教:关于用syslinux引导grub4dos的问题。

请教:关于用syslinux引导grub4dos的问题。



据说u盘启动的,采用syslinux的兼容性不错。因此考虑采用syslinux来加载gghost.img.
试了一下,发现加载非标准镜像的速度特别慢。而且对img的要求比较严格,我的gghost.img载入后提示不能启动。

于是就想到用syslinux引导grub后启动img。

试了一下,  用
label 1
  KERNEL   grub.exe

可以启动grub,可是却找不到放在u盘根目录的menu.lst,从而直接进入了命令行。【通过菜单内置解决了找不到菜单问题,请问此时,假如不内置的话,如何设置才能找到菜单文件?】

假如用syslinux能直接引导grldr,就能解决找不到根目录的菜单问,于是翻了帖子,看到bean有一个帖子"在grub2-syslinux里引导grub4dos和ntldr"介绍了syslinux引导grub4dos,于是下载了文件loadbin.bin,根据里面的说明写入了syslinux.cfg,
kernel loadbin.bin
append initrd=grldr

可是运行后提示找不到linux,不知何故?也不清楚哪里用错了。

请知道的人指教。


u盘启动方式很多,也不清楚到底哪种方式兼容性最好。
作者: barton     时间: 2008-1-3 15:51
label 1
  KERNEL   grub.exe

menu.lst是否和grub.exe放在同一目录?




第二种方法提示找不到linux,你的syslinux用的是什么版本,试看看debug版本会出现些什么提示,还有就是syslinux.cfg配置是什么样的
作者: 不点     时间: 2008-1-3 16:06
通过 grub.exe 启动的,好像就没有默认的“当前设备”了,所以,就找不到 menu.lst 了。不过,你可以用

label 1
  KERNEL   grub.exe --config-file=(fd0)/menu.lst

或者类似的参数,来指定菜单文件。
作者: lianjiang2004     时间: 2008-1-3 17:07


  Quote:
Originally posted by barton at 2008-1-3 15:51:
label 1
  KERNEL   grub.exe

menu.lst是否和grub.exe放在同一目录?




第二种方法提示找不到linux,你的syslinux用的是什么版本,试看看debug版本会出现些什么提示,还有就是syslinux.cfg配置是什么样的

在同一目录,试过readme中提到的都不行,看来就是不点讲的不存在当前设备了。

考虑了指定fd0,但是会不会变成是hd0? 不会的话倒没问题,若可能成了(hd0,0),如何解决比较有通用性?

syslinux版本是3.51的。以前下的,用过一次,加载img太慢就没用了。今天有人要u盘启动gghost,试用dos启动不行,所以就想到兼容性好的sysliinux了。

(DOS file) .\menu.lst, the MENU.LST in the current dir.

                        (DOS file) \menu.lst, the MENU.LST in the root dir of
                                                the current drive.
                        (GRUB file) /menu.lst, the MENU.LST in the root dir of
                                                the boot device.
作者: lianjiang2004     时间: 2008-1-3 17:23


  Quote:
Originally posted by barton at 2008-1-3 15:51:
试看看debug版本会出现些什么提示,还有就是syslinux.cfg配置是什么样的

用法是bean的帖子里写的。

kernel loadbin.bin
append initrd=grldr

文件文件都没找到,换debug版本的grldr也没用吧。
个人理解这是syslinux没引导成功grldr。
应是kernel loadbin.bin未执行成功。
作者: barton     时间: 2008-1-3 20:51


  Quote:
Originally posted by 不点 at 2008-1-3 16:06:
通过 grub.exe 启动的,好像就没有默认的“当前设备”了,所以,就找不到 menu.lst 了。不过,你可以用

label 1
  KERNEL   grub.exe --config-file="(fd0)/menu.lst"

或者类似的参数,来指定菜单文件。

看看不点说的或者下面这个是否找到菜单

label 1
  KERNEL   grub.exe
  APPEND --config-file="(fd0)/menu.lst"




我说的debug版本是syslinux的,o(∩_∩)o... 好像只有isolinux有debug版本

[ Last edited by barton on 2008-1-4 at 03:00 PM ]
作者: lianjiang2004     时间: 2008-1-4 07:39


  Quote:
Originally posted by barton at 2008-1-3 20:51:
看看不点说的或者下面这个是否找到菜单
label 1
  KERNEL   grub.exe
  APPEND --config-file=(fd0)/menu.lst
我说的debug版本是syslinux的,o(∩_∩)o... 好像只有isolinux有debug版本

不好意思,我对syslinux了解很少,是拿来主义。呵呵。
除了照猫画虎,其他的不会。

假如是会不会启动后是HD0? 假如会的话,如何处理妥当些?
作者: barton     时间: 2008-1-4 14:58
syslinux我也只是用其中的isolinux和pxelinux而已, 和grub4dos用法很类似

但是对于U盘被识别为fd或者hd的问题,可以用grub的find来定位看看是否可行,syslinux好像也没办法解决这个问题

   (syslinux里是根据是否有  " / " 符号来确定是否是当前设备根目录,不带任何符号表示在isolinux/pxelinux文件夹内-相对路径, syslinux.exe-syslinux.com没用过,不明)

你看看下面的这个用法是否可以奏效
label 1
  KERNEL grub.exe
  APPEND --config-file="find --set-root /gghost.txt;configfile /menu.lst;boot"
如果不成功就考虑用内置菜单吧

:-)

[ Last edited by barton on 2008-1-4 at 03:21 PM ]