Bejelentkezés

Grub2_multiboot

Csillag inaktívCsillag inaktívCsillag inaktívCsillag inaktívCsillag inaktív
 

Telepített operációs rendszerektől független, multiboot-os GRUB2-es rendszer létrehozása

 

A Full Circle Magazine 85-88. számában megjelent sorozat nyomán. Egy hosszabb összefoglaló Janu honlapjára fog hamarost felkerülni.

 

Fontos eltérés a korábbi grub-tól, hogy a (hdx, y)-ban a meghajtó számozása (x) 0-tól, amíg a partíció számozása (y) 1-től kezdődik!) Azaz az első meghajtón az első partíció (/dev/sda1 ) (hd0,1 ), a második partíció (/dev/sda2) is (hd0,2) stb.

 

A megoldás alapelképzelése, hogy egy külön partíción – nevezzük pl. GRUBpart-nak – telepítünk egy, a telepített rendszerektől független /boot/grub-ot, aminek a grub.cfg fájlja csak az egyes operációs rendszerek betöltéséhez szükséges bejegyzéseket tartalmazza. Az egyes rendszerek grub-ja a saját partíciójukra kerül.

 

A GRUBpart partíción lévő /boot/grub könyvtárat a disztribúciók nem fogják frissíteni! Következésképpen, egy disztró cseréje esetén minden továbbra is működik, ugyanakkor új telepítésekor meg kell adni, hogy a telepítő a Grub-ot a saját meghatározott partíciójára telepítse (pl. /dev/sda4) és ne az /dev/sda-ra. Azaz ne az MBR-be.

 

