Linux文件系统概念及基本操作(格式化分区来创建文件系统、查看指定文件系统)
9.1 文件系统概念(Overview)
操作系统(OS)是通过文件系统 用来管理文件和数据的;
磁盘或分区 需要创建文件系统后,才能够为操作系统所使用;
创建文件系统的过程又称之为格式化.
没有文件系统的设备称之为裸(RAW)设备;
常见的文件系统有:FAT、FAT32、NTFS、EXT2、EXT3、EXT4、XFS、HFS等;XFS以性能和可扩展性著称
判断一个文件系统的优劣(文件系统之间的区别):
.支持的分区大小
.支持的单个文件的大小(Windows 文件系统ntfs)
.支持文件名长度
.日志功能
.性能(文件存取性能)
Windows下的主流文件系统是FAT32、NTFS;
Linux下的主流文件系统是:EXT3、EXT4;
9.2 Linux支持的文件系统
.ext2 .ext3 .ext4 .fat(msdos) .vfat .nfs .iso9660 .proc .gfs .jfs
9.3 文件系统相关操作的命令(Command Reference)
9.3.1 创建文件系统
命令mke2fs创建文件系统
常用参数
-t type 指定文件系统类型 ext4、ext5、xfs等
-b blocksize 指定文件系统块大小 4096(4k)或2048等;是每次文件系统读写操作的最小单位,默认是4096(4k);所意买硬盘的时候,都会说4k读写的性能有多高。
-c check 检查坏块(在建立文件系统时)
-L Label 指定卷标(类似于windows下的c: d:)
-j journal 建立文件系统日志
mke2fs –h
mke2fs –t ext4 /dev/sdb1
命令mkfs.也用于建文件系统(快速创建文件系统)
相较于mke2fs简单,支持的参数少
不能进行精细化控制
mkfs.带了很多子命令,如下图
.mkfs.ext3 /dev/sdb1
.mkfs.ext4 /dev/sdb1
.mkfs.vfat /dev/sdb1
9.3.2 查看指定文件系统的信息
命令dumpe2fs查看指定文件系统的详细信息(在对文件系统性能做微调的时候去用)
dumpe2fs /dev/sdb1
9.3.3 为指定文件系统显示或添加卷标
命令e2label为指定文件系统添加卷标或显示系统标签 #
e2label /dev/sdb1 DATA #将sdb1的系统(分区)标签设置为DATA;标签无所谓大小写,但是建议标签全部用大写,应为一般来讲标签全部用大写,这是一个约定俗成;
e2label /dev/sdb1 #显示sdb1的系统标签 ,如果没标签则不显示了,如下图
如果已指定有标签,则会显示如下图
这个打标签实际就是修改如windows系统中D:的名称,如下图
9.3.4 检查并修复损坏的文件系统(file system check)
命令fsck为指定文件系统检查错误
fsck /dev/sdb1
*必须先umount这个文件系统的;
*-y参数 直接进行修复而不提示,应为有时会检查出来上万的错误,如果一直敲yes,那就崩溃了;
*-t参数 fsck会自动判断文件系统类型,但是如果文件系统损坏较为严重,需要用到-t参数来指定文件系统类型;
*对于识别为文件的损坏数据(也就是找到了损坏文件而找不到此损坏文件的记录),fsck会将文件放入lost+found目录(每一个格式化的磁盘,/目录下都有一个/lost+found目录),一般情况下,此目录都是空的;
*系统启动时,会对磁盘做fsck的操作;
*日志是文件系统通常都支持的功能,用以提高文件系统的稳定性及可恢复性;
9.4 journal(带日志的文件系统,会失去一定的磁盘性能)
具有较强的稳定性
在出错时可以进行恢复
对磁盘的操作:2阶段提交 的方式 进行
文件系统操作过程如下:
(1)文件系统 对准备执行的事务的具体内容 写入日志
(2)文件系统 执行操作
(3)文件系统 将事务的具体内容 从日志中删除
这样做的好处是:当事务执行的时候,如果出现意外状况(如断电、磁盘故障),可以通过查询日志进行恢复和操作;
坏处是:会损失一定的性能(额外的日志读写操作)