umount: /dev/xvdb1: not mounted 磁盘卸载出现异常

简介: 【问题现象】 服务器中执行umount卸载命令时提示磁盘没有挂载 [root@zxj ~]# umount /dev/xvdb1 umount: /dev/xvdb1: not mounted 【问题描述】 最开始接到用户反馈问题描述如下 1)新添加了一块数据盘,把数据盘挂载到了/home 目录下 2)/home 目录下原本是有文件的,导致原本的文件查看不到 【处理过程】 刚开始接到这个反馈,以为只是简单的同一个目录挂载了两个设备导致原本的文件被遮盖,只需要简单的进行umount卸载后挂载的数据盘分区即可。

【问题现象】
服务器中执行umount卸载命令时提示磁盘没有挂载
[root@zxj ~]# umount /dev/xvdb1
umount: /dev/xvdb1: not mounted

【问题描述】
最开始接到用户反馈问题描述如下
1)新添加了一块数据盘,把数据盘挂载到了/home 目录下
2)/home 目录下原本是有文件的,导致原本的文件查看不到

【处理过程】
刚开始接到这个反馈,以为只是简单的同一个目录挂载了两个设备导致原本的文件被遮盖,只需要简单的进行umount卸载后挂载的数据盘分区即可。

但是用户反馈执行umount卸载时提示无法正常进行卸载。

而分区无法正常卸载一般可能的原因是有其他应用在占用分区,导致无法正常卸载,这种情况只需要通过fuser或lsof命令进行一下检测即可。但是用户反馈通过这两个命令检测不到结果,df -h 查询结果中磁盘已经是没有挂载了。

此时通过电话和用户进行了一下沟通,了解到用户是之前在执行mount挂载数据盘导致原本的数据看不到之后,自己在网上已经搜索了资料,看到有篇文章中说明更改了mtab文件。不得不吐槽一下用户找的是一个极其坑爹的文档,原本很简单umount命令就能搞定的事情,结果被弄得更加复杂。

【问题分析】
要解决用户的这个问题,就需要清楚系统中几个重要文件和命令之间的关系
1)/etc/fstab
作为一个系统运维,这个文件相对来说是接触比较多的,是Linux磁盘分区自动挂载的配置文件,系统在开机时会通过读取这个文件中的配置来对磁盘进行挂载,如果这个文件配置有问题,会在开机时导致系统无法正确读取分区配置而引发启动异常,一般异常的现象就是进行了修复模式,只需要输入密码进入系统后手动调整fstab文件配置,然后重启服务器即可修复

2)/etc/mtab
这个文件是系统的磁盘分区挂载状态配置文件,当用户在系统中直接执行mount命令对挂载状态进行查询时,其实就是读取的/etc/mtab 文件中的配置状态。df -h等查询系统磁盘状态的命令,也是要调用这个文件中的配置状态。所以如果此文件配置出现问题,直接的异常现象就是mount 和 df 等查询命令的查询结果不准确

3)/proc/mounts
/proc 目录是一个伪文件,这个目录下的配置是存在内存中的,并不占用磁盘空间,也是能够直观的查看到系统中当前各个硬件设备的状态信息。

【处理方案】
由于用户把 /etc/mtab 文件中的数据盘挂载进行了删除,所以就导致df -h 查询时查看不到数据盘的挂载信息,然而其实这个时候数据盘仍然是挂载着的,但是由于系统读取mtab文件时并没有这个数据盘的挂载信息,所以就会出现umount: /dev/xvdb1: not mounted的这个报错。只需要把/proc/mounts 文件中记录的挂载状态重新写入到 /etc/mtab 中,然后在按正常的卸载步骤对数据盘进行卸载即可。

【排查命令】
1)通过cat /etc/mtab 和 cat /proc/mounts 分别查看用户修改的文件和内存中记录的设备状态信息,从查询结果中来开,内存中其实还是有数据盘的这个挂载记录的,也就是说当前这个数据盘还是正常挂载的状态
image

2)把/proc/mounts查询到的这个数据盘的挂载信息手动写入到/etc/mtab 再次查询mstab文件状态如图
image

3)再次执行df -h查看已经可以正常看到数据盘的挂载信息
image

4)再次执行umount已经可以正常卸载数据盘,文件状态恢复正常
image

【总结】
问题其实并不是太复杂,关键点在于理清 /etc/fstab 、 /etc/mstab 、 /proc/mounts 、 df 、 mount几个文件和命令之间的关系

相关文章
|
2月前
|
Ubuntu Linux Windows
linux 挂载硬盘报错 "mount: unknown filesystem type 'ntfs'"
【10月更文挑战第7天】在Linux系统中挂载硬盘时遇到“mount: unknown filesystem type 'ntfs'”错误,是因为Linux默认可能不支持NTFS文件系统。本文提供了解决方案:安装NTFS-3G软件包以支持NTFS,并检查内核是否已加载NTFS模块。对于Ubuntu/Debian系统,可使用`sudo apt-get install ntfs-3g`命令;对于CentOS/RHEL系统,则需先安装EPEL仓库再安装NTFS-3G。此外,还需确认硬盘设备名正确无误,并创建合适的挂载点目录。
488 2
|
3月前
|
Linux
磁盘的分区、格式化、检验与挂载 ---- fdisk,mkfs,mount
该文章介绍了如何在Linux系统中进行磁盘的分区、格式化、检验与挂载操作。
磁盘的分区、格式化、检验与挂载 ---- fdisk,mkfs,mount
|
7月前
|
Linux Windows
mount/umount 挂载/卸载
mount/umount 挂载/卸载。
84 9
|
IDE Unix Linux
linxu中的df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
linxu中的df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
linxu中的df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
|
Linux Windows
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(一)
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(一)
306 0
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(一)
|
开发工具
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(二)
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(二)
312 0
LINUX04_分区的概述、设备挂载情况lsblk、磁盘分区fdisk、格式化硬盘、挂载mount(二)