raspberry-pi - 树莓派杰西 : Cannot mount NTFS external harddrive anymore after 'apt-get upgrade' (fuse device is missing)

标签 raspberry-pi raspbian fuse ntfs-3g

在我今天早些时候使用 apt-get upgrade 之后,我的 Raspberry Pi(Raspbian Jessie)不再能够自动挂载我的外部硬盘。在 apt-get upgrade 之前,自动挂载工作得非常好,但现在我什至无法再手动挂载我的外部硬盘了。

这是我收到的错误消息:

pi@raspberrypi:~ $ sudo mount /dev/sda1 /mnt
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.26-v7+/modules.dep.bin'
ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root



'modprobe fuse' 给了我同样的错误信息:

modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.26-v7+/modules.dep.bin'



我使用以下命令重新安装了内核和引导加载程序:
sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
但这没有帮助。

从阅读其他论坛帖子来看,我的内核和 fuse 可能看起来不兼容 - 但这是怎么发生的?我觉得我在这里有点超出我的深度。

一些论坛帖子建议重新启动会有所帮助,但这并没有解决我的问题。

或者,我还发现了一个 post from drownboat on Reddit from two years ago这看起来很有希望 - 但老实说,我不知道这是否只是另一个红鲱鱼,或者这是否确实是我面临的问题。无论如何,我不确定溺水船到底是什么/如何做到的:

I suspect that what is happening is that updates to the kernel and grub config are being written to the /boot folder, but not onto the boot device. This has caused the modules and the kernel to go out of sync. [...]

I fixed it by adding /boot back to /etc/fstab, rebooting to another kernel where the modules were still working, thus mounting /boot, and finally reinstalling apt-get install --reinstall linux-image-3.16.0-4-amd64.



我将不胜感激任何帮助!

更多信息:
uname -a

Linux raspberrypi 4.4.26-v7+ #915 SMP Thu Oct 20 17:08:44 BST 2016 armv7l GNU/Linux


dpkg -s fuse

Status: install ok installed
Priority: optional
Section: utils
Installed-Size: 103
Maintainer: Laszlo Boszormenyi (GCS)
Architecture: armhf
Version: 2.9.3-15+deb8u2
Depends: libc6 (>= 2.4), libfuse2 (= 2.9.3-15+deb8u2), adduser, mount (>= 2.19.1), sed (>= 4), udev | makedev
Conffiles:
/etc/fuse.conf 298587592c8444196833f317def414f2
Description: Filesystem in Userspace
Filesystem in Userspace (FUSE) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel. It also aims to provide a secure method for non privileged users to create and mount their own filesystem implementations.
Homepage: http://fuse.sourceforge.net/

最佳答案

我找到了解决方案(有关详细信息,请参见下文)! 结果是引导分区没有挂载,操作系统恢复到apt-get升级前的旧内核。所以我只需要确保/boot 在启动时自动挂载,以便使用正确的内核。

我的错误分析的进一步步骤():

好的,所以我设法自己解决了这个问题。事实证明/boot 分区没有挂载,因此我的 Raspberry Pi 恢复到旧内核,而不是 apt-get upgrade 附带的花哨的新内核。

我通过使用 uname -r 发现了问题, 这给了我 ' 4.9.35-v7+ '作为回答。这很奇怪,因为原始错误消息具有不同的版本号:

modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.26-v7+/modules.dep.bin'



(我的重点)

当我使用 cd /lib/modules 导航到/lib/modules 时我也看到了这个:

pi@raspberrypi:/lib/modules $ ls
4.9.35+ 4.9.35-v7+



因此,有关缺少 fuse 设备的错误消息似乎确实与内核和 fuse 版本不匹配有关。版本号之间的差异让我相信使用了错误的内核(就像两年前他们在 Reddit 上的帖子中提到的 dropboat)。

这就是我解决问题的方法(解决方案):
sudo nano /etc/fstab/
然后我在 fstab 中添加了以下几行:

# automount /boot partition at startup
/dev/mmcblk0p6 /boot vfat defaults 0 2



重启后,我用了sudo raspi-config检查启动分区是否正确挂载(raspi-config 只会让您在挂载分区时进入其菜单,否则它会告诉您需要先挂载启动分区)。

然后我跑了sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel再次加倍确保最新的内核也安装在引导分区上 - 但我不知道这是否是关键步骤。

最后,再次重新启动后,我能够再次挂载/自动挂载我的外部硬盘驱动器。

希望这可以帮助其他和我有同样问题的人! :)

关于raspberry-pi - 树莓派杰西 : Cannot mount NTFS external harddrive anymore after 'apt-get upgrade' (fuse device is missing),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002854/

相关文章:

linux - FUSE的写顺序保证

c - struct { .attr = value } 语法是什么意思?

java - 使用 Chef 通过代理在 Raspberry PI 3 上安装 Open JDK 8

arduino - 如何使用 Nest 设置当前温度

bluetooth - 使用 RSSI 计算近似距离

go - "go get google.golang.org/grpc"失败 : unrecognized import path

raspberry-pi - 如何准备带有Raspbian的Raspberry Pi,以便可以从Linux主机交叉编译Qt5程序?

python - 将 python IDLE 更新到 3.5

bash - 如何为systemd服务的进程加载环境变量?

docker - 通过卷共享安装在 docker 容器内的 FUSE FS