分区、mbr 、分区、扩展分区、逻辑分区、swap分区

计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,

必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。

在传统的磁盘管 理中,将一个硬盘分为两大类分区:主分区和扩展分区。

由于64位的主分区列表只能记载四个分区的数据,所以最多只能有四个主分区。

为了不将存储空间浪费 掉,将一个分区设置为扩展分区,

再将扩展分区作为一个容器划分为许多的逻辑分区。这样就可以高效的利用存储空间。

一、分区

1.Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。

2.磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。越多分区,也就有更 多不同的地方,可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件;但太多分区就成了麻烦。空间管理、访问许可与目录搜索的方 式,依属于安装在分区上的文件系统。当改变大小的能力依属于安装在分区上的文件系统时,需要谨慎地考虑分区的大小。
在一个mbr分区表类型的硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。如果使用扩展分区, 那么一个物理硬盘上最多只能3个主分区和1个扩展分区。扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。一个扩展分 区中的逻辑分区可以任意多个。

 

mbr
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,

是计算机开机后访问硬盘时所必须要读取的首个扇区,

它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

mbr是由分区程序(如Fdisk,Parted)所产生的,

它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,

从而能够实现多系统引导。

从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。

由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),

最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,

想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。

扩展分区也是主分区(Primary partition)的一种,

但它与主分区的不同在于理论上可以划分为无数个逻辑分区,

每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)。

在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,

也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。

在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。

在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。

在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。

你有一个3T的硬盘,根据要求你

至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。

 

磁盘分区方案

硬盘分区的各个分区的意义
尽管可以根据我们已经提到的分区原则,Linux 装在一个单一的大分区中,但更好的主意是将它分开。综合了单一分区的简单性和多分区的灵活性,我们推荐以下配置。请注意:如果你想安装Linux 的所有软件包的话,必须使用这里指出的较大的分区尺寸。事实上,你可能会加大我们推荐的尺寸,以使将来升级时不必重新分区。

1) 一个交换(swap)分区。交换分区用来支持虚拟内存。如果你的计算机内存小于16MB,

必须创建交换分区。即使你有更多的内存,仍然推荐使用交换分区。 交换分区的最小尺寸是你的内存的大小,

16MB(两者取大)。交换分区最大可以达到127 MB ,所以创建更大的交换分区是浪费空间。

注意,可以创建和使用一个以上的交换分区(尽管这通常安装在大的服务器上)。

2) 一个根(root)分区。根分区是”/”(根目录)所在地(注意不是/root)。

它只需要启动系统所须的文件和系统配置文件。对于大多数系统,

50MB 到100M B 的根分区可以工作得很好。

3) 一个/usr 分区。/usr是Linux 系统的许多软件所在的地方。根据你交换安装的包的数量,

这个分区应该在300MB到700MB之间。如果可能,将最大的空间用于/usr分区。

任何你以后将要安装的基于RPM 的包都会使用比其他分区更多的/usr空间。

4) 一个/home分区。这是用户的home目录所在地; 它的大小取决于你的Linux 系统有多少用户,

以及这些用户将存放多少数据。如果系统将用作E-mail服务的话,

为每一位用户预留5MB左右的空间,如果将提供个人主页存放空间的 话,

则应至少为每位用户预留20MB空间。对于网站建设者,还有一点需要注意的是,

你的Web 服务和匿名Ftp/home/ftp)服务器的内容也在这里

 

 

1.本地存储设备的识别

1.设备查看

使用fdisk -l,我们可以查看本机的真实存在的设备有哪些:
cat /proc/partiton   系统识别的硬盘
blkid       系统可使用的设备
partprode  同步分区表
df         统正在挂载的设备

 




2.对于设备名称,遵循以下规则:

