问题描述
U盘或移动硬盘umount弹出设备失败,后台会出现一个kworker进程,疯狂占用CPU资源,其中:
top命令直接可以看到kworker进程;
htop命令默认隐藏了内核进程,需要在按F2 进行设置 “Display options”选项中,取消选择“Hide kernel threads”,
之后按F10保存设置,就可以看到kworker进程了。
解决方法
强制重启USB控制器
echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/unbind && echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/bind
注意事项
该命令会断开所有的USB设备的连接,并重新连接,因此,确保当前没有进行数据传输,以防止数据丢失。
其他
该方法同样适用于:
- 强制卸载无法卸载的USB设备,比如:解决因为在传输数据未完成时直接拔下存储设备导致的后台D进程驻留(无法被kill);
- 系统更新固件可能导致(只遇到过一次)的USB存储设备无法被识别(重启系统同样可以解决);
- 不重启系统,只重启xhci控制器。