前言:
我的U盘是NTFS格式的,想要挂载到Linux系统上,必须要使用ntfs-3g去挂载,因为默认Linux系统是不支持NTFS格式的。
实践过程中,挂载非常顺畅,并可以读取查看,不过在弹出设备时出了点意外,报了“umount: /mnt/usb: device is busy (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))”U盘一直被占用问题。
通过网上查阅相关资料,加上自身实践验证,最终将问题解决。下面将挂载过程以及弹出设备提示被占用问题解决的过程记录下来。
挂载NTFS格式的U盘
第一步、安装ntfs-3g
如果有小伙伴还没有安装ntfs-3g,请移步到我之前的博客,按照步骤安装。
Centos6 安装 ntfs-3g,为 挂载 NTFS格式的U盘做准备_走向运维的老男孩的博客-CSDN博客
第二步、查看本地磁盘识别情况
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
...
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 131 392 2097152 82 Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 392 2611 17824768 83 Linux
Disk /dev/sdb: 62.0 GB, 62008590336 bytes
...
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 104 7482 59267072 7 HPFS/NTFS
/dev/sdb2 7482 7539 458751+ 1b Hidden W95 FAT32
说明:第一块磁盘/dec/sda是虚拟机硬盘,/dev/sdb是我的U盘,我的U盘两种格式都有,/dev/sdb1是NTFS格式,也是即将要挂载的。
第三步、挂载NTFS格式U盘
[root@localhost ~]# mount -t ntfs-3g /dev/sdb1 /mnt/usb
第四步、验证是否已挂载成功
[root@localhost ~]# cd /mnt/usb
[root@localhost usb]# ls
1金苗 2操作系统WIN7专业版 20201012.sql
验证挂载成功!至此挂载完成。
弹出设备
[root@localhost usb]# umount /dev/sdb1
umount: /mnt/usb: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
弹出设备报错:U盘正在被占用
umount: /mnt/usb: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
如何解决?
解决U盘被占用问题
第一步、查看磁盘挂载情况
[root@localhost usb]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 17G 2.2G 14G 14% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 976M 33M 892M 4% /boot
/dev/sdb1 57G 17G 41G 29% /mnt/usb
说明:U盘仍然处于挂载状态,确实没有弹出。
第二步、查看U盘进程
[root@localhost usb]# top c
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.7 0.0 0:34.04 [events/0]
432 root 20 0 0 0 0 S 0.3 0.0 0:00.32 [flush-8:0]
2121 root 20 0 15032 1204 936 R 0.3 0.1 0:01.04 top c
1 root 20 0 19364 1548 1232 S 0.0 0.2 0:03.53 /sbin/init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [kthreadd]
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
4 root 20 0 0 0 0 S 0.0 0.0 0:00.47 [ksoftirqd/0]
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [stopper/0]
6 root RT 0 0 0 0 S 0.0 0.0 0:00.12 [watchdog/0]
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [events/0]
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [events_long/0]
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [events_power_ef]
...
第三步、查看U盘进程ID(PID)
[root@localhost usb]# fuser -mv /mnt/usb
用户 进程号 权限 命令
/mnt/usb: root 1790 ..c.. bash
获取U盘的进程号为1790.
第四步、杀死这个进程
[root@localhost usb]# kill -9 1790
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.xxx.xxx_x86_64) at 20:30:21.
杀死U盘进程号后,远程传输工具会断开连接,重新连接就好。
第五步、再次弹出U盘
[root@localhost ~]# umount /dev/sdb1
弹出U盘,没有再报错!
第六步、验证
[root@localhost ~]# ls /mnt/usb
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 17G 2.2G 14G 14% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 976M 33M 892M 4% /boot
验证弹出成功!U盘文件为空,并且挂载点也没有了。
小结:
U盘挂载过程极为顺利,只是弹出设备时遇到小小麻烦,也被顺利解决。有遇到此类问题的小伙伴,可以使用以上方法,亲测有效!