无忧启动论坛

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

[分享] 大容量U盘既支持UEFI和BIOS启动,又可存放大于4G文件的方法

    [复制链接]
发表于 2014-7-27 10:51:02 | 显示全部楼层 |阅读模式
本帖最后由 yaojy 于 2014-7-30 11:46 编辑

为免于误会,先声明一下:①本方法是为了解决U盘使用ExFAT或NTFS格式时支持UEFI启动问题,并提高启动成功率。不是为了“隐藏”,里面提及的“隐藏”和“显现”,仅是为Windows资源管理器可以识别到U盘的第二分区,并进行读写操作。②仅介绍一种BIOS/UEFI双启动的方法,并不涉及到“技术”。如果硬要说技术,那就是UEFI标准的技术。按EFI启动的技术标准,它可以识别到并读取Windows资源管理器不识别的U盘分区。

买了个32G支持USB3.0接口的U盘。做U启后发现有个难题:支持UEFI启动,U盘只好用FAT32格式,但Win8的x86和x64整合包大于4G,无法存入U盘。ExFAT和NTFS磁盘格式支持大文件,但又不支持UEFI启动。
经查资料,UEFI支持隐藏分区启动,又根据高手的经验,FAT16格式和“高端隐藏”可以提高UEFI启动兼容性。因此尝试将U盘分2个区,前面分区用ExFAT格式,用于做BIOS启动和存放文件资料;后面的用FAT16格式,专用于UEFI启动。
因UEFI启动分区是U盘的第二个分区,一般情况下,Windows只认闪盘(Flash Disk)第一个分区,所以在“资源管理器(我的电脑)”看不到u盘后面的FAT16分区。因而UEFI的PE(RamOS)启动后,无法识别和管理FAT16分区的。FAT16分区不能放这些PE的外置程序,不过无所谓,外置程序就放在ExFAT分区中,跟BIOS启动的PE共用外置程序,一举两得。
肯定有高手会说,可见区放PE和外置不安全,我倒觉得没什么问题。一来U盘是自己用,很少外借(几十块钱一个,有电脑的人都买得起),二来现在病毒(木马)以“赚钱”为目的,不会特意破坏电脑系统(因为用户重装系统对木马所有者未必是好事)。因此这几年来,我没有学论坛高手那样折腾什么“隐藏”,都是用Win7/8的Diskpart组件制作U启(因为Diskpart分区时会自动进行4K对齐,写入MS的NT6.x的MBR,又可设置“族”参数,有助于提高大文件拷入速度,关键是MS的MBR兼容性还是相当不错的)
本方法用到2个软件:Diskgenius和bootice,本论坛有免费版下载。具体制作方法介绍如下:
1、将U盘分2个区
先备份U盘的资料。运行diskgenius免费版,点选目标U盘,备份U盘分区表(建议养成备份习惯)。调整U盘分区,在后面留1~2G自由空间(大小根据自己UEFI启动文件大小而定),在自由空间新建一主分区,选FAT16格式。也可以删除U盘所有分区后重新分区。

TT截图00.png

2、格式化第一分区为ExFAT格式,拷入BIOS启动文件。
在“资源管理器(我的电脑)”中格式化U盘为ExFAT格式。再拷入BIOS启动文件。

TT截图01.png

TT截图08.png

TT截图09.png

3、显现FAT16分区,并拷入UEFI启动文件
运行bootice,选中目标U盘,点“分区管理”进入分区操作界面。先将第一区(ExFAT区)隐藏,然后将第二区(FAT16区)显现。这样“资源管理器(我的电脑)”中就可以对FAT16区进行管理了。拷入UEFI启动文件。

TT截图03.png

TT截图04.png

TT截图07.png

4、显现ExFAT分区,隐藏UEFI启动分区(FAT16区)
在bootice“分区管理”界面中,将FAT16区(第二区)隐藏,然后将第一区(ExFAT区)显现。关闭退出“分区管理”界面。
顺便看看U盘的“主引导记录”是否是Nt6.x(bootmgr),不是的话,改回NT6.x的MBR。当然,MBR也可以用其它的,视你的可见区PE需要而定。

TT截图05.png

TT截图06.png

点评

感谢分享+100  发表于 2014-8-16 15:06

评分

参与人数 4无忧币 +20 收起 理由
2010nmb + 5 最简单的就是最好的!
易广白 + 5 很给力!
信长野望 + 5 赞一个!
zhczf + 5 很给力!

