Boot lista hiba javítása

A Linux általában telepítéskor felismeri a többi operációs rendszert, amit be is rak az indításkor látható menübe. Illetve kernel telepítéskor szintén nincs más dolgunk, mint a telepítést, frissítést lefuttatni és már újraindításkor az össze telepített rendszer és az összes kernel verzió kiválasztható. Egypár újabban tesztelt disztribúció már nem így jár el. Azaz nemes egyszerűséggel eldönti: csak én vagyok a gépen, ha a többit is indítani akarod, akkor majd azt te megoldod. Ennek biztosan van oka, és ha már a disztribútor így döntött, akkor nem kritizáljuk, hanem megoldjuk ezt az áldatlan állapotot.
Én a technikai hátteret és az egész indítási folyamatot nem elemzem, csak a megoldásra koncentrálok.

A hiba első jelei

Az első és nagyon kellemetlen hibajel, ha telepítés utáni újraindításkor nem látni a boot menüben a többi telepített rendszer. Csak a frissen felrakott Linux Disztribúció látszik és az indíthatod. Tiszta Windows érzés fogja le az embert!
A második jel, ami felett könnyen elsiklik az ember a frissítés, vagy kernel telepítés utáni figyelmeztetés:

Notices:
Warning: os-prober will be executed to detect other bootable partitions.

A művelet lefut, a Linux szól, hogy erre figyelj. Az ilyen figyelmeztetések stb. miatt is nagyon jó, ha a csomagkezelő színesen jelzi ki hibákat, figyelmeztetéseket.

A megoldás egyszerű

A megoldás itt sem összetett, de a pontosság fontos.
Nyissuk meg a /etc/default/grub állományt szerkesztése. Logikusan kikövetkeztethetjük: ehhez sudo jog kell.

sudo nvim /etc/default/grub

Én az univerzálisan használt nvim szerkesztőt használom, ami kényelmes és gyors munkát ad. Megfelel bármelyik sima szüvegszerkesztő is!

GRUB_DISABLE_OS_PROBER=false

Sort keres meg, ez ahogy látni is tiltja le az osprober futását, ami ezért a funkcióért felel. Át kell írni true értékre, majd elmenteni. Máshoz ne nyúlj! Komoly problémákat okozhatsz, ha tudatlanul beleírsz az állományba!

Majd a

sudo update-grub

parancs lefuttatása után már minden a helyére kerül. A telepített rendszerek és kernelek szerint hosszabb, rövidebb listát ír ki, majd hiba nélkül kilép.

Sourcing file /etc/default/grub' Sourcing file/etc/default/grub.d/50_linuxmint.cfg'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.2.0-32-generic
Found initrd image: /boot/initrd.img-6.2.0-32-generic
Found linux image: /boot/vmlinuz-6.2.0-26-generic
Found initrd image: /boot/initrd.img-6.2.0-26-generic
Found linux image: /boot/vmlinuz-6.2.0-25-generic
Found initrd image: /boot/initrd.img-6.2.0-25-generic
Found linux image: /boot/vmlinuz-5.15.0-83-generic
Found initrd image: /boot/initrd.img-5.15.0-83-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Linux Mint 21.2 Victoria (21.2) on /dev/nvme0n1p2
Adding boot menu entry for UEFI Firmware Settings ...
done

Ezzel majdnem kész is vagyunk. Itt is mint mindenkor ki kell próbálni az elvégzett munkát.
Újraindítjuk a gépet és már kész is vagyunk.

Kicsit furcsa, hogy ezen így változtattak bizonyos helyzetekben, de a megoldás egyszerű és feltehetően komoly oka van a változtatásnak.

Tesztelve: 2023-08-20 Linux Mint alatt

Hozzászólások

Én már ritkán használom a GRUB-ot

Ha MSDOS partíciós táblával rendelkező lemezre telepítünk egymás mellé (természetesen Legacy módban) több rendszert, ott valóban nagy szükség lehet az általad vázolt megoldásra, köszönöm szépen az írást!

Annyit a magam részéről hozzátennék, hogy az os-prober tiltottsága sok esetben nem jelent áthidalhatatlan problémát.
Ha egy gépben kizárólag MSDOS táblával rendelkező lemezeket tudunk használni, de a gépbe teszünk két lemezt és a két rendszert külön lemezre telepítjük, akkor a legtöbb gépben a gép bekapcsolását követően valamely gombot megnyomva (nálam ez több gépemen is az F12, de alaplapja válogatja) elő tudjuk hívni a gép boot-menüt és itt kiválaszthatjuk, hogy melyik lemezről szeretnénk bootolni, azaz melyik rendszert szeretnénk indítani.

