为了试验将isolinux写入U盘引导,结果发现了有趣的、奇怪的现象,不敢独享: 过程如下: 1、先用HP格式化工具U盘,将isolinux相关文件文件复制到U盘,启动:当然不成功。 2、用syslinux.exe J: 将isolinux写入U盘MBR,(保证成功写入了),启动---仍然不成功! 3、用UtlaISO的便携启动写入方式,写入USB-HDD+到U盘,启动:成功地引导isolinux!!! 先说这个,不知道为什么用U+的HDD+或ZIP+重写MBR,都能成功引导原来的siolinux,在此过程中并没有重写isolinux. 4、接着用GRUB将GRUB写入U盘,并选择不保存原来的MBR,启动:毫无悬念,成功引导GRUB 5、再次用syslinux.exe J: 将isolinux写入U盘MBR,(保证成功写入了),启动:仍然是GRUB!!! 5、再次启动U+,用UtlaISO的便携启动写入方式,写入USB-HDD+到U盘,启动,猜猜,应该怎么样? 答案是:竟然成功了isolinux!!!!!!!!!!! 有几问题值得探讨: A、为什么成功写入isolinux后,必须用U+重写为HDD+,才能启动isolinux? B、为什么多次反反复地进行U+的HDD、HDD+、ZIP+写入MBR操作,均不影响isolinux,均能成功启动? C、用GRUB写入,并未保存原来的MBR,再用U+的HDD+重写后,仍然能重新引导isolinux?????? D、写入GRUB后,重写isolinux,竟然不成功,仍然是GRUB? isolinux到底位于什么地方? 请哪位将本贴传给不点或U+作者,看看他们有什么说法。
经过多次试验,换不同U盘,在不同机子上试验,结果一样,另外还发现了一点规律: 一、UtlaISO支持isolinux,用U+写入到U盘时,一搬情况下,默认由NTLDR引导(这个大家知道了),但是,若文件中有/boot/isolinux/isolinux.cfg,则不管原来引导方式如何,均默认引导isolinux!!!! 这是个重大发现!! 二、经过格式化后的U盘,非U+写入时,必须经过HDD(或HDD+、ZIP+)写入MBR,才能由u盘引导isolinux,目前尚未发现其他写入方式。 三、isolinux与GRUB和平共存,不会相互干扰,经过GRUB写入后,再经过U+的HDD+便携写入,立即变为isolinux启动。 所以你的四个问题都很容易解决了 ultraiso的MBR的功能是从活动分区的启动扇区启动,这点上与fdisk的mbr功能相同,但是直接用winhex对U盘写入fdisk的mbr却无法启动syslinux,而用另外一段兼容性很好的MBR(我从网上找到的....,现在硬盘上也一直用这段MBR代码,功能也是从活动分区的引导扇区启动) syslinux.exe只改写分区的引导记录 grubinst.exe根据楼主的选择,改写的是主引导记录,而ULTRAISO的U+改写的也是主引导记录 所以 A、为什么成功写入isolinux后,必须用U+重写为HDD+,才能启动isolinux? 因为syslinux.exe写入的只是一个分区引导记录,必须有主引导记录来调用它,就像vista的bootsect.exe,例如bootsect.exe /nt52 c:这样并不能保证启动到NTLDR,而需要有来调用该分区引导记录的MBR,例如FDISK的MBR,其功能是调用活动分区的引导记录来启动,而u+就是这个功能,写入一个MBR来调用syslinux.exe的PBR B、为什么多次反反复地进行U+的HDD、HDD+、ZIP+写入MBR操作,均不影响isolinux,均能成功启动? 因为U+只针对MBR,不针对PBR,所以不会破坏当前的syslinux的PBR C、用GRUB写入,并未保存原来的MBR,再用U+的HDD+重写后,仍然能重新引导isolinux?????? grub没保存的也是U+的记录,GRUB里面的保存记录只是针对MBR的,不是针对PBR的,所以不影响 D、写入GRUB后,重写isolinux,竟然不成功,仍然是GRUB? 因为你用的grub4dos的记录默认是优先从GRLDR启动,而且不引导其他MBR,所以如果存在grldr则能启动,如果不存在grldr,则不能启动,除非你保存了u+的引导记录,冰鞋grubinst写入MBR时选择了引导原来的MBR,则当GRUB的mbr启动grldr失败时会尝试保存过的U+的引导记录,而U+引导记录会转移到活动分区的PBR,也就是SYSLINUX的PBR,从而启动syslinux
可以用将syslinux写入MBR的功能 楼上的参数 /sfamr 其中/s表示使用类似安全模式的代码,可以获得更佳的兼容性 f表示强制写入,这在写入本地磁盘时必须使用,无论是写MBR还是PBR都需要 a表示xx缩写分区,这个如果磁盘分区没xx的时候有用的 m表示写入MBR,这就是楼主为什么直接用syslinux.exe命令无法启动的原因了,用U+处理不过是写入另外一个MBR,但是该MBR能调用活动分区上的PBR,即syslinux来启动,而直接用带m的参数就可以免去这一步 还有一个参数d,可以使得ldlinux.sys文件生成到其他目录,而不是再根目录,这样保持U盘清爽 我还是比较喜欢syslinux 因为它可以直接使用png的高保真图片做背景,如果嫌背景载入慢,还可以直接转换成jpg,损失一点,但是比grub4dos的14色要强多了 其次是启动速度上,在较老的机器上,启动GRLDR需要20秒左右出现菜单(内置菜单的)...我自己掐秒表算的。。。而同一U盘,同一电脑,用syslinux则只需要很短的时间,不到4秒就到菜单界面了 扩展名的要求,syslinux是有说法的,就像.bin扩展名,.0扩展名之类的,自己多了解下就能熟练使用了 再说现在有loadbin可以方便的将PE的setupldr.bin/xp的NTLDR/GRUB4DOS的GRLDR制作成.bin供syslinux调用 而且很欣慰的是,当grldr用loadbin处理后,启动速度比直接从grldr启动要快,也就是用grub4dos的mbr+GRLDR的时间比用fdisk的mbr(或者syslinux的mbr)+ldlinux.sys+grldr.bin的时间还要长.... 所以本人的U盘启动,目前是 从网上找的一段MBR+syslinux的PBR+ldlinux.sys 启动到syslinux,里面又有grldr.bin来切换到GRUB4DOS菜单 isolinux的光盘兼容性不错的 记得用mkisofs来生成iso就行了
grub 启动ISOLOADER.BIN 即可启动isolinux
楼上的知道xp安装时生成的dos菜单吧 syslinux貌似不嫩安装在ntfs 所以如果你的C盘是fat/fat32的话就可以 先用syslinux -fs c:写入syslinux的启动扇区 然后将该启动扇区备份到文件中 然后用bootsect /nt52 c:恢复c盘的启动扇区 boot.ini中添加 c:\bootsect.sys="syslinux" 理论上这样就可以了 本人懒得试验了,因为都是ntfs分区... c:\bootsect.sys是你备份的syslinux的启动扇区文件
isolinux对IMG文件的CHS参数有严格要求,所以必须使用对应的CHS参数才能正确运行IMG,相比之下,GRUB或EZBOOT就强多了。 |