无忧启动论坛

标题: 用syslinux引导启动的问题 [打印本页]

作者: kavenlee72    时间: 2009-6-30 00:10
标题: 用syslinux引导启动的问题
本人将《完美U盘维护系统8.6》移植到移动硬盘,在启动选项中,除“从硬盘启动”和“进入EZBOOT菜单”出错之外,其他均正常运行。本人一直在查找出错的原因,但由于才学疏浅,终不得要领。下面把试验的结果写出来,请各位高手支招,不胜感激。

在原来的SYSLINUX.CFG中,“从硬盘启动”和“进入EZBOOT菜单”是这样写的:

LABEL ezboot
        MENU LABEL [06] --
        kernel /boot/loader.bin

LABEL hddboot
        MENU LABEL [07] --
        kernel /boot/SYSLINUX/chain.c32 hd0,1

对于hddboot(从硬盘启动),试过如下内容:
(1)修改如下语句:
LABEL hddboot
        MENU LABEL [07] --
        kernel /boot/SYSLINUX/chain.c32 hd0,1
将chain.c32后面的hd0,1分别改为hd0 1、hd1 1、hd1,1等,重启并选择“从硬盘启动”的结果均是从移动硬盘启动。

(2)将上述语句改成:
LABEL hddboot
        MENU LABEL [07] --
        kernel chain.c32
        append hd0 1 ntldr=/ntldr
重启并选择“从硬盘启动”后提示:
load the boot file...
Failed to load the boot file
boot:

(3)改用syslinux引导启动grub,然后再启动硬盘,其中,syslinux.cfg里面关于从硬盘启动的语句改为:
LABEL hddboot
        MENU LABEL [07] --
        kernel /grldr
grldr放在移动硬盘的根目录下,其中的内容是:
timeout 0
default 0
find --set-root /boot/fonts
fontfile /boot/fonts
title 启动 Windows XP
rootnoverify (hd1,0)
chainloader +1
title 【★】 重启计算机
reboot
title 【★】 关闭计算机
halt
重启重启并选择“从硬盘启动”后提示:
NTLDR missing...

对于“进入EZBOOT菜单”选项被选中后,出现如下提示:
Start booting from CD...
Bad Volume Descriptor Type
Bad Standard Identifier
Bad Volume Descriptor Version
Directory "Boot" not found!
Error loading image: MENU.EZB
然后就停留在这个画面上。

以上问题,本人百思不得其解,请高手们赐教!
作者: x.Nichdlas    时间: 2009-6-30 00:28
硬盘启动
kernel /boot/SYSLINUX/chain.c32 hd1

EZBOOT只能在光盘或U盘量产使用 所以你在移动硬盘上是不能转到EZB的
作者: kavenlee72    时间: 2009-6-30 10:49
标题: 回复 #2 x.Nichdlas 的帖子
已经试过:
kernel /boot/syslinux/chain.c32 hd0

kernel /boot/syslinux/chain.c32 hd1
都从移动硬盘启动。

我的C盘是NTFS格式,不知与这个有没有关系?
作者: kavenlee72    时间: 2009-7-1 19:20
好几天了,还是没有高手指点。
沉得太快,只好自己顶一下,希望引起高手们的重视,帮助菜鸟解决这个问题。
成分感谢!
作者: kavenlee72    时间: 2009-7-2 01:06
终于通过“曲线救国”的方式解决了“从硬盘启动”的问题。

由于用SYSLINUX的CHAIN.C32无法实现从硬盘启动,几经询问也无高人指点,只好自己潜心研究,经过几天的努力,终于实现了在SYSLINUX菜单中选择“从硬盘启动”。

(1)制作一个i1.44M的mg镜像文件,命名为BOOTHDD.IMG。然后用虚拟软驱装载它。装载后在资源管理器中会有“A:"驱动器出现。
(2)对A驱的“软盘”(实际上就是这个1.44M的img镜像文件)格式化,格式化时记得是“制作一张MS-DOS启动盘。
(3)除了保留A盘中的IO.SYS和COMMAND.COM两个文件以外,其他的均删除。
(4)拷贝GRUB.EXE到A盘中。
(5)用记事本编辑一个AUTOEXEC.BAT文件,内容如下:
       GRUB.EXE --config-file="checkrange 0x80 read 0x8280 && map (hd1) (hd0);checkrange 0x80 read 0x8280 && map --hook;chainloader (hd0)+1"
编辑好后保存并把该文件拷入A盘。
(6)把这个BOOTHDD.IMG拷入PE启动盘的\BOOT\IMGS文件夹里。
(7)修改SYSLINUX.CFG中从硬盘启动的选项。内容如下:
     把kernel /boot/syslinux/chain.32 hd0,1  修改为
       kernel /boot/syslinux/memdisk
           append initrd=/boot/imgs/BootHDD.img
保存。

重启电脑,选择“从硬盘启动”就可以从硬盘启动了。
作者: kavenlee72    时间: 2009-7-2 01:34
记得SYSLINUX可以直接加载GRUB.EXE,但想不起如何写了,所以才想到用这种比较蠢的方法。

还请高人指点。

3Q!

