Több Linuxot egy merevlemezre

Fórumok

Időnként kedvem támad, hogy kipróbáljak több eddig nem vagy csak régen használt Linux terjesztést.
Az lenne a kérdésem, hogy milyen bootloadert lenne célszerű használni, a különböző Linuxok indításának kiválasztásához?
Tudom az utoljára telepített Linux általában összeszedi a korábbiakat és így az utolsó grub-ból vagy grub2-ből lehet indítani a korábbiakat is.
Ennek nagy hibája, hogy ha egy másik Linuxot frissítek és az kernel frissítéssel is jár, akkor ebbe az utoljára telepített grub-ban az nem kerül átvezetésre.

Korábban az XOSL-t használtam. Telepítettem egy DR-DOS-t egy 150-200MB-os (például /dev/hda1) partícióra és arra feltettem az XOSL-t.
Az egyes Linux terjesztések bootloaderét (akkoriban még az régi, azaz egyes grub-ot) pedig a terjesztés saját gyökérfájlrendszerének a partíciójára telepítettem.
Az XOSL-be pedig utólag felvettem minden partíciót amiről rendszert akartam indítani.
Ez sajnos újabban nem akar működni. Valószínűleg a mai gyors processzorok miatt, de nem megy (telepítéskor vagy konfiguráláskor elszáll) az XOSL.
Tudna valaki egy olyan módszert, vagy bootloadert javasolni, ami működik manapság?

Hozzászólások

Elnézést, hogy OFF -nak tűnő a hozzászólásom, valahol azért kapcsolódik.

Az elmúlt 1 évben egyre többször tűnik úgy, leáldozóban a multiboot kora. Helyette inkább virtualizálok. (vmware player, virtualbox, dosbox,...)
Én is sokat multibootoltam: win, debian, ubuntu, arch, ... 3 -4 OS -el egyszerre. Mostanában inkább virtuális gépet indítok.

Korábban a GRUB2 -t használtam. Kiválasztott OS -nél MBR -be telepítve, többinél a partícióra.
évekkel ezelőtt meg ezt: http://gag.sourceforge.net/ .
Ebben az esetben minden OS GRUB -ja csak a saját partíciójára telepítve.

Ha csak kipróbálgatásról van szó, esetleg virtuális gépek egyetlen distro-n belül?

Vagy esetleg egyetlen "örök" GRUB, ahol minden kernel symlinkekkel van megoldva. Persze a linkeket mindig neked kell letrehoznod, es minden frissites utan ujra csinalni, és ez így már majdnem ua. mintha mindig irogatnád a grub menut.

----------------
...egyébként az SP nem is egy énekes bénabéla, hanem a stackpointer / de utálom ezeket a déli b*zikat...

Grub-ot felteheted az MBR-be, és chainloader-el lehet indítani az egyes partíciókon lévő boot-okat.

Kell egy kis partíciót a grub-nak, felcsatolod mondjuk a /mnt -be és kiadod a

grub-install --root-directory /mnt /dev/sdX

parancsot, ez felteszi az MBR-be a grub-ot az egyéb cuccait pedig a /mnt-re csatolt partícióra másolja.
Ezután meg kell írni a grub.cfg -t (grub1-nél menu.lst) Valami ilyesminek kell lennie (grub2-nél):


menuentry 'Elso' {
   set root='(hd0,msdos5)'
   chainloader +1
}
menuentry 'Masodik' {
   set root='(hd0,msdos6)'
   chainloader +1
}

Én grub2-őt használok.
A legstabilabb rendszeremen(Salix) telepítettem grub2-őt és MBR-be raktam. Ha felrakok egy új linuxot akkor arra ügyelek, hogy ne írja a rendszerindítóját az MBR-be hanem a saját / meghajtójára írja. Majd belépek abba a rendszerbe amelyik az MBR-t birtokolja és kiadok 2 parancsot terminálba:
su
grub-mkconfig -o /boot/grub/grub.cfg

Ezután berakja a grub2 listába az új rendszert, ha valamelyiken kernel frissítés volt akkor is ezt a parancsot kell használnod. Viszont arra figyelj, hogy azok a rendszerek / meghajtója legyen felcsatolva a parancs végrehajtása alatt amelyeket szerepeltetni akarsz a grub2 listán.
Javaslom az Arch grub2 wikijét nagyon korrekt leírás.
------------------------
http://istenletezik.hu/

