硬盘的存储及分区

a) 硬盘的存储结构

i. 硬盘的存储结构包括主引导目录、分区表、分区结束标志、及其他分区的引导信息及数据区信息。

ii. 主引导记录MBR

硬盘的0磁头0磁道1扇区,是硬盘的一个非常重要的位置。在这个扇区中,存放有硬盘的主引导记录MBRMaster Boot Record)和硬盘分区表DPTDisk Partition Table)。

dd if=/dev/sda(来源) of=mbr.bin(备份文件) bs=512(一个块大小) count=1(块的数量)  (把第一分区的数据备份到mbr.bin

od -xa mbr.bin  (以二进制形式查看mbr.bin

iii. 主分区Primary

主分区时磁盘必须存在的分区,一般为磁盘的第一个分区,可以在主分区上面安装操作系统。

/boot主分区

swap主分区

/主分区

一个磁盘想分六个区,主分区和扩展分区的数量是多少?

1p+1e, 2p+1e, 3p+1e

iv. 扩展分区Extended

扩展分区不能算一个正常的分区,而是一个链接,起到一个指向的作用。一块磁盘只能存在一个扩展分区,并且扩展分区不能直接存放数据,扩展分区受限于操作系统。

v. 逻辑分区logical

逻辑分区必须存在于扩展分区内。逻辑分区的编号从数字5开始。实际应用:主分区和逻辑分区,都可以用。一般系统安装用主分区,存放数据都可以。

vi. 磁盘分区总结

一块硬盘的分区方式只能是如下组合之一

1. 任意多个主分区,但要求1<=主分区数量<=4

2. 扩展分区可以和主分区组合,但要求2<=(主分区+扩展分区)数<=4,扩展分区最多一个

3. 如果分成四个磁盘分区,那么最多可以:

P+P+P+P

P+P+P+E

扩展分区不是一个真正的分区,建立完扩展分区后,还需要在扩展分区上建立逻辑分区才能使用。

对于主分区和逻辑分区在一把的数据存储使用上是没有区别的,在安装操作系统时第一个分区要选主分区。

分区数字编号1~4留给主分区和扩展分区使用,逻辑分区只能从5开始。

对硬盘分区,就是在修改硬盘的分区表,也就是说我们通过fdisk分区实际上就是在该64字节的分区表,分区和对应的数据没有关系。因此理论上,调整分区大小,不会删除分区内的数据。

b) 磁盘分区的重点

i. 磁盘分区实质就是针对上述0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是换分起始以及结束磁头号,扇区号及柱面号。

ii. 给磁盘分区的工具有fdisk(适合给小于2T的磁盘分区),parted(擅长给大于2T的磁盘分区)。

企业面试题:一台服务器6600G的磁盘,raid5后,总大小3T,此时无法装系统。为什么?

解决办法:

方法一:做完raid5后,不要重启装系统,而是在raid5界面,继续分1个小的虚拟磁盘vd 200G,用200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T分区通过parted

方法二:拿一块盘做raid0,剩下5块做raid5,在raid0上装系统。

方法三:装系统时,选择gpt分区格式,即可安装系统。

iii. 一块磁盘分区表仅有64bytes大小,每个分区表要占用16字节,因此一块磁盘仅支持四哥分区表信息,即主分区+扩展分区的总量不超过4个。

iv. 磁盘分区时按照柱面来划分的。

v. 扩展分区不能直接使用,还需要在扩展分区的基础上创建逻辑分区才行。

vi. 扩展分区有自己的分区表,因此,扩展分区下面的逻辑分区可以有多个。

c) 分区问题案例:

1.大硬盘暂时分为四个区,同时还希望有其他的空间可以在未来需要的时候在进行分区,如何做?

i. 3p+1e(1L)剩下空间保留

ii. 2p+1e(2L)剩下空间保留

iii. 1p+1e(3L)剩下空间保留

2.假如有一块SAS硬盘,想把磁盘分成6个可以使用的磁盘分区,那么每个磁盘分区在linux下的数字编号是多少?

3p+1e(3L)编号:主:1 2 3 扩展逻辑:5 6 7

2p+1e(4L)编号:主:1 2 扩展逻辑:5 6 7 8

1p+1e(5L)编号:主:1 扩展逻辑:5 6 7 8 9

d) 磁盘分区设备名

linux中,是通过设备名来访问设备的,设备名存放在“/dev”目录中。

分区数字编号1-4留给主分区或扩展分区使用,逻辑分区编号只能从5开始。

IDE硬盘设备名均以/dev/hd开头,不同硬盘编号依次为:/dev/hda/,/dev/hdb/,/dev/hdc/......

SCSI/SAS/SATA/USB接口硬盘设备名均以/dev/sd开头。不同磁盘编号依次为/dev/sda/,/dev/sdb/......

特别强调:SAS/SATA为当前2010-2012互联网生产环境主流硬盘接口,SSD硬盘,由于是电子设备,性能很高,也逐渐被应用。

Linux环境下没有盘符的概念。要对磁盘设备进行操作,需要使用磁盘设备名:读取磁盘设备内容,需要把创建在分区或逻辑卷上的文件系统挂载到指定目录上。

Linux系统上划分了分区之后,还要在分区上创建文件系统。

e) linux系统对分区的要求

最少要有/以及swap两个分区(其实swap也可以没有)

swap(交换分区)的作用:虚拟内存,swap分区大小=1.5*物理内存容量,如果物理内存大于8-16G,那么就用8-16G即可。

建议设置独立的/boot分区 #linux引导分区,存放系统引导文件,如linux内核等,所有文件大小一般只有几十M。因此该分区设置100-200G

安装即采用常规的生产线上一般服务器分区方式:/boot,swap,/三个分区。


推荐优秀博文:             出处:老男孩(oldboy)

生产场景不同角色linux服务器分区案例分享 http://oldboy.blog.51cto.com/2561410/634725 

生产场景如何对linux系统进行分区?  http://oldboy.blog.51cto.com/2561410/629558