Rendszer felállítása 10 lépésben:

  1. Végy egy üres meghajtót (vagy készíts mentés a létezőről) és Készítsd el a szükséges partíciókat.Pl. Live menet alatt Gparted-del a telepíteni tervezett disztribúcióknak megfelelő számú, plusz egy swap partíciót állíts fel. A rendszerpartíciók mérete legalább 15 GB, a swap mérete RAM-függően 1-2 GB lehet). A GRUBpart mérete legalább 50 MB. A kívánt partíciók létrehozása után érdemes az adatokat (partíció azonosítókat és UUID-t) feljegyezni. (Gparted tulajdonságok, vagy fdisk -l, blkid és parted -l parancsok segítenek.)
  2. Először a Windows-t telepítsd – ha használsz! (Windows 7 esetén érdemes előre megformázni a partíciót ntfs-re, különben egy külön partíciót hoz létre bizonyos rendszerfájlok számára. Döntsd el, hogy melyik Linux disztribúciót akarod, hogy telepítse a Grub-ját az MBR-be. Legyen a disztró neve „Z”.
  3. A Z kivételével telepítsd a Linux rendszereket a nekik szánt partíciókra. A Grub-jukat telepítsd a SAJÁT partíciójukra! Ez eltér az alapbeállításként felajánlott megoldástól!
  4. Végül telepítsd a Z-t, aminek a grub-ja kerülhet a /dev/sda-ra, azaz MBR-be. Ekkor egy boot-olható gépet kapunk. Másik módszer lehet, hogy a Z grubját is a saját partíciójára telepítjük, mint a 3. lépésben, de ekkor a további lépéseket később a Z telepítőjének live futtatásából kell végrehajtani!!!
  5. Boot-olj a merevlemezről és ellenőrizd, hogy az összes rendszer elindítható-e. Ha nem, akkor javítsd a boot-olási hibákat, tedd működőképessé azokat.
  6. Lépj be a Z rendszerbe és telepítsd a GRUB-ját a saját meghajtóra (is), pl. /dev/sda8.

su -

grub-install /dev/sda8

  1. A Z-ben készítsd el a „chainload” (betöltő) bejegyzéseket az egyes operációs rendszerek /etc/grub.d/40_custom fájljához (beleértve a Z grubjában lévőt is), amik azután betöltik az adott operációs rendszert. Ízlésed szerint állítsd be a /etc/default/grub-ot – hozzáadhatsz háttérképet a /boot/grub-hoz – lásd a korábbiakat. Most futtasd rendszergazdaként

update-grub

Nézd át a frissített grub.cfg-t, szokatlan bejegyzéseket keresve, majd ha oké, akkor indíts újra. Próbáld ki az összes becsatolt grub-ot. Már majdnem kész, de egyelőre még a Z-től függ a MasterGRUB.

  1. Indítsd el Z disztribúciót. Most az MBR-ben található Grub-ot átírjuk úgy, hogy a GRUBpart-ra mutasson, illetve készítünk két különböző grub.cfg fájlt, egyet a MasterGRUB (mester grub) és egyet a Z számára.

Terminálból root-ként:

cd /boot/grub

cp grub.cfg grubZ.cfg

Ezzel biztonsági másolatot készítünk a Z grub.cfg-járól.

cd /etc/grub.d

chmod –x *linux* *lupin* *memtest* *prober*

Az sem baj, ha ezek közül némelyik nem létezik.

update-grub

Ezzel létrejön egy – csak a betöltési hivatkozásokat tartalmazó – grub.cfg, amit a MasterGRUB-ban tudunk használni

chmod +x *linux* *lupin* *memtest*

Ahhoz kell, hogy a Z grub-ját „rendesen” tudjuk frissíteni a későbbiekben.

mkdir /mnt/GRUBpart && mount

/dev/sda2 /mnt/GRUBpart

Az sda2 helyén a GRUBpartnak megfelelő szám legyen. A lépés átugorható, ha a GRUBpart már csatolva van.

mkdir /mnt/GRUBpart/boot

grub-install /dev/sda --bootdirectory=/mnt/GRUBpart/boot/

Néhány figyelmeztetést kaphatsz, de a folyamatnak le kell futnia – ha nem akkor --force opciót add hozzá. Ezzel a MasterGRUB létrejött a GRUBpart partíción!

Az 1.98-as és annál korábbi változatok esetén a –-boot-directory helyett –- root-directory=/mnt/GRUBpart/ legyen.

cd /boot/grub

cp grub.cfg /mnt/GRUBpart/boot/grub/

mv grubZ.cfg grub.cfg

Ezzel helyreállítottuk a Z grub.cfg-ját.

exit

Befejezésül a GRUBpart partíción található grub.cfg-ban a Z-re mutató összes hivatkozást cseréld le a GRUBpart-ra mutatóra. A példánkban a hd0,8-t hd0,2-re kell cserélni csakúgy, mint az adott UUID-ket, amit a blkid paranccsal lehet lekérdezni.

  1. Ellenőrizd le, hogy minden megfelelően működik-e. Már csak az maradt hátra, hogy megakadályozzuk, hogy a Z a jövőbeni frissítéseket az MBR-be telepítse . A cél megváltoztatásához a következőket futtasd a Z rendszerben:

su -

sudo dpkg-reconfigure grub-pc

Néhány, alapbeállításban hagyható kérdést követően megkérdezi, hogy a mi az alapbeállítás szerinti céleszköz, ahová a frissítést tegye. Ez kizárólag a Z partíciója legyen (/dev/sda8 esetünkben). Kiválasztása a szóközbillentyűvel bevitt csillaggal. (Ekkor az /dev/sda8 /boot/grub/grub.cfg is felülírásra kerül.)

  1. Ízlésed szerint állítsd be az egyes disztrók grub.cfg fájlját (a /etc/default/grub és a /etc/grub.d/ tartalmának szerkesztésével, majd update-grub futtatásával. Egyebek között a Z 40_custom fájljában a betöltési hivatkozásokat törölheted. Magam minden egyes rendszer 40_custom fájljában létre szoktam hozni egy „Visszalépés” hivatkozást, ami visszairányít a MaterGRUB-hoz (használd a set root='(hd0)'-t).

Hozzászólások   

0 # janu 2014-10-31 07:46
Ez a cikk megjelent a pclos.janu.hu weblapon is: GRUB2 és multiboot letölthető .pdf formátumban.

You have no rights to post comments