编辑启动选项分区:1 移动硬盘分区:624aa2eo

46937人阅读
在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛。在这个过程中间,最大的困惑莫过于给硬盘进行分区。虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手。这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法。
首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制。
对习惯于使用dos或windows的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,非常好理解。但对这些初上手 red hat linux的用户,可就有点恼人了。因为对red hat linux用户来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。red hat linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫&载入&的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
对windows用户来说,操作系统必须装在同一分区里,它是商业软件! 所以你没有选择的余地!对red hat linux来说,你有了较大的选择余地,你可以把系统文件分几个区来装(必须要说明载入点),也可以就装在同一个分区中(载入点是&/&)。
下面从这两个方面入手,来讲解这个困扰大家的问题。
Linux 的分区规定
   1. 设备管理 &
&在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。
对于ide硬盘,驱动器标识符为&hdx~&,其中&hd&表明分区所在设备的类型,这里是指ide硬盘了。&x&为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),&~&代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个ide硬盘上的第三个主分区或扩展分区,hdb2表示为第二个ide硬盘上的第二个主分区或扩展分区。对于scsi硬盘则标识为&sdx~&,scsi硬盘是用&sd&来表示分区所在设备的类型的,其余则和ide硬盘的表示方法一样,不在多说。
例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为 hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。
2. 分区数量 &&
要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。   例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。
3. 各分区的作用 &&&
在 Linux 中规定,每一个硬盘设备最多能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。   对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。
主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。
这就是主分区和扩展分区及逻辑分区的最大区别。  
我们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。   Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。   因此,Linux 下面每一个硬盘总共最多有 16 个分区。   对于逻辑分区,Linux 规定它们必须建立在扩展分区上(在 DOS 和 Windows 系统上也是如此规定),而不是主分区上。   因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为 操作系统 的引导。 除去上面这些各种分区的差别,我们就可以简单地把它们一视同仁了。   4. 分区指标  
对于每一个 Linux 分区来讲,分区的大小和分区的类型是最主要的指标。容量的大小读者很容易理解,但是分区的类型就不是那么容易接受了。分区的类型规定了这个分区上面的文件系统的格式。   Linux 支持多种的文件系统格式,其中包含了我们熟悉的FAT32、FAT16、NTFS、HP-UX,以及各种 Linux 特有的 Linux Native和 Linux Swap分区类型。   在 Linux 系统中,可以通过分区类型号码来区别这些不同类型的分区。各种类型号码在介绍Fdisk的使用方式的时候将会介绍。 && 5& 常用分区
/boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个 分区是有必要的,因为目前大多数的pc机要受到bios的限制,况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够 启动。这个分区的大小约在50mb&100mb之间。但是如果想用lilo启动red hat linux系统的话,含有/boot的分区必须完全在柱面1023以下。又由于8gb后的数据lilo不能读取,所以red hat linux要安装在8gb的区域以内。
/usr分区,是red hat linux系统存放软件的地方,如有可能应将最大空间分给它。
/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。如 果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普 通用户访问哪些文件等。其实单用户也有建立这个分区的必要,因为没这个分区的话,那么你只能以根用户的身份登陆系统,这样做是危险的,因为根用户对系统有 绝对的使用权,可一旦你对系统进行了误操作,麻烦也就来了。
/var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区。
/tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。 这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操 作,所以它通常会比其它的部分更快地发生问题。
/bin分区,存放标准系统实用程序。
/dev分区,存放设备文件。
/opt分区,存放可选的安装的软件。
/sbin分区,存放标准系统管理文件。
上面介绍了几个常用的分区,一般来说我们需要一个swap分区,一个/boot分区,一个/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照你个人来定的。但记住至少要有两个分区,一个swap分区,一个/分区。
Fdisk 使用详解
下面通过介绍 Fdisk 的使用方法,来巩固上面所学到的各种关于 Linux 分区的知识。   Fdisk 是各种 Linux 发行版本中最常用的分区工具,是被定义为 Expert 级别的分区工具,它让初学者有点望而却步。   1. Fdisk 参数说明    运行Fdisk的时候,首先映入眼帘的是欢迎界面,用户通过在这个界面中输入命令参数来操作Fdisk。用户通过提示键入 &m&,可以显示 Fdisk 命令各个参数的说明。 读者可以看到 Fdisk 有很多参数,可是经常使用的就是几个,如果读者熟练掌握这几个参数就可以流畅地运用 Fdisk,对 Linux 的硬盘进行分区。我们先简单介绍各个参数的意义,然后详细说明几个重点参数。   用户在 Linux 中进行分区的时候,最常用的参数分别是 d、l、m、n、p、q、t、w 等。
2.用 Fdisk 进行分区
在 Linux 分区过程,一般是先通过 p 参数来显示出硬盘分区表信息,然后根据信息确定将来的分区。如果想完全改变硬盘的分区格式,就可以通过 d 参数一个个删除存在的硬盘分区。
例如 d1,d2。 删除完毕,就可以通过 n 参数来增加新的分区。当按下 &n& 后,我们就可以看到新增的分区。这里要选择新建的分区类型,是主分区还是扩展分区;然后选择 p 或是 e。它们的区别在上文中已经说明。然后就是设置分区的大小。需要提醒注意的是,如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区了,在增加分区的时候,其类型都是默认的 Linux Native,如果需要把其中的某些分区改变为其它类型,例如 Linux Swap 或 FAT32 等,可以通过命令 t 来改变, 当按下 &t& 改变分区类型的时候,系统会提示要改变哪个分区,并且改变为什么类型(如果想知道系统所支持的分区类型,键入 l)。Linux 所支持的分区类型号码和其对应的分区类型,可以参考表 2(这些信息可以用 l 命令得到)。改变完了分区类型,就可以按下 &w&,保存并且退出。如果不想保存,那么可以选择 &q& 直接退出。
fdisk 是一款强大的磁盘操作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,通过-l 参数,能获得机器中所有磁盘的个数,也能列出所有磁盘分区情况;
[root@localhost beinan]# fdisk -l Disk /dev/hda: 80.0 GB,
bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
&& Device Boot&&&&& Start&&&&&&&& End&&&&& Blocks&& Id& System /dev/hda1&& *&&&&&&&&&& 1&&&&&&&& 765&&&& 6144831&&& 7& HPFS/NTFS /dev/hda2&&&&&&&&&&&& 766&&&&&&& 2805&&& &&& c& W95 FAT32 (LBA) /dev/hda3&&&&&&&&&&& 2806&&&&&&& 7751&&& &&& 5& Extended /dev/hda5&&&&&&&&&&& 2806&&&&&&& 3825&&&& 8193118+& 83& Linux /dev/hda6&&&&&&&&&&& 3826&&&&&&& 5100&&& && 83& Linux /dev/hda7&&&&&&&&&&& 5101&&&&&&& 5198&&&&& 787153+& 82& Linux swap / Solaris /dev/hda8&&&&&&&&&&& 5199&&&&&&& 6657&&& && 83& Linux /dev/hda9&&&&&&&&&&& 6658&&&&&&& 7751&&&& 8787523+& 83& Linux
在上面Blocks中,表示的是分区的大小,Blocks的单位是byte ,我们可以换算成M,比如第一个分区/dev/hda1的大小如果换算成M,应该是4=6000M,也就是6G左右,其实没有这么 麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了; &&& System 表示的文件系统,比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系统;.
在此例中,我们要特别注意的是/dev/hda3分区,这是扩展分区;他下面包含着逻辑分区,其实这个分区相当于一个容器;从属于她的有 hda5,hda6,hda7,hda8,hda9 ;
我们还注意到一点,怎么没有hda4呢?为什么hda4没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4算都是主分区;hda4不可能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4这个分区,当然我们可以把其中的一个分区设 置为主分区,只是我当时分区的时候没有这么做而已;
再仔细统计一下,我们看一看这个磁盘是不是还有空间?hda1+hda2+hda3=实际已经分区的体积,所以我们可以这样算 hda1+hda2+hda3=45 =
(b),换算成M单位,小数点向前移三位,所以目前已经划分好的分区大约占用体积是(M),其实最精确的计算 4=60800.67(M);而这个磁盘大小是80.0 GB (byte),其实实际大小也就是(M);通过我们一系列的计算,我们可以得出这个硬盘目前还有使用的空间;大约还有18G未分区的空间;
我们也可以指定fdisk -l 来查看其中一个硬盘的分区情况;
[root@localhost beinan]# fdisk -l /dev/sda
Disk /dev/sda: 60.0 GB,
bytes 64 heads, 32 sectors/track, 57231 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes
&& Device Boot&&&&& Start&&&&&&&& End&&&&& Blocks&& Id& System /dev/sda1&&&&&&&&&&&&&& 1&&&&&& 57231&&& && 83& Linux
通过上面情况可以知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差不多是百分百了;
我们还可以来查看 /dev/hda的
[root@localhost beinan]# fdisk -l /dev/hda
自己试试看?
我们也可以通过: cat /proc/partitions查看目前机器中的所有磁盘及分区情况
df 命令; df 是来自coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;
[root@localhost beinan]# df -lh
Filesystem&&&&&&&&&&& 容量& 已用 可用 已用% 挂载点
/dev/hda8&&&&&&&&&&&&& 11G& 6.0G& 4.4G& 58% /
/dev/shm&&&&&&&&&&&&& 236M&&&& 0& 236M&& 0% /dev/shm
/dev/sda1&&&&&&&&&&&&& 56G&& 22G&& 35G& 39% /mnt/sda1
我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;
其它的参数请参考 man df
通过以上两个方面的学习,相信对于初学者来说,分区已经不再是 Linux 进阶中的绊脚石了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:443463次
积分:5148
积分:5148
排名:第2570名
原创:57篇
转载:190篇
评论:93条
(1)(1)(2)(3)(1)(4)(3)(1)(1)(2)(3)(1)(7)(16)(4)(4)(9)(15)(21)(18)(131)6524人阅读
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个物理硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2TB的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。GPT分区表支持最多128PB的硬盘和分区。
了解GUID分区表之前我们先要了解一下什么是EFI(Extensible
Firmware Interface 可扩展固件接口):
含义EFI的产生
BIOS技术的兴起源于IBM
PC/AT机器的流行以及第一台由康柏公司研制生产的“克隆”PC。在PC启动的过程中,BIOS担负着初始化硬件,检测硬件功能,以及引导操作系统的责任,在早期,BIOS还提供一套运行时的服务程序给操作系统及应用程序使用。BIOS程序存放于一个掉电后内容不会丢失的只读存储器中,系统加电时处理器的第一条指令的地址会被定位到BIOS的存储器中,便于使初始化程序得到执行。
众所周知,英特尔在近二十年来引领以x86系列处理器为基础的PC技术潮流,它的产品如CPU,芯片组等在PC生产线中占据绝对领导的位置。因此,不少人认为这一举动显示了英特尔公司欲染指固件产品市场的野心。事实上,EFI技术源于英特尔安腾处理器(Itanium)平台的推出。安腾处理器是英特尔瞄准服务器高端市场投入近十年研发力量设计产生的与x86系列完全不同的64位新架构。在x86系列处理器进入32位的时代,由于兼容性的原因,新的处理器(i80386)保留了16位的运行方式(实模式),此后多次处理器的升级换代都保留了这种运行方式。甚至在含64位扩展技术的至强系列处理器中,处理器加电启动时仍然会切换到16位的实模式下运行。英特尔将这种情况归咎于BIOS技术的发展缓慢。自从PC兼容机厂商通过净室的方式复制出第一套BIOS源程序,BIOS就以16位汇编代码,寄存器参数调用方式,静态链接,以及1MB以下内存固定编址的形式存在了十几年。虽然由于各大BIOS厂商近年来的努力,有许多新元素添加到产品中,如PnP
BIOS,ACPI,传统USB设备支持等等,但BIOS的根本性质没有得到任何改变。这迫使英特尔在开发更新的处理器时,都必须考虑加进使效能大大降低的兼容模式。有人曾打了一个比喻:这就像保时捷新一代的全自动档跑车被人生套上去一个蹩脚的挂档器。
然而,安腾处理器并没有这样的顾虑,它是一个新生的处理器架构,系统固件和操作系统之间的接口都可以完全重新定义。并且这一次,英特尔将其定义为一个可扩展的,标准化的固件接口规范,不同于传统BIOS的固定的,缺乏文档的,完全基于经验和晦涩约定的一个事实标准。基于EFI的第一套系统产品的出现至今已经有五年的时间,如今,英特尔试图将成功运用在高端服务器上的技术推广到市场占有率更有优势的PC产品线中,并承诺在2006年间会投入全力的技术支持。
比较EFI和BIOS
一个显著的区别就是EFI是用模块化,C语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较BIOS而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。它运行于32位或64位模式,乃至未来增强的处理器模式下,突破传统16位代码的寻址能力,达到处理器的最大寻址。它利用加载EFI驱动的形式,识别及操作硬件,不同于BIOS利用挂载实模式中断的方式增加硬件功能。后者必须将一段类似于驱动的16位代码,放置在固定的0x000C0000至0x000DFFFF之间存储区中,运行这段代码的初始化部分,它将挂载实模式下约定的中断向量向其他程序提供服务。例如,VGA图形及文本输出中断(INT
10h),磁盘存取中断服务(INT 13h)等等。由于这段存储空间有限(128KB),BIOS对于所需放置的驱动代码大小超过空间大小的情况无能为力。另外,BIOS的硬件服务程序都已16位代码的形式存在,这就给运行于增强模式的操作系统访问其服务造成了困难。因此BIOS提供的服务在现实中只能提供给操作系统引导程序或MS-DOS类操作系统使用。而EFI系统下的驱动并不是由可以直接运行在CPU上的代码组成的,而是用EFI
Byte Code编写而成的。这是一组专用于EFI驱动的虚拟机器指令,必须在EFI驱动运行环境(Driver
Execution Environment,或DXE)下被解释运行。这就保证了充分的向下兼容性,打个比方说,一个带有EFI驱动的扩展设备,既可以将其安装在安腾处理器的系统中,也可以安装于支持EFI的新PC系统中,而它的EFI驱动不需要重新编写。这样就无需对系统升级带来的兼容性因素作任何考虑。另外,由于EFI驱动开发简单,所有的PC部件提供商都可以参与,情形非常类似于现代操作系统的开发模式,这个开发模式曾使Windows在短短的两三年时间内成为功能强大,性能优越的操作系统。基于EFI的驱动模型可以使EFI系统接触到所有的硬件功能,在操作操作系统运行以前浏览万维网站不再是天方夜谭,甚至实现起来也非常简单。这对基于传统BIOS的系统来说是件不可能的任务,在BIOS中添加几个简单的USB设备支持都曾使很多BIOS设计师痛苦万分,更何况除了添加对无数网络硬件的支持外,还得凭空构建一个16位模式下的TCP/IP协议栈。
一些人认为BIOS只不过是由于兼容性问题遗留下来的无足轻重的部分,不值得为它花费太大的升级努力。而反对者认为,当BIOS的出现制约了PC技术的发展时,必须有人对它作必要的改变。
EFI和操作系统
EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。不少人感觉它的不断发展将有可能代替现代的操作系统。事实上,EFI的缔造者们在第一版规范出台时就将EFI的能力限制于不足以威胁操作系统的统治地位。首先,它只是硬件和预启动软件间的接口规范;其次,EFI环境下不提供中断的访问机制,也就是说每个EFI驱动程序必须用轮询的方式来检查硬件状态,并且需要以解释的方式运行,较操作系统下的驱动效率更低;再则,EFI系统不提供复杂的存储器保护功能,它只具备简单的存储器管理机制,具体来说就是指运行在x86处理器的段保护模式下,以最大寻址能力为限把存储器分为一个平坦的段,所有的程序都有权限存取任何一段位置,并不提供真实的保护服务。当EFI所有组件加载完毕时,系统可以开启一个类似于操作系统Shell的命令解释环境,在这里,用户可以调入执行任何EFI应用程序,这些程序可以是硬件检测及除错软件,引导管理,设置软件,操作系统引导软件等等。理论上来说,对于EFI应用程序的功能并没有任何限制,任何人都可以编写这类软件,并且效果较以前MS-DOS下的软件更华丽,功能更强大。一旦引导软件将控制权交给操作系统,所有用于引导的服务代码将全部停止工作,部分运行时代服务程序还可以继续工作,以便于操作系统一时无法找到特定设备的驱动程序时,该设备还可以继续被使用。
一般认为,EFI由以下几个部分组成:
1. Pre-EFI初始化模块
2. EFI驱动执行环境
3. EFI驱动程序
4.兼容性支持模块(CSM)
5. EFI高层应用
6. GUID磁盘分区
各部分功能
在实现中,EFI初始化模块和驱动执行环境通常被集成在一个只读存储器中。Pre-EFI初始化程序在系统开机的时候最先得到执行,它负责最初的CPU,主桥及存储器的初始化工作,紧接着载入EFI驱动执行环境(DXE)。当DXE被载入运行时,系统便具有了枚举并加载其他EFI驱动的能力。在基于PCI架构的系统中,各PCI桥及PCI适配器的EFI驱动会被相继加载及初始化;这时,系统进而枚举并加载各桥接器及适配器后面的各种总线及设备驱动程序,周而复始,直到最后一个设备的驱动程序被成功加载。正因如此,EFI驱动程序可以放置于系统的任何位置,只要能保证它可以按顺序被正确枚举。例如一个具PCI总线接口的ATAPI大容量存储适配器,其EFI驱动程序一般会放置在这个设备的符合PCI规范的扩展只读存储器(PCI
Expansion ROM)中,当PCI总线驱动被加载完毕,并开始枚举其子设备时,这个存储适配器旋即被正确识别并加载它的驱动程序。部分EFI驱动程序还可以放置在某个磁盘的EFI专用分区中,只要这些驱动不是用于加载这个磁盘的驱动的必要部件。在EFI规范中,一种突破传统MBR磁盘分区结构限制的GUID磁盘分区系统(GPT)被引入,新结构中,磁盘的分区数不再受限制(在MBR结构下,只能存在4个主分区),并且分区类型将由GUID来表示。在众多的分区类型中,EFI系统分区可以被EFI系统存取,用于存放部分驱动和应用程序。很多人担心这将会导致新的安全性因素,因为EFI系统比传统的BIOS更易于受到计算机病毒的攻击,当一部分EFI驱动程序被破坏时,系统有可能面临无法引导的情况。实际上,系统引导所依赖的EFI驱动部分通常都不会存放在EFI的GUID分区中,即使分区中的驱动程序遭到破坏,也可以用简单的方法得到恢复,这与操作系统下的驱动程序的存储习惯是一致的。CSM是在x86平台EFI系统中的一个特殊的模块,它将为不具备EFI引导能力的操作系统提供类似于传统BIOS的系统服务。
英特尔无疑是推广EFI的积极因素,近年来由于业界对其认识的不断深入,更多的厂商正投入这方面的研究。包括英特尔,AMD在内的一些PC生产厂家联合成立了联合可扩展固件接口论坛,它将在近期推出第一版规范。这个组织将接手规划EFI发展的重任,并将英特尔的EFI框架解释为这个规范的一个具体实现。另外,各大BIOS提供商如Phoenix,
AMI等,原先被认为是EFI发展的阻碍力量,现在也不断的推出各自的解决方案。分析人士指出,这是由于BIOS厂商在EFI架构中重新找到了诸如Pre-EFI启动环境之类的市场位置,然而,随着EFI在PC系统上的成功运用,以及英特尔新一代芯片组的推出,这一部分市场份额将会不出意料的在英特尔的掌控之中。
引入主题开始了解GPT分区表,首先简要的介绍一下GPT分区的一些特点:
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA
0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA
34是硬盘上第一个分区的开始。
苹果公司曾经警告说:“不要假定所有设备的块大小都是512字节。”一些现代的存储设备如固态硬盘可能使用1024字节的块,一些磁光盘(MO)可能使用2048字节的扇区(但是磁光盘通常是不进行分区的)。一些硬盘生产商在计划生产4096字节一个扇区的硬盘(目前市面上西部数据就有4096字节的一个扇区),但截至2010年初,这种新硬盘使用固件对操作系统伪装成512字节一个扇区。
使用英特尔架构的苹果机也使用GPT。
为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。
传统MBR (LBA 0)
在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这些分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。
在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如Boot
Camp就是使用这种方式启动Windows。
签名,固定为ASCII码 &EFI PART&,16进制表示0x4645。
版本号,目前的版本为V1.0,16进制表示0x。
分区表头的大小(单位是字节,通常是92字节,即 5C 00 00 00)
GPT头中字节的CRC32校验
固定值00 00 00 00
当前LBA(这个分区表头的位置)
备份LBA(另一个分区表头的位置)
第一个可用于分区的LBA(主分区表的最后一个LBA + 1)
最后一个可用于分区的LBA(备份分区表的最后一个LBA-
分区表项的起始LBA
分区表项的数量
一个分区表项的大小(通常是128)
分区表CRC32校验
保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows
Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA
1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。
分区表项 (LBA 2–33)
GUID分区表项
分区类型GUID
唯一的分区GUID
分区名称 (Unicode码)
&系统分区 00 00 00 00 00 00 00 00
&分区只读 00 00 00 00 00 00 00 10
&隐藏分区 00 00 00 00 00 00 00 40
&不挂载此分区(不分配盘符)00 00 00 00 00 00 00 80
分区类型GUID
相关操作系统
024DEE41-33E7-11D3-9D69-F
EFI系统分区
C12AD2-BA4B-00A0C93EC93B
BIOS引导分区
9-6E6F-744E-
微软保留分区
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
基本数据分区
EBD0A0A2-B9E5--68B6B72699C7
逻辑软盘管理工具元数据分区
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
逻辑软盘管理工具数据分区
AF9B60A0--BC68-AD
Windows恢复环境
DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
IBM通用并行文件系统(GPFS)分区
37AFFC90-EF7D-4e96-91C3-2D7AE055B174
AEB-11D3-B7C1-7B03A0000000
E2A1E728-32E3-11D6-A682-7B03A0000000
EBD0A0A2-B9E5--68B6B72699C7
A19D880F-05FC-4D3B-A006-743F0F84911E
0657FD6D-A4AB-43C4-84E5-F4F
逻辑卷管理器(LVM)分区
E6D6D379-F507-44C2-A23C-238F2A3DF928
8DA-60C0-C436-083AC8230908
83BD6B9D-7F41-11DC-BE0B-F0F
516E7CB4-6ECF-11D6-8FF8-B
516E7CB5-6ECF-11D6-8FF8-B
516E7CB6-6ECF-11D6-8FF8-B
en:Vinum volume manager分区
516E7CB8-6ECF-11D6-8FF8-B
516E7CBA-6ECF-11D6-8FF8-B
HFS(HFS+)分区
0-11AA-AA11-ECAC
苹果公司UFS
0-11AA-AA11-ECAC
6A898CC3-1DD2-11B2-99A6-
苹果RAID分区
0-11AA-AA11-ECAC
苹果RAID分区,下线
F4F-11AA-AA11-ECAC
苹果启动分区
426F6F74-0000-11AA-AA11-ECAC
Apple Label
4CC00-11AA-AA11-ECAC
Apple TV恢复分区
65-11AA-AA11-ECAC
6A82CB45-1DD2-11B2-99A6-
6A85CF4D-1DD2-11B2-99A6-
6A87C46F-1DD2-11B2-99A6-
6A8B642B-1DD2-11B2-99A6-
6A898CC3-1DD2-11B2-99A6-
6A8EF2E9-1DD2-11B2-99A6-
6A90BA39-1DD2-11B2-99A6-
6ADD2-11B2-99A6-
6A945A3B-1DD2-11B2-99A6-
6ADD2-11B2-99A6-
6ADD2-11B2-99A6-
6A9-11B2-99A6-
6A8D2AC7-1DD2-11B2-99A6-
49F48D32-B10E-11DC-B99B-
49F48D5A-B10E-11DC-B99B-
49F48D82-B10E-11DC-B99B-
49F48DAA-B10E-11DC-B99B-
concatenated分区
2DB519C4-B10F-11DC-B99B-
2DB519EC-B10F-11DC-B99B-
GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12AD2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。
操作系统支持
对于不标准的MBR/GPT混合硬盘,不同的系统中的实现有些不一致。除非另加说明,操作系统在处理混合硬盘时优先读取GPT分区表
以下表格中的“不支持”应该理解成:不能识别GPT分区的硬盘,系统只能识别保护分区。GPT硬盘的数据可以通过第三方管理工具进行操作。
自BIOS/GPT启动
自EFI/GPT启动
x86、x86-64
在MBR/GPT混合硬盘中,可以同时使用GPT和MBR分区标识。
大多数x86架构的Linux发行版
Fedora 8+、Ubuntu
x86-64、IA-64、x86
一些分区工具,如fdisk,不支持GPT。
而gdisk、grub2之类的新工具支持GPT。
10.4.0以后(一些功能要到10.4.6以后)
x86、x86-64
Solaris 10以后
x86、x86-64、SPARC
No (Work in Progress)
No (Work in Progress)
自BIOS/GPT启动
自EFI/GPT启动
Windows XP
Windows Server 2003
Windows Server 2003
Service Pack 1 ()
仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR。
Windows Vista
在MBR/GPT混合硬盘中优先使用MBR。
Windows Server 2008
在MBR/GPT混合硬盘中优先使用MBR。
在MBR/GPT混合硬盘中优先使用MBR。
下表列出了支持GPT的64位版Windows。既包括IA-64架构的服务器版本,也包括x86-64和EM64T架构。
自BIOS/GPT启动
自EFI/GPT启动
Windows XP
在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。
Windows XP
64-bit, Version -03-28)
(Workstation variant of Windows Server 2003 64-bit)
在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。
Windows Server 2003
在MBR/GPT混合硬盘中优先使用MBR。默认使用GPT。IA-64架构的启动盘必须是GPT硬盘,其余硬盘可以使用MBR也可以使用GPT。
Windows Server 2003
x64, Service Pack 1 ()
仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR。
Windows XP
Professional x64 ()
(Workstation variant of Windows Server 2003 x64)
仅支持作为数据盘使用,在MBR/GPT混合硬盘中优先使用MBR。可拆卸磁盘仅支持MBR分区表。
Windows Vista
在MBR/GPT混合硬盘中优先使用MBR。
Windows Server 2008
x86-64, IA-64
在MBR/GPT混合硬盘中优先使用MBR。
在MBR/GPT混合硬盘中优先使用MBR。
Windows Server 2008 R2
(Server variant of Windows 7)
x86-64, IA-64
在MBR/GPT混合硬盘中优先使用MBR。
以下是为了方便读者自行分析GPT磁盘结构,本人做的WinHex模板,包含“GPT头模板”、“分区表项模板”(使用时请将字体加粗部分复制到Windows中的记事本,另存为成*.tpl,放到WinHex所在目录中即可使用)
1、GPT头模板
template &GUID Partition Table Header&
description &GUID Partition Table Header&
applies_to disk
sector-aligned
requires 0x00&&45 46 49 20 50 41 52 54&
&&&&&&&&read-only char [8]&&
&&&&&&&&hex 4&&&&&&&&
&版本 (HEX)&
&&&&&&&&uint32 &GPT头大小字节数&
&&&&&&&&hex 4&&&&&&&&
&GPT头CRC校验和 (HEX)&
&&&hex 4&&&&&&&&
&保留--必须为零 (HEX)&
&&&&&&&&int64&&&&&&&&
&当前GPT头的LBA扇区号&
&&&&&&&&int64&&&&&&&&
&GPT头备份LBA扇区号&
&&&&&&&&int64&&&&&&&&
&GPT分区区域起始LBA&
&&&&&&&&int64&&&&&&&&
&GPT分区区域结束LBA&
&&&&&&&&read-only guid
&磁盘GUID (GUID)&
&&&&&&&&move -16
&&&&&&&&hex 16&&&&&
&磁盘GUID (16Byte HEX)&
&&&&&&&&int64&&&&&&&&
&GPT分区表起始LBA&
&&&&&&&&uint32&&&&&&
&分区表项数&
&&&&&&&&uint32&&&&&&
&每分区表项占用字节数&
&&&&&&&&hex 4&&&&&&&&
&分区表CRC校验和 (HEX)&&&&&&&&&
&&&&&&&&hex 420&&&
&保留 (420Byte HEX)&
&&&&&&&&endsection
2、分区表项模板
template &GUID Partition Entry&
description &GUID Partition Entry&
applies_to disk
sector-aligned
&&&&&&&&read-only guid
&分区类型GUID (GUID)&
&&&&&&&&move -16
&&&&&&&&hex 16&&&&&
&分区类型GUID (HEX)&
&&&&&&&&read-only guid
&唯一的分区GUID (GUID)&
&&&&&&&&move -16
&&&&&&&&hex 16&&&&&
&唯一的分区GUID (HEX)&
&&&&&&&&int64&&&&&&&&
&&&&&&&&int64&&&&&&&&
&&&&&&&&hex 8&&&&&&&&
&属性 (HEX)&
&&&&&&&&char16[36]&&&&&&
&分区名称 (Unicode)&
在此为广大读者献出一个用于修复GPT磁盘的WinHex脚本,主要用于MBR、主GPT头、主分区表项,损坏的修复,本脚本通过备份的GPT头与备份的分区表项进行修复,使用之前先判断备份部分是否正常,脚本如下(使用时请将字体加粗部分复制到Windows中的记事本,另存为成*.whs,放到WinHex所在目录中即可使用):
GPT Header修复(用备份修复)
Assign DiskSize GetSize
Goto 0x1B8
Write 0x43C659CF&&//磁盘签名
Write 0xEEFFFFFFFFFFFFFF
Goto 0x1FE
Write 0x55AA
Goto (DiskSize-512)
Read Temp1 8
Goto (DiskSize-512)
Read Header 512
Goto (DiskSize-512-16384)
Read ParBak 16384
Goto (Temp1*512)
Write Header
Write ParBak
Goto (Temp1*512)
Write 0x0000
Write 0x0000
Write 0x0000
Goto (DiskSize-512+32)
Read Temp2 8
Goto (Temp1*512+24)
Write Temp2
Goto (DiskSize-512+24)
Read Temp3 8
Goto (Temp1*512+32)
Write Temp3
Goto (Temp1*512+72)
Write ((Temp1*512+512)/512)
Goto (Temp1*512)
Assign Header CurrentPos
Block Header (Header+91)
CalcHash CRC32 HeaderCRC32
Goto (Temp1*512+16)
Write HeaderCRC32
MessageBox &修复成功!&
Windows 和 GPT 常见问题解答
关于 GPT1. 什么是 GPT 磁盘?
GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。
分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。
2. MBR 分区有哪些缺陷?
MBR 磁盘只支持 4 个分区表项。如果想获得更多分区,需要次级结构,即扩展分区。扩展分区能够再次被分成一个或多个逻辑磁盘。虽然该信息与硬件(磁盘驱动程序或 RAID 控制器)的物理特性不再有任何关系,但按照惯例,Windows 仍然在基于报告的几何图形柱面界限上创建 MBR 磁盘和逻辑驱动器。对于 Windows Vista 和 Windows Server 2008,由于硬件提供更好的真实缓存和物理对齐提示,所以能够选择更有逻辑的界限。由于驱动器自己存储分区信息,所以操作系统不依赖于对齐方式。MBR 分区规则很复杂并且规定不明确。例如,柱面对齐意味着每个分区在长度上至少要为一个柱面吗?MBR
分区由一个 2字节字段标识,而且需要协调以避免冲突。IBM 最初提供了这种协调方案,直到今天还没有权威的分区标识符列表。
另一个常用的实践是使用分区的或“隐藏”扇区保存特定信息。该实践没有正式文件并且会导致难以调试的系统问题。这些年来,已经对公众发布了很多供应商独有的实现和工具,这使支持变得很困难。
3. 为什么需要 GPT?
GPT 磁盘能够实现巨大的容量。GPT 磁盘上的分区数量不受临时方案(比如 MBR Extended Boot Record (EBR) 定义的容器分区)的限制。
GPT 磁盘分区定义明确并能够完全自动识别。平台操作的关键数据被放置在分区中而不是未分区或“隐藏”扇区中。GPT 磁盘使用原始的、备份的分区表存储冗余和 CRC32 字段,以提高分区数据结构的完整性。GPT 分区格式使用版本号和容量字段支持进一步的扩展。
每个 GPT 分区都有独特的标识 GUID 和分区内容类型,所以不需要协调即可防止分区标识符冲突。每个 GPT 分区都有一个 36 字符的 Unicode 名称,这意味着任何软件都能够呈现一个人工可读的分区名称,而无需了解分区的其他内容。
4. 何处查看关于 GPT 磁盘分区的规范?
Extensible Firmware Interface (EFI) 规范的第 16 章定义了 GPT 格式。可在以下地址中获得该文档:
5.GPT 磁盘需要 EFI 吗?
不需要,GPT 磁盘是自动识别的。所有用于解释 GPT 磁盘分区方案所需的信息完全包含在物理媒介指定位置的结构中。
6. GPT 磁盘容量有多大?
理论上,GPT 磁盘在长度上最大可达 2^64 个逻辑块。逻辑块容量一般为 512 字节。
最大分区(磁盘)容量受操作系统版本的影响。Windows XP 和 Windows Server 2003 的原始版本中,每个物理磁盘的最大容量为 2TB,包括所有分区。对于 Windows Server 2003 SP1 Windows XP x64 版本和以后的版本,支持的最大原始分区为 18 EB。(Windows 文件系统目前的限制为每个 256 TB)
7. 每个 GPT 磁盘可以有多少个分区?
规范对分区数量几乎没有限制,但是 Windows 实现限制的分区数量为 128 个。GPT 中的分区条目的保留空间大小会限制分区数量。
8. 磁盘可以同时是 GPT 和 MBR 吗?
不可以。但是,所有的 GTP 磁盘都包含一个 Protective MBR。
9. 什么是 Protective MBR?
Protective MBR 从扇区 0 内开始,在磁盘中先于 GPT 分区表。MBR 包含一种横跨整个磁盘的 0xEE 分区。
10. 为什么 GPT 要包含一个 Protective MBR?
Protective MBR 保护 GPT 磁盘不受以前发布的 MBR 磁盘工具(如 Microsoft MS-DOS FDISK 或 Microsoft Windows NT 磁盘管理器)的危害。这些工具不能感知 GPT,也无法正确地访问 GPT 磁盘。不能识别 GPT 的旧软件在访问 GPT 磁盘时只解释 Protected MBR。这些工具通过解释 Protected MBR,将 GPT 磁盘看成一个封装的(可能无法识别)分区,而不是错误地当成一个未分区的磁盘。
11. 为什么分区的磁盘上会有一个 MBR 呢?
如果出现这种情况,您一定是使用了只能感知 MRB 的磁盘工具访问 GPT 磁盘。参阅上文第 8 条至第 10 条中的答案。
12. 如果磁盘容量大于 MBR 能够报告的最大容量,整个磁盘内容会受保护么?
Protective MBR 中的 EE 分区是 MBR 中允许的最大容量。
Windows XP 磁盘支持
13. Windows XP x64 能在 GPT 磁盘上读、写和启动么?
Windows XP x64 版本只能使用 GPT 磁盘进行数据操作。只有基于 Itanium 的 Windows 系统才能从 GPT 分区上启动。
14. Windows XP 32 位版本能在 GPT 磁盘上读、写和启动吗?
不能。32 位版本只能查看 Protective MBR。EE 分区将不会被装载或公开给应用软件。
15. Windows Server 2003 的 32 位版本能在 GPT 磁盘上读、写和启动吗?
Server Pack 1 以后的所有 Windows 2003 版本都能使用 GPT 分区磁盘进行数据操作。只有基于 Itanium 的系统支持启动。
16. Windows Vista 和 Windows Server 2008 能在 GPT 磁盘上读、写和启动吗?
是的,所有版本都能使用 GPT 分区磁盘进行数据操作。只有基于 EFI 的系统支持启动。
17. Windows 2000、Windows NT 4 或 Windows 95/98 能在 GPT 上读、写和启动吗?
不能。旧软件只能查看 Protective MBR。
18. 可以在同一个系统上混合使用和匹配 GPT 和 MBR 磁盘吗?
GPT 和 MBR 可以在支持 GPT 的系统上混合使用,但如前所述,需要遵循以下限制:
支持 EFI 的系统要求启动分区必须位于 GPT 磁盘上。另一个硬盘可以是 MBR,也可以是 GPT。
MBR 和 GPT 磁盘可以同时存在于一个动态磁盘组中。容量设置能扩展到 MBR 和 GPT 磁盘。但是,MBR 柱面对齐限制可能会在进行 MBR 和 GPT 磁盘镜像和带区操作时引起一些麻烦。
19. 对可移动媒介有哪些要求?
可移动媒介必须是 MBR 或“超级软盘”。
20. 什么是“超级软盘”?
没有 GPT 或 MBR 格式化的可移动媒介被称为“超级软盘”。整个媒介被看成是一个分区。
媒介制造商执行可移动媒介的任何 MBR 分区。如果媒介不具备 MBR,则只能支持一个分区。用户很难辨别 MBR 分区的媒介和“超级软盘”之间的区别。
可移动媒介包括软盘驱动器、JAZ 磁盘、光盘媒介、DVD-ROM 和 CD-ROM。外部总线上的硬盘驱动器(如 SCSI 或 IEEE 1394)不是可移动媒介。
21. 在对媒介进行分区时,Windows XP 64-Bit Edition Version 2003 的默认行为是什么?
对于 Windows XP 64-Bit Edition Version 2003 (只针对基于 Itanium 的系统)来说,使用 GPT 分区方案对固定磁盘分区。要将 GPT 磁盘转换成 MBR 磁盘,必须首先删除已有的分区,这会造成数据的丢失。
22. 在对媒介进行分区时,Windows XP 32 位版本、Windows Server 2003 和 Windows XP x64 的默认行为是什么?
只能使用 MBR 磁盘。MBR 磁盘不能转换成 GPT 磁盘。
23. 操作系统上的驱动器名如何映射到 EFI 固件分区?
在驱动器名和分区之间,不存在固有的可以确定彼此的映射。基本数据分区必须由自身的分区 GUID 识别。
24. 如何创建 ESP 分区?
可以使用 EFI 固件实用工具 Diskpart.efi 或 Windows 命令行实用工具 Diskpart.exe 创建 ESP 分区,也可以使用 IOCTL_DISK_SET_DRIVE_LAYOUT 以编程方式创建 ESP 分区。
25. 可以对分区进行更改吗?
您不能直接更改任何分区标题项。不要使用磁盘工具或实用工具做任何转换或更改。
26. 对于可分离磁盘,Windows XP 支持什么分区方案?
可分离磁盘一般可以在机器之间移植,有时在操作系统上不可用。IEEE 1394 磁盘就是一个可分离磁盘的示例,最终用户可以轻松断开连接;另一个示例是 Microsoft Cluster Services (MSCS) 共享磁盘,它可以在群集的节点间移动。
Windows XP 仅支持在可分离磁盘上进行 MBR 分区。有关可移动媒介的更多信息,请参阅问题 19-21。Windows 的更高版本支持在可分离磁盘上进行 GPT 分区。
Windows GPT 需要的分区EFI 系统分区27. 什么是 EFI 系统分区 (ESP)?
ESP 包含 NTLDR、HAL、Boot.txt 和其他启动系统所需的文件,如驱动程序。分区 GUID 定义 ESP:
DEFINE_GUID (PARTITION_SYSTEM_GUID, 0xC12A7328L, 0xF81F, 0x11D2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B)28. 只有 GPT 磁盘具备 ESP 吗?不,MBR 磁盘也可以具备 ESP。EFI 指定从 GPT 或 MBR 上启动。MBR 磁盘上的 ESP 由分区类型 0xEF 标识。但是,Windows 不支持从 MBR 磁盘或 0xEF 分区上启动 EFI。
29. ESP 有多大?ESP 大约为 100 MB。
30. 一个磁盘可以有两个 ESP 吗?
不能创建也不支持这样的配置。
31. 那么,在两个不同磁盘上的两个 ESP 呢?
ESP 分区可以复制以实现高可用性配置。复制必须人工进行,而且在使用软件卷时,内容必须人工实现同步。硬件供应商可以提供针对高可用性的附加解决方案。ESP 分区不能生成镜像。
32. Microsoft 在 ESP 中放了什么?
Microsoft 在 ESP 中放置了 HAL、加载器和其他启动操作系统所需的文件。
33. ESP 应该放在磁盘的什么位置?
ESP 应该放在磁盘的首要位置。当没有体系结构要求时,存在充足的理由证明为什么将 ESP 放在首要位置是有益的。主要的原因在于,当 ESP 逻辑上位于您想要跨越的两个数据分区之间时,跨越卷是不可能实现的。
34. 系统或设备制造商应该在 ESP 中放置什么?
ESP 应该只包括用于启动操作系统的文件,在操作系统启动前运行的平台工具,或者操作系统启动前必须访问的文件,例如在执行预启动系统维护时。其他操作系统运行时所需的附加文件或诊断信息不应该放在 ESP 中。需要明确的是:ESP 的空间是有限的系统资源,它的主要作用是为启动操作系统必需的文件提供存储空间。
35. 系统制造商应该将平台诊断文件或其他附加文件放在哪里?
对于系统制造商来说,首选的是将附加内容放在特定于 OEM 的分区中。如 MBR OEM 分区一样,GPT OEM(或其他无法识别的 OEM)分区内容不是公开的(给出驱动器名或在卷列表中返回)。用户需要注意,删除这个分区会导致操作系统无法运行。特定于 OEM 的分区在磁盘中应该放在 MSR 之前,ESP 之后。虽然不是体系结构的概念,但是这种布局的好处与将 ESP 放在首要位置一样。例如,当特定于 OEM 的分区逻辑上位于您想横跨的两个数据分区之间时,横跨卷是不可能实现的。
ESP 中的布局是在预操作系统启动环境中执行的应用程序或文件可以做出的一种选择。但是,ESP 是体系结构概念上的共享空间,它提供有限的资源。所以,应该认真安排 ESP 内空间的使用。与预操作系统启动环境无关的文件不应该放在 ESP 内。
Microsoft 保留分区36. 什么是 Microsoft 保留分区 (MSR)?
Microsoft 保留分区 (MSR) 在每个磁盘驱动器上保留空间以供以后的操作系统软件使用。GPT 磁盘不支持隐藏的扇区。以前使用隐藏扇区的软件组件现在为特定于组件的分区分配部分 MSR。例如,将基本磁盘转换为动态磁盘会导致该磁盘的 MSR 减少,由新创建的分区保留动态磁盘数据库。MSR 具备 Partition GUID:
DEFINE_GUID (PARTITION_MSFT_RESERVED_GUID, 0xE3C9E316L, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE)37. 哪些磁盘需要 MSR?
每个 GPT 磁盘都必须包含一个 MSR。磁盘上分区的顺序应该为 ESP(如果有)、OEM(如果有)、MSR,后跟基本数据分区。非常重要的一点是:一定要在基本数据分区之前创建 MSR。
38. 谁来创建 MSR?
必须在磁盘分区信息第一次写入驱动器的时候创建 MSR。如果分区由制造商进行,那么制造商必须同时创建 MSR。如果分区由 Windows 进行,那么在安装时创建 MSR。
39. 为什么必须在第一次对磁盘分区时创建 MSR?
因为在磁盘分区之后,不再有空间用来创建 MSR。
40. MSR 多大?
当最初创建的时候,MSR 的容量决定于磁盘驱动器的容量。
磁盘驱动器的容量小于 16GB 时,MSR 为 32 MB。
磁盘驱动器大于或等于 16 GB 时,MSR 为 128 MB。
当 MSR 被进一步分成其他的分区时,容量变小。
Windows GPT ESP 实现41. Windows XP 需要什么分区?
对于 EFI 系统来说,每个可启动驱动器必须包含一个 ESP、一个 MSR 和至少一个包含操作系统的基本数据分区。每个数据驱动器必须包含至少一个 MSR 和一个基本数据分区。
驱动器上的所有基本数据分区都应该是连续的。如上所述,在数据分区之间设置一个特定于 OME 的或其他无法识别的分区会限制以后的卷扩展。
42. 什么是基本数据分区?
基本数据分区对应主要 MBR 分区 0x6 (FAT)、0x7 (NTFS) 或 0xB (FAT32)。每个基本分区都能使用驱动器名或装入点、其他的卷设备对象进行装入。每个基本数据分区在 Windows 以卷设备对象的形式呈现,也可以作为一个装入点或驱动器名。
43. 如何标识基本数据分区?
它有以下分区类型 GUID:
DEFINE_GUID (PARTITION_BASIC_DATA_GUID、0xEBD0A0A2L、0xB9E5、0x、0xC0、 0x68、 0xB6、0xB7、0x26、0x99、0xC7。44. 最终用户可以查看 ESP、MSR 和特定于 OEM 的分区吗?
用户不能在 Windows 资源管理器中查看这些分区,也不能查看向旧程序(如 Context Indexing)公开的可识别系统文件。由于 ESP、特定于 OEM 以及其他无法识别的分区不具备可识别的文件系统,所以它们只在 Disk Management MMC 管理单元中是可见的。
45. Windows 默认装入了什么分区?Windows XP 只公开基本数据分区。其他 FAT 文件系统分区也可以被装入,但是不只以编程的方式公开。只有基本数据分区分配了驱动器名和装入点。
装入了 ESP FAT 文件系统,但它不是公开的。这使运行在 Windows 上的程序能更新 ESP 的内容。使用 &mountvol /s& 为 ESP 分配一个驱动器名能够实现对分区的访问。访问 ESP 需要管理员权限。
虽然 MSR 以及从 MSR 创建的任何分区都具备可识别的文件系统,但它们都不是公开的。
Windows 不能识别任何特定于 OEM 的分区或与其他操作系统相关的分区。具备可识别文件系统的无法识别的分区可以当作 ESP 处理。它们将被装入,但不是公开的。与 MBR 磁盘不同,特定于 OEM 的分区和其他操作系统分区之间没有实际的区别,都是“无法识别的”。
46. 用户如何查看 ESP、OEM 以及其他无法识别的分区?
用户可以使用磁盘管理工具(如 Disk Management 实用工具)或者 diskpart.exe Windows 命令行来查看。MSR 和任何从 MSR 上创建的分区仅能通过命令行查看。
47. 动态磁盘的情形是怎么样的?
动态磁盘使用两个不同的 GPT 分区:
一个是对应 0x42 MBR 分区的数据容器分区,它使用以下 GUID:DEFINE_GUID (PARTITION_LDM_DATA_GUID、0xAF9B60A0L、0xF62、0xBC、0x68、0x33、0x11、 0x71、0x4A、0x69、0xAD);
另一个是包含动态配置数据库的分区,它使用以下 GUID:DEFINE_GUID(PARTITION_LDM_METADATA_GUID、0x5808C8AAL、0x7E8F、0x42E0、0x85、0xD2、0xE1、0xE9、0x04、0x34、0xCF、0xB3);
卷是以默认的方式在数据容器中创建和装入的。同样,这与 0x42 MBR 分区内容是完全相同的。
48. 将一个基本磁盘转换成动态磁盘会出现什么情况?
对于一个能够转换成动态磁盘的驱动器来说,驱动器上的所有数据库分区必须是相连的。如果其他无法识别的分区分隔了基本数据分区,则磁盘不能转换。这也是为什么要在基本数据分区之前创建 MSR 的原因之一。
第一步是要从 MSR 中分隔出一部分用来创建配置数据库分区。然后所有不可启动的基本分区被合并到一个数据容器分区内。启动分区会作为分隔的数据容器分区保留下来。这类似于主要分区的转换。
与 Windows 2000 不同的是,在 Windows XP 及以后版本的 Windows 操作系统中,基本分区和扩展分区被优先转换成一个单一的 0x42 分区,而不像在 Windows 2000 中,作为多个独特的 0x42 分区保留下来。
49. 一个操作系统能同时包含 GPT 和 MBR 两种动态磁盘吗?
是的。参阅本文第 18 条。
50. 如何装入某个指定分区?
您可以使用下表中所列的工具访问不同类型的 GPT 磁盘分区:
Diskpart.efi 磁盘分区工具
ESP MSR 数据
Diskpart.exe 磁盘分区工具
ESP MSR 数据
Diskmgmt.msc 逻辑磁盘管理器
Explorer.exe 文件资源管理器
您也可以使用 Microsoft Platform SDK API 开发属于自己的工具,在 GPT 磁盘分区的原语级别对其进行访问。
51. Windows 中如何管理 GPT 磁盘?
GPT 和 MBR 磁盘的管理方式是相同的。通过使用 Diskpart.exe 命令行实用工具或“磁盘管理器”管理单元,可以将磁盘格式成 GPT 或 MBR。可以在 GPT 和 MBR 上创建卷,并且两种磁盘能够同时出现在同一个动态磁盘组中。
52. FTdisk 集是什么情形?
在 Windows XP 或以后的版本中,不再为 MBR 或 GPT 磁盘提供 FTdisk 集支持。唯一对逻辑卷的支持通过动态磁盘实现。
53. 磁盘能从 GPT 转换成 MBR 吗?或者相反?
可以,但是磁盘中不得存在分区或卷。磁盘上的数据都将毁坏。
54. GPT 磁盘支持什么文件系统?
建议在所有基本数据分区和动态卷上使用 NTFS。Windows 安装和“磁盘管理”管理单元只提供 NTFS。要避开此缺陷,必须通过 Format 命令行工具对分区和卷进行明确地格式化。
操作 GPT 磁盘及其内容。55. 可以进行针对 GPT 磁盘的扇区到扇区复制吗?
不可以,磁盘和分区 GUID 不再是唯一的。永远不能执行这种操作。您可以进行针对 ESP 内容或基本数据分区的扇区到扇区复制。
56. 有没有使用 OPK 映像工具复制整个 GPT 磁盘的方法?
是的,但是存在一些重要的注意事项。OEM 预安装工具包 (OPK) 会将磁盘和分区 GUID 初始化为 0。在 Windows 第一次启动时,操作系统生成独特的 GUID。OPK 只支持生成 ESP、MSR 和基本数据分区。
如果应用程序已经记录了任何它可能破坏的任何磁盘或分区 GUID。任何由系统制造商或应用程序供应商提供的、依赖 GUID 的应用程序、驱动程序或固件执行工具都应该能够处理那些从 OPK 初始化值变为操作系统生成值的 GUID。
57. 什么是 Diskpart.efi MAKE 命令?
它是一种用来简化操作系统预安装和系统恢复的 OEM 方法。这个命令能轻松扩展,以为平台创建“默认”磁盘配置。例如,系统制造商能够扩展 MAKE 命令,以自动对启动驱动器进行分区,以形成一个 ESP、一个 MSR、一个特定于 OEM 的分区和一个基本数据分区。
例如,考虑一个名为 BOOT_DISK 的磁盘配置。在对业务失败恢复的事件中,MAKE BOOT_DISK 允许客户对启动磁盘进行完全地重分区,还原为出厂设置。
58. 如果检测到一个重复的磁盘或分区 GUID 会出现什么情况?
Windows 将为任何检测到的重复磁盘 GUID、MSR 分区 GUID 或 MSR 基本数据 GUID 生成新的 GUID。这与在 Windows 2000 中对重复 MBR 签名的处理方式类似。动态容器或数据库分区上的重复 GUID 可能导致不可预知的后果。
GPT分区出现问题后的数据恢复--拓飞数据恢复实验室&&
&&& MBR,主引导记录(Master Boot Record),也就是现有的硬盘分区模式。MBR分区的标准决定了MBR只支持在2TB以下的硬盘,超过2TB的硬盘只能管理2TB!为解决这个大问题,微软和英特尔在EFI方案中开发了GPT分区模式。
&&& GPT,全局唯一标识分区表(GUID Partition Table),GUID,全局唯一标识符 (Globally Unique Identifier) 。GPT是EFI方案的一部分,但并不依赖于EFI主板,在BIOS主板的PC中也可使用GPT分区。与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区。GPT可管理硬盘大小达到了18EB(1EB=1024PB=1,048,576TB),不过NTFS格式最大仅支持256TB。
&&& GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘
&&& GPT磁盘的0扇区保留着分区表和“55aa”标志,但只使用一个分区表项,描述一个大小为整个磁盘、分区类型为0xEE的分区。因为GPT磁盘在EFI部分的结尾处备份了有关磁盘和分区的重要信息,所以如果仅仅是磁盘前部的EFI信息和分区表遭到破坏,只要将备份的复制回原来的位置即可。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:219686次
积分:3315
积分:3315
排名:第5167名
原创:78篇
转载:242篇
评论:16条
(6)(18)(12)(5)(11)(4)(21)(24)(18)(10)(4)(15)(10)(4)(5)(17)(21)(5)(2)(19)(21)(10)(3)(1)(2)(4)(1)(2)(1)(5)(9)(1)(2)(2)(1)(1)(1)(4)(1)(2)(6)(3)(1)(4)(2)

我要回帖

更多关于 二尖瓣前叶分区a1a2a3 的文章

 

随机推荐