handdator

Visa fullständig version : guide: grub2 chainload



simonw
2009-08-28, 13:33
Intro
Chainload är ett praktiskt sätt att hålla flera system installerade på en dator. Man låter helt enkelt varje installerat operativsystem ha sin egen bootloader, fördelen är att då en ny kärna installeras uppdateras den egna gruben, men inte grub installerat i ett annat os.

I grub legacy (ubuntu 9.04 och tidigare) var det rättfram att chainloada (http://forums.debian.net/viewtopic.php?t=3506), men med grub2 (ubuntu 9.10 och framåt) är processen helt annorlunda, och det är den jag tänker redogöra för här.

Denna guide förutsätter att du vet något om försiktighet i samband med användandet av sudo och vid rotande i systemets inre. Är du osäker på något så FRÅGA FÖRST! Det är ju därför vi är här, för att hjälpa. :D

Förberedelse
Ubuntu kommer att användas som exempel system i denna guide, dock är processen mycket lik för de flesta system.

När man installerar ett nytt operativsystem måste man för att kunna chainloada installera grub/grub2 någon annanstans än i MBR där den grub man vill ladda till först och ladda vidare från är installerad. Ett bästa är att helt enkelt installera den nya bootloadern på rootpartitionen av det nya systemet.

De filer som bygger upp listan av operativsystem i grub2 ligger i /etc/grub.d/. Så börja med att öppna en terminal och förflytta dig till den mappen med

cd /etc/grub.d/Väl där så avaktiverar vi grub2s automatiska upptäckande av installerade system på andra partitioner med

sudo chmod -x 30_*Därefter är det dags att lägga till några rader i filen där de egna posterna bor.

Skapa en grub meny
Öppna 40_custom i valfri editor, tex med

sudo nano 40_customeller

gksu gedit 40_customför ett grafiskt program.

I 40_custom skriver du

menuentry "namn på os" {
set root=(hda,b)
chainloader +1
}På första raden ersätter du namn på os med det du vill att det ska stå i grub2 listan.
På andra raden ersätter du a med den hårddisk du installerat systemet på med början från 0, dvs har du bara en hårddisk så skriv 0 (noll). Ersätt också b med den partition du installerat den chainloadade booloadern på, med start på 1. Dvs om det är den tredje partitionen så skriv 3 (tre).

Exempelvis

menuentry "Ubuntu 9.04" {
set root=(hd0,3)
chainloader +1
}för en installation av ubuntu 9.04 på den första hårddiskens tredje partition.

Stoppa in så många av dessa du vill i 40_custom.

Avslutning
När du är nöjd så kör du
sudo update-grub i terminalen för att uppdatera grub. Vid omstart av datorn kan du nu välja vilket operativsystem du vill köra.

Kontrollera gärna att ändringarna har skrivits korrekt med
sudo less /boot/grub/grub.cfgDenna fil ska aldrig redigeras direkt, utan använd den här redovisade metoden där man går genom filerna i /etc/grub.d/*.

Kommentera gärna och kritisera!!

plun-
2009-08-28, 16:51
Mer om Grub2 som jag använt......

https://wiki.ubuntu.com/Grub2

Har själv haft minimalt med trubbel med Karmics version.

update-grub behöver väl sudo.....;)

simonw
2009-08-29, 00:41
Mer om Grub2 som jag använt......

https://wiki.ubuntu.com/Grub2

Jo, det finns massor av info kring grub2, men ville bara skriva om just multibootande via chainload specifik info här. Den info som finns om grub2 är lite mer svårtolkad än den om grub1 eftersom grub2 inte är lika välspritt och -använt.

northface
2009-08-30, 09:19
Utmärkt du tar dej tid att skriva en riktad HowTo istället för att länka till mer eller mindre relevanta/obsoleta dokument.

plun-
2009-08-30, 09:36
Jo, det finns massor av info kring grub2, men ville bara skriva om just multibootande via chainload specifik info här. Den info som finns om grub2 är lite mer svårtolkad än den om grub1 eftersom grub2 inte är lika välspritt och -använt.

Jo och det som verkar förbrylla mest är att det inte finns någon menu.lst

Annat som strulat i Karmic är OS-probern där man uppdaterat flera gånger.

Jag har inga problem med 3 OS installerade.

Karmic, Jaunty-Remixen samt Windows.


För de som vill "pimpa" grub rekommenderas den här tråden:
http://ubuntuforums.org/showthread.php?t=1182436

På slutet även utvecklare av Grub inne....