linux磁盘分区知识
目录
2、补:(企业面试题:一台服务器6块600G的磁盘,raid5后,总大小3T,此时无法装系统?请问为什么? 3
linux磁盘分区知识
一、硬盘存储逻辑结构。
1、硬盘存储逻辑结构图:
2、16字节分区表的内容。
说明:这就是一个磁盘分区的分区表,例如:/dev/sdal,fdisk,parted分区工具分区的实质就是在改变下述64字节的分区表信息。
3、主引导记录MBR 。
硬盘的0磁头 0磁道 1扇区,是硬盘上的一个非常重要的位置。在这个扇区中,存放有硬盘的主引导记录MBR(Master Boot Record)和硬盘的分区表DPT(Disk Partition Table)。
[[email protected] ~]# dd if=/dev/sda of=mbr.binbs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000713399 秒,718 kB/秒
二、磁盘分区。
1、磁盘分区的重点。
给磁盘分区的实质就是针对上述0磁头0磁道1扇区的前446字节后面接下来的64bvtes的分区表进行设置,即主要是划分起始以及结束磁头号、扇区号及柱面号。
给磁盘分区的工具有fdisk(适合给小于2T的磁盘分区),parted(擅长给大于2T的磁盘分区,可以对小于2T的磁盘分区),首选fdisk,只有大于2T时才去选parted。
一块磁盘的分区表仅有64个bvtes大小,每个分区表要占用16个字节,因此一块磁盘仅支持四个分区表信息,即主分区+扩展分区的总量不超过4个。
磁盘分区是按照柱面(cvlinder)来划分的(从磁盘读写原理角度可以理解)。
扩展分区不能直接使用的,还需要在扩展分区的基础上创建逻辑分区才行。
扩展分区有自己的分区表,因此,扩展分区下面的逻辑分区可以有多个。
磁盘在使用前一般需要进行分区,当然如果不分区直接格式化使用也是没问题的,但这不是常见情况。磁盘分区有主分区、扩展分区和逻辑分区Z分。一块硬盘最多可以有4个分区表信息(磁盘本身限制),其中一个主分区的位置可以用一个扩展分区替换,且一块硬盘只能有一个扩展分区(操作系统限制),在这个扩展分区内可以划分多个逻辑分区(IDE磁盘逻辕分区大概编号可以是(5-63)。SATA(编号5-15)。
2、补:(企业面试题:一台服务器6块600G的磁盘,raid5后,总大小3T,此时无法装系统?请问为什么?
解决办法:
方法1:做raid5后,不要重启装系统,而是再raid界面,继续分1个小的虚拟磁盘vd200G,用这个200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T分区通过parted)。
方法2:先拿1块盘raid0,剩下5块在做raid5,在raid0装系统。
方法3:装系统时,选下gpt分区格式,即可安装系统。
3、主分区Primary
一般来说,主分区是磁盘上必须存在的分区,一般为磁盘的第一个分区,我们可以在这个主分区上面安装操作系统。在一个磁盘上最多只能有四个主分区,这是为什么呢?因为每个主分区都会在主引导扇区中生成分区表DPT,每个分区表需要占用大小16bytes,前文图中提到,当初的硬盘设计时,只给分区表留下了64bytes的存储空间,所以,就只能有四个主分区!生产环境中,四
个主分区有可能不够使用,那么怎么来扩展呢?对,使用扩展分区来扩展!
一个磁盘想分6个区,主分区和扩展分区的数量是多少:
lp+le,2p+le,3p+le。
我们前面装系统:
/boot主分区
swap主分区
/ 主分区
4、扩展分区Extended
严格来说,扩展分区不能算一个正常的分区,而是一个链接,起到一个指向的作用。我们可以再扩展分区内建立逻辑分区( logical),从上面逻辑结构圉中我们可以看到,扩展分区就像一个虚拟出来的一个小硬盘一样,但是不同的是,没有MBR,而只有扩展分区表,而且这个扩展分区表是没有64bytes的限制的,所以可以在扩展分区划分多个逻辑分区。
一块硬盘只能存在一个扩展分区,并且扩展分区不能直接存放数据,扩展分区受限于操作系统。
5、逻辑分区logical
不能在磁盘中单独直接划分逻辑分区(fdisk),逻辑分区必须存在于扩展分区内。在扩展分区内可以划分多个逻辑分区,逻辑分区
的编号从数字5开始。在这个扩展分区内可以划分多个逻辑分区(IDE磁盘大概编号可以是5-63)。SATA(编号5-15)。
实际应用:主分区和逻辑分区,都可以用。一般系统安装用主分区,存放数据都可以。
6、磁盘分区注意事项要点
一块磁盘的分区方式只能为如下组合之一:
(1) 任意多个主分区,但要求1≤主分区数量≤4。
例如:一个硬盘可以分为4个主分区3个主分区2个主分区一个主分区。
(2) 扩展分区可以和主分区组合,但要求2≤(主分区+扩展分区)数量≤4。
例如:3个主分区+1个扩展分区或2个主分区+1个扩展分区或一个主分区+一个扩展分区。当总分区数量大于4个的时候,必须提前分一个扩展分区,扩展分区最多只能有一个。
(3) 如果要分成四个磁盘分区的话,那么最多就是可以:
P+P+P+P
P+P+P+E
其中的P为Primary,E为Extended。
特别说明:
由于MBR及磁盘分区表大小的限制,如果对磁盘分配了4P或3 P+E后,即使硬盘还有剩余未分的空间,那么,这部分空间也无法分区使用了(因为无分区可分了,分区表空间己被占满)。因此,在做分区规划时,如果业务需要,在分区之前就已经明确要超过4个分区,那么可以选择3P+1E的分区方式,并且在最后一个扩展分区要将所有的剩余空间都分配给这个扩展分区。当然,也可以采用lP+1E,2P+1E的分区方式,其实就是主分区不分完,保留不分。
说明:
扩展分区不是一个真正的可用分区,建立完扩展分区后,还需要在扩展分区上面建立逻辑分区才可以使用。
对于主分区和逻辑分区在一般的数据存储使用上是没有区别的(对于大多数的数据存储),在安装操作系统时第一个分区要选主分区。
分区数字编号1~4留给主分区或扩展分区使用,逻辑分区编号只能从5开始,即使1~4分区号即使有剩余,也不会分配给逻辑分区。
对硬盘分区,实际上就是在修改硬盘的分区表(Partitiontable),也就是说我们通过fdisk分区实际上就是在改64字节的分区表,分区和对应的数据没有关系。因此,理论上,调整分区大小,不会删除分区内的数据。
特殊说明:磁盎也可以不分区,直接格式化使用,但是作者老男孩不推荐这样做。
门户大网站:
/boot100M主分区
swap 1.5倍 主分区
/50 –200G主分区
不在进行分区,保留,将来哪个把分用,就自己根据需求再分<==灵活 扩展分区
7、硬盘分区的设备名
在Linux系统中,是通过设备名来访问设备的,设备名存放在“/dev”目录中
设备名称的定义规则如下,其他的分区可以以此类推:
系统的第一块IDE接口的硬盘称为/dev/hda。
系统的第二块IDE接口的硬盘称为/dev/hdb。
系统的第一块SCSI接口的硬盘称为/dev/sda。
系统的第二块SCSI接口的硬盘称为/dev/sdb。
SATA,SAS都是sd开头。
每个分区则使用磁盘名称加对应的数字编号表示,如:
系统的第一块IDE接口硬盘的第1个分区称为/dev/hda1。
系统的第一块IDE接口硬盘的第5个分区称为/dev/hda5。
系统的第二块SCSI接口硬盘的第1个分区称为/dev/sdb1。
系统的第二块SCSI接口硬盘的第5个分区称为/dev/sdb5。
注意
分区数字编号1~4留给主分区或扩展分区使用,逻辑分区编号只能从5开始。
IDE硬盘设备名均以idev/hd开头不同硬盘编号依次是/dev/hda/、dev/hdb、/dev,hde ……。
SCSI/SAS/SATA/USB接口硬盘的设备名均以/dev/sd开头。不同硬盘编号依次是/dev/sda/、dev/sdb、/dev/sdc……
特别强调:SAS/SATA为当前2010-2012互联网生产环境主流硬盘接口,SSD固态硬盘,由于是电子设备,性能很高,也逐渐被应用)。
Linux环境下没有盘符的概念。要对磁盘设备进行操作,需要使用磁盘设备名;读取磁盘设备内容,需要把创建在分区或逻辑卷上的文件系统挂载到指定的目录上。
在Linux系统上划分了分区之后,还要在分区上创建文件系统。
Linux系统对分区的要求
(a)最少要有/以及swap两个分区(其实,swap也可以没有)。
(b)swap(交换分区)的作用:虚拟内存,swap分区的大小=1.5*物理内存容量,如果内存大于8—16G,那么就角8-16G作为swap即可。
(c)建议设置独立的/boot分区
linux引导分区,存放系统引导文件,如Linux内核等所有文件大小一般只有几十M。因此,该分区设置100-200M
安装即采用常规的生产线上一般服务器分区方式:/boot,swap,/三个分区。