无忧启动论坛

标题: 【原创】 成功用SYSLINUX引导硬盘FAT分区!(感谢yjd 和Pauly!) [打印本页]

作者: 天涯海角1216    时间: 2009-4-8 21:40
标题: 【原创】 成功用SYSLINUX引导硬盘FAT分区!(感谢yjd 和Pauly!)
方法一:
(在此感谢yjd 和Pauly两位高手指点迷津,特别是yjd一直对我的每一步都给出了指点!)

1.用syslinux.exe写入FAT分区PBR:
将syslinux.exe复制到某分区根目录下,XP系统下开始>运行>CMD,打开该盘,写入:
syslinux -sf -d /boot/syslinux x:
将syslinux引导代码写到分区PBR上自动在x盘boot/syslinux目录生成ldlinux.sys

2.编辑G4DOS菜单,写入:
title   引导X分区SYSLINUX
chainloader (hd0,x)+1


方法二:
用Pauly的BOOTICE直接写入FAT分区SYSLINUX引导,用Lvyanan的1JF9启动该分区


三: 修改SYSLINUX文件夹路径:

1. 将修改好路径的syslinux.exe放在某分区根目录,用WINHEX打开syslinux.exe找到boot\syslinux\syslinux.cfg位置,
修改为如:aiwa\syslinux\syslinux.cfg,注意字节数一样,用"方法一"写入.

2. 将修改好路径的syslinux.bin放在某文件夹,用WINHEX打开syslinux.bin,找到boot\syslinux\syslinux.cfg位置,
修改为如:aiwa\syslinux\syslinux.cfg,注意字节数一样,用"方法二"写入,注意syslinux.bin应与BOOTICE放在同一文件夹,BOOTICE用090617版.

3. 也可修改syslinux.cfg后缀名,我是修改为syslinux.ibm


[ 本帖最后由 天涯海角1216 于 2009-8-8 19:59 编辑 ]
作者: zxw    时间: 2009-4-8 22:30
恭喜恭喜………………
但看这个代码,没有移植性或通用性

[ 本帖最后由 zxw 于 2009-4-8 22:42 编辑 ]
作者: yjd    时间: 2009-4-8 23:00
原帖由 zxw 于 2009-4-8 22:30 发表
恭喜恭喜………………
但看这个代码,没有移植性或通用性

是指哪个呢?grub4dos吗?用find命令不就可以通用了。

ps:我只会一点点基本应用;grub4dos非常强大,很多高级功能chenall,zw2312914,pseudo 等几位大侠才是真正高手。

[ 本帖最后由 yjd 于 2009-4-8 23:04 编辑 ]
作者: lbwgljq    时间: 2009-4-9 06:55
代码似乎针对性太强,移植性很差啊
作者: 天涯海角1216    时间: 2009-4-9 07:10
标题: 请教YJD大侠:
谢谢你帮助我解决了这个问题,我还有问题请教你:
我修改了G4D命令,如下

1.title   引导隐藏主分区SYSLINUX
rootnoverify (hd0,1)
makeactive
chainloader +1


成功

2.title   引导隐藏的主分区[启动SYSLINUX]
rootnoverify (hd0,1)
chainloader +1


成功!

3.title   引导隐藏主分区SYSLINUX
root (hd0,1)
chainloader +1

成功!
4.title   引导隐藏主分区SYSLINUX
chainloader (hd0,1)+1

成功!
上面4种菜单有什么区别?我知道第一种方式makeactive会激活(hd0,1)分区,所以我去掉了它。那么2、3、4有什么区别呢?谢谢!

[ 本帖最后由 天涯海角1216 于 2009-4-9 07:34 编辑 ]
作者: Climbing    时间: 2009-4-9 10:33
标题: 回复 #5 天涯海角1216 的帖子
在你这种应用环境中,后三种方式没有什么不同。

比较通用性的做法是:
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1
作者: 天涯海角1216    时间: 2009-4-9 11:24
标题: 回复 #6 Climbing 的帖子
非常感谢!!!
的确你的写法很通用!
作者: aidixiao    时间: 2009-4-9 14:50
谢谢分享。。。。。。
作者: zxw    时间: 2009-4-9 15:23
原帖由 Climbing 于 2009-4-9 10:33 发表
在你这种应用环境中,后三种方式没有什么不同。