/dev/xdx  ##/dev/hd0 /dev/hd1 /dev/sda1 /dev/sda2 /dev/sdb1
/dev/sr0        光驱
/dev/mapper/*   虚拟设备

 

注意:在liunx中挂载是一个很重要的功能,它将一个设备挂接到一个已经存在的目录上,

挂载完成后此目录下以前的文件将不可用,linux将所有 的设备都映射为文件

它将整个计算机的资源都整合成一个大的文件目录,我们要访问存储设备中的文件,

必须将文件所在的分区挂载到一个已经存在的目录上,然 后通过访问此目录来访问存储设备

使用df,我们可以查看当前挂载的设备有哪些:



在系统中可能存在很多设备,有些设备系统可以识别,有些则不能,

/proc/partitions查看此文件,我们可以查看到系统此时已经识别的设备:

blkid   此命令用来显示系统当前可以使用的设备

2.设备的挂载和卸载

我们可以看到,插入u盘,此u盘有默认的挂载目录:



此时,我们将u盘挂载到/mnt/目录下:

我们进入/mnt目录,边可以查看u盘中的内容,下图中,文件中,显示的文件全是问号的原因是因为文件名中包含有中文字符,编码错误所以显示为问号:

使用mount,可以查看当前设备的挂载信息:

“注意”:上图中,u盘设备sdb1是读写挂载,所以我们可以在对u盘进行读写,若此时是只读挂载,我们是不能在u盘中写入文件的
例如:在读写挂载的情况下,我们可以读写u盘的文件

也可以新建文件/目录:

当我卸载设备的时候,可能会出现以下“设备正忙”的情况:

我们能可以使用以下两种方法:
1).lsof /mnt/ ##查看占用/mnt的进程


再结束此进程之后就可以正常卸载了:

此时可以正常卸载,df也看不到挂载:

若我们再次挂载时选择只读挂载:



查看挂载状态为只读(ro):

mount


此时我们不能增删u盘中的文件,并且卸载时显示正忙,我们可以使用第二种方法卸载:

fuser -kvm /mnt

umount /mnt

df

即可
此时可以正常卸载,我没用这种方法,但两种方法都可以

3.系统分区


1.在我们以下实验中,我们需要了解一些基础知识:
 硬盘的0磁道1扇区,是系统刚开启时磁头停留的位置,磁头再次读取信息一边决定接下来要做的事情,我们已经知道,1个扇区包含512个字节,其中包含:
 446字节的信息:MBR(master boot record)称为主引导分区,,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统;
2字节的硬盘有效性标识:55AA,这部分内容是固定的无法更改;
64字节的分区表:分区表用来记录系统的分区设置,例如我们在windows常设置c盘,d盘等,就是对系统进行分区。
 在分区表中,由于每个分区记录16字节,因此最多可以划分4个分区,这4个分区称为主分区(P),显然,只能划分4个分区对我们来说在某些应用场景下是远远不够的,但是,我们的分区表容量有限,那么此时我们怎么办?
 我们可以在其中一个主分区中在进行分区的划分,这个主分区称为扩展分区(E),其内的子分区称为逻辑分区(L),逻辑分区的分区表就存储在扩展分区内,而主分区的分区表则存在于0磁道1扇区中的分区表内。
2..系统分区划分:
1).查看系统当前可识别的硬件,我们可以看到,/dev/vda中已有分区划分,而/dev/vdb是一块10G空硬盘空间:

2).fdisk /dev/vdb ##对/dev/vdb进行分区





划分完成后,查看当前系统可以识别的分区:



再查看此时可用的分区:



2.对新分区添加文件系统
 发现此时/dev/sdb1并不可用,这是因为没有给新划分的分区添加文件系统,

当前可以使用的文件系统有:ext4、ext2、 vfat、xfs,相比较二言,xfs的性能稳定,

扩展性强,并且文件传输速率高,是目前的主流文件系统,

因此,选择给新分区添加文件系统类型为 xfs:

mkfs.xfs /dev/vdb1  为新分区添加xfs,

添加完成后,我们可以看到此时vdb1可用:

 



此时可以将vdb1挂载到/mnt目录下:

3.再新建分区2,3,4;对分区4选择扩展分区

由于2,3分区为主分区,添加步骤与上诉方法相同,

因此以下展示分区4(扩展分区)的添加:



注意,在添加完成后,会出现如下警告:



意思是,需要重启或者同步分区表才可以使配置生效
3.同步分区表
可以看到,虽然我们进行了分区划分,但在系统可识别设备的文件中,找不到新划分的分区:



因此我们需要同步分区表:

同步完成后,我们会看到,刚刚划分的分区此时可以被设备识别:



4.添加逻辑分区:



同步分区表:



可以看到,在未添加文件系统时,是不能挂载的,会出现报错:空的文件系统类型



添加文件系统后,就可以正常挂载:



“注意”:设备在进行挂载时可以让一个设备挂载到一个目录下,也可以使一个设备挂载到多个目录,但是不能使多个设备挂载到一个目录
如下,我们在根下新建目录:/huige

 


将设备同时挂载到两个目录下:



在/mnt下新建文件,可以看到,此时此文件也可以在/test文件中看到:



5.开机自动挂载策略文件
对于我们新划分的分区,使用mount进行挂载后,这种挂载是临时的,

在我们进行重启后,挂载的信息会消失,那么,我们如何设置永久挂载?

vim /etc/fstab


再重启,就可以看到此时vdb1自动挂载到/mnt目录下:

 

4.swap分区管理

1.swap分区建立swapon -s 列出swap分区

在未进行设置的情况下,

可以看到当前不存在 swap分区



2).新建swap分区:




同步分区表,可以看到vdb6为swap分区:




3).添加swap分区设置:

swapon -a 临时添加swap分区,可被系统识别


4).永久添加wsap分区

vim /etc/fstab  永久添加swap分区

未添加前,-s不能列出swap分区的设置,添加后如图

永久添加swap分区的信息:



4).swap分区删除
 1.删除fstab中的信息


 2.swapoff /dev/vdb6 ##关闭设备

 3.fdisk /dev/vdb ##删除分区(必须先关闭设备,再删除分区)



同步分区表,查看分区信息,vdb6的分区信息被删除:

5.配额

配额是针对设备的容量限制,用户只有在指定设备上被限制使用存储空间的容量
1.新建目录

2.挂载设备,将目录设置为满权限再卸载:
“注意”:一定要先挂载再修改权限

 



3.对设备开启限额

可以看到,开启限额后,mount查看挂载状态发生改变:

 




4.查看限额是否开启



5.对用户配额:



6.测试:
切换到用户student:
发现,截取10M数据,对于用户student来说可以存储

但是student想储存30M的数据,就会提示超出配额,实际储存为24M:

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是MBR和主引导引导扇区?什么是主分区扩展分区逻辑分区?什么是活动分区、引导分区、系统分区、启动分区?一下子罗列这么多概念,恐怕很多人都搞不清它们的区别和联系吧。网上虽然不少解释,但很多是模棱两可甚至是错误的,反而越弄越糊涂。猫猫煞费苦心的把这一大串概念研究了很长时间,试图搞明白,为了以后查阅方便,于是把对这些概念的理解总结了一下。而要想分清这些概念,真要费一点脑筋啊! 一、MBR和主引导扇区 首先简要介绍MBR和主引导扇区的关系。 主引导扇区是硬盘0号柱面,0号磁头的第一个扇区,大小为512字节。(注:硬盘可以用柱面、磁头和扇区定位) MBR,占用主引导扇区的前446字节,紧随其后的64字节是分区表DPT,最后还剩两个字节则恒为55AA,表示结束符号。(下图,演示了它们的位置关系) 然后,具体说一说MBR分区表。 MBR,全称为Master Boot Record,即硬盘的主引导记录。MBR,共446字节,一般在操作系统安装时写入,但它并不属于操作系统。MBR就是一段引导程序,用于检测磁盘的分区合法性和加载操作系统,它的重要作用就是识别活动分区,并引导操作系统。 分区表DPT,共64字节,记录了硬盘有多少分区以及分区的各种属性。由于一个分区的信息要占用16字节,所以分区表只能定义4个分区,这就是为什么我们说硬盘一般最多只能分为4个主分区(这里说“一般”是对基本磁盘而言,而对于动态磁盘则无此限制,但大部分都在使用基本磁盘,可以暂不考虑 )。 计算机开机后BIOS加电自检,一切正常后,找到第一个启动设备(一般就是硬盘),然后从这个启动设备的主引导扇区读取MBRMBR这段引导程序识别活动分区,引导操作系统。 二、主分区扩展分区逻辑分区 正如前面所讲,主分区是由主引导扇区中64字节的分区表所定义的,最多只能有4个。但为了满足更多分区的需求,变产生了扩展分区。形式上,如果拥有扩展分区,就必须牺牲一个主分区,而且最多有一个扩展分区,也就是说:主分区+扩展分区<=4 and 扩展分区<=1。因此扩展分区也可以看成一种特殊的主分区。 但扩展分区并不可以直接使用,扩展分区又必须以逻辑分区的形式出现,可以这样认为:扩展分区包含着若干逻辑分区,而且至少包含一个。 扩展分区中的逻辑分区是以链式存在的。即每一个逻辑分区都记录着下一个逻辑分区的位置信息,依次串联。事实上每一个逻辑分区都有一个和主引导扇区类似的引导扇区,引导扇区里有类似的分区表。该分区表记录了该分区的信息和一个指针,指向下一个逻辑分区的引导扇区。 因此,逻辑分区是借鉴了主分区的方法,相当于在一个主分区下面建立了若干级“主分区”。从上面的描述,猫猫推测,逻辑分区是建立在操作系统级别,由操作系统识别的。另一个可以预测的现象是:一旦某一个逻辑分区损害,跟在它后面的所有逻辑分区都将丢失,而前面的逻辑分区去可以保留。这也是链式结果的特点。 三、活动分区、系统分区、启动分区、引导分区 这四个术语和前面三个不同,前面三个是讲述分区的“物理”形成。而这四个术语描述了分区的功能,并且更易混淆。 首先,根据Windows XP随机帮助文档看,引导分区就是启动分区,两者是同一概念,所以下面就只讨论活动分区、系统分区和启动分区。 系统分区和启动分区比较。 这是两个极易混淆的概念,因为两者的含义似乎和它们的名字正好颠倒了。Windows帮助文件的术语表里是这样解释他们的:”系统分区,包含加载 Windows(例如,Ntldr、Osloader、Boot.ini、Ntdetect.com)所需的硬件特定文件的分区。系统分区可以(但不是必须)与启动分区相同。启动分区,包含 Windows 操作系统及其支持文件的分区。启动分区可以(但不是必须)与系统分区相同。“ 看起来是很糊涂,但说的简单些就是:系统分区包含Ntldr、Osloader、Boot.ini、Ntdetect.com等文件,而启动分区包含Windows和system32文件。所以,真正包含操作系统内核文件的分区是启动分区,包含操作系统引导文件的确实系统分区,这是要特别注意的一点。 有些人就疑问了,我的Ntldr、Osloader、Boot.ini、Ntdetect.com和Windows、system32文件都在C盘,那是怎么回事?这很容易解释,你的C盘既是系统分区也是启动分区,只安装一个操作系统的计算机大都属于这种情况 ,所以微软在括号里说“但不是必须”。 其实系统分区时针对引导来说的,而启动分区时针对操作系统来说的。像我的电脑C盘先安装了Vista,后来D盘安装了XP,现在C盘是系统分区;至于哪个是启动分区,就要看我用那个系统了,进Vista,C盘就是启动分区,进XP,D盘就是启动分区。(再强调,启动分区包含Windows内核文件,而系统分区才包含操作系统引导文件,不然会越看越糊涂的。) 最后要搞明白的是活动分区,这一点,比较麻烦。 Windows帮助文档里的定义是:”活动分区,基于 x86 计算机的启动分区。活动分区必须是基本磁盘上的主要分区。如果只使用 Windows,则活动分区可以与系统卷相同。“补充说明有:活动分区必须是主分区,一块硬盘上只可以有一个活动分区。其他主分区可以被标记为活动分区。 而从主引导扇区处看,活动分区仅仅是在分区表中,16个字节的最前面含有80标志的分区信息所定义的分区。 但猫猫对Windows帮助文档的定义不敢苟同(也许是我错了,但是我思来想去,只有这样可以解释通)。首先,我们知道活动分区是通过主引导扇区的分区表标记的,所以理论上,每个主分区都可以被标记为活动(只是不当的标记会导致系统无法启动)。Windows帮助文档说活动分区,是基于x86的计算机的启动分区,那不就是说是Windows文件所在分区。可是对于双系统来说,这种说法显然不对,因为双系统的启动分区是依据被启动的系统而定的。所以,我假定微软也把系统分区和启动分区的概念搞混淆了。 所以,结果变为,活动分区是基于x86计算机的系统分区。换句话说,活动分区是一种系统分区。在这种情况下,一个主分区是不是系统分区似乎并不具有价值,只有被标记为活动的主分区才有价值。因为,只有标记为活动分区,这个系统分区的Windows启动支持文件才会被加载,然后通过这些引导存储在启动分区的Windows内核文件,完全Windows的启动。 所以,Windows可以被安装在逻辑分区内(我发现我的电脑就是这样的),但必须在活动分区的启动支持文件里加上对这个逻辑分区里Windows的引导信息。具体到XP,就是boot.ini文件添加上对双系统的引导,而这个boot,ini文件必须在启动分区。而我了一个实验,在XP下面通过启动和故障恢复对话框修改boot.ini文件,发现修改的并非XP所在的分区的boot.ini,而是Vista所在分区的boot.ini。(我在主分区C盘安装了Vista,逻辑分区D盘安装了XP)。同时,我通过软件废除Vista的新式引导方式,恢复xp的boot.ini式引导方式(此时,C盘Vista已无法引导),发现分别修改C盘和D盘的boot.ini,只有C盘的boot.ini才有效。再次印证了我的假设。 另外,如果两个系统都安装在主分区,则可以通过标记各自的安装分区为活动分区,而启动不同的操作系统。 参考资料: Linux引导过程内幕:http://www.ibm.com/developerworks/cn/linux/l-linuxboot/ 维基百科-主引导扇区:http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA 硬盘主引导记录详解(汇编代码详解):http://www.cnblogs.com/woodfish1988/archive/2007/11/25/971482.html Windows XP随机帮助文档(Windows帮助文档是一个很好的东西,有些人优化系统竟然把它删了,真是太不应该了。 呵呵,本文地址,猫猫的园地:http://blog.mm-share.cn/post/Partition-Comparison.html 写了这么多,希望对大家有所帮助。若有不足之处,望方家指正!另外,还有基本磁盘、动态磁盘,卷和分区的区别等待问题,还要进一步研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值