Zainstaluj grub na dysku za pomocą UUID

2

Istnieje sposób, aby wskazać grub, aby zainstalować na MBR urządzenia przez UUID zamiast używać / dev / sdX? Ustawiam zewnętrzny dysk twardy eSATA z NixOS i oczywiście dysk twardy nie zawsze będzie tym samym urządzeniem / dev / sdX?

Widzę, że mogę go skonfigurować za pomocą boot.loader.grub.device = "/ dev / sdX", ale mogę ustawić coś takiego jak "/ dev / disk / by-uuid / ...." ??

Zardoz89
źródło
Próbowałeś? Jakie były wyniki?
CVn
Po prostu próbuję ... / dev / disk / by-uuid / XXX nie działałoby, jak w moim przypadku, sam dysk twardy nie ma identyfikatora UUID. Ale wygląda na to, że / dev / disk / by-id / XXX może działać. nixos-rebuild dry-run nie wyświetla żadnych błędów, więc spróbowałbym teraz.
Zardoz89,

Odpowiedzi:

1

grub-install / dev / by-uuid / XXX nie działałby, ponieważ cały dysk twardy nie otrzymuje identyfikatora UUID (przynajmniej na moim komputerze). Zamiast tego możemy użyć / dev / by-id / XXX, który jest generowany przy użyciu numeru seryjnego dysku twardego.

W pliku konfiguracyjnym NixOS będzie:

boot.loader.grub.device = "/dev/by-id/XXXX"
Zardoz89
źródło
0

Tak, zmodyfikuj /boot/grub/menu.cfg

root = / dev / disk / by-uuid /okolwiek-blkid-wyjścia-umieszczone-tutaj

...zamieszaj to.

Na przykład

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

Nodak
źródło
Myślałem, że jest to przydatne w przypadku użycia LiveCD do odzyskania instalacji iz jakiegoś powodu LiveCD staje się / dev / sda1, a wewnętrzny HD jest przypisany /dev/sdbX... z wyjątkiem ponownego uruchomienia i to wraca do powtórzenia. Przypisz UUID i gotowe.
Nodak
Nie, nie, nie. Nie rozumiesz mnie. Nie pytam, czy mogę ustawić partycję / boot za pomocą UUID (zrobiłem ... bułka z masłem!). Pytam, jak ZAINSTALOWAĆ GRUBA na dysku za pomocą UUID dysku ... innymi słowy ... mógłbym zrobić "grub-install / dev / disk / by-uuid / ...."?
Zardoz89,
UPS przepraszam. Potem powtórzę Michaela Kjörlinga powyżej ... próbowałeś tego? Najgorsze, co może się zdarzyć, to nauczyć się czegoś.
Nodak
0

Nie, nie możesz grub-install /dev/disk/by-uuid/foo. Nie oznacza to, że jest to niemożliwe , można wymyślić metodę, ale jest ona co najmniej niepraktyczna.

UUID (uniwersalnie unikalny identyfikator) są praktycznie unikatowymi identyfikatorami dla partycji, a nie samego urządzenia. To znaczy, że partycje mają identyfikator UUID, ale lokalizacja MBR, który grub-installadresuje, nie ma identyfikatora UUID.

Jeśli wygenerujesz UUID dla urządzenia (np. uuidgen /dev/sdb), Wtedy napotkasz problem device.map w GRUB-ie. grub-mkdevicemapnie potrafi automatycznie rozwiązać problemu.

Jeśli grub-install /dev/disk/by-uuid/de305d54-75b4-431b-adb2-eb6b9e546013na przykład otrzymasz błędy, takie jak

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>

... i tak to idzie.

Więcej informacji można znaleźć https://unix.stackexchange.com/questions/174206/warning-file-system-ext2-doesnt-support-embedding-but-my-system-isnt-emb

To był zabawny eksperyment. Dzięki.

Nodak
źródło
0

spróbuj grub-install "UUID = 700C663F-4183-4A8D-BAC2-EE34E5518B9C" / dev / sda0 UUID is "/" partycja sda0 is "/" urządzenie Źródło to grub2 manual / dev / disk / by-uuid / nie działa, ponieważ ten katalog nie istnieje, dopóki nie zostanie uruchomiony, zaleca się użycie partuuid, ponieważ nie zmienia się to przy formatowaniu - zmiany uuid przy formatowaniu

Murdock-Slacker
źródło
Jak powiedziałem „nie zadziała, ponieważ cały dysk twardy nie otrzymuje identyfikatora UUID (przynajmniej na moim komputerze)”. Użycie / dev / by-id / XXXXX działa dobrze w moim przypadku. Ponadto konfiguruję nixos, więc muszę go ustawić na tekstowym pliku konfiguracyjnym, a nie uruchamiać bezpośrednio gruba z parametrem.
Zardoz89