VFS not found でkernel panic。grub.cfgの設定

gentooのemergeシステムは、コンパイルの難しさや依存関係を自動的にやってくれて、しかも、自分の環境に合った効率的な実行ファイルをビルドする、素晴らしいシステムですが、中核となるカーネルだけは、ほぼ自分でmakeする必要があります。
そして、make installしたカーネルを、grub2に登録し、再起動して新しいカーネルで起動させますね。

私はたまたま早々に64bit EFI環境に移行したため、grub2-9999の頃からの長いおつきあいです。
あの頃はドキュメントが少なすぎて大変でした。

さて、しばらくぶりにカーネルアップデートして再起動すると、kernel panicに遭遇します。

そして、毎回のことなのに、作業を忘れます。
kernel panicの内容は

kernel panic – not syncing: VFS: Unable to mount root fs

ルートファイルシステムがマウントできません。

/boot/grub/grub.cfgを見ると、今までブートできていたのは、

linux   /kernel-4.9.34-gentoo root=/dev/sda3 ro  

ですが、起動できなかったのは、

/vmlinuz-4.9.95-gentoo root=2270e722-6fa3-4ebf-a3e0-8225cd61f291 ro  

vmlinuzは名前の変更忘れなので関係ないとして、root=がデバイス名称なのかUUIDなのかの違いで、UUIDでは起動しないようです。
決して"kernelの.configにFS_VFS=yを記入し忘れたから"ではありません。
kernelの.configにVFSの項目はありませんでした。

で、手動で/boot/gurb/grub.cfgの内容を書き換えても良いのですが、そうすると次回のカーネルアップデートの時にまた忘れます。
そこで、grub-mkconfig(人によってはgrub2-mkconfig)の時に、自動的にroot=/dev/sda3を記入するように設定します。

/etc/default/grub

GRUB_DISABLE_LINUX_UUID=true
GRUB_DEVICE="/dev/sda3"

設定のテンプレートに"GRUB_DEVICE="の項目はありませんので、ご自身で追加を。

これで、grub-mkconfig時に"root=/dev/sda3"が設定されます。