Én az alábbit próbálnám ki (lényegében ugyanaz, mint amit most csinálsz).

A hda1-re felraksz egy minimáldisztrót (tinycore vagy hasonló). Ezt úgy telepíted, hogy a grub-ja az MBR-be kerüljön. A konfig file-ja a /dev/hda1-en lesz ugye. Ezzel a disztróval semmit sem fogsz kezdeni, csak a "fő" grub-ot fogod innen konfigurálni.

A diszk maradék részén létrehozol egy csomó partíciót (még két elsődlegest, hda2, hda3, egy extended-et, hda4, illetve 11 logikait, hda5-hda15.)

Ezekre a partíciókra telepíted a disztrókat, úgy, hogy a disztró saját bootloader-e rendre az adott partícióra kerüljön (ahogy írtad is).

A "fő" grub-ot úgy konfigurálod be, hogy (a) be tudja tölteni a /dev/hda1-en lévő minimál OS-t, (b) chainloader utasítással be tudja rántani az adott disztrók saját bootloader-ét. A fő grub konfigjához csak akkor kell hozzányúlnod (és a /dev/hda1-en lévő minimál OS-t betöltened), ha teljesen új OS-t raksz valamelyik eddig nem használt partícióra. A többi partíción belül a frissítés normálisan fog működni.

A fő grub konfigjának valahogy így kéne kinéznie: http://www.brunolinux.com/05-Configuring_Your_System/Multiboot_grub.html (bár marha régi oldal, attól tartok):


title OpenSUSE-102
root (hd0,8)
chainloader +1

Lényegében az XOSL-t cseréled le egy MBR grub-bal, amely a többi OS-t "chainload-olja", illetve amelyhez egy saját minimál-OS is tartozik, csak azért, hogy a konfigját rendesen szerkeszteni tudd (amikor teljesen új partíciót veszel használatba).

A hda2, hda3, hda5-hda15 egy kicsit rugalmatlan. Lehetne helyettük a hda2-n egy LVM PV-t létrehozni, azon belül egy csomó LV-t. Azonban nem vagyok benne biztos, hogy (a) a "fő" grub (a chainloader) be tudja rántani logical volume-ról az adott OS saját boot loader-ét (ld. a fenti szintaxist...), (b) nem biztos, hogy tetszőleges, tesztelésre szánt disztró telepítője képes felrakni az adott grub verziót a logical volume elejére, ill. hogy ezen grub (ha már a fő grub becincálta valahogyan) képes onnan behúzni a kernelt meg az initrd-t.

Szóval szerintem maradj a rendes partícióknál.

Ez pont az, mint a mostani XOSL-es / DR-DOS-os megoldásod, csak a /dev/hda1-en egy kicsi Linux disztró lesz, és az XOSL helyett grub-ot fogsz használni láncolt betöltésre.

Azt figyeltem ki, hogy a jó öreg GRUB1 képes egy másik GRUB1-re átugrani, ha rámutatok a konfigra:

title WDC-2:
root (hd0,1)
configfile /boot/grub/menu.lst

Ekkor még mindig az MBR-ből indult GRUB fut, de a (hd0,1) partícióra telepített grub paramétereivel.
Vagyis a próba disztrónak azt mondom, hogy a saját partícióba telepedjen, és a "fő" GRUB-hoz hozzá se kell nyúlni.

(A hagyományos, odabootolós megoldás ugye ez:

title WDC-2chain:
root (hd0,1)
chainloader +1

Ekkor is az adott partíción kell lenni valami bootolónak, és az fog futni.)

Super Grub Disk?
Fent van mondjuk egy alap telepítés (amit rendszeresen használsz, a próbarendszerek partíciói bejegyzései nélkül).
A Super Grub-ot kiírod pl. egy pendrájvra (arról gyorsan működik).
Amikor új (kipróbálásra szánt) rendszert telepítesz, a saját partíciójába irányítod a rendszertöltőjét.
Ha ezeket akarod indítani, bootolás előtt csak bedugod a pendrájv-ot, néhány pillanat alatt felméri a partíciókat, ad egy listát, onnan azt indítasz, amit akarsz.
Pendrájv nélkül meg megy minden az eredeti belakott módon.