主分区,扩展分区,逻辑分区,活动分区,系统分区,启动分区。。。。。。。。。
主引导扇区,MBR,bootloader。。。。。。。。。。
各种概念,你都清楚什么意思吗?
花了一天的时间终于研究清楚了,网上好多帖子的解释都是错的,或者没有深入到本质,都是什么C盘啊,D盘啊,都被windows*了。浪费了好好长时间。
主分区:实际上在早期的硬盘分区中并没有主分区、扩展分区和逻辑分区的概念,每个分区的类型都是主分区。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。也就是说,一块物理硬盘只能划分为4个逻辑磁盘。在具体的应用中,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,引入了扩展分区和逻辑分区,并把原来的分区类型称为主分区。
扩展分区:上面说了,4个分区显然不能满足需求,但是物理硬件限制只能有4个分区怎么办呢?所以操作系统开始出马了,把其中一个主分区命名为扩展分区,记住只是命名哦,原则上扩展分区和主分区是一样的,只不过功能不同。下面说完逻辑分区,你就懂我在说什么了。
逻辑分区:4个分区肯定不够,我想要20个分区,怎么办呢?把其中一个主分区变成扩展分区,然后在这个扩展分区上进行切割,变成一个个D盘,E盘,F盘什么的,但是这些盘综合起来就是一个扩展分区,这些盘是相互链接的,并不像主分区那样,4个之间相互独立互不干扰。逻辑分区用链表进行链接,如果E盘中的分区信息丢掉,操作系统就找不到F盘了。
系统分区:存放Ntldr程序或者Grub程序的分区,windows通常装在C盘,linux通常装载/boot分区
活动分区:活动分区是主分区,活动分区是系统分区,每次PC启动时,一块硬盘只能有一个活动分区,如果要启动windows就将windows的系统分区设为活动分区,计算机就会去那里装载引导程序(Ntldr或者Grub)并执行,如果要启动Linux就将Linux的系统分区设为活动分区。
各位童鞋应该都明白了吧~~~~~
下面讲一讲启动的事情
MBR:正如上面所说的那样,它是一段程序,长度为446字节,作用是加载bootloader的。
主分区、扩展分区和逻辑分区这三个术语是针对操作系统而言,主要是从功能上划分的概念;
系统分区、引导分区和启动分区这三个术语则是针对磁盘分区类型划分的。
一、主分区、扩展分区和逻辑分区
1、概念
MBR下的硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。(ps:现在的GPT分区至少可以划分128个主分区,未来很有可能将不存在扩展分区和逻辑分区的概念。)
本段摘自http://www.pc6.com/infoview/Article_53651.html
主分区:也叫引导分区,最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了,当然也就没有逻辑分区了。主分区是独立的,对应磁盘上的第一个分区,“一般”就是C盘。在Windows系统把所有的主分区和逻辑分区都叫做“盘”或者“驱动器”,并且把所有的可存储介质都显示为操作系统的“盘”。因此,从“盘”的概念上无法区分主分区和逻辑分区。并且盘符可以在操作系统中修改,这就是要加上“一般”二字的原因。
扩展分区:除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区可以没有,最多1个。严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”。
2、
给新硬盘上建立分区时都要遵循以下的顺序:建立主分区→建立扩展分区→建立逻辑分区→激活主分区→格式化所有分区。
分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了BIOS系统下硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。
而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现。
主分区+扩展分区总共不能超过4个,(扩展分区也可以看成是主分区)其个数是由硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(如GRUB)和分区表记录。扩展分区下又可以包含多个逻辑分区.
(hd0,0)表示第一块硬盘第一个主分区,(hd1,4)表示第2块硬盘第一个逻辑分区。
在linux中第一块硬盘分区为hda分区,主分区编号为hda1-4,逻辑分区从5开始。
3、关于MBR与GPT
MBR,全称为Master Boot Record,即硬盘的主引导记录。
一般把它和分区联系起来的时候,就会代表一种分区的制式。
由于硬盘的主引导记录中仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。也就是说,一块物理硬盘只能划分为4个主分区磁盘。并且MBR最大仅支持2TB的硬盘,在现在这个连4T都不稀奇的时代,MBR出场的机会恐怕会越来越少。
GPT,即Globally Unique Identifier Partition Table Format,全局唯一标识符的分区表的格式。
这种分区模式相比MBR有着非常多的优势。
首先,它至少可以分出128个分区,完全不需要扩展分区和逻辑分区来帮忙就可以分出任何想要的分区来。其次,GPT最大支持18EB的硬盘,几乎就相当于没有限制。
二、系统分区、引导分区和启动分区
简单地把别人C盘中的所有文件复制到自己的C盘,虽然包括Windows文件夹,但并不能成功启动这个系统。原因何在呢?这是因为系统分区和启动分区存在区别的原因。(系统分区也叫引导分区)
1、概念
根据微软帮助文档的解释:
系统分区是指导包含加载Windows(比如Ntldr、Boot.ini、Ntdetect.com)所需的硬件特定文件的分区,系统分区可以(但不是必须)与启动分区相同。
启动分区则是指包含操作系统及其支持文件的分区。
通俗理解,系统分区就是保存各种引导文件的分区(也叫引导分区),启动分区则是指保存Windows目录的分区。比如对于Windows 7系统,保存Bootmgr文件和boot目录的分区就是系统分区,启动分区则是保存Windows目录的分区。
2、系统分区和引导分区的联系与区别
情况1:系统分区就是启动分区
对于系统用户,系统分区一般就是启动分区,因为引导文件和Windows目录都存在于同一位置。比如XP安装在C盘单系统用户,ntldr、boot.ini、Ntdetect.com引导文件和Windows目录都在C盘,所以这两个分区是一致的。
情况2:系统分区不是启动分区
对于c:Windows XP+d:Windows 7双系统用户,此时系统分区就不一定是启动分区了。比如当你通过Bootmgr多重启动菜单进入Windows 7,此时对于Windows 7而言,系统分区就是C盘(因为其中包含c:\bootmgr引导文件和c:\boot引导目录),启动分区则是D盘(因为该分区保存着d:\windows系统目录)。进入Windows 7后打开磁盘管理组件,可以非常清楚看到两者的不同,这也就是解释文档中但不是必须的实例解读。
对于一些品牌机或者使用Windows 7安装光盘全新安装系统的用户,由于这此电脑的C盘前还存在隐藏分区,隐藏分区负责保存系统引导文件,因此系统分区也不是启动分区。别轻易碰系统分区。
3、应用
清楚了系统分区,启动分区的联系与区别,就很容易对付一些常见启动故障了。比如,对于c:Windows XP+D:Windows 7双系统用户,如果对C盘进行格式化重装XP后就无法进入Windows 7.因为对于Windows 7来说,格式化C盘后就破坏了其系统分区,自然无法进行成功地引导。
系统分区担负系统引导功能,如果该分区文件丢失就会告成系统无法引导。比如对于XP用户,如果丢失ntldr引导文件,开机就会出现ntldr is missing(ntldr文件丢失)提示。常规修复方法是添加启动文件,或对启动配置(比如Windows 7下BCD文件)进行重新编辑。可以通过一些启动U盘的PE系统的引导修复软件NTBOOTautofix进行修复。启动分区则是系统核心文件、系统初始化、核心加载、驱动配置、系统服务管理都是基于该分区文件的存在。
(题外话:
NT5.x=2000/XP/2003 这些操作系统的启动文件和启动菜单配置文件,存放在c:\boot.ini文件里;
NT5.0=Win2000;NT5.1=XP;NT5.2=WIN2003;
NT6.x=Vista/2008/Win7/2008r2 这些操作系统的启动文件和启动菜单配置文件,存放在c:\boot\bcd文件里;
NT6.0=Vista/2008;NT6.1=Win7/2008r2;)
如果先安装了XP,然后想在另外一个分区安装win7或以上,有时安装完会找不到启动项,则可以通过修改boot.ini文件来增加引动启动菜单项。
在下图所示的文件末尾增加一行"multi(0)disk(0)rdisk(0)partition(2)\windows="Microsoft Windows 7 x86 " /NOEXECUTE=OPTIN /FASTDETECT"
注意partion后面括号的数字表示分区的序号,可以参考上一篇文章里的CMD命令diskpatition。其他参数的含义请搜索关键字"boot.ini"