创建文件系统也称之为磁盘分区格式化。

   磁盘:也称之为硬盘,由盘片,机械臂,磁头,马达组成。马达带动盘片旋转,,由机械臂上的磁头在盘片上读写数据。

   磁盘盘片的组成:

       1.扇区:(sector)为最小物理存储单位,每个扇区为512字节

       2.柱面:(cylinder)是分区(partition)的最小单位

       3.磁盘的第一个扇区通常存放MBR(开机主引导记录,Master boot record)及磁盘分区表(partition table),其中MBR占用446字节,而磁盘分区表占64字节,最后2个字节为启动标记。

   每16个字节标示一个分区,在linux系统上最多能分四个主分区,或者三个主分区和一个扩展分区,在扩展分区中可以划分多个逻辑分区。注意:一个硬盘只能有一个扩展分区!

   使用fdisk -l: 查看所有磁盘信息,后跟设备路径查看某个磁盘的信息:


创建文件系统


   使用fdisk 后跟磁盘路径会出现交互式选项:

创建文件系统


   使用m是获得帮助:

创建文件系统


   使用d是删除一个分区:加入我删除第三个分区:

创建文件系统

   使用q是不保存退出:

创建文件系统


   退出后,我们发现删除操作没有生效。再看看其他选项:

创建文件系统

   选项n是新建一个分区,我们这里已经有三个主分区了,因此我把第四个分区设为扩展分区,以便我在其内部创建逻辑分区,由于linux操作系统上只能创建四个主分区,所以,最后两项柱面的选项我都选择了默认。如果我们不按回车选默认,就会有一段磁盘空间无法分配使用,这样就会浪费磁盘空间。

   使用选项p显示当前分区信息:

创建文件系统

   然后我们就来创建逻辑分区:

创建文件系统

   选项l:各分区类型所对应的system id:

创建文件系统


   使用选项t,可以修改某指定分区的system id:

创建文件系统

   我现在将创建好的分区进行保存退出(w),并用fdisk -l查看:

创建文件系统

   这样分区就创建好了,但这时候内核并未对新创建的分区进行识别,打开/proc/partitions进行查看:

创建文件系统

   使用partx -a 后跟磁盘名称,先试一试:

创建文件系统

   我为何之前要说试一试,有时候使用上述方法不一定能让内核识别,如果内核无法识别,就使用:partx -a [分区] [设备磁盘名称]。

如果内核无法对所创建的分区进行识别,就无法对其进行控制。而只有内核对分区进行控制之后,分区才能够被格式化。

   partx还有一个用法:partx -d [--nr 分区] [设备磁盘名称]

创建文件系统

   下面我们看看分区格式化:

   格式化分区,也称作创建文件系统:

创建文件系统的命令有很多,但是mkfs是通用命令,对非ext系列文件系统均可创建。不过,要使用mkfs创建文件系统需要两个前提:

       1.文件系统必须被内核支持才能使用,即内核中有相应的内核模块,或已经将之整合进入内核。

       2.要有相应的文件系统创建工具,通常是mkfs.fstype创建文件系统

       上图是我的虚拟机中的linux所拥有的文件系统创建工具,我们先看看已经创建好的分区的文件系统类型,使用blkid命令查看:

创建文件系统

       我们已经看到前两个分区是ext4类型,第三个分区是swap类型,而第四,第五个分区都还没有创建文件系统,但是第四个分区它是扩展分区,

   扩展分区上是不能够直接创建文件系统的,而只能在其内部的逻辑分区上创建,也就是在第五个分区上创建:

创建文件系统

       以上我使用mke2fs -t ext4 /dev/sda5对分区5进行了文件系统的创建,我们再来查看一下:

创建文件系统


       对于ext系列的文件系统的创建方式有一下几种:

   mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4

   mkfs -t ext3 = mkfs.ext3 = mke2fs -t ext3 = mke2fs -j

   mkfs -t ext2 = mkfs.ext2 = mke2fs -t ext2  mke2fs

mkfs 是针对所有文件系统的创建命令,而mke2fs 只是针对ext系列文件系统的创建命令。mke2fs 有一个配置文件/etc/mke2fs.conf 用于设定 mke2fs 的默认特性,以及文件系统的特有特性:

创建文件系统

       而这些特性都是可以在我们需要的时候加以更改的。另外,我们还可以使用一些选项对被格        式化的磁盘做一些设定:

创建文件系统

   以上我使用的那条命令是用来查看5号分区的块大小的,下面我来对5号分区的块大小重新设定:

创建文件系统

   我再用tune2fs -l 这条命令来验证一下:

创建文件系统

   同时,我们还可以调整给管理员使用的块在分区中的空间比例。

   首先,我们先来看一下没有调整前的空间比例:

创建文件系统

       5号分区的块总个数是:2623506块,预留给管理员使用的块个数是:131175块。我们来用bc           计算器计算一下比例:

创建文件系统

       根据以上操作,我们可以得出结论:预留给管理员使用的块所占的比例,在没有事先设定的        情况下,通常不超过5%。我们可以通过以下操作对此设定进行调整:

创建文件系统

       上面的操作我执行了两条命令,第一条命令中我将比例调整到了3%,第二条命令是用来验证        第一条的执行效果。

       在创建文件系统的过程中,还有些其它选项可以设定:

           -L:设定卷标

           -r:设定给管理员使用的块的个数

           -E:设定文件系统的扩展属性

           -o:设定挂载的默认选项

           -O:设定文件系统的默认特性

       以上这些选项都可以被 mke2fs 和 tune2fs 命令使用,唯独-b:块大小的设定,以及-t:文件        系统的类型只有 mke2fs 能够运用,而 tune2fs 是无法做到的。

       另外,还有一个命令可以用来设定卷标:e2label

创建文件系统

       以上是本人对创建文件系统的总结,欢迎大家前来吐槽!