EFI/GPT探索(为何win7分区时创建100M隐藏分区)

转自

http://blog.tomatoit.net/article.asp?id=348

EFI/GPT是新一代的固件/启动管理技术,比较复杂,资料很少。 
经过大量的搜索,找到了一些资料,总算是摸到了一点门,先简要地说一下。

一、技术背景。EFI是Intel开发的,最早被用于Itanium计算机(1.0版),然后是Mac(1.1版),后来Intel开放了标准和技术资料,EFI由UEFI组织管理(http://www.uefi.org)。经过一段时间的开发,升级到2.0版(UEFI 2.0),目前,最新的版本是2.1。Intel有个网站,有EFI的技术资料、开发工具、实例代码和实用工具(提供EFI Shell和Toolkit下载)(http://www.tianocore.org)。

二、基本概况。EFI技术比较重要的有CSM、Shell和Toolkit,CSM能够让用户选择是用EFI firmware还是Legacy BIOS开机,Apple通过Boot Camp支持这个功能,所以我们可以在Mac机上安装Windows。至于Shell,它提供一个开机命令行环境,它可以做许多事情,目前我们需要的是用它来启动操作系统安装程序(因为只有这样才可以将Windows x64 SP1或Windows Server 2008安装到GPT分区,旧版本和32位的的Windows不可以)。Toolkit就是一些命令行工具,就像DOS下的.com/.exe文件,不过它的扩展名是.efi。

三、分区相关。EFI需要占用一个分区,它的格式是FAT32,是隐藏的,默认不会挂载,所以在文件管理器里是看不见的。我们可以用Mac OS X安装盘或Windows Vista/2008安装盘手动创建这种分区(推荐使用Windows Vista/2008安装盘,兼容性好),Mac就不用说,用diskutil或硬盘工具,Vista/2008是这样的: 
1、准备一个全新硬盘,似乎不能已经是GPT分区表的硬盘,MBR的可以。 
开机,插入Vista/2008安装盘,从光盘启动(Mac机可以开机按住Option键,会出现两个光盘图标,选左边的)。 
2、安装画面选择语言后,点下一步,然后可以看到几个选项,一是升级,二是全新安装,下面还有两个我忘记是什么文字了,点最下面那一个,然后点下一步,再点最下面一个像命令控制台那样的图标,就进入了命令行。 
3、创建GPT分区过程: 
输入diskpart,回车。 
输入list disk,可以看到硬盘编号,0,1,2,3…什么的。 
输入select disk x(x是硬盘编号)选中你要分区的硬盘。 
输入clean清除该硬盘上的所有分区(如果你的硬盘不是未分区状态)。 
输入convert gpt将该硬盘转换成GPT分区表(基本上可以说是永久转换,没法转回MBR,除非你再次用clean清除分区表)。 
输入create partition efi size=***(***是分区大小,以MB为单位,Mac默认是200MB,稍微搞大点没关系,我分的是512MB)。 
输入create partition msr size=***(msr是Microsoft保留分区,貌似MS会用它干点什么事,我给它分了512MB)。 
输入create partition primary size=*** id=yyy创建数据分区,可用于安装操作系统(id=yyy可以不必输入,它代表的是GUID分区类型(格式,就像MBR分区表的FAT/NTFS/HFS+用一个字符串代表分区格式,只不过GUID它很长,是全球唯一标识符,这里不输入的话,在安装操作系统,格式化分区时会自动生成),详细介绍和各种分区GUID列表见此)。 
然后再重复上面那一句创建多个数据分区。 
建完了分区后,可以将EFI分区格式化一下以便挂载,方法: 
输入list partition看一下EFI分区的编号是多少。 
输入select partition x选中EFI分区(一般是1)。 
输入assign letter=x(x代表你要给它分配的盘符,随便填一个没被占用的盘符就好了) 
输入exit退出diskpart分区工具,这下又回到了命令行。 
输入format x: /fs:fat /q /y格式化这个EFI分区。 
这样一个GPT磁盘就做好了。 
在这里,其实还可以做一些其他的事情,比如把EFI Shell装进去(事先把EFI Shell的文件解压到一个FAT32格式的U盘上面(移动硬盘可能也行),怎么挂载这个U盘?请看上面。)不过要注意,这个命令行只能进来一次,如果你退回到安装介面,或者停电,那你就得重新分区(首先还得弄成MBR分区)。当然了,你也可以在安装完Vista/2008以后再做这些事情。

四、安装系统。由于我们的目的是将Windows Vista x64 SP1/2008 x64或其他支持EFI/GPT的系统安装到GPT分区,所以有一个前提条件是我们得从EFI Shell启动安装,否则安装程序是不允许你将操作系统安装到GPT分区的。至于这个EFI Shell,有一个rEFIt提供了Shell(http://refit.sourceforge.net),不过它是一个Mac软件,所以你必须得先安装Mac OS X(至少得Tiger吧)。Intel的TianoCore网站也提供了这个东西(http://www.tianocore.org),Vista/2008安装盘里不知有没有,估计没有。

所以,目前的问题是,得拿到这个Shell,从这个Shell启动安装程序。这个Shell可以安装到哪里呢,EFI分区是FAT32格式(FAT32分区格式已开放),我们可以把它安装到EFI分区(当然首先我们需要能够对这个分区进行挂载和读写),也可以把它安装到U盘或移动硬盘上的FAT32分区(看来FAT32分区还挺有用)。 
Windows挂载EFI分区就不用说了吧,上面有。 
Windows添加.efi文件启动记录到NVRAM请看这里。 
Mac挂载EFI分区和添加.efi文件启动记录请看这个贴子的11楼。 
当然啦,我们还得知道是用哪个.efi文件做启动记录,Vista/2008是用bootmgr.efi做启动记录(安装光盘里有),Leopard好像是用安装盘中/usr/standalone/i386/…/boot.efi。

目前我还没正式安装Vista x64/2008到GPT分区,因为我急着把这篇文章写出来。等安装成功了我再补充,当然了,如果有人比我先装好,那也很好。 
我担心的是目前的45nm的MacBook仍然是用1.1版的EFI,而许多PC机事实上已经使用了UEFI 2.0或2.1(也就是说PC机事实上也可以这样做)。据说2008最新款的iMac和Mac Pro已经使用了UEFI 2.0,国外有人已经安装成功了。

http://blog.csdn.net/skykingf/article/details/12909615

时间: 2025-01-31 07:34:19

EFI/GPT探索(为何win7分区时创建100M隐藏分区)的相关文章

Ubuntu安装教程--Win7系统中含100M保留分区

1.检查 Win7 保留分区 1)进入 Win7 打开库文件夹,在左侧栏找到"计算机",瞄准点右键选择"管理"菜单: 2)在出来的管理面板左边找到"磁盘管理",点击它,在右边出来各个分区: 注意:如果里面有一个100M的系统保留分区,则进行下面(3-6)的操作,否则请跳至第2步复制启动文件: 3)瞄准100M"系统保留"分区点右键,选择"更改驱动器号和路径"菜单: 4)在出来的面板中,点左下角的"

