【Linux入门】文件系统中的挂载与卸载

Linux系统
222
0
0
2024-02-16

在 Windows 操作系统中,不同的分区可以理解为对应不同的盘符,例如可以将硬盘分为C盘、D盘等,如果接入了新的硬盘,则可分为E盘、F盘。

但在Linux操作系统中,则是以 目录树 的形式展现,所有的文件及目录都是从 根目录 / 开始的,以常见的服务器硬盘结构为例,系统盘通常可以理解对应为 根目录 / ,如果服务器此时有数据盘,那么就需要先对数据盘进行分区,然后将其挂在根目录上,此操作称为“挂载

如下图所示,在 Linux 中,并没有并列存在的分区结构,如 Windows 中的C盘、D盘、E盘等,而是均以 根目录 / 做为起点,树型结构分布的。

挂载要求

挂载可以扩展根分区的存储量,使得Linux系统可以访问其他存储设备的数据。挂载操作通常需要指定要挂载的设备(如硬盘分区或设备文件)和挂载点(即目录)。

挂载点目录的相关要求:

1、挂载点目录必须存在,且最好为空目录。

2、同一挂载点不可重复挂载多个文件系统。

3、同一文件系统不可重复挂载在多个挂载点。

4、如果是一个全新的硬盘设备,应该先分区,然后格式化文件系统,最后再挂载才能正常使用。

分区、格式化操作可参考教程:【Linux入门】磁盘分区、格式化

如果挂载点的目录事先存在并且不为空,那么做为挂载点后,原目录就被隐藏起来了,当挂载点被卸载后,原目录中的文件将会被显示出来。

举例说明:如果 /home 目录本身存在,并且有文件 1.txt ,如果此时该目录被做为挂载点挂载了新的硬盘分区,那么再次进入到 /home 目录时,则相当于进入了新硬盘分区中,看到的数据也为新的分区中的数据,当挂载点被卸载后,又能看到 1.txt 文件了。

挂载与卸载命令 mount / unmount

mount 命令用于在 Linux 中挂载文件系统,unmount 命令用于卸载一个已挂载的文件系统。

需要注意:

1、mount 挂载并非永久的,为临时性挂载,在操作系统重启时就会失效。 2、在尝试卸载文件系统之前,应确保没有进程正在使用该文件系统,否则卸载操作可能会失败。

命令格式及示例:

# 挂载,将分区 /dev/vdb1 挂载至 /home 目录
mount /dev/vdb1  /home

# 卸载,将分区 /dev/vdb1 从挂载点上卸载
umount /dev/vdb1

命令练习:假设服务器有1块系统盘+1块数据盘,且数据盘已完成分区、格式化,现将分区挂载至空目录 /home 上。

# 1、输入命令
fdisk -l

#可能返回以下内容,存在分区 /dev/vdb1 
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009ac89

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

Disk /dev/vdb: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x093bd493

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   146800639    73399296   83  Linux

# 2、输入命令
df -TH

# 可能返回以下内容,发现分区 /dev/vdb1 尚未挂载至系统中
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.1G     0  1.1G   0% /dev
tmpfs          tmpfs     1.1G   25k  1.1G   1% /dev/shm
tmpfs          tmpfs     1.1G  496k  1.1G   1% /run
tmpfs          tmpfs     1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/vda1      ext4       53G  2.5G   49G   5% /
tmpfs          tmpfs     210M     0  210M   0% /run/user/0

# 3、挂载分区
mount /dev/vdb1  /home

# 4、输入命令
df -TH

# 可能返回以下内容,此时分区 /dev/vdb1 已成功挂载 /home
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.1G     0  1.1G   0% /dev
tmpfs          tmpfs     1.1G   25k  1.1G   1% /dev/shm
tmpfs          tmpfs     1.1G  496k  1.1G   1% /run
tmpfs          tmpfs     1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/vda1      ext4       53G  2.5G   49G   5% /
tmpfs          tmpfs     210M     0  210M   0% /run/user/0
/dev/vdb1      ext4       74G   55M   71G   1% /home

# 5、卸载分区
umount /dev/vdb1

# 6、输入命令
df -TH

# 可能返回以下内容,发现分区 /dev/vdb1 已从挂载点中卸载
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.1G     0  1.1G   0% /dev
tmpfs          tmpfs     1.1G   25k  1.1G   1% /dev/shm
tmpfs          tmpfs     1.1G  496k  1.1G   1% /run
tmpfs          tmpfs     1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/vda1      ext4       53G  2.5G   49G   5% /
tmpfs          tmpfs     210M     0  210M   0% /run/user/0

永久性挂载 /etc/fstab

挂载可分为永久性挂载临时性挂载两种方式。mount 命令为临时性挂载,在操作系统重启时就会失效。而永久性挂载则需要修改配置文件/etc/fstab,将需要挂载的文件系统写入这个配置文件中,再使用命令 mount -a 让配置信息生效,挂载的文件即可使用,重启后挂载仍然有效。

/etc/fstab 配置文件格式说明

# 输入命令
vim /etc/fstab

# 打开文件默认内容如下

#
# /etc/fstab
# Created by anaconda on Thu Mar  7 06:38:37 2019
#
# 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
#
UUID=4b499d76-769a-40a0-93dc-4a31a59add28 /                       ext4    defaults        1 1
以上内容为系统默认值,最好不要修改,如有新的挂载点,只需另起一行添加即可。

/etc/fstab文件中的每一行代表一个挂载信息,包含六个字段,分别是:

第一列:设备名或者设备卷标名。示例中为:UUID=4b499d76-769a-40a0-93dc-4a31a59add28

第二列:挂载点。挂载点必须是一个已存在的目录。示例中为:/

第三列:文件系统类型。例如ext4、xfs等。示例中为:ext4

第四列:挂载选项,多个选项之间用逗号分隔。默认的挂载选项为defaults。示例中为:defaults

第五列:是否进行dump备份,一般设为0。示例中为:1

第六列:是否使用fsck检查文件系统,一般设为0表示不检查,1表示最先检查,2表示其次检查(当fsck的优先级高于其他文件系统时)。示例中为:1

/etc/fstab 配置修改示例

通过以上格式说明,结合练习示例,可使用以下命令修改配置文件。

# 查看编辑配置文件
vim /etc/fstab

# 可能返回以下内容
UUID=4b499d76-769a-40a0-93dc-4a31a59add28 /                       ext4    defaults        1  1

# 添加以下内容,退出保存
/dev/vdb1                                 /home                   ext4    defaults        0  0

也可以使用以下命令实现相同的效果(与上述操作不可重复)

echo '/dev/vdb1  /home  ext4    defaults    0  0'>> /etc/fstab

输入命令使挂载配置生效

# 按配置文件 /etc/fstab 的内容完成挂载
mount -a

# 查看磁盘情况
df -TH

# 测试重启后是否自动挂载
reboot

# 重启后输入命令查看磁盘情况
df -TH

如需取消永久性挂载,只需编辑配置文件/etc/fstab,将对应的挂载信息删除即可。