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