FATAL: Could not open ‘kernel/fs/nfs/nfs.ko’: No such file or directory

ATTENTION : Cet article à plus de 8 années, il se peut que les infos soient obsolètes ou à adapter aux dernières versions des logiciels.

Ou comment monter un partage NFS sur une « vieille » Debian Etch avec un noyau récent.

J’ai donc une machine virtuelle Xen 4 avec un kernel récent 2.6.32-5, mais j’ai besoins d’une Debian Etch, le problème c’est que la version de modprobe est incompatible avec cette génération de noyau.

Il faut bien sûr installer nfs-common sur la machine cliente nfs.

Si on essaie de charger le module nfs voici les erreurs :

# modprobe nfs
WARNING: Could not open 'kernel/net/sunrpc/sunrpc.ko': No such file or directory
WARNING: Could not open 'kernel/net/sunrpc/auth_gss/auth_rpcgss.ko': No such file or directory
WARNING: Could not open 'kernel/fs/nfs_common/nfs_acl.ko': No such file or directory
WARNING: Could not open 'kernel/fs/fscache/fscache.ko': No such file or directory
WARNING: Could not open 'kernel/fs/lockd/lockd.ko': No such file or directory
FATAL: Could not open 'kernel/fs/nfs/nfs.ko': No such file or directory

Par contre si on charge un par un chaque module à la main avec insmod pas de problèmes.

Une solution (peut-être pas la meilleure mais elle fonctionne) est de ce faire un petit script qu’on rajoutera dans les init :

#!/bin/bash
# Script for load nfs modules on Debian Etch
# with 2.6.32-5-xen-amd64 kernel
# because of modprobe uncompatible version
# with this kernel.
# Errors when you try to load nfs module
# # modprobe nfs
# WARNING: Could not open 'kernel/net/sunrpc/sunrpc.ko': No such file or directory
# WARNING: Could not open 'kernel/net/sunrpc/auth_gss/auth_rpcgss.ko': No such file or directory
# WARNING: Could not open 'kernel/fs/nfs_common/nfs_acl.ko': No such file or directory
# WARNING: Could not open 'kernel/fs/fscache/fscache.ko': No such file or directory
# WARNING: Could not open 'kernel/fs/lockd/lockd.ko': No such file or directory
# FATAL: Could not open 'kernel/fs/nfs/nfs.ko': No such file or directory
#
# Don't forget
# update-rc.d mount_nfs defaults
#
# Guillaume Chéramy
# http://blog.cheramy.name
# 08 October 2010

case "$1" in
start)
   # load modules
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/sunrpc.ko
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/fs/nfs_common/nfs_acl.ko
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/fs/fscache/fscache.ko
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/fs/lockd/lockd.ko
   /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/fs/nfs/nfs.ko
   # mount nfs
   /bin/mount $IP_SRV:$PARTAGE -t nfs $PATH
   ;;

stop)
   # umount nfs
   umount $PATH
   # unload modules
   /sbin/rmmod nfs
   /sbin/rmmod lockd
   /sbin/rmmod fscache
   /sbin/rmmod nfs_acl
   /sbin/rmmod auth_rpcgss
   /sbin/rmmod sunrpc
   ;;
*)      log_action_msg "Usage: /etc/init.d/mount_nfs {start|stop}"
        exit 2
        ;;
esac
exit 0

Remplacez les variables par l’IP de votre serveur, le partage et le point de montage

7 Comments

 Add your comment
  1. Bonjour,
    J'ai recontré précisément le même désagrément sur une debian virtualisée sous XEN. J'ai exactement la même configuration que vous et installé nfs-common.
    J'ai tenté votre script, ai modifié les paramètres nécessaires. Je l'ai copié dans /etc/init.d mais lorsque je tente de le lancer je recois des erreurs de type:
     
    # /etc/init.d/mount_nfs start
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/sunrpc.ko': -1 File exists
    insmod: can't read '/lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/auth_gss/auth_': No such file or directory
    /etc/init.d/mount_nfs: line 27: rpcgss.ko: command not found
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/nfs_common/nfs_acl.ko': -1 File exists
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/fscache/fscache.ko': -1 File exists
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/lockd/lockd.ko': -1 File exists
    [ 2141.330229] nfs: Unknown symbol svc_gss_principal
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/nfs/nfs.ko': -1 Unknown symbol in module
    mount.nfs: No such device
     
    Si vous aviez une idée pour m'indiquer vers où chercher je vous en serait très reconnaissant. Quoi qu'il en soit merci pour votre travail !

  2. Trouvé !

    Un soucis dans le copier coller en réalité. La ligne:
    /sbin/insmod /lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/auth_gss/auth_
    rpcgss.ko

    revient à la ligne à rpcgss.ko 🙁

    Une fois corrigé j'ai :
    # /etc/init.d/mount_nfs start
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/net/sunrpc/sunrpc.ko': -1 File exists
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/nfs_common/nfs_acl.ko': -1 File exists
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/fscache/fscache.ko': -1 File exists
    insmod: error inserting '/lib/modules/2.6.32-5-xen-amd64/kernel/fs/lockd/lockd.ko': -1 File exists
    [ 2891.854937] FS-Cache: Netfs 'nfs' registered for caching
    [ 2891.911360] svc: failed to register lockdv1 RPC service (errno 97).
     
    Et mon share NFS est monté !!!

    ENCORE BRAVO !

    • Bonjour,

      merci pour la remarque je viens de modifier l’article pour que le copier-coller se fasse correctement sur une ligne.

      Slts

  3. Bonjour,

    avec la même config que vous deux, j’ai simplement créé le lien symbolique manquant en root :

    ln -s /lib/modules/2.6.32-5-xen-amd64/kernel /lib/modules/kernel

    A tester de votre côté.


    • j’ai simplement créé le lien symbolique manquant en root :

      ln -s /lib/modules/2.6.32-5-xen-amd64/kernel /lib/modules/kernel

      Bonjour,
      Ca ne fonctionne pas chez moi (Dom0 squeeze, DomU lenny, kernel = 2.6.32-5-xen-amd64)
      Pourtant ça semblait être une bonne idée …

  4. Finalement, la création du lien symbolique permet à modprobe de fonctionner mais après avoir exécuter depmod -a en tant que root (bien sur)

Leave a Comment

Your email address will not be published.