查看全部评分

 楼主| 发表于 2014-7-27 11:08:34 | 显示全部楼层
其实我一直不赞成折腾。
好像有些主板UEFI不支持读取NTFS分区中的EFI,所以就这么折腾一下子
回复

使用道具 举报

 楼主| 发表于 2014-7-27 22:42:49 | 显示全部楼层
zds1210 发表于 2014-7-27 18:06
晕。楼主好像外星人一样,这样子的两分区法的高 端隐藏,N久以前就可以用B+U+方法实现。最早隐藏区的外置加 ...

呵呵,我有注意到你们折腾隐藏方式。以前nt5xPE时曾经玩过隐藏,后来发现通过隐藏来确保所谓的“安全”,实在是瞎折腾。
我从来不用bootpart之类,也不做主流PE。我一般是在“主流PE”流行前发布“我”的PE,比如win8PE_x64、Win81OS俄文汉化版等。
我做的64位PE(包括win7的PE)都支持BIOS和UEFI双启动,无需其它“大师”的U+B+作品(它们有些是基于我的作品做的)。这个就不用zds1210大侠提点了。

点评

原来是新秀 ,看了你的主题帖子,做的64位PE不错啊。赞一下。 说声对不起了。折腾吧,想怎么折腾就怎么折腾,有不同的做法,技术也有进步。  详情 回复 发表于 2014-7-27 22:51
回复

使用道具 举报

 楼主| 发表于 2014-7-30 11:49:42 | 显示全部楼层
今天在一台所谓“弱UEFI”机子上成功启动UEFI的PE。原来单分区FAT32格式UEFI启动失败。
说明这个方法的兼容性还是不错的
回复

使用道具 举报

 楼主| 发表于 2014-8-8 14:47:56 | 显示全部楼层
yangguangtus 发表于 2014-8-8 13:29
请教楼主:在一张截图中,对齐的 2K(2048),与选择4K(4096)对齐有何区别。是Diskgenius默认设置吗?

这个问题现在觉得有点玄。据我所知,所谓的4K对齐应该是很久以前的问题,现在新标准的硬盘应当不必过于在意4k对齐问题。大家不必对这个问题关心过度。
第一张图所示,是DG默认使用win7的diskpart的缺省参数,实则是1M对齐。可以认为已经4k对齐,因为1M是4K的整数倍。
回复

使用道具 举报

 楼主| 发表于 2014-8-16 16:47:29 | 显示全部楼层
信长野望 发表于 2014-8-16 14:55
原版win7+win8怎么设置?没有PE

用bootice编辑BCD菜单,注意右上要选local(本地)分区。
或者用bcdboot添加菜单项
回复

使用道具 举报

 楼主| 发表于 2014-9-18 15:00:47 | 显示全部楼层
thepromise 发表于 2014-9-18 14:17
原版win8.1 BCD设置了本地也不能安装,求指点

你的意思是从U盘启动安装Win8.1吗?那也很简单。
方法一:兼容BIOS格式启动。
1、将Exfat分设为“活动(台湾地区称之为“作用”)”。
2、将光盘ISO下所有文件夹(文件)复制到Exfat分区。
方法二:UEFI方式启动。
1、将ISO的boot、EFI文件夹复制到fat16分区,再建一个sources文件夹,将ISO中的boot.wim文件复制到里面。
2、在Eafat分区建个sources文件夹,将ISO中的install.wim文件复制到里面。
回复

使用道具 举报

 楼主| 发表于 2014-9-18 17:48:23 | 显示全部楼层
thepromise 发表于 2014-9-18 15:37
方法一没试,方法2还是不能启动安装。
file:\windows\system32\boot\winload.efi

想搞明白,你是想把win8.1安装盘的ISO镜像文件,放入U盘,然后从U盘启动来安装win8.1系统,
还是从U盘启动论坛那些PE,然后安装Win8.1系统呢?
另外,你因何要改BCD?你要装的系统是32位的还是64位的?
不知道这些,无法有针对性地回答你。
你更不要问我UD的问题,我从来都不支持UD。我这个帖子就是介绍标准的微软启动方式的。
回复

使用道具 举报

 楼主| 发表于 2014-9-18 21:17:18 | 显示全部楼层
thepromise 发表于 2014-9-18 20:25
现在的U盘是量产成CDROM+UD+EXFAT
1、CDROM里放着WIN7_64
2、UD里放着PE+DOS

