有阴也有阳 发表于 2017-2-6 16:38:19

如何用grub2引导BIOS启动下的syslinux

本帖最后由 有阴也有阳 于 2017-2-7 13:51 编辑

      如何用grub2引导BIOS启动下的syslinux?

      已经解决,多方查阅资料+网友热心帮助,我说得简略一些:

      在启动U盘的根目录的boot文件夹中的syslinux文件夹中复制、粘贴有关的syslinux文件(——具体需要哪些,自己百度。),

然后把U盘插到电脑上,然后再运行如下批处理——此批处理要放在启动U盘的根目录的boot文件夹里的syslinux文件夹中运行:

@echo off
color 0a
set a=%cd%
set b=%~d0
set c=%~dp0
::echo 当前CMD默认目录是:%a%
::echo 当前盘符是:       %b%
::echo 当前盘符和路径是: %c%
echo.
echo 此批处理将为所处分区安装syslinux引导
pause
echo 正在安装syslinux引导,请稍后

\boot\syslinux\syslinux.exe -ma -d /boot/syslinux %b%

echo syslinux引导安装完成
echo.
pause

      然后用BOOTICE备份此启动U盘的“分区引导记录(PBR)”:

      一:



      二:



      三:



      四:



      完后会在/boot/syslinux文件夹中形成一个U盘的分区引导记录的备份文件——syslinux.te.bin文件。

      以上操作——主要是兴建syslinux的分区引导记录的操作会破坏我的原来的grub4dos0.4.6.a的启动U盘的grub4dos0.4.6.a的主引导记录,

所以最后还得再用BOOTICE重建一次此U盘的grub4dos0.4.6.a的主引导记录:



      好了!这就彻底完工了,现在这个启动U盘在BIOS下从grub4dos0.4.6.a启动:

      从grub4dos转到syslinux:

title 启动 syslinux 菜单
find --set-root /myudisk.txt
chainloader /boot/syslinux/syslinux.te.bin


      从grub4dos转到grub2:

title 启动 grub2 菜单
find --set-root /myudisk.txt
kernel /EFI/Grub2/BIOS/i386-pc/core.img
boot


      从grub2转到grub4dos:

menuentry "启动 grub4dos 菜 单" {
linux16 /grub/grub.exe --config-file="configfile /menu.lst"
}


      从grub2转到syslinux:

menuentry "启动 syslinux 菜 单" {
search --file /myudisk.txt --set=root
chainloader /boot/syslinux/syslinux.te.bin
}


      从syslinux转到grub4dos:

LABEL 启动 Grub4Dos 菜单
        MENU LABEL [^H] -- Grub4Dos 氨
        kernel /boot/syslinux/chain.c32
        append fs ntldr=/grldr


      从syslinux转到grub2:

LABEL 启动 Grub2 菜单
        MENU LABEL [^I] -- Grub2 氨
        kernel /EFI/Grub2/BIOS/G2ldr
        boot /EFI/Grub2/BIOS/G2ldr

      现在《我的grub4dos0.4.6.a的启动U盘》的BIOS启动部分是从grub4dos启动,然后可以在grub4dos——grub2——syslinux

三者之间相互转换——三启。

      本人所用之grub2与syslinux均取自本论坛comzhongwy大师的作品,我在此向他表示感谢!

wintoflash 发表于 2017-2-6 17:12:03

efi的syslinux,用chainloader命令即可。
bios下的syslinux,比较复杂。如果你之前引导的是syslinux的mbr,就用chainloader命令。
如果chainloader命令不行,就加上--force参数。如果还是不行,就试一试ntldr、linux16、multiboot之类的命令。

窄口牛 发表于 2017-2-6 17:43:16

不是说grub2可以直接用syslinux菜单?

wintoflash 发表于 2017-2-6 17:48:15

本帖最后由 wintoflash 于 2017-2-6 17:56 编辑

窄口牛 发表于 2017-2-6 17:43
不是说grub2可以直接用syslinux菜单?

也可以。不是百分百可用,也不符合楼主提的问题。

有阴也有阳 发表于 2017-2-6 18:50:01

窄口牛 发表于 2017-2-6 17:43
不是说grub2可以直接用syslinux菜单?

      请问grub2如何直接调用boot/syslinux里面的syslinux.cfg菜单——syslinux的菜单?

有阴也有阳 发表于 2017-2-6 21:26:13

wintoflash 发表于 2017-2-6 17:12
efi的syslinux,用chainloader命令即可。
bios下的syslinux,比较复杂。如果你之前引导的是syslinux的mbr ...

麻烦给一个用grub2直接调用syslinux.exe的菜单,

类似:
menuentry "grub4dos 菜 单" {
linux16 /grub/grub.exe --config-file="configfile /menu.lst"
}


谢谢!!!

wengzhenquan 发表于 2020-10-22 11:10:08

wintoflash 发表于 2017-2-6 17:12
efi的syslinux,用chainloader命令即可。
bios下的syslinux,比较复杂。如果你之前引导的是syslinux的mbr ...
请问,用引导syslinux.bin的方式为何会报错?是用bootice备份的方式制作的syslinux.bin
页: [1]
查看完整版本: 如何用grub2引导BIOS启动下的syslinux