私は現在安定したDebian Stretch(9.0)を使用しています。私のアーキテクチャはAMD64です。私のルートパーティションとブートパーティションは、MD RAID 1デバイスのLVMボリュームグループです。
ドキュメントの私の理解に基づいてコメントを解除します。
GRUB_DISABLE_LINUX_UUID=true
inは/etc/default/grub
GRUB2がで実行されるのを防ぐ必要があります/boot/grub/grub.cfg
。ただし、変更後も引き続きUUIDを使用していました。
これが私の部分のユーザーエラーであるかどうかはわかりませんが、指示は十分簡単です。
いくつかの追加コメントです。
/usr/share/grub/default/grub
同じ内容(同じmd5sum)を持つファイルもあります/etc/default/grub
。このファイルのポイントが何であるかよくわかりません。/usr/sbin/grub-mkconfig
これに関するチェックが含まれると予想しましたが、スクリプトにはGRUB_DISABLE_LINUX_UUID
含まれていますが表示されませんGRUB_DISABLE_LINUX_UUID
。誰かがこのスクリプトがチェックする場所を説明できますかGRUB_DISABLE_LINUX_UUID
?
もちろん、役に立つ場合は、詳細を投稿できます。
背景:これを変更したいのは、ルートVGのUUIDが変更され、コンピュータがUUIDが存在しないと言って起動を拒否したためです。いいですね。何も残っていませんでした。バラよりLVM2 RAID 1 ミラーを分割しようとすると同期状態エラーを確認できませんどうやってこのようなことが起こりましたか。
Debian バグレポート:grub-common: /etc/default/grub の GRUB_DISABLE_LINUX_UUID=true 設定が期待どおりに機能しません。。
答え1
(この答えは何が起こっているのかを説明し、(可能な)パッチを提供しようとします。)
grub-mkconfig_lib
問題のあるコードは、現在Debian 9バージョンの169-182行にあるようです。
エラーの要点は、sysadmin / configurationがそれを指示していないにもかかわらず、インストールおよび起動時に起動プロセスの一部としてUUIDを設定して使用する必要があることです。
その結果、grub.cfgをロードできません。たとえば、常にgrub-probe --target=fs_uuid /
実行されますgrub-mkconfig_lib
。私たちの場合は、再実行するのではなくgrub-probe --target=device /
特定のコードを使用する必要があります。$fs_hint
grub_probe
fs_uuid
GRUB_DISABLE_LINUX_UUID
Debian 9でtrueに設定されている場合、UUIDの作成を無効にするパッチを作成しました。ここで動作します。テストしてみてください。
問題のファイルが次のように再確認されました。/usr/share/grub/grub-mkconfig_lib
GRUB_DISABLE_LINUX_UUID
に設定されている場合は、UUIDベースのルートを選択するように指示されていtrue
ないパッチを作成しました。search
その後、システム管理者は新しいディスクを挿入するときにこのオプションを選択した結果を理解する必要があります。
パッチは /usr/share/grub/grub-mkconfig_lib
次のように行われます。
diff -u grub-mkconfig_lib.old grub-mkconfig_lib > grub-mkconfig_lib.patch
ここにあります: https://jpst.it/10_iY
またはここから得ることができます:
https://github.com/ruyrybeyro/grub-mkconfig_lib.patch
それを適用します:
cd /usr/share/grub
patch -p0 < grub-mkconfig_lib.patch
デフォルトでは、行169から始めて、選択したデバイスUUIDの代わりにルートパーティション検索を無効にするために、適切なインデントを持つ新しいifを追加しました。有効なUUIDを持つパーティションが見つかった場合:
if [ "x${GRUB_DISABLE_LINUX_UUID}" != "xtrue" ] ; then
if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= echo "if [ x\$feature_platform_search_hint = xy ]; then" echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" echo "else" echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" echo "fi" fi
fi
私はそれをテストし、grub構成を再生成し、UUIDを変更し、grubに入る前の状況とは異なり、障害なしで起動しました。
PS:これはDebianに限定されないようです。grub-mkconfig_lib
関連スレッドを指摘して発見しました。Fedoraの帽子