100M隐藏分区的故事

回家前夕的周三晚上,想着趁周四时间给电脑添加一个固态硬盘提高一下电脑的运行速度,看着平淡无奇的一件事,却让我一直折腾到凌晨三点. 按照网上和大家的经验,我们需要将固态硬盘放在电脑系统硬盘的位置,将机械硬盘使用托架固定到光驱的位置.按以往的经历,最挠头的是戴尔拆机,螺丝太多,想要找到硬盘就要把戴尔机器整个大卸八块,然而相较之下更让人挠头的是这100M分区带来的一个个惊险故事. PS:虽然刚开始学重装系统的时候我们就接触这100M隐藏分区但是这些我真是没有遇到过,所以也趁今天的机会温习一下它. 安装

WIN取消100M隐藏分区、异常断电后绕过修复模式

1,安装win系统时取消100M的前置隐藏分区的办法: 安装系统时,进行到安装Windows界面时,不使用图形界面的新建(E)进行分区,直接按快捷键Shift+F10打开CMD命令行,输入以下命令进行分区: diskpart#进入diskpart模式,执行以下命令:list diskselect disk 0create partition primaryformat fs=ntfs quickexit 关闭CMD命令行窗口,点击刷新(R),就会看到磁盘 0已经格式化完成了,然后点击下一步(N)

