モジュール vfat のロードに失敗しました (明らかな修正を試しました)

モジュール vfat のロードに失敗しました (明らかな修正を試しました)

モジュールvfatは起動時にロードされず、modprobe vfatエラーを生成して問題を強制しようとします

modprobe: ERROR: could not insert 'vfat': Unknown symbol in module, or unknown parameter (see dmesg)

dmesgの行で

[  663.227894] fat: Unknown symbol __bread_gfp (err 0)
[  663.227924] fat: Unknown symbol __getblk_gfp (err 0)

起動時に を実行するように勧める [FAILED] メッセージが 2 つ表示されます。systemctl status systemd-modules-load.service実行すると、次のようになります。

● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static)
   Active: failed (Result: exit-code) since Fri 2016-02-12 12:55:11 EST; 18min ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
 Main PID: 502 (code=exited, status=1/FAILURE)

Feb 12 12:55:11 aleph systemd-modules-load[502]: Failed to insert 'fuse': No such file or directory
Feb 12 12:55:11 aleph systemd[1]: systemd-modules-load.service: main process exited, code=exited, status=1/FAILURE
Feb 12 12:55:11 aleph systemd[1]: Failed to start Load Kernel Modules.
Feb 12 12:55:11 aleph systemd[1]: Unit systemd-modules-load.service entered failed state.

私は基本的にバニラのDebian Jessieを実行しており、カーネルについては何も手動で調整していませんuname -a

Linux aleph 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux

そしてmodinfo fat vfat

filename:       /lib/modules/3.16.0-4-amd64/kernel/fs/fat/fat.ko
license:        GPL
depends:        
intree:         Y
vermagic:       3.16.0-4-amd64 SMP mod_unload modversions 
filename:       /lib/modules/3.16.0-4-amd64/kernel/fs/fat/vfat.ko
author:         Gordon Chaffee
description:    VFAT filesystem support
license:        GPL
alias:          fs-vfat
depends:        fat
intree:         Y
vermagic:       3.16.0-4-amd64 SMP mod_unload modversions 

Google検索でエラーの詳細について読んだところ、問題は実行中のカーネルのバージョンとkmodによって選択されたモジュールの不一致にあるようです。そのために、私は以下の2つの明白な手順を実行しました。https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808380そしてvfat は debian では認識されませんこの問題を解決するには、まず再起動を試み、その後apt-get install --reinstall linux-image-3.16.0-4-amd64再インストールを強制して再起動しました。debsums linux-image-3.16.0-4-amd64また、現在のカーネルは問題ないはずです。しかし、問題は解決しません。

おそらく、独自のカーネルとモジュールをコンパイルすることでこれを修正できるでしょうが、Debian バイナリの外部を利用するのは最後の手段として検討したいと思います。

答え1

結局、問題はいつもの(つまりカーネルが間違っている)ものだったのですが、ちょっとした問題がありました。私がそれをやったときには、間違いなく意味のあった何らかの理由で、grub-pc を Debian パッケージとしてインストールしていたのですが、LILO(パッケージとしてインストールされていない)を実際のブートローダとして実行していたため、カーネルは(再インストールなど)喜んで更新された grub をインストールし、ブート時に実際にロードされるカーネルイメージには影響しませんでした。まだ知られている特定の Debian カーネル/モジュール アップデートでバージョン番号が増加しなかったために、kmod のバージョン選択が狂ってしまうというバグがありました (また、 と がlsmod同じunameバージョン番号を示していたため、カーネル/モジュールの不一致はないという私の印象に寄与しました)。ただし、このバグは通常、再起動して正しいカーネルをロードすることで簡単に修正できますが、この例ではブートローダに古いカーネルが残っていたため、修正できませんでした。

答え2

aptitude を使用して、linux-headers-* で始まるインストール済みパッケージと linux-image* で始まるパッケージを比較します。

aptitude search linux-image

そして

aptitude search linux-headers

実行しているカーネルに両方がインストールされていることを確認してください uname -a

関連情報