云网牛站
所在位置:首页 > Linux教程 > 导致U盘不能识别的原因既然是Linux内核版本错误

导致U盘不能识别的原因既然是Linux内核版本错误

2018-08-15 10:51:42作者:文剑木然稿源:linux网

一般情况下在 Linux 系统中直接插入 U 盘就可以识别并且能正常使用,但是有一次把 U 盘插上电脑,发现没有自动挂载。最后查明原因既然是因为 Linux 内核版本错误导致的,以下是解决该问题的办法。

 

问题起因

U 盘插入到运行在 Linux 系统中电脑,发现没有自动挂载。然后运行 sudo fdisk -l 一看,发现并没有U盘所对应的设备,也就是U盘不能识别了。以前从没在 Linux 上遇到这种问题,通过查资料得知,要识别 U 盘,需要装载 usb-storage 模块。

 

解决办法

需要装载装载 usb-storage 模块,运行 lsmod | grep usb 发现确实没有 usb-storage 模块。

为了判断 U 盘是否物理损坏导致系统无法“感知” U 盘的存在,运行命令 sudo udevadm monitor --udev,发现U盘插拔时有反应。

然后运行 sudo modprobe usb-storage 尝试装载 usb-storage 模块,结果报错:

modprobe: FATAL: Module usb-storage not found in directory /lib/modules/4.14.48-2-MANJARO

查看 /lib/modules/ 目录:

$ ls /lib/modules 

4.14.40-rt30-MANJARO  extramodules-4.14-MANJARO

4.14.52-1-MANJARO     extramodules-4.14-rt-MANJARO

发现并没有 4.14.48-2-MANJARO。在 Manjaro 设置管理器里查看内核:

导致U盘不能识别的原因既然是Linux内核版本错误

发现当前内核版本为 Linux 4.14.52-1。但是,运行 uname -r 却显示内核版本为 4.14.48-2-MANJARO。这也难怪 modprobe 会到 /lib/modules/4.14.48-2-MANJARO 目录下去找 usb-storage 模块。

通过查询 modprobe 的 manpage,发现可以指定版本。运行 sudo modprobe --set-version=4.14.52-1-MANJARO usb-storage,U 盘终于自动挂载了。

为了启动时使用 Linux4.14.52-1 版本的内核,运行 sudo update-grub 来更新 grub,重启后再运行 uname -r 显示内核版本为 4.14.52-1-MANJARO,U 盘也能自动挂载,运行 lsmod | grep usb 也有 usb-storage 模块,问题得以解决。当前 Linux 4.18 内核发布,你可以考虑安装该内核版本,关于 Linux 4.18 的发布详情参考 Linux Kernel 4.18详细新功能汇总,解决了2038年问题一文。

 

相关主题

在Linux终端中修复U盘驱动器问题

精选文章
热门文章