比较通用性的做法是:
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1

佩服,学习!确实很有通用性
作者: ppo363729    时间: 2009-4-9 16:46
原来是这样的,哎!
作者: 天涯海角1216    时间: 2009-4-9 17:26
当然,如果写入激活的主分区的话,那么系统将直接启动到SYSLINUX界面,不需G4D引导了!  

用syslinux.exe写入激活主分区引导扇区:(比如C盘)
syslinux -sf -d /boot/syslinux C:
将syslinux引导代码写到分区PBR上自动在C盘boot/syslinux目录生成ldlinux.sys

作者: 天涯海角1216    时间: 2009-4-9 17:42
当然,如果写入激活的主分区的话,那么系统将直接启动到SYSLINUX界面,不需G4D引导了!  

用syslinux.exe写入激活主分区引导扇区:(比如C盘)
syslinux -sf -d /boot/syslinux C:
将syslinux引导代
作者: yjd    时间: 2009-4-9 20:41
原帖由 Climbing 于 2009-4-9 10:33 发表
在你这种应用环境中,后三种方式没有什么不同。

比较通用性的做法是:
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1

有c大在这里解说,啥问题都没了^_^。
二楼说通用性不强,3楼我就说find不就可以解决了。会的都知道不会的比较迷糊。。。

回lz,makeactive应该对windows系列的系统才讲究这个(win系统需要在激活的分区才可以启动)
其他的应该不需要。
作者: yjd    时间: 2009-4-9 20:44
原帖由 天涯海角1216 于 2009-4-9 17:42 发表
当然,如果写入激活的主分区的话,那么系统将直接启动到SYSLINUX界面,不需G4D引导了!  

用syslinux.exe写入激活主分区引导扇区:(比如C盘)
syslinux -sf -d /boot/syslinux C:
将syslinux引导代

你测试过了?对隐藏分区有效?

你这个也是io的mbr+syslinuxPBR而已。

写syslinux到mbr上然后pbr也写syslinux这才算真正的syslinux引导吧^_^。
作者: yjd    时间: 2009-4-9 20:46
原帖由 天涯海角1216 于 2009-4-9 07:10 发表
谢谢你帮助我解决了这个问题,我还有问题请教你:
我修改了G4D命令,如下:
1.title   引导隐藏主分区SYSLINUX
rootnoverify (hd0,1)
makeactive
chainloader +1

