一:挂载文件系统
(1)概述:
当你完成磁盘系统分区并在分区中创建文件系统后,新的文件系统必须被挂载道LInux系统中才可以使用。挂载(mount)就是当使用系统中某个设备时,必须先将它们对应到Linux系统中的某个目录上,这个对应的目录叫做挂载点(mount_point)。通过这种对应操作,用户或程序才可以访问这些设备。
传统Linux系统中使用/mnt目录作为临时挂载点,如果用户需要挂载一个文件系统,可以将其挂载到/mnt目录中。现在Linux通常使用/media作为临时挂载点,挂载到/media目录下面的某个子目录中。除了系统提供的这些挂载点之外,用户也可以根据需要再创建一个目录,作为临时的挂载点。
当一个目录充当挂载点时,这个目录中的内容就是被挂载的文件系统的内容,而不是该目录本身内容。
(2)执行挂载命令
在挂载命令之前你需要先创建一个目录,即挂载点,进行连接并执行挂载命令。mount命令用于将某个文件系统挂载到Linux系统的某个挂载点上。
格式:mount [选项] [设备名称] [挂载点]
mount的常用选项如下表所示:
选项 | 说明 |
-a | 挂载/etc/fstab文件中配置的所有的文件系统 |
-t | 指定要挂载的文件系统类型 |
-l | 列出挂载文件系统时列出卷标 |
-r | 将文件系统以只读的方式挂载 |
-n | 挂载文件系统,不写入/etc/mtab文件 |
-w | 以读写的方式挂载文件系统 |
-o | 指定挂载选项 |
另外df命令可以检查Linux系统中磁盘的占用情况。
格式:df [选项] [文件]
df命令的选项及其说明如下表所示:
选项 | 说明 |
-i | 列出文件系统分区的inode信息 |
-h | 以易于理解的格式输出文件系统占用情况,例如64KB、120MB、1GB |
-k | 以KB为单位输出文件系统的占用情况 |
-m | 以MB的方式输出文件系统的占用情况 |
-a | 列出所有文件系统的分区 |
-T | 显示磁盘分区的文件系统的类型 |
du命令用于显示文件和目录所占用的磁盘空间情况。
格式:du [选项] [文件]
du命令的常用选项如下表所示:
选项 | 说明 |
-a | 显示所有文件的容量,不仅仅是目录 |
-b | 以字节为单位显示文件的大小 |
-h | 以易于理解的格式显示文件的大小,例如K(千字节)、M(兆字节)、G(千兆字节) |
-s | 显式指定文件和目录的总体使用情况 |
-S | 单独显示每个目录的已用容量,不包括子目录已用容量 |
之前我们已经在sda3分区中创建了ext3文件系统,现在使用mount命令将分区挂载到Linux系统中,如下图所示。首先使用df -h显示当前系统中磁盘的空间占用情况;然后在根目录中创建挂载点,使用mount命令将/dev/sdb1挂载到/mest目录中,最后再次使用df -h命令,执行结果如下图所示:
不指定任何选项执行mount命令,显示所有设备的挂载情况,结果显示/dev/sdba分区时ext3文件系统。分别使用mount命令和df命令指定选项-t ext3仅显示/dev/sdba分区的挂载信息。
检查当前已挂载的文件系统和挂载选项,可以执行不带任何选项的mount命令。同时挂载信息也存储在/proc/mounts文件中,使用ls命令分别显示这两个文件的信息。如下图所示,其中/proc/self/mounts的符号链接。
注意:在挂载系统时,作为挂载点的目录不要重复挂载多个文件系统,而且这个目录最好是空白目录。如果这个目录不是空白的,在你挂载文件系统之后,目录下的内容会暂时消失。
二:卸载文件系统
卸载文件系统指将某个文件系统从Linux系统的根目录中移除。卸载文件系统后,应用程序便不可以对其进行读写操作。
格式:umount [选项] [挂载点] [设备文件]
其中umount命令的常用选项及其说明如下表所示:
选项 | 说明 |
-a | 卸载/etc/fstab文件中列出的所有文件系统 |
-f | 强制卸载文件系统 |
-r | 当文件系统卸载失败时,尝试以只读的方式重新挂载文该件系统 |
-t | 指定要卸载的的文件系统类型 |
-l | 延迟卸载文件系统 |
卸载文件系统后,用户或应用程序无法从根文件系统中访问该文件系统中存在的文件和目录。使用umount命令卸载文件系统如下图所示。
在卸载文件系统时即使用multi-user,target或graphical.target运行,只要不使用文件系统就可以卸载,文件系统正在使用则无法卸载。无法卸载文件系统的情况如下:
- 用户以移至文件系统目录之中
- 用户正在访问文件系统中的文件
- 进程正在访问文件系统中的文件
卸载文件系统之前必须停止对文件系统的读写,当前工作目录也不可以在要卸载文件系统之中。卸载文件西戎通常是在要对文件系统进行完整备份或修复检测的时候,可以有效地防止系统中的其他进程对文件系统产生干扰。
三:系统引导挂载
mount命令挂载文件系统是临时的,系统重新启动后就会释放。如果想要自动挂载就需要进行设置。
可以在/etc/fstab文件中设置相关的数据信息,如果不想在系统重启动时启动挂载它,删除/etc/fstab文件中的相关数据信息即可。可以在这个文件中设置要挂载的文件系统‘挂载点等信息。
另外mount命令除了上述的选项之外,还支持许多挂载选项,如下表所示:
选项 | 说明 |
async | 对所有文件系统的所有读写操作都是异步进行的 |
auto | 该文件系统可以指定-a时挂载 |
noauto | 该文件系统必须单独挂载 |
sync | 对文件系统的读写必须已同步的方式进行 |
dev | 使存储在文件系统中的设备可用 |
nodev | 使存储在文件系统中的设备不可用 |
exec | 允许执行该文件系统中的二进制文件 |
noexec | 不允许执行该文件系统中的二进制文件 |
suid | 允许suid或sgid标志位生效 |
nosuid | 禁止suid或sgid标志位生效 |
rw | 以读写模式挂载该文件系统 |
ro | 以只读的模式挂载该文件系统 |
user | 允许普通用户挂载 |
users | 允许任何用户挂载或卸载该文件系统 |
owner | 允许设备的所有者挂载该文件系统 |
nouser | 禁止普通用户挂在该文件系统 |
defaults | 挂载系统时启用默认选项,即rw、suid等 |
四:管理LInux中的交换分区
用户在使用LInux系统的过程中有可能会发生内存使用完的情况,因此可使用存储设备代替LInux系统上的内存。物理内存是系统硬件提供的内存大小,相对于物理内存,Linux系统中的虚拟内存是利用磁盘空间虚拟出一块逻辑内存。用作虚拟内存的磁盘空间称为交换区(swap)。用于创建和管理交换分区的命令如下表所示:
命令 | 说明 |
mkswap | 初始交换分区 |
swapon | 激活交换分区 |
swapoff | 禁用交换分区 |
创建交换分区所i需要的交换文件是一个普通文件,但是创建交换文件必须使用dd命令,同时该文件必须载本地硬盘当中,不能在网络文件系统中(NFS)中创建,Linux系统中还提供了mkswap命令初始化交换分区。
格式:mkswap [设备] 设备和文件
其中mkswap命令的选项及说明如下表所示:
选项 | 说明 |
-c | 建立交换区之前,检查是否有损坏的区块 |
-L | 指定一个label(标签),方便swapon使用 |
创建和初始化交换分区如下图所示,使用dd命令创建交换文件,这里if指定输入设备的名称为/dev/zero,表示一个输出永远为0的设备文件,使用它作为输入可以得到全为空的文件,of指定输出设备或文件名称,这里指定为/swapfile,bs表示设置读写块的大小,count表示复制的块数。完成交换文件的创建后需要给该文件指定相应的权限,mkswap/swapfile表示初始化交换文件。更改权限后执行swapon/swapfile命令激活该交换分区。
由于文本文件忙,所以在这里就不演示这个了,请谅解!!!
创建和初始化和交换设备如下图所示。使用fdisk命令执行-l选项查看/dev/sda设备的分区状况,将/dev/sdb1设置交换分区。
创建交换文件之后,需要给该文件指定相应的权限。如果不更改该文件的默认权限,执行/swapon/swapfile命令激活改交换区时会出现无法读取的错误。
五:激活交换分区
Linux中的swapon命令可以激活分区。
格式:swapon [选项] 设备或文件
它的命令及其选项说明如下表所示:
选项 | 说明 |
-a | 在/etc/fstab文件中启用所有带有交换标记的设备 |
-L | 激活具有指定标签的分区 |
-s | 按设备显交换分区的使用情况 |
激活交换分区之前通过free命令检查内存的使用情况,此时交换分区的大小为1843。使用swapon -s命令可以显示交换分区的使用情况,由于之前已经激活了交换分区/swapfile,所以这里可以看到它的使用信息。检查内存和交换分区如下图所示:
使用swapon命令激活交换分区(/dev/sdb)。完成交换区的激活操作之后,再次看交换分区的大小已经由原来的x1变X2了。
重启系统新增的分区将不可再用,如果你想始终启用交换区,需要在配置文件/etc/fstab中添加自动加载设置才可以。使用vI编辑器编辑该文件,添加“swap swap defaults 0 0”和“/dev/sdb swap swap defaults 0 0”,重启系统后就可以实现自动加载交换分区了。
通过swapoff命令即可禁用指定设备文件或文件的交换分区。
格式:swapoff [选项] 设备或者文件
指定-a选项禁用/proc/swap或/etc/fstab文件中的交换设备和文件交换区域。使用swapoff命令禁用交换区的操作之后,执行swapoff -s结果显示已没有之前设置的交换分区了。
五:关于文件系统的使用命令
LInux系统中支持的文件系统有很多,这些文件系统中ext2适用于U盘,ext4文件系统中小文件较少,xfs文件系统中小文件较多。ext2、ext3、ext4文件系统和xfs文件系统的实用程序如下表所示:
/ext2/ext3/ext4 | xfs | 说明 |
fsck(e2fsck) | xfs_repair | 文件系统不一致检查 |
resize2fs | xfs_growfs | 调整文件系统大小 |
e2image | xfs_metadump、xfs_mdrestore | 保存文件系统映像 |
tune2fs | xfs_admin | 调整文件系统的参数 |
dump、restore | xfsdump、xfsrestore | 文件系统备份并列出 |
当Linux系统中加载一个文件系统后,如果文件系统中的文件没有被改动过,就会标注为干净的。当文件系统受损时,用户应该对文件系统进行检查,否则会无法正常使用文件系统。Linux系统中文件系统不一致有可能是电源故障(突然断电、电源模块故障)、硬盘故障、强行关机等情况造成的。
fsck命令应用于每个文件系统,这些文件系统用于检查和修复ext2、ext3、ext4文件系统的完整性。fsck命令用于检查文件系统的不一致性。
格式:fsck [选项] [设备]
fsck的常用选项如下表所示:
选项 | 说明 |
-l | 指定检查的文件系统类型 |
-s | fsck串行工作,用于交互检查多个文件系统 |
-A | 检查/etc/fstab中列出的所有文件系统 |
-N | 不执行命令,仅列出执行的操作 |
-P | 同时检查所有的文件系统(与-A一起使用) |
-R | 跳过根文件系统(与-A一起使用) |
-t | 指定要检查的文件系统类型 |
文件系统的检查与修复使用e2fsck明令
格式:e2fsck [选项] 设备
e2fsck的常用选项如下表所示:
选项 | 说明 |
-p | 较小的错误自动更正 |
-a | 与-p效果相同,用于向后兼容的选项,建议使用 |
-n | 用于检查不能修复文件系统的错误类型 |
-y | 通过一致的操作纠正所有文件系统错误,可能会导致删除不一致文件 |
-r | 通过对检测的错误时间,进行交互式修复兼容性选项,默认行为 |
-f | 强制检查 |
-b | 使用指定的超级块修复文件系统 |
-F | 执行检检查之前,先清空设备的缓存区 |
执行fsck命令如果没有指定-a选项和设备,将依次检查/etc/fsctab文件中列出的文件系统。如果在当前运行的文件系统中执行fsck命令,则可能会删除没有问题的文件,另外,在启动ext2、ext3、ext4文件系统时,将检查/etc/fstab文件中注册的文件系统的clean标志,如果设置了该标志,则不会执行fsck命令。另一方面,xfs不会在系统启动时进行检查或修复,如果要执行修复操作,需要使用xfs_repair命令。
xfs_repair命令的选项如下表所示:
选项 | 说明 |
-n | 仅检查,不进行修复 |
-L | 元数据日志为零,无法挂载可能丢失数据的文件系统或设备时使用 |
-v | 显示详细信息 |
-m | 以MB为单位指定运行时要使用最大内存量 |
-n在检查模式下读取文件系统而不对其进行任何修改,如果无法正常卸载和挂载则执行指定选项—L,但是-L将导致元数据为0,这可能会使系统中某文件丢失。