无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6939|回复: 1
打印 上一主题 下一主题

学习制作USB-HDD引导盘的历程,请高手点拨!

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-22 00:24:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很久以前就试着用U盘做引导盘,最初用Usboot、HP USB Format Tool胡乱做,什么ZIP模式、CDROM模式、HDD模式乱试一通,总是在一些机器上能行一些机器上不行,不过也没太在意,因为网上说了,由于没有一个统一的U盘引导标准,能不能引导成功要看主板和U盘支不支持以及支持哪些模式的。后来发现UltraISO也能做引导U盘,并且操作简单,这个时期网上都说USB-HDD是趋势,所以这一阶段主要是用UltraISO来做HDD模式的引导U盘,都是做单系统引导,需要做98/DOS的就做98/DOS的,需要做PE就做PE的,反正拷入文件写一下引导扇区就行了,用UltraISO做起来太容易了。基本上都是在办公室的电脑或笔记本上做,重做一遍花不了多少时间,并且在这两台电脑上成功率是100%,窃以为U盘引导这个问题是不是已经有潜规则了,基本上现在的电脑都按某个标准来支持了,至于家里那台偶尔用U盘引导成功一两次的兼容机,之所以成功率低只因它太旧了而已。直到最近办公室电脑换了之后……
      在办公室给一台没有光驱的笔记本装系统,U盘引导安装是最简单和方便的了,想也没想,按老办法用UltraISO做了个98DOS的系统U盘,本打算用来分区、格式化然后拷入XP安装文件从硬盘上装,这是最简单最不伤脑筋的装系统的办法了,可拿到这台笔记本上却引导不起来,重做并且换了HDD+模式,但还是不行。可是,这个U盘在制作它的台式机上却是可以正常引导的。这一下我就懵了,这台机器可是2009年才出厂的新机器,难道它不知道潜规则吗?后来实在没有办法,重新从网上下载了一个PE的镜像,用UltraISO写入U盘,在笔记本上一式能引导,搞定了笔记本之后,反过来用这个U盘在台式机上试却无法引导。这一次让我意识到,这么多年过去了,U盘引导的兼容性是一直存在并可能还要长期存在的……
      仔细分析了一下,办公室这台新机器,引导DOS可以,引导PE就不行,就连最官方的、微软AIK上的方法做的PE盘都不行。以前的旧电脑上,这个方法是百试百灵并且照着AIK手册做,绝对不会错的啊。没办法了,试着用Grub4DOS,装在分区引导扇区,不行,主引导记录,不行,就想,既然能引导DOS,那就用DOS加载GRUB吧,行了。可是带回家在笔记本上又连DOS都引导不了了。在笔记本上又重复一遍,装在引导扇区,可以了。但是第二天带到办公室又引导不了。是哪里做错了吗?拿到旧电脑上又是可以的。看来是二都不能得兼了啊。
      那就上SYSLINUX吧,听说SYSLINUX在引导上是兼容性最好的,但SYSLINUX这东西好像不能整进主引导记录,那SYSLINUX引导再调Grub4DOS就不能一主引导一分区引导这么简单了,好不容易搞懂了用GrubUtil中的loadbin整一个ldntldr出来,用这个作内核加载grldr这个办法,但是依然不行,引导不了。不过这回有经验了,拿到旧机器上一试,没问题呀!上网猛查一气,终于找到了不点和yaya关于U盘引导失败的讨论贴,跟我的问题好像是一样的,几年前人家就已经研究过这个问题了,那么不点发布的Grub4DOS现在应该已经解决掉这个问题了吧,就换用不点发布的Grub4DOS2009-10-16日版,这回SYSLINUX+GRUB终于成功了。在办公室新旧两台电脑上试都能进入Grub命令行方式。剩下的就是写Grub菜单命令的问题,应该不会成为多大问题。
      这次成功之后,反过来想,SYSLINUX只不过起到了加载grub的作用,并且加载国外Grub4dos 0.4.4都没有解决问题,而加载不点的版本就行了,那能不能把不点这个版本装在主引导扇区上,而不用SYSLINUX只用Grub4dos呢?遗憾的是,可以把grub装到主引导记录的工具如grubinstll都是安装集成的版本到主引导记录上,不点这个版本只有一个bootlace,而bootlace是一个16位程序,在windowsxp下写U盘就出错,但如果引导DOS来用,那岂不是还要在DOS下去驱动U盘么。没办法,用WINHEX直接将grldr.mbr写入U盘0道,一共16个扇区,再把分区表还原就行了。但是这样子做的结果还是失败,不过,拿到老机器上却是可以进入Grub命令行的。这是不是说明不点的grub4dos还是没有彻底解决这个问题,而用SYSLINUX+Grub能行是因为还是借助了一点SYSLINUX么?
      SYSLINUX+Grub引导进入Grub命令行成功之后,进一步分析总结出几点:
      1.用UltraISO写入vista引导扇区或微软AIK方法(用diskpart重建分区)的方法能引导PE的机器,在Grub命令行方式下可看到U盘被识别成了(hd0);
      2.用UltraISO写入win98引导扇区制作DOS引导盘能引导成功的机器,U盘则被识别成(fd);
      3.1和2这两种情况如果用这种简单方式来作U盘引导盘是二者不可得兼的,识别成(hd0)的时候能引导PE但不能引导DOS,识别成(fd)的时候能引导DOS但不能引导PE;
      4.如果用windows 7的diskpart重新分区或用bootsect写主引导记录,则情况更为怪异,这时SYSLINUX+Grub能进入Grub命令行,但是find命令却找不到U盘下的文件,不能用find --set-root的办法来定位U盘。但是chainloader (fd0)/bootmgr却又能加载U盘上的PE引导文件。但这个没有用,因为Grub命令如果这样子写,那拿到识别U盘为(hd0)的机器上肯定无法引导U盘上的PE的。
      5.第4点的问题很好解决,用别的工具重新分区或重写主引导记录,用UltraISO和diskgenius都试过,随便弄一下就行了。
      最后,仍有两个疑问主要集中在机器把USB-HDD识别成(fd0)的情况下,盼高手解答:
      1.如果说不点的Grub4dos没有解决这个问题,那为什么我用SYSLINUX+Grub4dos 2009-10-16 就能成功而用SYSLINUX+Grub4dos就不行呢?但如果说不点已经解决了这个问题,那为什么把grub放在主引导记录却又不能引导呢(在识别成(hd0)的机器上这样也行的。);   
      2.难道用WINHEX直接写入的方式错了吗?莫非bootlace即便不加任何参数也会在写入时还改了某些地方?在Windows XP环境下如何使用bootlace呢?或者说在Windows XP环境下有什么工具可以把不点这个版本的grub4dos正确地写入U盘主引导记录吗?
2#
 楼主| 发表于 2010-9-22 00:43:40 | 只看该作者

补充说明

本想写的是心得体会,写完才发现记成了流水帐,感兴趣的主要看后面的总结和问题吧,主要是希望能解决问题。
之所以主要提直接引导DOS和PE的问题是因为这两个是维护的基本环境吧。重点是如何在把U盘识别成(fd)的情况下引导PE。这是因为在这种情况下直接引导DOS是没问题的,而在把U盘识别成(hd)的机器上引导PE也没什么问题,并且在能够引导PE的前提下,用镜像方式引导DOS也不会成为什么问题的。
所以,我的问题其实就是:如何做一张U盘,能在把U盘识别成硬盘和软盘这两种情况下都能引导PE。我试过fbinstll,能解决我的这个问题,只是……占用8M空间,8M空间已经可以装几个DOS或者其他简单的操作系统了,虽说现在U盘很便宜,8M也只值几分钱,但我还是不喜欢,有没有别的办法?我只要方法,不要现成的镜像!谢谢!(fbinstll)

[ 本帖最后由 欲飞 于 2010-9-22 00:52 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-25 21:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表