2

Есть способ указать grub для установки на MBR устройства по UUID вместо использования /dev /sdX? Я устанавливаю внешний жесткий диск eSATA с помощью NixOS, и, разумеется, жесткий диск не всегда будет одним и тем же устройством /dev /sdX?

Я вижу, что могу настроить его с помощью boot.loader.grub.device = "/dev/sdX", но могу установить что-то вроде "/dev/disk/by-uuid/...." ??

4 ответа4

1

grub-install /dev /by-uuid /XXX не будет работать, поскольку весь жесткий диск не получает UUID (по крайней мере, на моей машине). Вместо этого мы могли бы использовать /dev /by-id /XXX, который генерируется с использованием серийного номера жесткого диска.

На NixOS файл конфигурации будет:

boot.loader.grub.device = "/dev/by-id/XXXX"
0

попробуйте grub-install "UUID = 700C663F-4183-4A8D-BAC2-EE34E5518B9C" /dev /sda0 UUID - это "/" раздел sda0 - это "/" устройство Источник: grub2 manual /dev /disk /by-uuid / не работает, потому что этот каталог не существует до тех пор, пока он не будет загружен, предпочтительно использовать partuuid, так как это не меняется при переформатировании, изменения при форматировании

0

Нет, вы не можете grub-install /dev/disk/by-uuid/foo . Это не значит, что это невозможно, можно придумать метод, но это по меньшей мере нецелесообразно.

UUID (универсальный уникальный идентификатор) - это практически уникальные идентификаторы для разделов, а не само устройство. То есть разделы имеют UUID, но расположение MBR, на которое указывает адрес grub-install , не имеет UUID.

Если вы сгенерировали UUID для устройства (например, uuidgen /dev/sdb), вы столкнетесь с проблемой device.map в GRUB. 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

Это был веселый эксперимент. Благодарю.

0

Да, измените /boot/grub/menu.cfg

корень =/ DEV / диск / по-UUID / что-BLKID-выходы, размещены здесь,

... вихрь.

Например

set root=/dev/disk/by-uuid/'3a2adf19-8685-483c-9889-1b4d56788486'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .