什么是文件系统?

文件系统就是对一个存储设备上的数据进行组织的机制,它使得对数据的访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用的数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在磁盘的哪个数据块上,只需要记住该文件所属目录和文件名,在写入数据之前用户不必关心硬盘上哪个块没有被使用,硬盘上的存储空间管理功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。

常见文件系统类型有:磁盘文件系统 FAT,FAT32,exFAT,NTFS,HFS,ext2,ext3,ext4 ,bfrfs;光盘iso9660,UDF; 闪存文件系统JFFS2,YAFFS; 数据库文件系统 BFS,WinFS; 网络文件系统 NFS.

在文件系统方面,Linux可以说是操作系统中的“瑞士×××”,Linux支持多种文件系统,如:Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等

对磁盘进行分区,格式化就是创建文件系统,本文以虚拟机演示如何创建文件系统

首先给虚拟机先添加一块硬盘

p_w_picpath

点next选择添加虚拟机磁盘

p_w_picpath

点击next选择scsi,点next输入需要添加硬盘大小

p_w_picpath

点击next ,完成虚拟机硬盘添加

p_w_picpath

添加完成后启动虚拟机,ls /dev就会看到目录下添加了一个sdb的文件,使用fdisk –l /dev/sdb既可以查看这块硬盘的详细信息。

p_w_picpath

接下来,我们就要对这块硬盘进行分区。Linux中常用的磁盘分区命令有fdisk,sfdisk,part

对于一块硬盘而言,可以将其划分为几个不同的分区,分区的大小可以根据需要,不同的分区可以拥有不同的文件系统。分区信息存储在磁盘的分区表中,分区表中列出每个分区起始柱面和结束柱面的相关信息。如下图,显示了/dev/sda上的分区信息。

p_w_picpath

Fdisk是一个交互式的命令,输入fdisk [DEVICE],输入m跳出帮助信息,几个常用的选项:

d:删除一个分区

n:创建一个分区

p:显示当前分区信息

l:显示各分区类型所对应的id,如上图id

t :修改指定分区的system id

q:不保存退出

w:保存退出

下面使用fdisk创建一个新分区,下图演示的是创建一个5G的分区,也可以通过输入结束柱面的信息来创建分区,这里默认是创建id为83的分区,也可以通过t选项更改为其他的类型

p_w_picpath

接下来就要格式化分区,创建文件系统

Linux中常见的格式化分区的命令有mkfs,mke2fs,也可以使用ls /sbin/mk*查看文件系统创建命令

mkfs -t fstype /dev/part 如果不指定-t则创建为默认文件系统类型,可以使用man mkfs查看

mke2fs可以创建ext2/ext3/ext4格式的文件系统,常用的选项有:

-t:指定文件系统类型(ext2/ext3/ext4)

-b:指定块大小

-L label:设定卷标

-m #:设定预留给管理适用的块所占据总体空间的比例

-r #:设定预留给管理适用的块的个数

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

下面就将前面的分区进行格式化为ext3类型的文件系统

p_w_picpath

对于 ext2、ext3 和 ext4 系统,一个有用的选项是带有一个名称的 -L 选项,该选项为分区指定了一个标签。这个标签可用于在挂载文件系统时代替设备名称;它针对可能需要在各种控制文件中反映的更改提供某种级别的隔离。要为现有 ext2、ext3 或 ext4 文件系统显示或设置标签,请使用 e2label 命令。标签的最大大小限制为 16 个字符

p_w_picpath

分区格式化后,如果想查看分区的属性,可以使用tune2fs 命令,如果想更改分区属性,也可以使用该命令

常用选项:

-l:显示文件系统超级块信息

-L label:重新设定卷标

-m #:调整预留给管理使用的块所占据总体空间的比例

-r #:调整预留给管理使用的块的个数

-E:调整文件系统扩展属性

文件系统格式化后要使用需要先挂载,使用mount 命令,mount可以通过设备,卷标及UUID三种方式将分区挂载致挂载点。挂载完成后如果不想挂载可以使用umount取消挂载,下面是使用设备挂载

p_w_picpath

这里需要提醒:

挂载之后,原有数据的会被隐藏,因此不能挂载到系统常用目录上;    
卸载之时,要确保没有进程正在访问挂载的设备;否则,无法卸载;

这样挂载后如果系统重新启动,则重启后不能再自动挂载,如果想让其自动挂载则需要将其写入/etc/fstab