/etc/fstab に書いてあるのに起動時のNFSマウントができない

/etc/fstab に正しく書いてあるにもかかわらず、起動時に自動的に NFS マウントがされないマシンが数台ありました。
長らくあまり気にとめていませんでしたが、急に気になり出しので原因を調べてみることに・・・

とても簡単な事でした。

まず、NIC モジュールのインストールがディスクマウント処理の後になっていた点。
また、Debianスクリプトでは(全般的に?) /var/run/network/mountnfs/ というディレクトリがあると自動で NFSマウントしないようです。

mountnfs は rmdir するだけとして、、、

NIC モジュールのインストールが後手に回る理由として、initrd の中にそのモジュールが入っていないことが考えられます。

となると、解決はとても簡単で、initrd の中にモジュールを入れてしまえばいいのです。

  • まずは、/etc/initramfs-tools/initramfs.conf の18行目付近を編集します。


    #
    # MODULES: [ most | netboot | dep | list ]
    #
    # most - Add all framebuffer, acpi, filesystem, and harddrive drivers.
    #
    # dep - Try and guess which modules to load.
    #
    # netboot - Add the base modules, network modules, but skip block devices.
    #
    # list - Only include modules from the 'additional modules' list
    #

    #MODULES=most most では一般的なものしか入らないので、とりあえず dep にしてみます
    MODULES=dep

  • 次に 47行目付近で NIC のデバイス名を指定します。


    #
    # DEVICE: ...
    #
    # Specify the network interface, like eth0
    #

    DEVICE=eth4 #今回対象としたマシンでは eth4 がメインのセグメントに接続されています

  • 最後に組み込むモジュールを指定するために /etc/initramfs-tools/modules を編集します。


    # Examples:
    #
    # raid1
    # sd_mod
    e100 #今回対象としたマシンでは IntelNIC なので e100 を指定します
  • initrd を作り直して作業完了です。


    # update-initramfs -u

とりあえず、私の環境ではこれで起動時に無事マウントできるようになりましたが、上記設定ファイルの冒頭にこんな一文が・・・


# Note that configuration options from this file can be overriden
# by config files in the /etc/initramfs-tools/conf.d directory.
お作法があるのですね・・・