Sida 1 av 1

HOWTO: Trimma Grub

Postat: 22 okt 2006, 18:15
av Okänd
Guiden finns i Wikin: http://ubuntu-se.org/Wiki/GRUB där hittar du även hur man lägger in en bakgrundsbild.

Skrev ihop lite tips om Grubs menu.lst som jag själv har haft nytta av. Ingenting avancerat eller ögongodis utan bara rent praktiska saker. Jag kommer att gå genom enbart delarna jag har kännedom om. Denna guide passar bra till datorer med flera operativsystem eller flera kernels vilka två  kommer benämnas som OS i fortsättningen. Rubrikerna kommer i samma ordning som i menu.lst

Grubs menu.lst består av tre delar som jag ser det: i första delen styr man utseendet, i andra delen tar automatik hand vid kerneluppdateringar om enligt första delens stryrning och i tredje delen läggs övriga operativsystem till av Grub vid första installationen och man kan även lägga till dessa själv. I första delen kan man avkommentera ifall man vill att den regeln träder i kraft men i den andra delen ska man inte avkommentera något, bara ändra regeln (eller variabeln om man vill säga så). Annars slutar Grubs uppdateringsscript att fungera.

Vi börjar med att skapa en säkerhetskopia av menu.lst så här (klistra i terminalen)

Kod: Markera allt

sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
och därefter kan vi öppna menu.lst så här (i terminalen):

Kod: Markera allt

gksudo gedit /boot/grub/menu.lst
I en annan terminal klistrar du in

Kod: Markera allt

sudo fdisk -l
för att ta reda på vilka partitioner du har.


Automatisk start av rätt OS
Vi börjar om den första delens första stycke kallat ## default num. Här bestämms vilken av OS startas automatiskt ifall man lämnar datorn efter man slog på den. Siffran efter den okommenterade raden default räknar med varje okommenterad rad title dvs även title Other operating systems:. Vill man att Windows, som läggs i slutet utanför den automatiska delen av menu.lst vid Grub-installation, skall startas först blir numret efter default ett mindre än vad du tror för den första titel-raden räknar Grub som 0. Har du räknat t.ex. 6 rader som börjar med ordet titel så siffran blir då 5. Kontrollera, men det gör inget om du missar, då ser du ju det vid start att fel OS står markerat som första alternativ (vitmarkerat) och du kan ändra det med upp och ned pilarna.

Med tiden när man får kerneluppdateringar och dessa läggs till i den automatiska delen måste man öka siffran i raden default 5 (eller vilken siffra du nu har där) i motsvarande grad. Det finns två sätt att undvika detta. Den första är att istället för en siffra skriver man saved alltså default saved. Då startas datorn med det operativsystemet datorn stängdes förra gången. Praktiskt när man får ett omstarts uppmaning. En förutsättning till det är att OS i menu.lst har ordet savedefault som här:
title Ubuntu, kernel 2.6.15-27-k7
root (hd0,2)
kernel /boot/vmlinuz-2.6.15-27-k7 root=/dev/hda3 ro quiet splash
initrd /boot/initrd.img-2.6.15-27-k7
savedefault
boot
Observera att recovery mode -alternativ inte har savedefault.


Begränsa antal OS i menu.lst
Det andra sättet är att bestämma hur många OS skall visas vid start av datorn. Dess styrning hittar man i den automatiska delen i menu.lst vid raden howmany. Skriver man siffran 2 där så visas de två senaste kernels i både menu.lst och vid start av datorn, nu räknas inte raden titel utan nu är det kernel (inkl. recovery mode) som gäller. Då kan man använda en siffra vid raden default ifall man vill inte ha möjligheten att alltid starta den senaste OS automatiskt. Alternativen default saved och howmany=2 kan användas samtidigt.


Timer
Nu hoppar vi tillbaka till början av menu.lst och till stycket ## timeout sec. I slutet av den okommenterade raden timeout står det 10 som standard vilket anger tid i sekunder. Vill du ändra tiden, snabba upp den eller förlänga så ändrar du bara siffran 10 till vad du vill. Kom ihåg att siffran du skriver anger sekunder, skriver du 0 så har du ingen möjlighet att välja något annat OS eller återgå till en äldre kernel ifall en kerneluppdatering skulle gå fel.


Osynlig meny
Nästa stycket ## hiddenmenu anger ifall menyn är osynlig vilket är fallet när det finns bara en OS i datorn. Avkommentera med att radera #-teckent som står i raden #hiddenmenu ifall du vill gömma menyn. Escape tangenten vid start av datorn tar fram menyn.


