/ dev/sdXを使用する代わりに、UUIDによってデバイスMBRにインストールするようにgrubに指示する方法はありますか? NixOSで外付けeSATAハードディスクを設定していますが、明らかに、ハードディスクは常に同じ/ dev/sdXデバイスであるとは限りませんか?
Boot.loader.grub.device = "/ dev/sdX"で構成できることがわかりますが、 "/ dev/disk/by-uuid/...."のように設定できますか??
grub-install/dev/by-uuid/XXXは、ハードディスク全体がUUIDを取得しないため(少なくとも私のマシンでは)機能しません。代わりに、ハードディスクのシリアル番号を使用して生成された/ dev/by-id/XXXを使用できます。
NixOSの構成ファイルは次のようになります。
boot.loader.grub.device = "/dev/by-id/XXXX"
grub-installを試してください "UUID = 700C663F-4183-4A8D-BAC2-EE34E5518B9C"/dev/sda0UUIDは "/"パーティションsda0は "/"デバイスソースはgrub2手動/ dev/disk/by-uuid /が機能しないためこのディレクトリは起動するまで存在しません。これは再フォーマットによって変更されないため、partuuidを使用することをお勧めします。フォーマットによるuuidの変更
いいえ、あなたがすることはできません grub-install /dev/disk/by-uuid/foo
。これは、それが不可能であると言っているのではなく、1つの可能性があるメソッドを作成します。しかし、それは少なくとも実用的ではありません。
UUID(普遍的に一意の識別子)は、実質的にパーティションの一意の識別子であり、デバイス自体ではありません。つまり、パーティションにはUUIDがありますが、MBRの場所はgrub-install
アドレスにはUUIDがありません。
デバイスのUUIDを生成する場合(例:uuidgen /dev/sdb
)次に、GRUB内でdevice.mapの問題が発生します。 grub-mkdevicemap
問題を自動的に修正できません。
もし、あんたが grub-install /dev/disk/by-uuid/de305d54-75b4-431b-adb2-eb6b9e546013
たとえば、次のようなエラーが発生します
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. <blah, blah, blah>
...そしてそれは行きます。
詳細については、こちらをご覧ください https://unix.stackexchange.com/questions/174206/warning-file-system-ext2-doesnt-support-embedding-but-my-system-isnt-emb
これは楽しい実験でした。ありがとう。
はい、/boot/grub/menu.cfg
を変更します
root =/dev/disk/by-uuid/whatever-blkid-outputs-placed-here
...やってみて。
例えば
set root=/dev/disk/by-uuid/'3a2adf19-8685-483c-9889-1b4d56788486'