Linux取消挂载硬盘
之前说在挂载硬盘时遇到了问题,取消挂载的时候也遇到了问题,其实我也不想.JPG😥
情况描述
先说一下情况:带着笔记本、硬盘、网线去机房挂载,笔记本接入到交换机,配置临时IP,通过SSH登录到目标服务器(Ubuntu)上进行mount。因为数据很大,写了shell脚本进行数据目录cp,nohup挂起后就直接拔笔记本网线(这就是给自己挖坑的地方😥),离开机房了。
插播一条命令,可以每隔1s查看dir
目录所占空间大小:
1 | watch -n 1 -d du -sh dir |
处理问题
数据拷贝完毕之后,在工位登录服务器取消挂载时:
1 | umount /mnt/usb |
出现问题后,首先想到通过lsof
查看有哪些进程在使用/mnt/usb
,但是列出的进程有很多,没有找到有什么有用的信息(当然也可能是我没分析出来)😥。
查找相关资料后,fuser
可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、网络端口等,并给出程序进程的详细信息:
1 | fuser -mv /mnt/ |
lsof
和fuser
显示的信息我只能看出挂载进行都在root用户上。
继续查找资料时,看到一句Linux支持多用户登录
,想起来之前直接拔网线的操作,查看当前登录的用户:
1 | w |
这时看到在机房配置的临时IP 192.168.1.2
。
每个用户登录都会占用一个TTY,可以理解成一个会话,强制踢某个用户下线,就是强制关闭这个会话。关于TTY,可以查看以下资料:
1、https://segmentfault.com/a/1190000009082089
2、http://www.linusakesson.net/programming/tty/index.php
找到原因后,需要将192.168.1.2
这个IP上的TTY强制踢出。
1 | pkill -kill -t pts/0 |
再次查看当前登录用户:
1 | w |
再次执行umount,取消挂载成功:
1 | umount /mnt/usb/ |
问题排查结束,真•自己挖坑自己填😭