Uppdatering av kernel
Ner till automatiska delen och stycket ## hiddenmenu. Ibland kan groot, Grub root device, skrivas fel av Grub eller av någon annan och det resulterar att menu.lst inte längre uppdateras automatiskt. Se till att i raden # groot=(hd0,2) är samma som partitionen där ditt /boot-mapp finns. Har du fler OS så denna /boot-mapp är samma som menu.lst du arbetar med hör till. Dvs. den ska vara samma som den första startmenyalternativen har.

Följande stycken är bästa att lämna så som de är så Grub behåller sin automatik.


memtest86
Vill du slippa raden Ubuntu, memtest86+ vid start av datorn ädra alternativet till false.

Vid det här laget är du klar och du kan spara och stänga menu.lst samt uppdatera denna med följande kommando i terminalen

Kod: Markera allt

sudo update-grub
Du kan öppna menu.lst och se att ändringarna blev som du ville och sedan starta om datorn. Hade du flera kernels tidigare än du har definierad i howmany så ska de vara borta från den nya menu.lst.


Flera OS
Har du fler OS vars menu.lst naturligtvis blir uppdaterade automatiskt så dessa lägger man i slutet av listan. Som jag gjorde, kopierade från deras menu.lst och klistrade in i den första. Problemet var att de andra menu.lst uppdateras automatiskt vid kerneluppdateringar men de skriver inte det till din aktuella menu.lst.och då riskerar du att starta ett äldre kernel än vad du har vilket är inte att rekommendera. Ã…terigen som i Linuxvärlden så finns det flera alternativ att rätta till detta och jag presenterar min favorit. Jag skapar en länk till den andra eller de andra menu.lst ;)

Så här ser länken ut när den är klistrad i slutet av menu.lst:

Kod: Markera allt

title		Kubuntu 
savedefault
configfile	(hd1,0)/boot/grub/menu.lst
Efter ordet title kan du skriva vad du vill, bara du själv förstår vad det betyder.
savedefault är bra att ha som det står om det ovan.
configfile länkar helt enkelt till partitionen där min Kubuntu bor. Kubuntu bor i mitt fall på min andra hårddiskens första partition. När jag väljer Kubuntu vid start av datorn kastas jag iväg till min andra härddiskens första partition och presenteras dess menu.lst som jag har preparerat likadant som Dappers menu.lst. Givetvis finns det länk tillbaka till Dappers menu.lst som är den första av alla menu.lst (inst. till MBR) och kommer fram först vid start av datorn. Den länken ser ut så här:

Kod: Markera allt

title		Dapper 
savedefault
configfile	(hd0,2)/boot/grub/menu.lst
Då kan jag ändra mig i båda menyer och starta det OS som jag vill utan att behöva starta om datorn.

Har du installerat någon annan distribution (bara på prov!) än Canonicals kan de ha en annan uppfattning om hur många hårddiskar man har etc. Då är det Dappers (den som är din första) benämning som gäller ang. hårddisknamn. Som t.ex. PCLinuxOS tyckte att den ligger på (hd1,4) när den ligger i (hd0,4) då ska länken se ut så här:

Kod: Markera allt

title		PCLinuxOS
savedefault
configfile	(hd0,4)/boot/grub/menu.lst
När man är i PCLinuxOS då är det däremot dess namn för hårddiskar som gäller.

Frågor eller fel i guiden, kontakta gärna.

Mer om Grub kan man läsa på Hermans sajt: http://users.bigpond.net.au/hermanzone/p15.htm



(061025 Lade till sudo fdisk -l)

SV: HOWTO: Trimma Grub

Postat: 15 feb 2007, 17:04
av HellRat
Jag har jättekmånga kernels i min grub och ställde om howmany i listan till 2 men det kommer fortfarande upp typ 42st olika när jag startar upp. Hur kan detta komma sig? Borde jag ha kvar alla gamla kernels i listan? De flesta tillhör väl min gamla Dapper-installation? (Jag har uppgraderat till Edgy nu..)

Aningen relaterat: Vilken kernel ska jag använda? Jag har två stycken av den senaste versionen, generic och 386. Jag antar att det är 386 jag ska köra, den startar som default. Däremot installerade jag en gång en kernel som hette 686 på slutet, detta för att jag läst att det var bra i en nybörjarguide; http://www.ubuntuforums.org/showthread.php?t=186792. Ska jag ha 686? Eller? Que? =)

SV: HOWTO: Trimma Grub

Postat: 23 feb 2007, 11:57
av HellRat
Det verkar som att howmany bara ställer in hur många OS som ska läggas till och inte hur många som ska visas när man redan har en hel drös, kan det stämma? Hur gör man för att ta bort alla gamla kernels så att de inte visas i laddaren? (Jag antar att jag inte bara kan ta bort dem från den "automatiska" delen, eller?)

Om jag lyckas fixa så att inte alla visas, kommer då framtida uppdaterade kernels att visas?