[ 本帖最后由 kavenlee72 于 2009-7-2 01:35 编辑 ]
作者: 天涯海角1216    时间: 2009-7-2 04:52
LABEL grub
        MENU LABEL 【2】 GRUB菜单(HDD方式)
        kernel /boot/grub.exe
        append --config-file="(fd0)/menu.lst"
作者: mygamexxx    时间: 2009-7-2 08:13
LABEL WINDOWS XP
MENU LABEL WINDOWS XP
localboot 0x80
TEXT HELP
      More about currently selected:
      Run windows xp
ENDTEXT

或改用

LABEL WINDOWS XP
MENU LABEL WINDOWS XP
localboot 0x81
TEXT HELP
      More about currently selected:
      Run windows xp
ENDTEXT
作者: kavenlee72    时间: 2009-7-2 09:27
标题: 回复 #7 天涯海角1216 的帖子
我试了如下语句,但出错了。
      LABEL hddboot
        MENU LABEL [07] --
        kernel /boot/syslinux/grub.exe
        append --config-file="checkrange 0x80 read 0x8280 && map (hd1) (hd0);checkrange 0x80 read 0x8280 && map --hook;chainloader (hd0)+1"

出错提示:

Invalid or corrupt kernel image
booting...

然后就停住了。

还有请教天涯海角1216,fd0不是指软盘吗?这个menu.lst又该如何编写?放在什么地方?

[ 本帖最后由 kavenlee72 于 2009-7-2 11:10 编辑 ]
作者: kavenlee72    时间: 2009-7-2 11:12
标题: 回复 #8 mygamexxx 的帖子
不管我用localboot 0x80还是localboot 0x81,都重新回到syslinux菜单。
作者: 天涯海角1216    时间: 2009-7-2 19:43
标题: 回复 #9 kavenlee72 的帖子
呵呵,我错了!
LABEL grub
        MENU LABEL
        kernel /boot/syslinux/grub.exe
在 grub.exe 里用内置菜单写入"find --set-root --ignore-floppies /boot/syslinux/menu.lst
                                     configfile /boot/syslinux/menu.lst"
我是放在/boot/syslinux/便于修改的,当然也可以将菜单直接内置入grub.exe里
作者: kavenlee72    时间: 2009-7-2 21:49
标题: 回复 #11 天涯海角1216 的帖子
请教天涯海角1216,这个menu.lst该如何编辑?内置菜单是什么意思?内置菜单如何直接写入grub.exe里面?

[ 本帖最后由 kavenlee72 于 2009-7-3 00:23 编辑 ]
作者: 天涯海角1216    时间: 2009-7-3 03:50
timeout 3
gfxmenu (hd0,4)/boot/syslinux/message
title 【A】  启动根目录下menu.lst菜单
        find --set-root --ignore-floppies /menu.lst
        configfile /menu.lst
title 【B】  启动 /boot/grub下menu.lst菜单
        fallback 2
        find --set-root --ignore-floppies /boot/grub/menu.lst
        configfile /boot/grub/menu.lst
title 【C】  启动 /grub下menu.lst菜单
        fallback 3
        find --set-root --ignore-floppies /grub/menu.lst
        configfile /grub/menu.lst
title 【01】 超级急救盘-维护系统
chainloader (hd0,4)/BOOT/GSLDR
title 【02】 引导D盘SYSLINUX
chainloader (hd0,4)+1
title 【03】 启动隐藏的IBM分区-时空淘气包系统 IMG
map --mem (hd0,4)/boot/SKTQB.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【04】 启动隐藏的IBM分区-时空淘气包系统 /boot/airboot/SKTQB-BIN
kernel (hd0,4)/boot/airboot/SKTQB-BIN
boot
title 【04】 MBR-SYSLINUX
find --set-root /BOOT/MBR-SYSLINUX
chainloader /BOOT/MBR-SYSLINUX
title 【05】 扇区启动D盘系统
chainloader (hd0,4)+1
title 【06】 扇区启动E盘系统
chainloader (hd0,5)+1
title 【07】 扇区启动F盘系统
chainloader (hd0,6)+1
title ───────逻辑分区(D 盘)WinPE 维护系统───────
clear
title 【08】 盛世雄风 WinPE 维护系统
map (hd0,4)+1 (hd0)
map --hook
find --set-root /BOOT/SSXFLDR
chainloader /BOOT/SSXFLDR
title 【09】 深山红叶-WinPE 维护系统
map (hd0,4)+1 (hd0)
map --hook
find --set-root /BOOT/SSHYLDR
chainloader /BOOT/SSHYLDR
title 【10】 天琴星座-WINPE 维护系统
map (hd0,4)+1 (hd0)
map --hook
find --set-root /BOOT/TQXZLDR
chainloader /BOOT/TQXZLDR
title 【11】 启动隐藏的IBM分区-时空淘气包系统 IMG
map --mem (hd0,4)/boot/SKTQB.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【12】 启动隐藏的IBM分区-SYSLINUX.IMG
map --mem (hd0,4)/boot/SYSLINUX.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【13】 启动迷你 VISTA 系统
        find --set-root /boot/bootmgr
        chainloader /boot/bootmgr
