文件系统
操作系统通过文件系统管理文件和数据,磁盘或分区需要创建文件系统之后才能够使用,创建文件系统的过程又称之为“格式化”。
格式化(高级格式化)又称之为逻辑格式化,它是指根据用户选定的文件系统(如:FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。(2019年4月1日13:03:30 补充)
-
没有文件系统的设备又称之为裸(raw)设备。
裸设备(raw device),也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊块设备文件。由应用程序负责对它进行读写操作。不经过文件系统的缓冲。它是不被操作系统直接管理的设备。这种设备少了操作系统这一层,I/O效率更高。不少数据库都能通过使用裸设备作为存储介质来提高I/O效率。[百度百科]
-
常见的文件系统有FAT32、NTFS、ext2、ext3、ext4、xfs、HFS等。
-
文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等。
Windows下的主流文件系统是:NTFS
Linux下的主流文件系统是:ext3、ext4
Linux支持的文件系统
关于Linux怎么样读取NTFS文件系统,通常需要装驱动来支持,默认Linux是不支持NTFS的。
文件系统查看命令 df
语法:df [选项] [挂载点]
选项:
-a
:显示所有的文件系统信息,包括特殊文件系统,如/proc、/sysfs
-h
:使用习惯单位显示容量,如KB,MB或GB等
-T
:显示文件系统类型
-m
:以MB为单位显示容量
-k
:以KB为单位 显示容量。默认就是以KB为单位
示例
du命令
du:统计目录或文件大小
格式:du [选项] [目录或文件名]
选项:
-a
:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h
:使用习惯单位显示磁盘占用量,如KB,MB或GB等
-s
:统计总占用量,而不列出子目录和子文件的占用量
示例:
du命令和df命令的区别
- df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除但是程序并没有释放空间)
- du命令是面向文件的,只会计算文件或目录占用的空间
文件系统修复命令fsck
语法:fsck [选项] 分区设备文件名
选项:
-a
: 不用显示用户提示,自动修复文件系统
-y
: 自动修复。和-a作用-致,不过有些文件系统只支
持-y
这条命令是一条底层命令,不太建议使用,有时候使用了反而会造成错误和崩溃。
MKE2FS
命令mke2fs用来创建文件系统
mke2fs -t ext4 /dev/sda3
:给sda3创建ext4文件系统。
其他常用参数:
-b
(blocksize)指定文件系统快大小
-c
建立文件系统时检查坏损块
-L
(label)指定卷标
-j
建立文件系统日志(ext3、ext4默认带有此功能,ext2没有)
MKFS
命令mkfs也能用于创建文件系统,相较于mke3fs简单,但是支持的参数较少,不能进行精细化的控制。
例如:
mkfs.ext3 /dev/sda3
mkfs.ext3 /dev/sda3
mkfs.ext3 /dev/sda3
DUMPE2FS
命令dump2fs
可以查看分区的文件系统信息。
例如:
dumpe2fs /dev/sda2
JOURNAL日志
带日志的文件系统(ext3、ext4)拥有较强的稳定性,在出现错误的时候可以恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,当进行磁盘操作的时候,会进行以下操作:
- 文件系统将准备执行的事务的具体内容写入日志;
- 文件系统执行操作;
- 操作成功后,将事务的具体内容从日志中删除。
优点: 当事务执行出现意外(断电或者磁盘故障)可以通过查询日志进行恢复
缺点: 丧失一定的性能(因为有额外的读写日志操作)
E2LABEL
命令e2label
为文件系统添加标签
e2label /dev/sda1
:显示sda1的系统标签。
e2label /dev/sda1 VEEJA
:将sda1的标签设置为VEEJA
(标签一般均采用大写)
FSCK
命令fsck
检查并修复损坏的文件系统。
例如:fsck /dev/sda2
(检查文件系统的时候,目标磁盘必须先卸载掉)
- 使用
-y
参数不提示而直接进行修复 - 默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,请使用
-t
参数指定文件系统类型。 - 对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found目录
- 系统启动时会对磁盘进行fsck操作
That’s all.
环境:
软件版本:VirtualBox 4.3.12 r93733
Linux系统版本:CentOS 7 ×86_64 1511
如有纰漏,望不吝指出,不胜感激。