Linux的哲学思想即一切皆文件,磁盘也布例外。Linux中磁盘设备分为两类,一种为块设备:随机访问,数据交换单位是以块为单位;另一种是字符设备:具有线性访问特性,数据交换单位是字符。在Linux的FHS中定义,在/dev目录下存在和设备文件这么个东东。设备文件是关联至设备的驱动程序,能够识别设备饿访问入口。用“ls -l /dev”查看设备文件,将不现实设备文件的大小,而显示的是设备号:主设备号(major)、次设备号(minor)。图中画框的位置本来是存放文件大小的,这个可不是一万零一百七十五的意思啊。前边就是主设备号,而后边的便是次设备号。
什么是主设备号?什么又是次设备号呢?
主设备号 major:是区别设备类型的一个标识,用户标明设备所需的程序。
次设备 minor:是区分同种类型的不同的设备,是特定设备的访问入口。说白了奏是设备序列号,为了彼此区分而已。
在Centos5之前的版本,设备的注设备号是可以区分不同类型的设备的,比如下表:
设备名称 major minor
/dev/hda 3 0-63
/dev/hdb 3 64-127
/dev/sda 8 0-15
/dev/sdb 8 16-31
主设备号为3的设备即/dev/hda /dev/hdb 属于IDE接口硬盘。而主设备号为8的即设备号为/dev/sda,/dev/sdb为SCSI,SATA,USB,SAS接口硬盘。但到了CentOS6-7,已经不在有此种分类,统统将硬盘设备标识为/dev/sd[a-z]。
一、磁盘分区的概念:
在磁盘中第一个扇区即第一个512bytes存在着一个神秘的东东,他就是负责启动你操作系统的Master Boot Record
(主引导记录)。MBR分为三部分:
1、在这512字节的前446bytes,存在的东西叫bootloader,引导启动操作系统的一个程序;
2、紧接着64bytes中揍是文件系统的分区表。每16个字节标识 这一个分区,所以一个操作系统主分区+扩展分区最多只
能有4个分区。
“不对,我的操作系统有5个分区!!!”没错,不过你的操作系统肯定是有一个扩展分区,在扩展分区中又创建了多个逻
辑分区,所以会多于4个。那就是主分区、扩展分区和逻辑分区的概念了。先不说MBR的第3部分,先解释一下三种分区的意义。
主分区:
扩展分区:扩展分区可以再继续划分多个分区——逻辑分区。
倘若你有500G硬盘,你划分了3个100G的主分区,又划分了一个100G的扩展分区。相加起来才400G啊,那100G呢?有的说
我再添加一个分区。嘻嘻嘻嘻,乖乖别做梦了,不是告诉了分区只能划分4个(主分区+扩展分区)。那100G 就废掉了,不信你可以试试。
3、最后的2bytes中是MBR区域的有效性标记,55AA则为有效,否则无效。
二、磁盘分区管理:
fdisk命令,此命令提供了一个交互式接口,来管理分区,他有许多的子命令,分别用于不同的管理功能,所有操作均在内存中完成,没有这直接步到磁盘中去,直到使用w这个参数命令。
(1)查看分区信息参数
fdisk -l [-u] [device...]
(2)常用管理分区参数
fdisk DEVICE 输入m即可查看到如下参数信息。
n:创建新的分区
d:删除分区
t:修改分区类型
l:查看所有分区类型对应的ID
W:保存退出
q:不保存退出
m:查看帮助信息
p:打印磁盘信息
例:我创建一个新的分区:
a、创建分区
[root@centos6 ~]# fdisk /dev/sda
Command (m for help):n
Command action
l logical (5 or over) #选择创建逻辑分区,分区号从5开始
p primary partition (1-4) #选择创建主分区,分区号1-4
l #我创建的是逻辑分区
First cylinder (3527-3916, default 3527): #分区的开始柱面 (CentOS6是柱面为单 #位,而CentOS 7 则是以扇区为单位)
Using default value 3527
Last cylinder, +cylinders or +size{K,M,G} (3527-3916, default 3916): +1G
#分配多大空间。
Command (m for help):w #此时可以输入p,查看刚创建的磁盘分区。 #这里就不演示了,我直接将创建的分区保存退出。
注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别。
b、查看磁盘分区的方法:
cat /proc/partitions #查看内核识别到的所有分区
c、通知内核强制重新读磁盘分区表,目的就是让内核 能够识别出磁盘的分区表。
Centos 5:
]# partprobe [device]
Centos 6,7:
]#partx -a [device]
或 ]#kpartx -af [device]
在用 cat /proc/partitions 就可以含看到新建的分区了。如果没有显示,则多让内核读几次分区表。
分区创建好了,但是磁盘还是不能用,还需要进行格式化、挂载... 这些内容详见《Linux的磁盘管理及LVM之二分区格式化与挂载》