UEFI-s gép és rendszerek esetén pedig én már nem igazán használom a GRUB-ot, a telepített rendszerek bejegyzése(i) bekerülnek az EFI system partíció(k)ra és ezáltal megjelennek a gép boot menüjében, emlékeim szerint még akkor is, ha a két vagy több rendszer egyetlen lemezen kap helyet.
Azonban én még ennél is kényelmesebb vagyok, nem szeretem az F12-őt nyomkodni, ezért telepíteni szoktam a rEFInd-et. A REFIND-et teszem a bootsorrend első helyére, így a gépet bekapcsolva a REFIND menüje jelenik meg, itt ugyanúgy tudok választani a telepített rendszerek közül, mint a GRUB-ban.

Szerk: Gyorsan feldobtam virtuális gépre GPT táblára egymás mellé egy Ubuntut, majd egy Mintet és utóbbira a rEFInd-et.

A rEFInd telepítése igen egyszerű:

sudo apt install refind

majd a megjelenő ablakban az „Igen”-re nyomtam egy entert. A következő újraindításkor máris ez fogadott:

Értékelés: 

5
Átlag: 5 (1 szavazat)

rEFInd

Kérdésem lenne, mivel használod, és van tapasztalatod.

Tud-e UEFI környezetben MBRT-t bootolni? A GRUB2 ugyanis, vagy UEFI, vagy MBR. Ha UEFI, akkor ha van is rendszer egy külön MBR lemezen, azt figyelmen kívül hagyja, ill. nem támogatja. Ha sikerül is összetákolni egy efi fájlt ami az MBR-es rendszert indítja, azt kézzel kell felvenni valamelyik CFG fájlba.

Tehát van két GPT lemez, egymástól független EFI partícióval, és van egy harmadik lemez, amin egy only MBR rendszer van. Azt be tudja bootolni?

(Az piszkál, hogy ha felrakom egy külön lemezre az Android-ot, akkor az szerintem nem tud UEFI-t, /de lehet hogy igen, csak amikor utoljára próbáltam, az nem UEFI-s gép volt/, szóval, tudja-e indítani az Android-ot)

Értékelés: 

0
Még nincs értékelve

rEFInd

#2 Szerintem a rEFInd nem tud MBR lemezt bootolni (Szerk: bár már ebben sem vagyok olyan biztos, volt egy kísérletezésem, a Legacy telepítő automatizmusa is csinál EFI system partíciót, kellene csinálni ebben az irányban egy tesztet...) , ilyen esetben marad az, hogy a gép boot menüjéből választod ki az Android lemezét vagy eleve UEFI-ben telepíted az Androidot és akkor meglátjuk, megtalálja-e a rEFInd (gondolom igen, mert itt is van például egy kép, amiben szerepel Android is).
Nem vagyok ebben otthon, de ahogy nézem, az Androidot tudod UEFI módban is telepíteni.
„Fix iso cannot boot in UEFI mode”

Értékelés: 

0
Még nincs értékelve

rEFInd

#2
Nalam 1 lemezen 1 telepitett rendszer van - viszont tobb lemez is van a PC-ben.
Az alaplapom, "Class 2: UEFI with CSM and external UEFI interfaces"
Amely lehetove teszi hogyha a CSM opcio "enabled",akkor a boot valasztoban (F12)
kivalaszthatom ill. indithatom mind a Legacy (msdos) mid az EFI-s (gpt) telepitesu
rendszereimet. (Mar csak EFI-s telepitesuek vannak.)

Classes: https://en.wikipedia.org/wiki/UEFI (Az oldal kozepe tajan.)

Értékelés: 

0
Még nincs értékelve

rEFInd rEFInd

#2.2

#2.2 Én is csak úgy telepítek, hogy egy rendszer egy lemez, és nekem nem is gáz a BIOS boot menüt használni, de másnak ezzel gondja lehet, meg kell nyomni gombot induláskor, jaj.

Régen láttam olyan BIOS-t, amiben be lehetett lőni, hogy alapból mutassa a boot menüt, de a mai alaplapoknál nem láttam ilyen opciót. Tehát olyasmi érdekel, hogy automatikusan mutasson listát a rendszerekről.

#2.1 . Uhm, kösz, akkor majd erre megyek el.

Értékelés: 

0
Még nincs értékelve

rEFInd [UEFI és Legacy (CSM) egymás mellett]

#2 Ha már felvetetted a kérdést, kísérletezésbe kezdtem, igaz csak virtuális gépen.
Az első telepítésnél nem engedélyeztem az EFI-t így az Ubuntu lemezképről Legacy módban bootoltam (ezt a GRUB-menüről tudom, más elemek szerepelnek benne Legacy és UEFI módban).