成功!
2.title   引导隐藏的主分区[启 ...

写这么多。都是你对grub4dos太不熟悉了。
现在有了find命令我很少用(hdx,x)这种方法了。
作者: 天涯海角1216    时间: 2009-4-9 21:47
标题: 回复 #15 yjd 的帖子
我用makeactive时自动激活了隐藏主分区,再重新启动电脑直接启动SYSLINUX了,这说明什么?
我的隐藏主分区是FAT32的!
谢谢!(的确很多知识得向你请教,再次谢谢你!)
作者: yjd    时间: 2009-4-9 21:56
原帖由 天涯海角1216 于 2009-4-9 21:47 发表
我用makeactive时自动激活了隐藏主分区,再重新启动电脑直接启动SYSLINUX了,这说明什么?
我的隐藏主分区是FAT32的!
谢谢!(的确很多知识得向你请教,再次谢谢你!)

-_-!!有这事情?
你的磁盘分区是什么样子的,几个分区几个主分区
作者: 天涯海角1216    时间: 2009-4-9 22:01
标题: 回复 #17 yjd 的帖子
5个分区,2个主分区!
附件是引导扇区文件!

[ 本帖最后由 天涯海角1216 于 2009-4-9 22:07 编辑 ]

boot.rar

1.39 KB, 下载次数: 54, 下载积分: 无忧币 -2


作者: yjd    时间: 2009-4-9 22:20
#18
我是想了解下你的磁盘分区。
比如
分3个区
c盘激活主fenqu
d盘逻辑分区
e盘隐藏主分区

我在想是不是你用了那个命令隐藏分区变成激活的主分区,电脑一启动mbr肯定首先去引导隐藏分区了所以就有了直接启动syslinux菜单

还请测试下你在使用makeactive以后你的磁盘激活列表是不是变化了?
比如你原来是c为激活的结果用了makeactive命令以后变成了隐藏分区是激活而c不是激活的。

激活第一个分区时,第二个的激活状态就会被取消!同样,激活第2个分区话,第1个分区的激活状态也会被取消!不可能有两个分区同时被激活的情况

[ 本帖最后由 yjd 于 2009-4-9 22:25 编辑 ]
作者: 天涯海角1216    时间: 2009-4-9 22:28
标题: 回复 #19 yjd 的帖子
c盘激活主分区,D,E,F是逻辑的!还有一个隐藏的FAT32主分区!
makeactive以后变成了隐藏分区是激活而c不是激活!




[ 本帖最后由 天涯海角1216 于 2009-4-9 22:29 编辑 ]
作者: 天涯海角1216    时间: 2009-4-9 22:35
标题: 回复 #19 yjd 的帖子
呵呵!还要请教你!请别嫌烦哦,我们是朋友了呀!
用grubinst_gui写硬盘MBR时,我选额外参数:chainloader (hd0,1)+1,GRUB启动后是否可以直接启动隐藏分区的引导扇区--SUSLINUX了呢?
作者: yjd    时间: 2009-4-9 22:36
原帖由 天涯海角1216 于 2009-4-9 22:28 发表
c盘激活主分区,D,E,F是逻辑的!还有一个隐藏的FAT32主分区!
makeactive以后变成了隐藏分区是激活而c不是激活!


58541

自从你用了makeactive命令默认是启动了那个ibm隐藏分区的syslinux菜单吗?

从图上我看不出哪个是激活的-_-!!。用win下的diskgenius打开看看现在哪个是活动的




作者: yjd    时间: 2009-4-9 22:37
原帖由 天涯海角1216 于 2009-4-9 22:35 发表
呵呵!还要请教你!请别嫌烦哦,我们是朋友了呀!
用grubinst_gui写硬盘MBR时,我选额外参数:chainloader (hd0,1)+1,GRUB启动后是否可以直接启动隐藏分区的引导扇区--SUSLINUX了呢?

额外参数是grubinst命令行提供的参数可没你这样写。
你要想直接启动那就搞个菜单内置到grldr里,不就达到同样效果了
作者: 天涯海角1216    时间: 2009-4-9 22:40
标题: 回复 #22 yjd 的帖子
是的!上面我是告诉你分区情况的!
因为重新启动直接进入SYSLINUX了,所以我用WINPM查看,结果变成了隐藏分区是激活而c不是激活!
作者: 天涯海角1216    时间: 2009-4-9 22:42
标题: 回复 #23 yjd 的帖子
那样麻烦的!我是想让GRUB直接启动扇区!请教该怎么写呢??
作者: yjd    时间: 2009-4-9 22:49
原帖由 天涯海角1216 于 2009-4-9 22:40 发表
是的!上面我是告诉你分区情况的!
因为重新启动直接进入SYSLINUX了,所以我用WINPM查看,结果变成了隐藏分区是激活而c不是激活!

那就对了。证明grub4dos的那个激活命令会去改写磁盘上的引导代码上的偏移量。。还希望哇哥等高手解答下激活分区是修改引导代码的哪个偏移量^_^。

[ 本帖最后由 yjd 于 2009-4-9 22:52 编辑 ]
作者: yjd    时间: 2009-4-9 22:51
原帖由 天涯海角1216 于 2009-4-9 22:42 发表
那样麻烦的!我是想让GRUB直接启动扇区!请教该怎么写呢??

如果只要用到这个功能完整菜单可以这样写

menu.lst内容如下:

timeout=0
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1

然后内置到grldr文件里。效果是一样的。
作者: 天涯海角1216    时间: 2009-4-9 22:53
标题: 回复 #27 yjd 的帖子
find --set-root /boot/syslinux/ldlinux.sys
chainloader +1
上面的我知道!
我是指写到grubinst_gui额外参数里!

[ 本帖最后由 天涯海角1216 于 2009-4-9 22:56 编辑 ]
作者: yjd    时间: 2009-4-9 23:11
你上面写的额外参数加上chainloader (hd0,1)+1这个完全就是错误的。没有这种写法-_-!!。
又再次说明你对grubinst太不熟悉了-_-!!。

grubinst额外参数指的是这些:

-----------
用法及示例
取自grubinst 1.1的--help。(by Climbing)

grubinst  [选项]  设备或文件
选项:

      --help,-h                显示本帮助
       --pause                 退出前暂停
       --version               显示grubinst版本信息
       --verbose,-v            输出详细信息
       --list-part,-l          列出设备或者文件中的所有分区信息
       --save=FN,-s=FN         保存原来的MBR/引导扇区到文件FN中。
       --restore=FN,-r=FN      从前面备份的FN中恢复原来的MBR/引导扇区
       --restore-prevmbr,-r    恢复保存在设备或者文件第二扇区中的原来的MBR
      --read-only,-t           只是模拟操作,没有真正的写操作(测试模式)
       --no-backup-mbr         不在第二扇区中备份原来的MBR。
       --force-backup-mbr      强制备份原来的MBR到第二扇区(默认选项)
      --mbr-enable-floppy      在软驱上搜索grldr(默认选项)
      --mbr-disable-floppy     禁止搜索软驱上的grldr
      --mbr-enable-osbr        当分区表非法时(通常是某操作系统的引导扇区),仍然启动原来的MBR(默认选项)
      --mbr-disable-osbr       当分区表非法时(通常是某操作系统的引导扇区),禁止启动原来的MBR。
      --duce                  (不明白,无法翻译)disable the feature of unconditional entrance
                               to the command-line.
      --boot-prevmbr-first     在搜索GRLDR之前尝试首先启动原来的MBR
      --boot-prevmbr-last      在启动原来的MBR之前先搜索GRLDR(默认选项)
      --preferred-drive=D      优先启动磁盘编号, 0 <= D < 255.
      --preferred-partition=P  优先启动分区编号, 0 <= P < 255.
      --time-out=T,-t=T        在启动原来的MBR之前等待T秒,如果T是0xff,无限等待,默认等待5秒
      --hot-key=K,-k=K         如果在启动原来的MBR之前按下了指定键,则启动GRUB。K的长度为一个
                               字(word),也就是int16/AH=1中断的AX寄存器值。高位字节是对应按键
                               的扫描码,低位字节是ASCII码。默认按键是0x3920,也就是空格键。
      --key-name=S             指定热键的显示名
      --floppy,-f              如果安装目标是软驱,则指定这个选项。
      --floppy=N               如果安装目标是硬盘的某个分区,则指定这个选项。N用来指定分区编号:0,
                               1,2和3对应主分区,4,5,6,...对应逻辑分区。
      --sectors-per-track=S    对--floppy选项指定每磁道扇区数,1 <= S <= 63, 默认是63.
      --heads=H                对--floppy选项指定磁头数,1 <= H <= 256, 默认是255.
      --start-sector=B         对--floppy=N选项指定隐藏扇区数。
      --total-sectors=C        对--floppy选项指定总扇区数,默认是0。
      --lba                    对--floppy选项使用LBA方式。如果软驱的BIOS支持LBA,你可以指定这个选项。
                               按规定所有的软驱BIOS都支持CHS方式,所以最好指定--chs选项。如果既没指定
                               --lba也没指定--chs,则LBA指示字节(一般是启动扇区第3字节)的值不会被改
                               变。
      --chs                    对--floppy选项使用chs方式。如果你的软驱BIOS不支持LBA方式,你应该指定
                               --chs选项。我们假定所有的软驱BIOS都支持CHS方式,所以推荐使用--chs选项。
                               如果既没指定--lba也没指定--chs,则LBA指示字节(一般是启动扇区第3字节)
                               的值不会被改变。
      --install-partition=I    安装引导扇区到指定硬盘(或硬盘映像)的分区I。
       -p=I
      --boot-file=F,-b=F       改变默认启动文件名(默认是grldr)。
      --load-seg=S             改变启动文件的默认内存加载段(默认是0x2000:0)。
      --grub2,-2               装载grub2的内核g2ldr而不是grldr。
      --output,-o              输出内置的grldr.mbr(受-b参数的影响)。


示例 1: 安装GRLDR MBR到第一个硬盘

grubinst (hd0)

示例 2: 安装GRLDR MBR 到磁盘映像文件disk.dsk

grubinst disk.dsk

示例 3: 恢复第一块硬盘的单扇区MBR

grubinst --restore-prevmbr (hd0)

示例 4: 安装GRLDR MBR到第一块硬盘并保存原来的MBR到MBR.sav文件中。

grubinst --save-mbr=MBR.sav (hd0)

示例 5: 从保存的MBR.sav中恢复原来的MBR。

grubinst --restore-mbr=MBR.sav (hd0)

示例 6: 在启动时10秒内按下空格才加载GRUB

grubinst --boot-prevmbr-first --time-out=10 (hd0)
作者: Climbing    时间: 2009-4-9 23:19
标题: 回复 #28 天涯海角1216 的帖子
grubinst_gui没有这个功能,所谓的额外参数,是指grubinst_gui界面上没有提供,但grubinst命令本身却具有的参数。你应该知道grubinst_gui只是相当于grubinst的一个外挂,最终的操作都是由grubinst来做的。

而grubinst的作用只是将grldr的引导代码安装到硬盘的MBR或者分区的引导扇区上(当然有其它一些功能,在这里不重要),而grldr的引导代码当然只是用来引导系统到grub4dos的,这些引导代码不具有执行grub4dos命令的功能,所有的grub4dos命令都由grub4dos自己来执行,而最先获得执行的命令就是grldr的内置菜单,所以上面yjd建议你将那两个命令写到grldr的内置菜单中,这样一启动grub4dos就直接执行了这两个命令。

至于你在前面反映的,将隐藏分区用grub4dos激活后,下次启动时直接进入了syslinux。我不知道你将grub4dos安装在哪里了,从顶楼到现在,我只看到你如何安装syslinux到硬盘的主分区并通过grub4dos启动它,但没有看到你讲你是如何安装和启动grub4dos的,不过现在我大概能够猜出,你并没有将grub4dos的引导代码安装到MBR中,最有可能是安装到了XP所在分区(也就是(hd0,0))的引导扇区中,或者是通过boot.ini来加载。而你的MBR中用的是微软默认的引导代码,如果真是如此,你遇到的问题(将隐藏分区激活下次直接启动syslinux)就没有什么好奇怪的了,因为微软MBR代码的功能就是查找当前硬盘上的激活分区并加载激活分区上的引导扇区代码并执行,你将隐藏分区激活后,它当然加载的就是syslinux的引导扇区,所以就直接进入syslinux了。

yjd看来对这些基础知识了解的还不够扎实。

下面就等1216来验证我的猜测。
作者: yjd    时间: 2009-4-9 23:40
原帖由 Climbing 于 2009-4-9 23:19 发表
grubinst_gui没有这个功能,所谓的额外参数,是指grubinst_gui界面上没有提供,但grubinst命令本身却具有的参数。你应该知道grubinst_gui只是相当于grubinst的一个外挂,最终的操作都是由grubinst来做的。

而 ...

多谢指点。我对这些确实只懂皮毛。。最关键的是提供的引导代码我是看不懂的-_-!!(以前到是以为激活命令是临时而已)。

再就#24楼反馈,也就证明g4d的激活命令是会去改写磁盘。因为之前不是很清楚这个。

[ 本帖最后由 yjd 于 2009-4-9 23:57 编辑 ]
作者: Climbing    时间: 2009-4-9 23:50
标题: 回复 #31 yjd 的帖子
无论是什么软件,grub4dos也罢、fdisk也罢、分区软件也罢,磁盘管理器也罢,激活分区做的基本上都是同一个工作,就是将分区表项对应的激活标志位(分区项的第一个字节)设置成0x80,分区表项在MBR扇区中,而MBR扇区就在磁盘上,所以,无论是谁做激活分区的操作,都会改写磁盘。并不只是grub4dos才会改写磁盘。

所以我说,你对这些基础知识了解太少了。事实上,grub4dos是多启动管理软件,最经常的就是跟分区表、MBR、BPB、引导扇区、磁头、磁道、扇区、CHS、LBA、文件系统、内存分配和管理这些东西打交道,而这些东西都是计算机专业最最基础的知识,你不充分了解这些概念,在接触到grub4dos的某些高级功能时就会晕菜。
作者: zxw    时间: 2009-4-9 23:50
拜读了,多谢指点!这是我等菜鸟难得的学习机会啊
作者: yjd    时间: 2009-4-9 23:56
原帖由 Climbing 于 2009-4-9 23:50 发表
无论是什么软件,grub4dos也罢、fdisk也罢、分区软件也罢,磁盘管理器也罢,激活分区做的基本上都是同一个工作,就是将分区表项对应的激活标志位(分区项的第一个字节)设置成0x80,分区表项在MBR扇区中,而MBR扇 ...

谢谢指导。。所以说我高级应用还是不会-_-!!
作者: 天涯海角1216    时间: 2009-4-10 05:33
原帖由 Climbing 于 2009-4-9 23:19 发表
grubinst_gui没有这个功能,所谓的额外参数,是指grubinst_gui界面上没有提供,但grubinst命令本身却具有的参数。你应该知道grubinst_gui只是相当于grubinst的一个外挂,最终的操作都是由grubinst来做的。

而 ...

谢谢!你的猜测是正确的!向你学习了!能有机会受到你的指点,倍感荣幸!!!不过有点不同,我是这样安装G4D的:
1. 安装GRUB4DOS到硬盘MBR,等待时间:填0秒,“ 输出详细信息、启动时不搜索软盘、优先引导原来MBR、启动文件-HYLDR”,点安装→弹出窗口→回车确认。

2.我是将淘气包的aero.sys重命名为HYLDR放在隐藏的主分区里,启动淘气包后再启动PE和其他维护工具的!

3.启动电脑时,想进入PE就快速按空格键,否则直接进入系统,不需等待时间和选择了!


所以你的猜测是正确的,因为重新启动后我没选G4D(安装和维护系统我才用),电脑直接引导原来的MBR,加载激活分区上的引导扇区代码并执行,所以就直接进入syslinux了

[ 本帖最后由 天涯海角1216 于 2009-4-10 05:57 编辑 ]
作者: Climbing    时间: 2009-4-10 08:52
标题: 回复 #35 天涯海角1216 的帖子
受教了,你这种用法倒也挺新奇的。整个是一个启动软件的大杂烩,而且,还各得其所,充分利用各软件的功能。
作者: 天涯海角1216    时间: 2009-4-10 09:09
标题: 回复 #36 Climbing 的帖子
谢谢你!
其实还有:
我的电脑同时又安装了三茗一键恢复,挺喜欢用的!(三茗一键恢复有个好处,可保护MBR和分区表,我一直在用它,是1.57破解版。)
启动顺序为:三茗》GRUB》主分区扇区》XP
作者: aidixiao    时间: 2009-4-11 13:58
又学到了不少东西,谢谢各位。
作者: 702490    时间: 2009-4-14 15:56
恩,学习了,感谢啊。
作者: yncjmyb    时间: 2009-4-23 14:00
谢谢了,这两天正在研究呢。
作者: ddkcfy    时间: 2009-6-22 20:12
大哥说明白一点啊,看不懂啊!!!
作者: ISO    时间: 2009-6-22 23:08
恭喜下,请问楼主可以把方法详尽的写下吗?
作者: 天涯海角1216    时间: 2009-6-28 18:29
标题: 回复 #42 ISO 的帖子
看一楼,已经修改好详细说明!
作者: 天涯海角1216    时间: 2009-8-8 08:14
真希望什么时候SYSLINUX能够支持NTFS分区就好了!!!
作者: SONY.    时间: 2009-9-17 18:20
不错的说,学习了,支持!!!
作者: SONY.    时间: 2009-9-17 20:11
如果安装到MBR,又会是怎样呢?
作者: dhbtljj    时间: 2009-12-4 06:24
楼主的思维真是有创意,看样子安装SYSLINUX到硬盘你是最先想到的,高!
方法也很好,谢谢!




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