Gentoo VPSのカーネル6.1.31でOverlayfsが機能しない

Gentoo VPSのカーネル6.1.31でOverlayfsが機能しない

GentooがインストールされたVPSがありますが、カーネルオーバーレイファイルシステムが正しく機能しません。

オーバーレイ関連のカーネルオプションです。

カーネルでコンパイル

cat .config | grep -i overlay

CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
CONFIG_OVERLAY_FS=y
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
# CONFIG_OVERLAY_FS_INDEX is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
# CONFIG_OVERLAY_FS_METACOPY is not set

モジュロコンパイル

cat .config | grep -i overlay

CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
CONFIG_OVERLAY_FS=m
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
# CONFIG_OVERLAY_FS_INDEX is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
# CONFIG_OVERLAY_FS_METACOPY is not set

カーネルにロードするときにdmesgから送信されるメッセージ

dmesg | grep -i overlay
[   10.144242] request_module fs-overlay succeeded, but still no fs?

モジュールにコンパイルするときのdmesgからのメッセージ

dmesg | grep -i overlay
[   10.000001] request_module fs-overlay succeeded, but still no fs?

モジュールにコンパイルすると、モジュールは正しい場所にあります。

locate overlay.ko
/lib/modules/6.1.46-gentoo/kernel/fs/overlayfs/overlay.ko
/usr/src/linux-6.1.46-gentoo/fs/overlayfs/.overlay.ko.cmd
/usr/src/linux-6.1.46-gentoo/fs/overlayfs/overlay.ko

cat /proc/filesystem | grep -i オーバーレイが空です。

システムは次のとおりです。

uname -a
Linux patito 6.1.31-gentoo #3 SMP PREEMPT_DYNAMIC Sun Jun 25 09:04:44 GMT 2023 x86_64 QEMU Virtual CPU version 2.5+ AuthenticAMD GNU/Linux

システム全体は、別のext4パーティションにある/ bootを除いて、1つのパーティションでのみext4を実行します。

システムには2GBのメモリと十分なスペースがあります。システムのスナップショットをダウンロードし、virt-managerを使って自分のコンピュータで実行し、テスト用のメモリとCPUコアを追加しましたが、同じ結果が得られました。役に立ちますが変更がない場合、qemu-imgは.imgからqcow2に変換されますか?

私は別のカーネルを試して、別のオプションで再コンパイルし、すべてのoverlayfs部分を削除し、再起動して再アクティブ化し、インターネット上で同様の問題を検索しましたが、何も見つかりませんでした.どんな理論にも感謝します。

カーネルのoverlayfsは、上記のようにカーネルの一部としてコンパイルされますが、モジュールにコンパイルしようとしましたが、自動的にロードされず、After lsmodを使用して手動でロードしようとしましたが、modprobeそこにはありません。もう一度試して、上記のセクションにカーネル設定を追加します。

ベストアンサー1

で表示したメッセージをGoogleに検索して、dmesg次のファイルを見つけます。puppetソースコード問題の原因を説明してください。

    # On a fresh node overlay may be unloaded automatically by the OS
    # if no fs needs it. In this case the kern.log should look like:
    # kernel: request_module fs-overlay succeeded, but still no fs?
    # This may lead to unwanted side effects, like Docker not finding
    # the overlay kernel module loaded and falling back to
    # the device-mapper storage driver.
    # Therefore we explicitly load the overlay module when the overlayfs
    # option is true.
    kmod::module { 'overlay':
        ensure => 'present',
    }

したがって、ホストシステムで次のコマンドを実行すると、overlayカーネルモジュールがロードされていないことがわかります。

lsmod |grep overlay

overlayしたがって、カーネルモジュールを再ロードするだけです。

modprobe overlay

おすすめ記事