Evo kako to funkcioniše kod mene.
Polazimo od toga da je na UEFI mašini odrađeno GPT particionisanje hard diska na kojem se instalira Slackware, da postoji butabilna /boot/efi particija - i na tome se nećemo zadržavati.
Moguće je instalirati grub i tokom same instalacije Slackware-a, ali ne bih preporučio tu opciju novajlijama - naročito ako uz linux podižu i windows ili sl.
Dakle - imamo instaliran Slackware sa elilo ili sl., pa sada želimo da koristimo grub za podizanje i izbor različitih sistema - ako ih je više instalirano.
Na podignuti Slackware najpre moramo modifikovati /etc/default/grub datoteku kako bi omogućili da grub, tj. os_prober identifikuju eventualne druge instalirane sisteme na mašini, pa u /etc/default/grub dodamo liniju:
Code: Select all
GRUB_DISABLE_OS_PROBER=false
Code: Select all
#GRUB_DISABLE_OS_PROBER=false
Evo kako ja to radim kod mene - na osnovu nekog starog uputstva koje uspešno radi posao - pokrećemo sledeće komande kao root korisnik:
Code: Select all
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
Code: Select all
# grub-mkconfig -o /boot/grub/grub.cfg
Code: Select all
# mkdir -p /boot/efi/EFI/boot
Code: Select all
# cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
Ovako stoje stvare za sve, osim ako imate instaliran i FreeBSD na mašini - za tu varijantu je potrebno odraditi prethodno još par stvari pre instalacije i konfigurisanja gruba.
Najpre sa fdisk -l komandom pronađemo gde se nalazi FreeBSD, kod mene to izgleda ovako:
Code: Select all
bash-5.1# fdisk -l
Device Start End Sectors Size Type
/dev/sdc1 40 532519 532480 260M EFI System
/dev/sdc2 532520 480247847 479715328 228.7G FreeBSD UFS
/dev/sdc3 480247848 488397127 8149280 3.9G FreeBSD swap
Grub za to ima posebnu datoteku /etc/grub.d/40_custom koju otvorimo npr. nano komandom
Code: Select all
# nano /etc/grub.d/40_custom
Code: Select all
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD 14" {
chainloader (hd2,gpt2)/boot/boot1.efi
}
### END /etc/grub.d/40_custom ###
menuentry "FreeBSD 14" {
chainloader (hd2,gpt2)/boot/boot1.efi
}
prvu liniju nema potrebe da objašnjavam, a druga je "kompas" za grub - da je / particija FreeBSD-a smeštena na prvom hard disku (/dev/sda), onda bi oznaka diska bila hd0, kada bi / UFS fajl sistem bio na drugom hard disku (/dev/sdb), onda bi oznaka za njega bila hd1, a pošto je kod mene na trećem disku (/dev/sdc) - onda je unet hd2, tačnije (hd2,gpt2) - druga particija trećeg hard diska, a chainloader je komanda/uputstvo specijalizovano za grub keja ga upućuje na to šta da pokrene kako bi podigao sistem koji želimo.
Opcija koju sam ja izabrao - (hd2,gpt2)/boot/boot1.efi - ne bi trebalo da funkcioniše, navodno će je napustiti u nekim narednim verzijama FreeBSD-a i kao ispravno bi trebalo - (hd2,gpt2)/boot/loader.efi ili (hd2,gpt2)/boot/loader_4th.efi - ali to još uvek ne radi posao bar u mom slučaju i jedino ta, zastarela varijanta funkcioniše - iz gruba...
Nakon što je modifikovan /etc/grub.d/40_custom fajl koji upućuje grub kako da podiže FreeBSD, onda pokrećemo ranije navedene komande grub-install, grub-mkconfig itd.
To je to što se mene tiče, pa ako neko sa više iskustva ima šta da doda, modifikuje i poboljša - unapred zahvaljujem