2014年9月25日

Linux文件系统:MKFS,JOURNAL日志,E2LABEL,FSCK

操作系统通过文件系统管理文件及数据,磁盘或区分需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程又称之为格式化。

没有文件系统的设备又称之为裸(raw)设备
常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等
文件系统之问的区别:日志、支持的分区大小、支持的单个文件大小、性能等

window下的主流文件系统是:NTFS
Linux下的主流文件系统是:Ext3、Ext4
(Linux若要读取NTFS系统的文件,需要装驱动)

Linux支持的文件系统
ext2
ext3
ext4
fat(mddos)
vfat
nfs
iso9660
proc
gfc
jfs

MKE2FS
命令mke2fs用来创建文件系统
mke2fs -t ext4 /dev/sda3

常用参数:
-t 系统类型
-b blocksize 指定文件系统块大小
-c 建立文件系统时检查坏损块
-L label 指定卷标
-j 建立文件系统日志(ext3和ext4是默认带日志,所以不用这个参数)

MKFS
命令mkfs也可用于创建文件系统,相较于mke2fs简单,但是支持的参数较少,不能进行精细的控制

mkfs. ext3 /dev/sda3
mkfs. ext4 /dev/sda3
mkfs. vfat /dev/sda3

DUMPE2FS
命令dumpe2fs可以用来查看分区的文件系统信息
dumpe2fs /dev/sda2

JOURNAL日志
带日志的文件系统(ext3、ext4)拥有较强的稳定性,在出现错误时可以进行恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,当进行磁盘操作时,文件系统进行以下操作:
(1)文件系统将准备执行的事务的具体内容写入日志
(2)文件系统进行操作
(3)操作成功后,将事务的具体内容从日志中删除
这样做的好处是,当事务执行的时候如果出现意外(如断电或磁盘故障),可以通过查询日志进行恢复操作。缺点是会丧失一定的性能(额外的日志读写操作)。

E2LABEL
命令e2label可以用来为文件系统添加标签
2label/dev/sda2 显示sda2的系统标签
e2label/dev/sda2 LINUXCAST 将sda2的系统标签设置为LINUXCAST

FSCK
命令fsck用来检查并修复损坏的文件系统(需卸载磁盘才可检查)
fsck/dev/sda2

使用-y参数不提示而直接进行修复
默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,请使用-t参数指定文件系统类型。
对于识别文件的损坏数据(文件系统无记录),fsck会将文件放入lost+found目录
系统启动时会对磁盘进行fsck操作