私はliloからgrub2に切り替えましたが、最初の試みは失敗しましたkernel panic - not syncing vfs unable to mount root fs on unknown block(0 0)
。問題は、ルートパーティションがデバイス名ではなくUUIDに基づいて指定されることです。解決策はGRUB_DISABLE_LINUX_UUID=true
コメントを削除することです/etc/default/grub
。
元の自動生成には、/boot/grub/grub.conf
一部のUUID項目と一部の/ dev項目が含まれています。
- update-grub UUIDと/dev rootfsの中から選択する方法、つまりUUIDの場合もあればそうでない場合もあるのはなぜですか?
- UUIDが機能しないのはなぜですか?誤って設定されている可能性があるカーネルパラメータが見つかりませんでした(カーネル3.8.2)。
- grubがUUIDを使用する場合、fstabにUUIDが必要ですか?
答え1
値はディレクトリのスクリプトで使用されますGRUB_DISABLE_LINUX_UUID
。それでもUUIDが表示されている場合は、スクリプトの1つがその設定を確認していないようです。update-grub
/etc/grub.d/
grub.conf
GRUB_DISABLE_LINUX_UUID
最善の方法は、ファイルシステムの種類が何であるかを調べ、スクリプト名を調べてパターンが/etc/grub.d
あるかどうかを確認することです。
UUIDが機能しない理由には明確な答えはありません。ファイルシステムの種類によって異なりますが、これはおおよその推測です。
grubがUUIDを使用してもfstabではUUIDは必要ありませんが、最初から正しいUUIDを使用しているかどうかを確認する方法はわかります(しかし私はそれを/dev/disk/by-uuid
見たい)。
答え2
誰かがこの投稿を偶然見つけて(私のように)Centos 7 / GRUB2を使用している場合は、変数名がGRUB_DISABLE_UUID(GRUB_DISABLE**_LINUX**_UUIDの代わりに)に変更されたようです。
/usr/share/grub/grub-mkconfig_libで確認できます。鉱山にはこれがあります:
if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]
grub2-mkconfig以降、UUIDは/ dev / sda1などに置き換えられます(これらのシステムを複製するため必要です)。
2023年3月に更新 @MelroyvandenBergの後続のコメントに従って、私は2016年の答えがまだ関連性があるかどうかをすばやく調べました。
2019年にCentosを放棄しましたが(他のCentos Streamディスカッションを参照)、まだCentOS Linuxバージョン7.2.1511を実行している古いシステムを起動しました。上記の結果を再確認しました。
$ grep GRUB_DISABLE /usr/share/grub/grub-mkconfig_lib
if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then
if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then
もう少し詳しく見てみると(まだCentos 7システムで)、/usr/share/doc/grub2-tools-2.02/grub.html
以下が含まれます(違いを示すために強調表示されています)
GRUB_DISABLE_オペレーティングシステム_UUID
通常、grub2-mkconfigはUUID(Universally Unique Identifier)を使用して識別されるメニュー項目を生成します。根以下を使用して、Linuxカーネルにファイルシステムを追加します。'root=UUID=...' カーネルパラメータ。これは通常より安定していますが、状況によっては適切ではない可能性があります。 UUIDの使用を無効にするには、このオプションを「true」に設定します。
GRUB_DISABLE_UUID
通常、grub2-mkconfigはUUID(Universally Unique Identifier)を使用して識別されるメニュー項目を生成します。様々な種類ファイルを検索するファイルシステムです。これは通常より安定していますが、状況によっては適切ではない可能性があります。 UUIDの使用を無効にするには、このオプションを「true」に設定します。
それで、GRUB_DISABLE_LINUX_UUID
間には特別な違いがあるようです。GRUB_DISABLE_UUID
7年前にUbuntu 22.04.1 LTS(Debianベースですが最新バージョン)を見てください。/usr/sbin/grub-mkconfig
if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then
if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then
GRUB_DISABLE_LINUX_UUID="true"
fi
if [ -z "${GRUB_DISABLE_LINUX_PARTUUID}" ]; then
GRUB_DISABLE_LINUX_PARTUUID="true"
fi
fi
trueの場合(unset)はGRUB_DISABLE_LINUX_UUID
trueに設定されますGRUB_DISABLE_UUID
。私はただ推測する過去7年間、ある時点でこれら2つの変数間の区別を明確にするか削除する努力がありました。
元の2016年のレビューではなく、特定のディストリビューションのコードとドキュメントを確認することをお勧めします。