番外1 对PE启动U盘的思考
我们在使用官方软件工具(如微PE工具箱)制作任何一个启动U盘的时候,他们总会提示我们:U盘需要格式化!!请备份好自己的数据!!
我一直在思考:为什么一定要格式化呢?需要格式化吗? 为了解决这个问题,我开始思考启动盘的本质.
启动盘的本质是什么?它怎么就能从一块平平无奇的U盘华丽转身为一个万能的启动盘了呢?
启动盘只是一块拥有特定文件系统类型和目录结构的一块普普通通的U盘啊!
既然这样,如果我们能够完全的模仿出一块完整的启动盘的特征,那么,我们可以使用微pe的ISO文件直接手搓一个启动U盘.
我们是用的启动技术原理一定是==Ramdisk==.
启动盘的特殊之处在哪里?
1.有一个EFI引导分区.这个分区的文件系统类型应该是FAT32或FAT16的.
2.包含一个可启动的PE系统镜像
3.包含一个SDI文件
以上的三个特征中,哪一个可能需要我们对U盘进行格式化?那肯定是第一个.因为理论上,改变文件系统类型需要格式化分区.
第二个和第三个都只需要复制粘贴文件到U盘里就可以了.
所以,现在问题变成了:我们如何在不格式化U盘的情况下,给U盘制造一个新的EFI分区?
压缩卷 给了我一丝灵感.
何为 "压缩卷"?
我们在 磁盘管理 里右击一个分区的时候,可能有一个选项就是 压缩卷.压缩卷不是把分区里的文件压缩,而是把分区剩余的空间"割"下来,并形成一个新的分区.这种操作并不会格式化分区和磁盘,而且完成的很迅速.
既然这样,直接把U盘没用的空间压缩出300MB,然后把这300MB格式化成FAT32文件系统,不就可以得到一个U盘的EFI分区了吗?
这是可行的.
这是我的操作:
这样,我们绕过了U盘格式化,直接产生了EFI分区.
下一个问题随之而来:EFI分区现在是空的.他的文件目录结构哪里可以搞到?
我们以前说过,EFI分区里的文件目录结构是不会改变的,因为如果改变,UEFI固件则无法扫描到efi文件.
所以,世界上所有Windows10系统的EFI分区里的文件结构都是一样的.我们就可以直接把自己电脑里的EFI分区里的所有文件直接复制到自己U盘的EFI分区里就完成了EFI分区的文件目录结构建立.(使用DiskGenius可以复制隐藏分区里的文件)
但是,复制出来的EFI文件夹里的内容不能直接使用.我们需要修改里面的BCD文件.因为这个BCD文件里面保存的还是Windows10系统的BCD启动菜单.
如何修改BCD?这与我们的微pe镜像有很大联系.
获取微pe的wim包
微pe需要使用ramdisk模式启动.ramdisk模式启动的核心是必须要有操作系统的wim包.所以,第一步便是获取微pe的wim包.方法很简单.
操作方法:
1.打开微pe的ISO镜像
2.打开文件夹 WEPE
3.WEPE64.WIM就是微pe的wim包.
4.把它复制到U盘的任意位置即可(最好不要复制到EFI分区)
第二步是获取SDI文件.SDI文件的位置在和WEPE64.WIM同一个文件夹里.名字叫做WEPE.SDI.把他复制到U盘里的任意位置即可.
编辑BCD
这里编辑的BCD文件,一定是U盘里的EFI分区里的BCD文件,不是电脑系统的BCD文件.理由很简单,这个BCD文件必须跟着U盘走.不然的话,换一个电脑这个启动盘就不能启动了.
编辑ramdisk启动的BCD菜单的方法已经在上一篇文章 《Ramdisk启动模式简介》里面介绍了.在这里不再赘述.
启动试验
启动成功.
综上所述,我们可以在不格式化U盘的情况下手搓一个启动U盘.这也能够加深我们对于启动系统的理解.
所以,我很不理解为什么制作启动盘的工具一定要把我们的U盘格式化......
本文由博客一文多发平台 OpenWrite 发布!