title 【14】 Prayaya Q3 系统
find --set-root /BOOT/Prayaya-Q3/vmlinuz
kernel /BOOT/Prayaya-Q3/vmlinuz mode=iso init=/sbin/init lang=cn quiet splash dir=/BOOT/Prayaya-Q3 fs_dir=/BOOT/Prayaya-Q3/savedata ro_dir=/BOOT/Prayaya-Q3/ros
find --set-root /BOOT/Prayaya-Q3/initrd.img
initrd /BOOT/Prayaya-Q3/initrd.img
boot
title 【15】 打开HPA分区-/BOOT/LINUX.IMG
find --set-root /BOOT/LINUX.IMG
map --mem /BOOT/LINUX.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title ──────搜索启动HPA分区 /boot下 WinPE 维护系统───────
clear
title 【16】 盛世雄风 WinPE 维护系统
find --set-root --ignore-floppies /boot/SSXFLDR
chainloader /boot/SSXFLDR
title 【17】 深山红叶-WinPE 维护系统
find --set-root --ignore-floppies /boot/SSHYLDR
chainloader /boot/SSHYLDR
title 【18】 天琴星座-WINPE 维护系统
find --set-root --ignore-floppies /boot/LMTLDR
chainloader /boot/LMTLDR

title 【19】 GHOST11
map --mem (hd0,4)/boot/ghost11.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【20】 DOS之家葛明阳大师的一键GHOST
map --mem (hd0,4)/boot/ghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【21】 启动 XUSBOOT 中文DOS维护工具
map --mem (hd0,4)/boot/xusboot.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【22】 启动 PQMAGIC 8.05 中文版分区工具
map --mem (hd0,4)/boot/pm805.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【23】 启动红叶DOS工具箱 Hongye Dos98&Ghost!
map --mem (hd0,4)/boot/dos98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 【24】 深山红叶工具箱PowerMiniPEV30.iso
map --mem (hd0,4)/BOOT/V30.iso (hd32)
map --hook
chainloader (hd32)
boot
title 【25】 深度袖珍PE(功能挺全的) & Dos系统维护光盘V2.iso
map --mem (hd0,4)/BOOT/SD.iso (hd32)
map --hook
chainloader (hd32)
boot
title 【26】 启动EZBOOT的ISO
        find --set-root /BOOT/EZBOOT.iso
        map --mem /BOOT/EZBOOT.iso (0xff)
        map --hook
        chainloader (0xff)
title 【27】 启动本机硬盘的 WINDOWS NT/2003/XP 系统
find --set-root /NTLDR
chainloader /NTLDR
title 【28】 启动本机硬盘上 VISTA 系统(如果存在)
find --set-root /bootmgr
chainloader /bootmgr
title 【29】 重启计算机
reboot
title 【30】 关闭计算机
halt


不内置也行,把menu.lst放在该分区根目录
内置菜单的方法在无忧搜索一下,一大堆


[ 本帖最后由 天涯海角1216 于 2009-7-3 03:53 编辑 ]
作者: kavenlee72    时间: 2009-7-3 12:50
谢谢天涯海角1216!

有启动菜单的话启动时会出现菜单,并要求响应。
我希望在syslinux菜单选择后就不要再出现菜单了。
作者: kavenlee72    时间: 2009-7-5 23:19
请教:
如下语句:
GRUB.EXE --config-file="checkrange 0x80 read 0x8280 && map (hd1) (hd0);checkrange 0x80 read 0x8280 && map --hook;chainloader (hd0)+1"

如何将GRUB.exe后面的一大堆东西编辑进GRUB.exe里面?
作者: kavenlee72    时间: 2009-7-6 00:01
重新试验如下语句从硬盘启动成功:
LABEL hddboot
        MENU LABEL [07] --
        kernel /boot/syslinux/grub.exe
        append --config-file="checkrange 0x80 read 0x8280 && map (hd1) (hd0);checkrange 0x80 read 0x8280 && map --hook;chainloader (hd0)+1"

与上次不同的是GRUB.exe替换了上次使用的相同文件。现在原因不明,不过总算实现了从grub直接启动。

请高手帮忙分析一下,3Q
作者: kavenlee72    时间: 2009-7-8 12:36
此问题算是告一段落了:
(1)实现了从菜单直接引导到本地硬盘启动;
(2)高手们都不愿指点这个比较低档的问题了。

最近看了一篇贴子,说是syslinux不能引导NTFS格式的本地硬盘。如果真是这样,那这个话题就真的是完结了。
作者: deng001    时间: 2010-4-24 17:15
哈哈看 了 你的帖子,我也的这个问题也解决了
作者: lrj3293737    时间: 2011-3-14 11:25
楼主,我的遇见过loading boot sector ... booting提示一直不能进入系统,我是用移动硬盘做的,有的主板很快就可以启动了,但是有的不行啊。
作者: 踩着棉花糖    时间: 2013-1-28 17:56
LABEL HDDBoot
MENU LABEL ^Boot From HardDisk
MENU IMMEDIATE
LOCALBOOT 0X80

我电脑可以启动。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3