近期在对大数据系统做备份迁移的时候,首次使用上了8T的移动硬盘,发现随着的科技的进步,硬件的存储能力已经提升到了一个相当大的地步,好了今天就是基于移动磁盘挂载后处理完数据,想要卸载磁盘却提示磁盘正忙而引发的问题。
通常我们挂载磁盘后,在文件系统中可以很清晰的了解到当前的磁盘都挂载到哪个目录下,通过df 命令:
[root@localhost data]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.7G 46G 10% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 18M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 1014M 178M 837M 18% /boot
/dev/mapper/centos-home 1.8T 4.7G 1.8T 1% /home
tmpfs 3.2G 12K 3.2G 1% /run/user/42
tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/sdc1 7.3T 3.8T 3.5T 53% /data
# /dev/sdc1就是我的磁盘,当前已经挂载到了/data目录上
[root@localhost data]# umount /data
umount: /data:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
上述在卸载挂载的目录的时候出现目标忙,该问题是由于当前Linux系统是多用户模式,不仅仅是我一个人在登录,其它人也在登录操作,并且正好处于/data目录下面。
我已知该磁盘已经可以卸载,但是有运维人员忘记退出操作目录,那么就需要人为关闭其它人的操作,上述可以有2种方式实现,这里用的是fuser
fuser -uvki /data
用户 进程号 权限 命令
/data: root kernel mount (root)/data
root 2124 ..c.. (root)bash
杀死进程 2124 ? (y/N) y
# 关闭使用该目录的进程后,就可以卸载了
fuser 参数:
-u # 在每个进程后显示所属用户名
-v # 输出详细信息
-k # 关闭访问指定文件的所有进程
-i # 关闭进程前需要用户进行确认操作
[root@localhost ~]# umount /data
以上,希望能帮到大家