win7环境下创建超级隐藏账户

在win7环境下,系统安全得到了加强,今天来看看怎样在win7环境下新建一个超级隐藏用户. 首先,我们需要新建一个普通的账户. 在win7中我们使用net  user  添加或者删除账户都是被拒绝的. 所以,我们只有在控制面板中新加账户. 我们新建一个xiaoqin01$账户 然后我们就需要为当前用户取得管理员权限了,后面查看注册表时还要用到管理员权限.(regedit,进入注册表:regedt32,进入注册表编辑器) 我们在cmd中用net user查看不到我们刚刚新建的xiaoqin01$账

Linux交换分区的创建和调整

概述 本文对swap进行简要介绍,以及系统安装后(在运行中)如何建立或调整swap分区. 文中演示环境为: 什么是swap space? 交换分区,即swap space.它将某段磁盘空间独立划分出来,当物理内存不够的情况下,系统先把物理内存中暂时不用的数据,暂存到交换空间,腾出内存空间来,以保证程序的运行:当swap中存储的页面被访问到时,系统会将其重新载入到物理内存中去运行.在Windows.Unix.Linux系统中都有交换分区的概念. 怎么分配swap space? 作为系统物理内存的补

swap分区的创建

swap分区的创建 swap交换分区是系统RAM的补充,Swap分区支持虚拟内存.当没有足够的RAM保存系统处理的数据时会将数据写入swap分区当系统缺乏swap空间时,内核会因RAM内存耗尽而终止进程.配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄露所以swap分区可以根据物理内存的大小来分配,物理内存过小时可以设置为物理内存的2倍,随着物理内存的逐渐增大,swap的倍数可以逐渐递减. 一.将分区创建为swap 1.划分分区 此处新增一块硬盘sd

linux中硬盘分区,格式化,swap分区

1.MBR MBR(Master Boot Record):主引导分区,为一个编号为0的512字节的扇区 446bytes:bootloader,引导加载器程序,主引导记录,引导启动操作系统的程序: 64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区: 2bytes:表示MBA是否有效:55AA为有效: 注意: 1) 主分区最多四个,扩展分区只能一个 2) 扩展分区不能单独使用,要继续分成逻辑分区,逻辑分区可以由多个 3) 一个分区就是一个独立的文件系统 4) 主分区和扩展

windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)

一.硬盘模式的设置 要设置好硬盘模式,否则安装操作系统的时候,根本就不识别硬盘,自然无法安装操作系统了.此步骤主要是解决无法识别硬盘的问题. 首先,进入BIOS当中,一般在advanced当中,有一个sata mode设置,有IDE.AHCI.RAID等模式,一般设置为IED模式,在sata controller设置为disabled.说明:以上方法不同型号的电脑可能有差异,不同的选项要多试试,一般通过以上的方法可以解决安装操作系统过程中无法识别硬盘的问题了. 二.通过优盘系统 通过老毛桃优盘启

安装Centos6 分区时出现缺少/boot/efi 经验分享

前言: 某天小菜在安装centos6系统在分区的时候遇到缺少/boot/efi分区,当时非常不解,为了安装可以继续于是创建了该分区,然后又居然提示没有GPT lable,不得不终止了安装进度先排查原因,小菜不解之前安装了不下几百次Linux操作系统从来没碰过这种问题,于是网上搜了一下. 发现百度经验里给的回答是将BIOS里的Boot Mode 从自动改为 Legacy 我马上查看了自己机器的BIOS Boot Mode选项,发现没有单独的这个选项,只有UEFI&Legacy 和 UEFI,默认就