Linux的哲学思想即一切皆文件,磁盘也布例外。Linux中磁盘设备分为两类,一种为块设备:随机访问,数据交换单位是以块为单位;另一种是字符设备:具有线性访问特性,数据交换单位是字符。在Linux的FHS中定义,在/dev目录下存在和设备文件这么个东东。设备文件是关联至设备的驱动程序,能够识别设备饿访问入口。用“ls -l /dev”查看设备文件,将不现实设备文件的大小,而显示的是设备号:主设备号(major)、次设备号(minor)。图中画框的位置本来是存放文件大小的,这个可不是一万零一百七十五的意思啊。前边就是主设备号,而后边的便是次设备号。


Linux的磁盘管理及LVM之一基本概念概念与分区的创建_Linux

    什么是主设备号?什么又是次设备号呢?

    主设备号 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之二分区格式化与挂载》