文件系统是操作系统中与文件管理和存储相关的所有软件和数据的集合。
目前,Windows通常采用NTFS文件系统,而Linux中存储程序和数据的磁盘分区通常采用ext4文件系统,实现虚拟存储的swap分区一定采用swap文件系统。
ext ( Extended File System)文件系统系列(包括 ext、ext2、ext3 和 ext4)是专为 Linux 设计的文件系统,其继承UNIX文件系统的主要特色,采用三级索引结构和目录树形结构,并将设备作为特别文件处理。目前,绝大多数Linux发行版本采用的是ext4文件系统,其中也包括CentOS 6.5。
ext4文件系统具有以下特点:
swap文件系统用于Linux 交换分区,用于实现虚拟内存。
tmpfs文件系统是虚拟内存文件系统,读/写速度极快。tmpfs的大小不固定,会随着所需虚拟内存的变化而动态增减。tmpfs总是对应着/dev/shm
目录。
devpts文件系统用于管理远程虚拟终端文件设备,总是对应着/dev/pts
目录。
sysfs文件系统用于管理系统设备,向用户和程序提供详尽的设备信息。与sysfs文件系统相对应的是/sys
目录。
proc文件系统也是特殊的文件系统,只存在于内存,不占用磁盘空间。它以文件系统的方式为用户和程序通过内核访问进程及其他系统信息提供接口。
与proc文件系统相对应的是/proc
目录,其子目录中以数字命名的目录正是进程信息目录。系统当前运行的每个进程都对应着/pro
中的一个进程信息目录,目录名即为进程号。访问进程信息目录就可获取进程相关信息。
Linux采用虚拟文件系统技术,支持多种常见的文件系统,并允许用户在不同的磁盘分区上挂载不同的文件系统。这大大提髙了 Linux的灵活性,而且易于实现不同操作系统环境之间的信息资源共享。
Linux支持的文件系统类型主要有:
msdos
: MS-DOS 的 FAT 文件系统。vfat
: Windows 的 FAT32 文件系统。ntfs
: Windows 的 NTFS 文件系统。sysV
: UNIX最常用的system V文件系统。iso9660
: CD-ROM或DVD-ROM的标准文件系统。Linux中存储介质,无论是硬盘还是U盘,都必须经过挂载才能进行文件存取操作。所谓挂载就是将存储介质的内容映射到指定的目录中,此目录即为该存储介质的挂载点。对存储介质的访问就变成对挂载点目录的访问。一个挂载点一次只能挂载一个设备。
Linux的启动过程会将硬盘上的各个磁盘分区自动挂载到指定的目录,并在关机时自动卸载。而U盘等移动存储介质既可以在启动时自动挂载,也可以在需要时手动挂载/卸载。移动存储介质使用完毕后,必须正常卸载才能取出,否则有可能造成一些不必要的错误。
/etc/fstab
文件中每行表示一个文件系统,每个文件系统的信息被空格划分出的6个字段表示,各字段的含义分别为:
/dev/mapper/vg_centos-lv_root
;采用proc
等特殊文件系统的分区仅显示文件系统名。选项 | 含义 |
---|---|
defaults |
按默认值挂载,也就是说启动时将自动挂载,并可读可写 |
noauto |
系统启动时不挂载,用户在需要时手动挂载 |
auto |
系统启动时自动挂载 |
ro |
该文件系统只可读不可写 |
rw |
该文件系统即可读又可写 |
usrquota |
该文件系统实施用户配额管理 |
grpquota |
该文件系统实施组群配额管理 |
/
)最先进行文件系统检查,取值为1;其他需要进行检查的设置为2。编辑/etc/fstab
文件可实现开机自动挂载U盘等功能,但是/etc/fstab
文件对于系统启动意义重大,必须谨慎操作,否则可能导致系统崩溃。
/etc/mtab
文件保存当前系统中文件系统的挂载信息。
/etc/mtab
与/etc/fstab
类似,每行也表示一个文件系统,每个文件系统的信息也用空格划分为6个字段,前4个字段的含义分别为:标签名、挂载点、文件系统类型和命令选项;后2个字段目前仍为保留字段,默认为0。两文件中各文件系统的排列顺序有所不同,且上述/etc/mtab
文件比/etc/fstab
多出一行"/dev/sdb"
信息,这是系统运行过程中手动加载U盘的文件系统信息。
从文件形式上看,/etc/mtab
与/etc/fstab
基本相同,但是其意义却有所差异。/etc/fstab
规定开机后将自动挂载的文件系统列表;而/etc/mtab
反映的是当前的文件系统挂载情况。
安装Linux时系统管理员需要确定分区大小,但是精确评估和分配分区容量非常困难。因为不但要考虑到当前每个分区需要的容量,还要预见该分区以后可能需要容量的最大值。如果估计不准确,当某个分区不够用时就必须备份整个系统、格式化硬盘、重新对硬盘分区,然后恢复数据到新分区。整个过程操作繁杂、十分不便。
逻辑卷管理(Logical Volume Manager, LVM)可很好地解决这一难题。利用逻辑卷管理技术可以自由调整文件系统的大小,可实现文件系统塔越不同磁盘和分区,大大提高了磁盘分区管理的灵活性。
与逻辑卷管理密切相关的概念如下:
简单而言,LVM将若干个物理分区连接为一个整块的卷组,然后在卷组上创建逻辑卷,并进一步在遥辑卷上创建文件系统。利用LVM可以轻松管理磁盘分区,增加新磁盘时,直接借助LVM技术扩展文件系统跨越磁盘即可。
格式:mount [选项][役备若][目录]
功能:查看文件系统挂载情况或将磁盘设备挂载到指定的目录。
无选项和参数时,查看当前文件系统的挂载情况,相当于查看/etc/mtab
文件的内容。
有选项和参数时,进行磁盘挂载操作。此时,目录参数为设备的挂载点。挂载点目录可以不为空,但必须己存在。磁盘设备挂载后,**该挂载点目录的原文件暂时不能显示且不能访问,取代它的是挂载设备上的文件。**原目录上文件待到挂载设备卸载后才能重新访问。
主要选项说明:
参数 | 功能 |
---|---|
-t |
文件系统类型 挂载指定的文件系统类型 |
-r |
以只读方式挂栽文件系统,默认为读/写方式 |
由此可知,系统当前已挂载多个文件系统,其中包括使用ext4文件系统的/分区和/boot
分区,也包括使用tmpfs
、proc
等特殊文件系统的分区,还挂载有U盘和光盘等移动介质。
格式: umount 设备 | 目录
功能:卸载指定的设备,既可使用设备名,也可使用挂载目录名。
进行卸载操作时,如果挂载设备中的文件正被使用,或者当前目录正是挂载点目录,系统会显示类似mount: /media/cd: device is busy
(设备正忙)的提示信息。用户必须关闭相关文件,或切换到其他目录才能进行卸载操作。
卸载成功后可拔出U盘,会出现类似usb1-1:USB disconnect,device number
的信息。
格式:df [选项]
功能:显示文件系统的相关信息。
主要选项说明:
参数 | 功能 |
---|---|
-a |
显示全部文件系统的使巧倩况 |
-t |
仅显示指定文件系统的使用情况 |
-X |
显示除指定文件系统以外的其他文件系统的使用情况 |
-h |
从易读方式显示文件系统的使用情况 |
配额是一种磁盘空间的管理机制。使用配额可限制用户或组群在某个特定文件系统中所能使用的最大空间。配额管理会对用户带来一定程度上的不便,但对系统来讲却十分必要。有效的配额管理可确保用户使巧系统的公平性和安全性。
Linux针对不同的限制对象,可进行用户级和组群级的配额管理。配额管理文件保存于实施配额管理的那个文件系统的挂载目录中,其中aquota.user
文件保存用户级配额的内容,而aquota.group
文件保留组群级配额的内容。文件系统可以只采用用户级配额管理或组群级配额管理,也可以同时采用用户级和组群级配额管理。
根据配额特性的不同,可将配额分为硬配额和软配额,其含义如下:
只有ext文件系统的分区才能进行配额管理。/home
目录默认包含所有普通用户的主目录,因此对/home
所对应的文件系统进行配额管理,可以有效控制用户对磁盘空间的使用。实施配额管理一般要求独立的/home
分区,而对/
分区和/boot
分区不进行配额管理。
超级用户首先编辑/etc/fstab
文件,指定实施配额管理的分区及其实施配额管理方式,其次执行quotacheck
命令检查进行配额管理的分区并创建配额管理文件,然后利用edquota
命令编辑配额管理文件,最后启动配额管理即可。配额管理的相关命令包括:
格式:quotacheck 选项
功能:检查文件系统的配额限制,并可创建配额管理文件。
主要选项说明:
参数 | 功能 |
---|---|
-a |
检查/etc/fstab文件中进行配额管理的分区 |
-g |
检查配额管理分区,并可创建aquota.group 文件 |
-u |
检查配额管理分区,并可创建aquota.user 文件 |
-v |
显示命令的执行过程 |
格式:edquota 选项
功能:编辑配额管理文件。
主要选项说明:
参数 | 功能 |
---|---|
-u 用户名 |
设置指定用户的配额 |
-g 组群名 |
设置指定组群的配额 |
-t |
设置过渡期 |
-p 用户名1 用户名2 |
将用户1的配额设置复制给用户2 |
格式:repquota 选项
主要选项说明:
参数 | 功能 |
---|---|
-a |
查看所有配额管理 |
-g |
查看群组级的配额管理 |
-u |
查看用户级配额管理 |
格式: quotaon 选项
功能:启动配额管理,其主要选项与quotacheck
命令相同。与之相反的quotaoff
命令可关闭配额管理。
主要选项说明:
参数 | 功能 |
---|---|
-a |
启动所有配额管理 |
-g |
启动群组级的配额管理 |
-u |
启动用户级配额管理 |