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