既然热衷搞什么2启/3启,就不必来我这贴子问,到其它贴子问吧。
回复

使用道具 举报

 楼主| 发表于 2014-10-5 22:31:10 | 显示全部楼层
zhxy9804 发表于 2014-10-5 18:53
不想用exfat,想用ntfs,不知道可否?

当然可以用ntfs格式。
之所以用Exfat,是因为该格式原为USB闪存盘读写而生,有利于延长闪存寿命。
不过很多人不在乎U盘寿命问题了。而且不少人还在用老旧的XP_SP2/3,不打专门补丁不能识别Exfat格式。

点评

我U盘是ssd的,应该不能算普通闪存吧,插电脑上就显示本地磁盘 http://bbs.wuyou.com/forum.php?mod=viewthread&tid=336359  详情 回复 发表于 2014-10-5 23:05
回复

使用道具 举报

 楼主| 发表于 2014-10-6 09:27:51 | 显示全部楼层
zhxy9804 发表于 2014-10-5 23:05
我U盘是ssd的,应该不能算普通闪存吧,插电脑上就显示本地磁盘
http://bbs.wuyou.net/forum.php?mod=vie ...

如果是SSD的,那你的U盘是USB移动硬盘了,用NTFS格式自然没问题

点评

刚试了,也测试成功了,现在的问题是 难道要两个分区都要得有重复的文件吗,比如pe 超大号的wim,能不能共享wim ,共享bcd菜单之类的呢?  详情 回复 发表于 2014-10-6 20:59
回复

使用道具 举报

 楼主| 发表于 2014-10-6 23:12:49 | 显示全部楼层
zhxy9804 发表于 2014-10-6 20:59
刚试了,也测试成功了,现在的问题是
难道要两个分区都要得有重复的文件吗,比如pe 超大号的wim,能不能 ...

移动设备中,BCD参数通常是从boot分区读取有关文件。普通USB闪存盘采用Exfat+FAT分区方式MBR/UEFI双启动,内核在EXFAT和FAT分区要重复。但一般不会在U盘里放很多PE的吧。
你的U盘属SSD移动硬盘,支持多分区识别,你可以分一个FAT32的活动主分区,这样MBR/UEFI启动就可以共存于FAT32分区了。

点评

说的也是,其实我激活fat分区就行了,  详情 回复 发表于 2014-10-6 23:28
回复

使用道具 举报

 楼主| 发表于 2014-10-7 08:51:40 | 显示全部楼层
zhxy9804 发表于 2014-10-7 08:18
我今早刚试了一下,激活fat分区就行了,然后启动就从fat分区启动了,看样子bcd菜单还是得两份不同位置咯

你的意思是将MBR和UEFI启动用的BCD共用一个?
窃以为非常不必要,理由如下:
1、BCD文件的位置由bootmgr/bootx64.efi决定,要改不大容易。
2、bcd参数中,mbr启动加载的是winload.exe,而UEFI启动加载的是winload.efi,不能混用。这样BCD文件的条目也就不能共用,得分开写,吃力不讨好。
3、MBR的bcd可以启动x68/x64系统,而UEFI的bcd通常只能启动x64的系统(常见电脑的UEFI基本上是x64的),共用bcd菜单也造成不少困扰。

点评

按照前面ntfs数据,后面fat16当启动,我bios启动,发现启动菜单原先是中文的,现在变成了乱码  详情 回复 发表于 2014-10-7 10:09
回复

使用道具 举报

 楼主| 发表于 2014-10-7 19:09:55 | 显示全部楼层
zhxy9804 发表于 2014-10-7 10:09
为什么不前面fat16 ,后面extfat呢,这样子不一样共用吗?

对于普通USB闪存盘,据说FAT分区在后面UEFI启动成功率高。
对于移动硬盘,放哪都一样的。
至于中文字符变乱码,很可能是指定位置没有zh-CN文件夹,或该文件夹中没有bootmgr.exe.mui文件,也可能是指定位置没有或Font文件夹,或者该文件夹中没有字体文件。请细致检查。

点评

折腾一下午,硬盘双启动算是搞定了,无非是传统模式mbr引导bootmgr,uefi模式搜索那个efi 一张光盘双启动怎么搞呢?求解!  详情 回复 发表于 2014-10-7 19:14
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-8 07:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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