本篇文章是Linux文件系统整块集合,包含了Linux文件系统介绍、设备文件介绍、常用文件系统命令(查看、修复与配置)、挂载等相关内容,并附代码样例
部分文件系统可能由于较为早期且出现替代产品,可能不受部分系统支持
ext2是ext文件系统的升级版,RedHat 7.2版以前的系统默认ext2系统。最大支持16TB的分区和最大2TB的文件
是ext2文件系统的升级版,带有日志功能,提高系统突然中止时文件系统的可靠性
是ext3文件系统的升级版,最大支持1EB分区和16TB文件,向下兼容ext3,无限数量子目录、Extents连续数据块(数据库)、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS 6.3的默认文件系统。(1EB=1024PB=1024^2TB)
较为早期的FAT(File Allocation Table文件分配表)文件系统,使用16位数据表示扇区配置文件,最高支持2GB分区
FAT16文件系统的升级版,最大能支持32GB分区,单个文件最大支持4GB,稳定性较好,但安全性较差
拓展文件分配表,适用于闪存等移动存储介质,目前最大支持128PB分区、理论最大支持16EB文件,较新的Linux以及macOS系统支持。非日志文件系统,系统中止可能发生文件丢失
光盘的文件系统,标准通用化,在Windows、Linux、macOS下都可使用
注意,Linux和从UNIX发展而来的macOS默认都不支持微软的NTFS文件系统,格式化移动存储介质时需要注意避开
Linux的主分区加扩展分区最多有四个,Linux对IDE硬盘最多支持59个逻辑分区,对SCSI硬盘最多支持11个分区
Linux的设备文件都存放在/dev/
目录中,设备接入时根据设备类型以及命名方式自动为设备分配设备文件名。
硬盘分区的设备文件名在初始硬盘分区时就已确定,一般遵循以下命名规则:
分区类型 | 设备文件名 |
---|---|
主分区1~3 | /dev/sda1~3 |
扩展分区 | 在主分区编号后一位 (若有2个主分区则其为sda3,有三个则为sda4 |
逻辑分区 | /dev/sda5~ |
设备文件名数字前的字母表示物理硬盘编号,sd
表示硬盘,a
表示第一块硬盘,如有其他硬盘则编号为sdb
sdc
等
df [options] [filename]
# 选项名称 设备文件名
options | description |
---|---|
-a | 显示所有的文件系统信息 |
-h | 习惯单位显示容量(默认用块数量1k) |
-T | 增加显示文件系统类型 |
filename参数省略则查看所有文件系统
返回结果(-hT)
文件系统 类型 容量 已用 可用 已用% 挂载点
udev devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 392M 1.1M 391M 1% /run
/dev/sda5 ext4 26G 9.0G 15G 38% /
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 ext4 547M 141M 366M 28% /boot
tmpfs tmpfs 392M 8.0K 392M 1% /run/user/1000
可以看到,除去系统临时产生的文件系统,手动设置挂载的有两个,主分区sda1
挂载在/boot/
下存放系统启动文件,扩展分区sda
挂载在根目录/
下用于存放其他文件
dumpe2fs [options] filename
# 选项 设备文件名
options | description |
---|---|
-h | 仅显示超级块信息 |
-h
选项,只查看超级块信息,返回值较长,以下筛选出几条Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum #文件系统特性,表示文件系统支持的功能以及特性
Default mount options: user_xattr acl #默认挂载选项,在下面的mount命令中可以设置
Block size: 4096 #分区中的文件块大小(文件存储最小单位)
Mount count: 24 #该文件系统的挂载次数
不同于Windows的自动装载设, 一般Linux系统的外接存储设备在连接后无法直接使用,而需要挂载。相当于Windows系统中为驱动器分配盘符后才能使用,Linux系统的存储设备需要挂载在一个空目录(挂载点)下才能使用,Linux常用挂载命令为mount
mount [options]
options | description |
---|---|
-l | 查询已挂载设备,显示卷标名称 |
-a | 根据配置文件 /etc/fstab 的内容自动挂载 |
配置文件/etc/fstab
中描述了自动挂载的文件系统,系统开机时会根据其内容进行一次自动挂载
mount [-t filesystem type] [-L Volume Label] [-o option list] <device> <directory>
# 文件系统类型 卷标(无用可略) 特殊选项 设备文件名 挂载点(目录)
特殊选项 | 说明 |
---|---|
async / sync | 以异步/同步方式挂载 |
atime / noatime | 更新/不更新文件节点的访问时间 |
ro / rw | 以只读(Read Only) / 读写(Read - Write)方式挂载 |
remount | 重新挂载 |
exec / noexec | 在文件系统层面禁止可执行文件的执行(即使root也没有权限) |
umount <filename> #这里的Filename使用设备文件名或是挂载点均可
/mnt/
下(更新系统在/media/
下)。目录挂载点随意设置,只要是空目录即可,以上仅为常规性建议mount -t iso9660 /dev/cdrom /mnt/cdrom/
# 光盘文件系统 光盘的设备文件名(可能不同) 光盘的挂载点(可自己更换)
/dev/sdb1
为例mount -t <filesystem type> /dev/sdb1 /mnt/usb1/
#文件系统类型见第2步,FAT16为fat,FAT32为vfat
如果觉得本文对您有帮助,请点赞收藏,谢谢!