Ezután a GPartedben MSDOS táblát kértem és létrehoztam rajta három elsődleges partíciót.
(1 MB formázatlan, 512 MB FAT32, a maradék Ext4)
Indítottam a telepítőt, a „Valami más”-t, azaz a kézi vezérlést választottam.
Olyan opciót nem találtam benne, hogy az 1 MB-os formázatlan partíciót biosgrub jelöléssel el tudjam látni, szóval ez kimaradt.
Viszont az 512 MB-os FAT32 partíciót simán lehetett EFI System-ként megadni.
Az Ext4 természetesen a / csatolási pontot kapta, a rendszerbetöltőt pedig az sda-ra kértem.
A telepítés rendben lefutott.
A virtuális gépben engedélyeztem az EFI-t, készítettem még egy lemezt, a Linux Mint lemezképről UEFI módban bootoltam.
A GParteddel az sdb-re GPT partíciós táblát hoztam létre, aztán indítottam a telepítőt, itt is a „Valami más”-t választottam.
1 MB Fenntartott BIOS boot terület
512 MB EFI rendszerpartíció
Maradék Ext4 /
Rendszerbetöltő az sdb2-re

Újraindítás után már eleve a GRUB is csúnyán viselkedett, hiszen ott volt benne az Ubuntu is. :-D

Elindítottam a Mintet és telepítettem rá a rEFInd-et, ismét következett egy újraindítás.
A rEFInd-ben első Ubuntu logót választva a Mint GRUB-ja töltődött be, nem ez kell nekem, úgyhogy jött még egy újraindítás:

Balról a második Ubuntu logót választva viszont már közvetlen az Ubuntu töltődött be.
Még egy újraindítás, nincs meglepetés, a Mint logóját választva közvetlen indul a Mint.
Tudom, ez nem válasz az androidos kérdésedre, de talán érdekességnek elmegy.
A rEFInd kapcsán annyit még illik megjegyeznem, hogy új kernel telepítése után én ki szoktam adni a

sudo dpkg-reconfigure refind

parancsot, mert régebben előfordult, hogy a gépem megviccelt és a bootsorrendben a frissített rendszert helyezte legelőre, így a gép bekapcsolásakor nem a rEFInd hanem a GRUB fogadott.

Értékelés: 

0
Még nincs értékelve

rEFInd

#2 „Tehát van két GPT lemez, egymástól független EFI partícióval, és van egy harmadik lemez, amin egy only MBR rendszer van. Azt be tudja bootolni?”

Nos, feltettem egy harmadik lemezre egy MX 21-et UEFI-ben, hagyva, hogy az automatizmus dolgozzon. Így megvan a két GPT lemezen az EFI-s rendszerem és egy harmadik MSDOS lemezen az Ubuntu 22.04.
Annyi a dologban az érdekesség, hogy az MSDOS rendszeren csücsülő Ubuntunak is van EFI system partíciója.

Az MX telepítése után bebootoltam a Linux Mint-et (övé a rEFInd) és kiadtam a sudo dpkg-reconfigure refind parancsot. Ezt követően a virtuális gép indításakor automatikusan a megjelent a rEFInd és ott volt benne mindhárom rendszer közvetlen indításának lehetősége.

Az Ubuntu alól (MSDOS-ra telepített rendszer) két kimenetet még gyorsan lekértem, a parted -l-ét esetleg még idemásolnám, az talán annyira nem hosszú:

teszt@teszt-VirtualBox:~$ sudo parted -l
Típus: ATA VBOX HARDDISK (scsi)
/dev/sda lemez: 32,1GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: msdos
Lemezjelzők:

Szám  Kezdet  Vég     Méret   Típus    Fájlrendszer  Jelzők
 1    1049kB  2097kB  1049kB  primary
 2    2097kB  539MB   537MB   primary  fat32         boot, esp
 3    539MB   32,1GB  31,6GB  primary  ext4

Típus: ATA VBOX HARDDISK (scsi)
/dev/sdb lemez: 32,2GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: gpt
Lemezjelzők:

Szám  Kezdet  Vég     Méret   Fájlrendszer  Név  Jelzők
 1    1049kB  2097kB  1049kB                     bios_grub
 2    2097kB  514MB   512MB   fat32              boot, esp
 3    514MB   32,2GB  31,7GB  ext4

Típus: ATA VBOX HARDDISK (scsi)
/dev/sdc lemez: 32,2GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: gpt
Lemezjelzők:

Szám  Kezdet  Vég     Méret   Fájlrendszer    Név      Jelzők
 1    1049kB  269MB   268MB   fat32           primary  boot, esp
 2    269MB   30,6GB  30,3GB  ext4            primary
 3    30,6GB  32,2GB  1611MB  linux-swap(v1)  primary

A mountból csak két sort, ezek azok, melyek esetleg érdekesek lehetnek:

/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

Értékelés: 

0
Még nincs értékelve

Nagyon köszi

Nagyon köszönöm a fáradozásodat, így elég biztató a dolog. :-)

Értékelés: 

0
Még nincs értékelve

A legérdekesebb

#3 Szívesen, bár a legérdekesebb kísérlet még hátra volt!
„Tehát van két GPT lemez, egymástól független EFI partícióval, és van egy harmadik lemez, amin egy only MBR rendszer van. Azt be tudja bootolni?”
Új virtuális gép.
EFI nincs engedélyezve, szóval Legacy boot az Ubuntu lemezképről.
GParteddel MSDOS tábla és egyetlen Ext4 partíció.
Telepítő indít, az Ext4 / csatolási pontot kap, a rendszerbetöltő pedig megy a sda-ra.
Azt hiszem, ez a klasszikus only MBR rendszer.

Az UEFI bekapcsolása, a gépből az Ubuntu lemezének eltávolítása, új lemez, melyre a LInux Mint kerül UEFI módban.
GPT tábla
1 MB formázatlan biosgrub
512 MB FAT32 EFI System
A többi Ext4 /
A rendszerbetöltő megy az EFI System-re.

Sikeres telepítés után a gép leállítása, az only MBR rendszer (Ubuntu) lemeze visszaadva a gépnek és a gép bekapcsolása. Indul a Mint.

sudo apt install refind

[Mivel az Ubuntu lemezén nincs EFI System partíció és a Linux Mint telepítése során ez a lemez el is volt távolítva a gépből, arra számítottam, hogy a gép újraindítását követően a rEFInd-ben nem lesz ott az Ubuntu, (a virtuális gépet vissza kell kapcsolnom legacy módba, az Ubuntu lemezképről bebootolni, a rendszerpartícióról lecsípni egy kicsit, létrehozni a FAT32 partíciót és újratelepíteni az EFI System partíciót is befűzve a GRUB-ot), de meglepetésemre valami más történt:]


Simán megjelent a rEFInd-ben az Ubuntu és a Linux MInt is és mindkét rendszer rendben indult!

A Mint alól kiadott parted -l:

[sudo] teszt jelszava:         
Típus: ATA VBOX HARDDISK (scsi)
/dev/sda lemez: 32,2GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: gpt
Lemezjelzők:

Szám  Kezdet  Vég     Méret   Fájlrendszer  Név                   Jelzők
 1    1049kB  2097kB  1049kB                                      bios_grub
 2    2097kB  539MB   537MB   fat32         EFI System Partition  boot, esp
 3    539MB   32,2GB  31,7GB  ext4

Típus: ATA VBOX HARDDISK (scsi)
/dev/sdb lemez: 32,2GB
Szektorméret (logikai/fizikai): 512B/512B
Partíciós tábla: msdos
Lemezjelzők:

Szám  Kezdet  Vég     Méret   Típus    Fájlrendszer  Jelzők
 1    1049kB  32,2GB  32,2GB  primary  ext4          boot

teszt@teszt-VirtualBox:~$

Értékelés: 

5
Átlag: 5 (1 szavazat)

A legérdekesebb

#3.1 Wow, szuper!

Értékelés: 

0
Még nincs értékelve

Tekertem rajta még egyet

#3.1.1 Tiltottam az EFI-t, így Legacy módban bootoltam a Mint telepítőjéről.
MSDOS tábla
512 MB EFI System
A többi Ext4 /
GRUB az sda-ra
(Csak emlékeztetőül: Az Ubuntu a másik lemezen MSDOS, Ext4 /)

A Mint sikeres telepítése után újraindítás, majd

sudo apt install refind

A rEFInd rendben települt.

A következő újraindításnál a boot-menüben választhattam lemezt, illetve a GRUB-ból rendszert.
Most jön a meglepetés!
Engedélyeztem a virtuális gépnek az EFI-t és a gép bekapcsolása után rendben megjelent a rEFInd! Mindkét rendszer közvetlenül indítható volt.

Azért ki kellene próbálni valós körülmények között is, nehogy becsapjon a virtuális környezet, de érdekes tapasztalás volt, pláne ha élesben is így felhasználhatónak bizonyulnak ezek a dolgok.
Köszönöm balacynak, hogy felvetette ezt a témát, neked pedig az érdekes kérdést!
 

Értékelés: 

0
Még nincs értékelve