挂载文件系统
驻留在 SATA/PATA 或者 SCSI 设备上的文件系统需要手动安装才能访问它。
mount 命令允许 root 用户手动挂载文件系统。
mount 命令的第一个参数指定要挂载的文件系统。
第二个参数指定文件系统在挂载后可用的目标目录。
目标目录称为挂载点。
mount 命令需要两种不同方式之一的文件系统参数:
- 保存文件系统的分区的设备文件,驻留在 /dev 中。
- UU/D,文件系统的通用唯一标识符。
blkid 命令概述了现有分区及其上的文件系统和文件系统的 UUID,以及用于格式化分区的文件系统。
# blkid /dev/vda1: UUID="74309cb6-4564-422f-bd07-a13e35acbb7a" TYPE="xfs" /dev/vdb: UUID="2018-04-26-04-03-48-00" LABEL="config-2" TYPE="iso9660"
要挂载保存文件系统的设备文件 pr 分区:
# mount /dev/vda1 /mount_point
通过文件系统的通用唯一 ID 或者 UUID 挂载文件系统。
# mount UUID="46f543fd-7Bc9-4526-a857·244811be2dBB" /mount_point
文件系统及其在目录树中的挂载点在文件 /etc/fstab 中配置。
该文件包含 1 行,每个安装的文件系统有 6 个字段。
这些行类似于以下内容:
每个字段提供以下用于挂载文件系统的信息:
字段1
列出设备文件的名称、文件系统标签或者 UUID(通用唯一标识符)。
使用 LABEL=label 或者 UUID=uuid 的优点是即使使用的设备文件发生更改,分区也能正确挂载,例如,因为我们交换了 IDE 控制器上的硬盘。
字段2
列出挂载点——文件系统应该挂载到的目录。
此处指定的目录必须已经存在。
我们可以通过更改到相应的目录来访问媒体上的内容。
字段3
列出文件系统类型(例如 ext2. ext4)。
字段4
显示挂载选项。
多个挂载选项以逗号分隔(例如 noauto、user、sync)。
字段5
指示是否对文件系统使用备份实用程序转储。
0 表示没有备份。
字段6
指示系统启动时文件系统检查的顺序(使用 fsck 实用程序):
- 0 : 不检查的文件系统
- 1:根目录
- 2:所有其他可修改的文件系统;并行检查不同驱动器上的文件系统
虽然 /etc/fstab 列出了文件系统以及它们在启动期间应该安装在目录树中的位置,但它不包含有关当前实际安装的信息。
/etc/mtab 文件列出了当前挂载的文件系统及其挂载点。
mount 和 umount 命令影响已挂载文件系统的状态并修改 /etc/mtab 文件。
内核还保存 /proc/mounts 的信息,其中列出了所有当前安装的分区。
出于故障排除目的,如果 /proc/mounts 和 /etc/mtab 信息之间存在冲突,则 /proc/mounts 数据始终比 /etc/mtab 数据更新和可靠。
查看当前挂载的文件系统
我们可以通过输入命令 mount 查看当前挂载的文件系统。
出现类似如下信息:
# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=487424k,nr_inodes=121856,mode=755) /dev/vda1 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) ...
我们还可以在文件 /proc/mounts 中查看此信息。
# cat /proc/mounts
卸载文件系统
要卸载文件系统,umount 命令需要挂载点作为参数。
切换到 /mount_point 目录。
尝试卸载 /mnount_point 挂载点上挂载的设备。
它会失败。
# umount /mount_point umount: /mount_point: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
如果挂载点被进程访问,则无法卸载。
要使 umount 成功,进程需要停止访问挂载点。
我们可以使用 lsof 或者 fuser 命令来识别在特定挂载点上运行的进程。
一旦确认挂载点上没有正在运行的进程,我们就可以卸载挂载点而不会出现任何错误。
# umount /mount_point