Ubuntu 18.04でBTRFSをサポートするカスタムカーネルをコンパイルしようとしています。 4.20.70-genericをコンパイルしてインストールすると、すべてがうまく機能し、システムが問題なく起動します。ところで、4.x以降にはコンパイルされないカスタムドライバ(後で)も必要になるため、最新バージョンは利用できません。
4.17.4用のカスタムカーネル構成ファイル(make oldconfig)を使用して同じカーネルソースをコンパイルし、すべての質問に答えると、同じシステムがBTRFSルートボリュームを見つけることができません。次のエラーが表示されます。
Begin: Running /scripts/init-premount ... done
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done
Begin: Running /scripts/local-premount ... Btrfs loaded, crc32c=crc32c-generic
Scanning for Btrfs filesystems
done.
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done
done.
Gave up waiting for root file system device
ALERT! UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 does not exist. Dropping to a shell!
カーネルコマンドラインは両方のカーネルと同じで、UUIDは有効で、両方の.configファイル(make menuconfig - > make install)には同じBTRFSモジュールが含まれています。
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
linux /@/boot/vmlinuz-4.18.0-15-generic root=UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 ro rootflags=subvol=@
linux /@/boot/vmlinuz-4.18.0-15-mykernel root=UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 ro rootflags=subvol=@
したがって、カーネルをコンパイルするときは、他のものを有効にする必要があります。私は何を見逃していますか?
答え1
数回の試行錯誤の末、ついに問題を把握し、交差検証しました。カーネルがありません:
CONFIG_FUSION: Fusion MPT デバイスのサポート
しかし、私はVMware Fusion(MacOS)でインストールを実行していますが、過去10年間は関係ありませんでした。ただし、独自のカーネルを構築するときは、上記の作業を行う必要があります。 SCSIサポートも必要です。