昨天(5 月 21 日)我升级了我的 Ubuntu 12.04 内核:
uname -a
:
Linux vi 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
重启后,我安装的所有外部 Samba 共享都停止了工作。
当我执行:
sudo mount -t cifs //192.168.101.168/video /mnt/video
结果是:
mount error: cifs filesystem not supported by the system
mount error(19): No such device
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
dmesg 显示:
[ 2785.792456] cifs: Unknown symbol locks_delete_block (err 0)
如果我执行:
sudo modprobe cifs
结果是:
FATAL: Error inserting cifs (/lib/modules/3.2.0-24-generic/kernel/fs/cifs/cifs.ko): Unknown symbol in module, or unknown parameter (see dmesg)
dmesg 再次显示:
[ 5811.742563] cifs: Unknown symbol locks_delete_block (err 0)
是否有任何已知的解决方法?
答案1
你试过重启吗?我真的不想问 Linux 的问题,但它帮我解决了这个问题。
答案2
问题解决了!
在尝试解决此问题时,我破坏了计算机的 GRUB。直到一小时前我才有时间恢复系统,所以请原谅我回复的延迟。
非常感谢,reverendj1 和 Bruno!
reverendj1:不同的内核版本是正确的线索,它在 cifs.ko 中产生了缺失的符号。
令人难以置信的是,该问题是由未被检测到的 USB 磁盘造成的:我使用该磁盘在 RAID 上启动 Ubuntu。
由于 Ubuntu 无法挂载 USB 磁盘(我在 fstab 上将其挂载到 /boot),它会在 raid 上创建一个虚拟的 /boot,该 /boot 在 BIOS 启动阶段当然不存在,但它是计算机正常运行期间唯一存在的 /boot。
当我更新内核时,更新后的内核(#38)被写入虚拟启动。“真正的”(启动期间)内核(较旧的#37)仍保留在外部 USB 磁盘中,仅在启动期间可见。
我从这个内核不匹配中察觉到的唯一影响是 cifs 驱动程序无法加载。
答案3
重新安装cifs-utils
并重启。这对我有用。
sudo apt-get --reinstall install cifs-utils && sudo reboot
答案4
我会尝试重新安装 smbfs:
sudo apt-get --reinstall install cifs-utils