|
就目前而言fbinst在U盘启动方面应该是无敌了。但也不代表着他就没有不方便的地方。
最近,想做个USB维护盘当然现成的大把。可大部分都没有加入OSX的维护和LINUX的。当然你可能会说我要求太多了。
当然我想不是没有想这么做。而是而是目前这样实现起来比较难。
为什么比较难呢? 其实一个最主要的问题是fbinst内部的文件系统主流系统都不支持。一但fbinst把控制权交给OS(甚至是一个loader比如OSX常用的clover)的时候。OS就不认识fbinst内的文件了。
当然偶也发现唯一能识别fbinst的文件的loader是GRUB。后来查阅了GRUB的代码发现原来在GRUB内有相关的驱动。那也就是说如果我们能为我们要加的OS或者loader加入相关驱动那么我们也就能实现顺利启动了。这比较不现实涉及面太广,LINUX OSX WINDOWS
唉不能改变环境,就只能改变改自已。他不认识我,我就装成他能认识我的样子。最简单的方法,只需要改变一下fbinst就可以了。
如何改:当然fbinst的优势兼容性不能改。我们要做的仅仅只是改掉扩展数据区的文件格式,把它改为FAT32这种谁都认识的格式就好了。(啊不要扔西红柿)改成FAT32后那不就没有保护了,那到未必因为现在的fbinst只所以不能在一般模式下操作主要还是因为MBR中根本就没有fbinst数据区的信息,所以应用层的工具不能动它。而底层工具你试试,那一个不能干掉它呢。当然知道对于我们而言应用层也就够了。也就是说即使fbinst的扩展数据区的格式是FAT32只要在MBR中没有,那应用层一样发现不了他。
说了这么多废话最后说说重点
1、保留现在fbinst 8M的主数据区用于存放引导文件。如grldr,因为这个文件是fbinst自己加载的所以不用担心不能识别
2、改扩展数据区为FAT32格式,并在fbinst把控制权并引导文件之前把正确的包含有扩展数据区分区表设置好。
目前只是一点想法可能会有很多问题:1.可能在用U盘启动目标系统后扩展数据区可见,2.如果我们在设置好分区表后。loader或者目标系统又重新读取第一扇区的分区表。那一样发现不了扩展分区。
当然如果这样的相法能实现,我们就可以不用把PE的N个文件打包进ISO了然后又超级慢的加载入内存盘。 |
|