Grub UEFI na Slackware 15

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Poznata ličnost
Poznata ličnost
offline

Posts: 55
Joined: 16 May 2016, 20:54

Post Napisano: 01 Feb 2024, 13:46


Da iskoristim još malo lufta koji imam tokom ovih dana, pa da ponudim provereno rešenje koje i sam koristim, a koje može biti od koristi novim korisnicima s obzirom na to da se često naleti na pitanja oko gruba po internetu.
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
Nije da nema razloga zašto se ova opcija podrazumevano ne omogućava, pa joj na kraju, kada se sve uspešno odradi, može dodati taraba kako bi je deaktivirali (i ponovo aktivirali po potrebi

Code: Select all

#GRUB_DISABLE_OS_PROBER=false
Nakon toga je sve spremno za instalaciju gruba i dodavanje eventualnih postojećih windowsa i linuxa u grub meni pri podizanju sistema.
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
Nakon toga restartujemo i pojaviće se meni sa izlistanim svim instaliranim opcijama na mašini - ne morate baš odmah pri prvom pokretanje da dižete windows, izaberite linux za prvo pokretanje da sve legne na mesto kako treba, pa nakon sledećeg restarta izaberite widows ako želite, imate ili vam treba.

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
Vidimo da je ufs sistem / particije FreeBSD sistema na drugoj particiji trećeg diska (/dev/sdc), pa sada tu info treba proslediti grubu na način da on to razume.
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
i u nju dopisujemo sledeće - u mom slučaju:

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 ###
U postojeći fajl sam dodao dve linije:

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


Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests