无忧启动论坛

标题: SYSLINUX如何引导bootmgr??? [打印本页]

作者: writered    时间: 2009-9-1 16:17
标题: SYSLINUX如何引导bootmgr???
请教:
由于新购DELL mini10,PE2以上才能使用,所以计划在原来的U盘中增加PE2.1,U盘使用SYSLINUX和GRUB4DOS引导:
GRUB4DOS菜单内有:
title PE 2.1
find --set-root /bootmgr
chainloader /bootmgr && boot
SYSLINUX菜单内有:
LABEL runpe2.1
MENU LABEL [ 2 ] --  PE 2.1
kernel /BOOTMGR


问题1: bootmgr放在根目录,GRUB4DOS可以引导bootmgr进入PE2.1,正常;但将bootmgr放在/boot/内,则被提示:Error 17: File not found,为何会这样呢?find --set-root /bootmgr不是在所有能识别的范围内寻找bootmgr吗?

问题2:
SYSLINUX无法引导bootmgr,请高手指导下,谢谢了先;???

问题3:
根目录下的LDLINUX.SYS删除了SYSLINUX也能正常进入菜单,为什么????
作者: writered    时间: 2009-9-1 20:29
谢谢,楼上指点,使用后者已经解决syslinux引导bootmgr了;非常感谢。

哪位老大有空再帮忙解释下问题1,和问题3吧。
作者: writered    时间: 2009-9-1 22:38
原帖由 fengxi 于 2009-9-1 18:37 发表
syslinux试试这样引导bootmgr
kernel chain.c32
  append hd0,1 ntldr=bootmgr

或者通过ldntldr
kernel /boot/ldntldr
append initrd=/bootmgr



发现第二种方法还是不行,在syslinux菜单时可以进入grub4dos的菜单,但是不加载字体和图片,另外点击时显示无法mount。
作者: secowu    时间: 2011-3-24 14:24
对于不同的启动文件,loadbin提供相应的头文件,

可以用三种方式启动系统文件,以ntldr为例:

1,直接使用头文件ldntldr.bin。以头文件作为内核,ntldr作为initrd:

kernel ldntldr.bin
initrd ntldr
boot

2,利用mkimage工具把头文件和系统文件结合起来,生成单一的启动文件:

mkimage ldntldr.bin ntldr ntldr.bin

然后把ntldr.bin作为内核就行了:

kernel ntldr.bin
boot

由于不少的启动管理器在启动Linux内核时不会传递正确的DL值,因此需要在头文件里进行设置,你可以使用-x参数在生成单一的启动文件时指定DL值,例如:

mkimage -x 0x80 ldntldr.bin ntldr ntldr.bin

有些系统,例如grub2,还支持分区参数,你可以用以下方式来指定:

mkimage -x 0x80,0 ldgrub2.bin core.img grub2.bin

这样启动后grub2会自动把根设备设为第一只硬盘第一个主分区(hd0,1)。

如果是在CDROM里启动,可以使用设备号0xe0,比如

mkimage -x 0xe0 ldgrub.bin stage2 grub.bin

这样,grub启动后就可以利用(cd)设备来访问文件了。

3,同2一样,先生成单一的启动文件ntldr.bin,然后可以利用grldr.mbr启动:

安装到mbr:

grubinst -b=ntldr.bin DEVICE

生成相应的ntldr.mbr,在boot.ini里启动:

grubinst -o -b=ntldr.bin ntldr.mbr

目前支持的启动文件格式:

1,GRUB Legacy
头文件ldgrub.bin,对应的系统文件是stage2

2,GRUB2
头文件是ldgrub2.bin,对应的系统文件是core.img

3,GRUB4DOS和NTLDR
头文件是ldntldr.bin,对应的系统文件是ntldr和grldr

至于启动管理器,只要它支持Linux内核格式,就可以使用loadbin,这其中包括grub legacy, grub2, grub4dos, syslinux/isolinux/pxelinux, lilo等等。
作者: secowu    时间: 2011-3-24 14:33
这个也没成功

  1. LABEL nt6.x
  2. MENU LABEL [ ^5 ] 查找并启动 Windows NT 6.x
  3. kernel /boot/ldntldr.bin
  4. initrd bootmgr
  5. boot

  6. LABEL nt5.x
  7. MENU LABEL [ ^6 ] 查找并启动 Windows NT 5.x
  8. kernel /boot/ldntldr.bin
  9. initrd ntldr
  10. boot
复制代码





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