Linux CentOS 8(磁盘的挂载与卸载)



目录

  • 一、项目介绍
  • 二、相关概念
  • 三、任务操作
  • 任务:挂载与卸载



一、项目介绍

本节介绍一下Linux(Centos 8)中磁盘的挂载与卸载。

二、相关概念

当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。

三、任务操作

任务:挂载与卸载

当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”。挂载是在使用硬件设备前所执行的最后一步操作。对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount 中的-a参数则功能更强大,它会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有则进行自动挂载操作。

3.1 查看“fdisk”的选项

[root@localhost ~]# mount -h
Usage:
 mount [-lhV]
 mount -a [options]
 mount [options] [--source] <source> | [--target] <directory>
 mount [options] <source> <directory>
 mount <operation> <mountpoint> [<target>]
Mount a filesystem.
Options:
 -a, --all               mount all filesystems mentioned in fstab
 -c, --no-canonicalize   don't canonicalize paths
 -f, --fake              dry run; skip the mount(2) syscall
 -F, --fork              fork off for each device (use with -a)
 -T, --fstab <path>      alternative file to /etc/fstab
 -i, --internal-only     don't call the mount.<type> helpers
 -l, --show-labels       show also filesystem labels
 -n, --no-mtab           don't write to /etc/mtab
 -o, --options <list>    comma-separated list of mount options
 -O, --test-opts <list>  limit the set of filesystems (use with -a)
 -r, --read-only         mount the filesystem read-only (same as -o ro)
 -t, --types <list>      limit the set of filesystem types
     --source <src>      explicitly specifies source (path, label, uuid)
     --target <target>   explicitly specifies mountpoint
 -v, --verbose           say what is being done
 -w, --rw, --read-write  mount the filesystem read-write (default)
 -h, --help              display this help
 -V, --version           display version
Source:
 -L, --label <label>     synonym for LABEL=<label>
 -U, --uuid <uuid>       synonym for UUID=<uuid>
 LABEL=<label>           specifies device by filesystem label
 UUID=<uuid>             specifies device by filesystem UUID
 PARTLABEL=<label>       specifies device by partition label
 PARTUUID=<uuid>         specifies device by partition UUID
 <device>                specifies device by path
 <directory>             mountpoint for bind mounts (see --bind/rbind)
 <file>                  regular file for loopdev setup

Operations:
 -B, --bind              mount a subtree somewhere else (same as -o bind)
 -M, --move              move a subtree to some other place
 -R, --rbind             mount a subtree and all submounts somewhere else
 --make-shared           mark a subtree as shared
 --make-slave            mark a subtree as slave
 --make-private          mark a subtree as private
 --make-unbindable       mark a subtree as unbindable
 --make-rshared          recursively mark a whole subtree as shared
 --make-rslave           recursively mark a whole subtree as slave
 --make-rprivate         recursively mark a whole subtree as private
 --make-runbindable      recursively mark a whole subtree as unbindable
For more details see mount(8).

mount命令常用选项,如表1 所示。

表1 mount命令常用选项的用法

选项

说明

-a

自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)

-B

绑定目录到另一个目录上

-L

以卷标指定挂载设备

-t

指定要挂载的设备上的文件系统类型

-o

描述设备或档案的挂接方式

-U

以UUID指定要挂载的设备

3.2 创建目录/mnt/data,并将/dev/sdb1挂载到该目录下。

[root@localhost ~]# mkdir /mnt/data
[root@localhost ~]# mount /dev/sdb1 /mnt/data/

注:
挂载点必须要提前存在,挂载成功后,在挂载点目录下创建的所有文件实际上就是存储在挂载到该目录下对应的分区上。
若挂载点本身非空,载入分区后,原目录下的文件会暂时“消失”(不可访问),被挂载上来的分区中的内容所取代,等到该分区被卸载后,原目录中的文件就会再次显示。一般不会使用非空的目录作为常用的挂载点。

3.3 查看分区的挂载情况

[root@localhost ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  751M     0  751M   0% /dev
tmpfs               tmpfs     768M     0  768M   0% /dev/shm
tmpfs               tmpfs     768M  8.7M  760M   2% /run
tmpfs               tmpfs     768M     0  768M   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        17G  1.5G   16G   9% /
/dev/sda1           ext4      976M  142M  767M  16% /boot
tmpfs               tmpfs     154M     0  154M   0% /run/user/0
/dev/sdb1           ext4      976M  2.6M  907M   1% /mnt/data

3.4 永久挂载(自动挂载)
使用mount命令挂载分区到挂载点,立即生效,但是系统重启后不会自动挂载。如果需要在系统每次开机时都自动将指定的分区挂载到某个特定的目录,则需要将挂载信息写入系统的文件系统列表配置文件。

[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Thu Jun  3 22:25:51 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ad229ff4-8126-495a-b98f-954230112e1a /boot      ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sdb1  /mnt/data ext4 defaults  0 0

在fstab配置文件最后添加一行挂载记录。fstab文件格式分为6列,每一列的内容含义如下:

  • 设备名或者设备的卷标
  • 挂载点
  • 分区的文件系统类型
  • 文件系统的挂载参数。默认选项参数有: rw, suid, dev, exec, auto,nouser, async, and relatime。详情请参考man mount的FILESYSTEM INDEPENDENT MOUNT OPTIONS。
  • 是否使用dump命令备份,0表示不要做dump备份;1表示进行dump备份;2表示备份,但重要性比1小
  • 是否使用fsck命令检验,0表示不要检验;1是要检验;2是要检验,不过优先级小于1

3.5 卸载
如果是临时挂载使用某个分区,在使用完成后,可以将其卸载。卸载之后,分区上的数据将无法访问。
(1)通过分区设备名称卸载

[root@localhost ~]# umount /dev/sdb1

(2)通过挂载点卸载

[root@localhost ~]# mount /dev/sdb1 /mnt/data/  //重新挂载
[root@localhost ~]# umount /mnt/data/

(3)特别注意的是,在卸载分区之前,先要确保该分区数据未被占用使用,包括当前用户退出其挂载点目录。若出现device is busy可使用命令fuser -k杀死与挂载目录相关的进程,在使用umount卸载目录。


制作成员: 杨佳佳

排版: 裕新

初审: 何嘉愉

复审: 二月二