sshfs - 找不到设备

时间:2014-08-20 11:40:31

标签: linux ssh debian sshfs

使用apt-get update && apt-get upgrade更新服务器后,此命令将返回错误

OS

Debian 3.2.60-1+deb7u3 x86_64 (wheezy)

命令

echo "the-password" | sshfs root@domain.com:/var/www /remote_mount -o password_stdin

错误

fuse: device not found, try 'modprobe fuse' first

更新

root@dyntest-amd-3700-2gb ~ # modprobe fuse
modprobe: ERROR: could not insert 'fuse': Unknown symbol in module, or unknown parameter (see dmesg)

root@dyntest-amd-3700-2gb ~ # dmesg | grep fuse
[   20.126156] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[1607702.343086] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[1607745.824310] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[1607908.188559] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[1608724.690945] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[1608741.684927] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)
[2565283.964259] fuse: Unknown symbol nosteal_pipe_buf_ops (err 0)

内核版本

root@dyntest-amd-3700-2gb ~ # cat /proc/version
Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.54-2

root@dyntest-amd-3700-2gb ~ # locate -i -r /fuse
/bin/fuser
/bin/fusermount
/etc/fuse.conf
/lib/modules/3.2.0-4-amd64/kernel/fs/fuse
/lib/modules/3.2.0-4-amd64/kernel/fs/fuse/cuse.ko
/lib/modules/3.2.0-4-amd64/kernel/fs/fuse/fuse.ko
/lib/modules-load.d/fuse.conf
/usr/include/boost/fusion/functional/adapter/fused.hpp
/usr/include/boost/fusion/functional/adapter/fused_function_object.hpp
/usr/include/boost/fusion/functional/adapter/fused_procedure.hpp
/usr/include/boost/fusion/include/fused.hpp
/usr/include/boost/fusion/include/fused_function_object.hpp
/usr/include/boost/fusion/include/fused_procedure.hpp
/usr/include/linux/fuse.h
/usr/share/bash-completion/completions/fusermount
/usr/share/doc/fuse
/usr/share/doc/fuse/changelog.Debian.gz
/usr/share/doc/fuse/changelog.gz
/usr/share/doc/fuse/copyright
/usr/share/initramfs-tools/hooks/fuse
/usr/share/lintian/overrides/fuse
/usr/share/man/man1/fuser.1.gz
/usr/share/man/man1/fusermount.1.gz
/var/cache/apt/archives/fuse_2.9.0-2+deb7u1_amd64.deb
/var/cache/apt/archives/fuse_2.9.3-14_amd64.deb
/var/cache/apt/archives/fuse_2.9.3-15_amd64.deb
/var/cache/apt/archives/fuse_2.9.3-9_amd64.deb
/var/lib/dpkg/info/fuse.conffiles
/var/lib/dpkg/info/fuse.list
/var/lib/dpkg/info/fuse.md5sums
/var/lib/dpkg/info/fuse.postinst
/var/lib/dpkg/info/fuse.postrm
/var/lib/dpkg/info/fuse.preinst

更新#2

root@dyntest-amd-3700-2gb /var/www # modinfo fuse
filename:       /lib/modules/3.2.0-4-amd64/kernel/fs/fuse/fuse.ko
alias:          devname:fuse
alias:          char-major-10-229
license:        GPL
description:    Filesystem in Userspace
author:         Miklos Szeredi <miklos@szeredi.hu>
depends:
intree:         Y
vermagic:       3.2.0-4-amd64 SMP mod_unload modversions
parm:           max_user_bgreq:Global limit for the maximum number of backgrounded requests an unprivileged user can set (uint)
parm:           max_user_congthresh:Global limit for the maximum congestion threshold an unprivileged user can set (uint)

2 个答案:

答案 0 :(得分:4)

This thread似乎有一个解决方案 - 基本上升级你的内核。

顺便说一下。根据Luis Henriques和Al Viro在LKML之间进行交换的原因是内核中的API重命名将FUSE标志与另一个更通用的标志合并。

答案 1 :(得分:1)

首先,您可以尝试从缓存中安装模块,

  

apt-cache搜索保险丝

如果这不起作用--- 你可以用模块助手安装保险丝模块,

  

apt-get install module-assistant

     

apt-get install fuse-source

     

cd / usr / src

     

m-a prepare

     

m-a a-i fuse

     

depmod -ae $(uname -r)

现在你可以,

modprobe保险丝