前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux入门】文件系统中的挂载与卸载

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

原创
作者头像
参谋带个长
发布2023-12-20 07:52:44
4310
发布2023-12-20 07:52:44
举报

在 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、在尝试卸载文件系统之前,应确保没有进程正在使用该文件系统,否则卸载操作可能会失败。

命令格式及示例:

代码语言:shell
复制
# 挂载,将分区 /dev/vdb1 挂载至 /home 目录
mount /dev/vdb1  /home

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

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

代码语言:shell
复制
# 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 配置文件格式说明

代码语言:shell
复制
# 输入命令
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 配置修改示例

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

代码语言:shell
复制
# 查看编辑配置文件
vim /etc/fstab

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

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

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

代码语言:shell
复制
echo '/dev/vdb1  /home  ext4    defaults    0  0'>> /etc/fstab

输入命令使挂载配置生效

代码语言:shell
复制
# 按配置文件 /etc/fstab 的内容完成挂载
mount -a

# 查看磁盘情况
df -TH

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

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

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

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 挂载要求
  • 挂载与卸载命令 mount / unmount
  • 永久性挂载 /etc/fstab
    • /etc/fstab 配置文件格式说明
      • /etc/fstab 配置修改示例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档