之前学了linux分区操作,但是分区完的磁盘是不能直接使用的,需要加入文件系统。
文件系统
操作系统通过文件系统管理文件以及数据,磁盘或分区需要创建文件系统之后才能够位操作系统使用,创建文件系统的过程俗称为格式化
没有文件系统的设备又称之位裸设备(raw)
常见的文件系统:windows 下的 FAT32 NTFS
linux下的 ext2 ext3 ext4 xfs HFS等
文件系统之间的区别在于:日志、支持的分区大小、支持的单个文件大小、性能等差别。
创建文件系统
创建文件系统会用命令:
mke2fs命令
mke2fs -t ext4 /dev/sdb1
#常用的参数
# -b blicksize 指定文件系统块大小
# -c 建立文件系统时检查坏损块
# -L label 指定卷标
# -j 建立文件系统日志 (ext2是没有文件系统日志的,但是ext3 ext4是默认有文件系统日志的)
mkfs命令
相对于mke2fs简单,但是支持的参数较少,不能进行精细化的控制
mkfs.ext3 /dev/sdb1
mkfs.ext4 /dev/sdb1
...
查看分析的文件系统
可以通过dumpe2fs来查看文件系统信息,一般用于系统调优是时候使用(一般情况下不使用,打印信息太多了)
dumpe2fs /dev/sdb1
文件系统日志
带日志的文件系统(ext3 ext4)拥有较强的稳定性,在处错误时可以进行恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,当进行磁盘操作时,文件系统进行以下操作:
1 文件系统讲准备执行的事物的具体内容写入日志
2 文件系统进行操作
3 操作成功后,将事务具体内容从日志中删除
当事务执行的时候如果出现意外(如 断电,磁盘故障),可以通过查询日志进行恢复操作。缺点会丧失一定的性能(额外的日志读写操作)
给文件系统添加标签
e2label命令e2label /dev/sdb1 显示sdb1的系统标签
e2label /dev/sdb1 PROJECT 将sdb1标签设置位PROJECT 一般名称位大写字母
检查修复损坏的文件系统
注意:只有当卸载了的文件系统的时候才能进行检测。
使用fsck命令进行
fsck /dev/sd1
# -y 参数不会提示而直接进行修复
默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,请使用-t参数指定文件系统类型
fsck -t ext4 /dev/sd1
对于识别为文件的损坏数据(文件系统无记录),fsck会将文件放入lost+found目录,每一个被格式化的硬盘都会有lost+found目录。
notice: 系统启动时都会对磁盘进行fsck操作