最近又开始重新拾起linux了,因为工作中用的很少,所以看得东西很容易就忘记了。

   这几天看了下linux的分区,以及如何制作文件系统等相关命令的用法,下面就按照这个流程来讲一讲,免得自己日后忘记了。


1.分区

   磁盘分区,即指定分区的起始和结束柱面。我们在安装linux系统的时候,都会将磁盘划分为独立的几块,这就是分区,柱面是分区的最小单位,柱面由扇区构成,第一个扇区是最重要的,里面有MBR(446byte)和分区表(64byte),扇区大小固定为512byte。


2.文件系统

   文件系统是怎么来的呢,给硬盘进行分区之后,当需要往硬盘上读写数据时,我们并不了解硬盘里面的相关构造是怎样的,那应该怎么办呢,给他映射一个我们熟悉的目录,这样该存到哪里,从哪里取出来就很清楚了。这个映射目录的过程,我们就称为制作文件系统,在后面将会详细解释。


   但是一个文件系统如此的庞大,相当不易管理。因此,一个文件系统又被分为很多的块组(block group),每个块组中都含有6个重要的内容:superblock、文件系统描述、block对应表,inode对应表、inode table、block table。

*文件的内容存放在block table中,而inode table记录了文件的属性,以及该文件对应的      block table

superblock:里面存储着整个文件系统的相关信息,如block和inode的总量,挂载时间,最近一                 个写入数据的时间等等。

文件系统描述:描述块组block group对应的开始block和结束block号码。

block 对应表:记录了哪些block存放了数据,哪些block空闲可以被使用

inode 对应表:记录了哪些indode存放了数据,哪些inode空闲可以被使用。

inode table:记录文件的相关属性,以及内容的block的号码,一个文件仅对应一个inode(大                   小固定128byte)。

block table:记录文件的内容,一个文件可存在多个block(有1k,2K,4k大小不同的size)


df :列出系统中所有文件的系统

      -h:结果中显示友好的单位,G,M,k

      -T:结果中显示文件系统的类型,如ext4等

      -i:不显示硬盘容量,而是显示inode的数量

      -a:显示所有的文件系统,包括特殊的文件系统


dumpe2fs  设备名:查看该设备的详细信息(superlock等信息)

  例子:dumpe2fs  /dev/sda1


3.文件系统的制作

(1)在安装linux的时候,分区时,可以手动选择分区格式化时的文件系统,挂载的目录。

(2) 如果磁盘还存在剩余空间的时候,我们可以手动通过命令来制作文件系统,其过程为  

创建分区——格式化——挂载目录 3步骤。


(2-1)fdisk 对磁盘进行分区

   通过df命令,我们可以看到设备名,IDE接口的为/dev/hda...,SATA接口的为/dev/sda...

fdisk 磁盘文件名(注意是/dev/sda,不要加上数字)

相关操作:p   查看所以分区

              n   新建分区

              d    删除分区

   使用n操作添加一个分区既可。


(2-2)mkfs 对分区进行格式化,也就是格式化为何种文件系统

   mkfs -t  文件系统  设备名称

例子:mkfs -t  ext4 /dev/sda5    表示将设备/dev/sda5格式化为ext4的文件系统

    如果是新建的分区,立即进行格式化,则会提示分区不存在,可以执行命令partprobe或者重启      来将新建的分区加入分区表


(2-3)mount 挂载,将格式化好的分区与目录映射上

mount -L “卷标名” 目录  :利用设备的卷标来挂载,

e2lable可以修改设备的卷标名称  e2lable 设备名 "lable名"

mount  设备名   目录:   将设备挂载到目录

mount -l :查看所有的挂载情况

mount  --bind 目录 目录 :将目录挂载到目录


unmount  卸载   unmount  设备名/目录


    以上这三部就可以完成  一个文件系统的制作了,记住 fdisk,mkfs,mount!