Linux文件系统(文件系统类型、设备文件、常用命令、U盘与光盘挂载)

  本篇文章是Linux文件系统整块集合,包含了Linux文件系统介绍、设备文件介绍、常用文件系统命令(查看、修复与配置)、挂载等相关内容,并附代码样例


1.Linux支持的文件系统

  部分文件系统可能由于较为早期且出现替代产品,可能不受部分系统支持

 ext2

  ext2是ext文件系统的升级版,RedHat 7.2版以前的系统默认ext2系统。最大支持16TB的分区和最大2TB的文件

 ext3

  是ext2文件系统的升级版,带有日志功能,提高系统突然中止时文件系统的可靠性

 ext4

  是ext3文件系统的升级版,最大支持1EB分区和16TB文件,向下兼容ext3,无限数量子目录、Extents连续数据块(数据库)、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS 6.3的默认文件系统。(1EB=1024PB=1024^2TB)

 FAT(FAT16)

  较为早期的FAT(File Allocation Table文件分配表)文件系统,使用16位数据表示扇区配置文件,最高支持2GB分区

 VFAT(FAT32)

  FAT16文件系统的升级版,最大能支持32GB分区,单个文件最大支持4GB,稳定性较好,但安全性较差

 exFAT(FAT64)

  拓展文件分配表,适用于闪存等移动存储介质,目前最大支持128PB分区、理论最大支持16EB文件,较新的Linux以及macOS系统支持。非日志文件系统,系统中止可能发生文件丢失

 iso9660

  光盘的文件系统,标准通用化,在Windows、Linux、macOS下都可使用

  注意,Linux和从UNIX发展而来的macOS默认都不支持微软的NTFS文件系统,格式化移动存储介质时需要注意避开


2.Linux的分区系统

  • 主分区:可包含操作系统启动所必须的文件,计算机必须要有一个主分区才能安装系统,主分区直接看作逻辑硬盘,可以在其中写入文件,但不能在其中分区。
  • 扩展分区:仅作为一个分区数据表(链),可通过扩展分区查找到各个逻辑分区,其中不能存放数据文件,必须继续分区为逻辑分区才能使用。
  • 逻辑分区:由扩展分区中划分,该分区中可以直接写入数据,可用于存储文件及数据。

  Linux的主分区加扩展分区最多有四个,Linux对IDE硬盘最多支持59个逻辑分区,对SCSI硬盘最多支持11个分区


3.Linux的设备文件

  Linux的设备文件都存放在/dev/目录中,设备接入时根据设备类型以及命名方式自动为设备分配设备文件名。

 硬盘分区的设备文件名

  硬盘分区的设备文件名在初始硬盘分区时就已确定,一般遵循以下命名规则:

分区类型设备文件名
主分区1~3/dev/sda1~3
扩展分区在主分区编号后一位 (若有2个主分区则其为sda3,有三个则为sda4
逻辑分区/dev/sda5~

  设备文件名数字前的字母表示物理硬盘编号,sd表示硬盘,a表示第一块硬盘,如有其他硬盘则编号为sdb sdc

 其他设备的设备文件名

  • 光盘: cdrom 或 sr,一般cdrom是sr设备文件的软链接
  • 软盘:fd
  • U盘:一般与硬盘识别相同,也为sd,编号按现有硬盘排序计算

4.文件系统常用命令

 df查看文件系统

df [options] [filename]
#   选项名称  设备文件名
optionsdescription
-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 查看文件系统的超级块和块组信息(磁盘状态)

dumpe2fs [options] filename
#		 选项		设备文件名
optionsdescription
-h仅显示超级块信息
  • 注意filename参数只能为设备文件名,而不是挂载点,文件系统的设备文件名用df查看
  • 一般只使用-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 #该文件系统的挂载次数

5. Linux 文件挂载

  不同于Windows的自动装载设, 一般Linux系统的外接存储设备在连接后无法直接使用,而需要挂载。相当于Windows系统中为驱动器分配盘符后才能使用,Linux系统的存储设备需要挂载在一个空目录(挂载点)下才能使用,Linux常用挂载命令为mount

 mount查询和自动挂载

mount [options] 
optionsdescription
-l查询已挂载设备,显示卷标名称
-a根据配置文件 /etc/fstab 的内容自动挂载

配置文件/etc/fstab中描述了自动挂载的文件系统,系统开机时会根据其内容进行一次自动挂载

 mount手动挂载

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/下)。目录挂载点随意设置,只要是空目录即可,以上仅为常规性建议
  • 特殊选项一般不需要指定,默认即可。一般只需要remount选项用于重新挂载
  • 挂载命令一般只能由root使用,普通用户要加sudo

 挂载光盘与U盘实际应用

 挂载光盘
mount -t iso9660 /dev/cdrom /mnt/cdrom/
#	光盘文件系统	光盘的设备文件名(可能不同)	光盘的挂载点(可自己更换)
 挂载U盘
  1. 挂载U盘时,将U盘插入电脑,如果为VMware会弹出对话框选择将U盘连接至电脑/虚拟机,这里选虚拟机,并选择要挂载的虚拟机名称。
  2. 使用fdisk -l命令查看新加入的U盘设备文件名(实际是磁盘分区表),一般为sd,以/dev/sdb1为例
  3. 注意查看U盘分区的文件系统,Linux默认不支持NTFS文件系统,一般为exFAT文件系统
  4. 挂载U盘,语法同挂载光盘
mount -t <filesystem type> /dev/sdb1 /mnt/usb1/
#文件系统类型见第2步,FAT16为fat,FAT32为vfat

如果觉得本文对您有帮助,请点赞收藏,谢谢!

Logo

更多推荐