Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Grub2-tips

Informationen är nu sammanställd i denna Wiki-sida (rekommenderad läsning!): http://www.linuxwiki.se/index.php/Grub2

Generell information


Tänkte göra en liten sammanställning över några saker jag upptäckt med Grub2. I Debian-baserade distar har man följande upplägg med Grub2:

  • Konfigurationsfilen för bland annat tiden som menyn ska visas och annat heter /etc/default/grub (motsvaras av gamla Grubs /boot/grub/menu.lst)
  • Kommandot update-grub kör alla körbara script i katalogen /etc/grub.d efter nummerordning och skapar automatiskt /boot/grub/grub.cfg (som med andra ord kommer skrivas över varje gång update-grub körs, t.ex. vid en ny kärnuppdatering)

Filerna i /etc/grub.d är följande i Ubuntu:

00_header  05_debian_theme  10_linux  20_memtest86+  30_os-prober  40_custom  README

Varje fil tar hand om en uppgift. 10_linux söker av filsystemet och lägger till alla kärnor/installationer den hittar. 20_memtest86+ lägger till memtest86+-alternativen i menyn. 30_os-prober hittar och lägger till Windows- och Linux-installationer på andra partitioner och 40_custom är till för den som vill lägga till egna alternativ. Varje fil är körbar från början, vill man exempelvis utesluta Windows-installationer från Grub-menyn kan man ta bort körbar-flaggan på 30_os-prober och sedan köra update-grub som administratör. (Å andra sidan kan den effekten också fås genom att sätta GRUB_DISABLE_OS_PROBER=true i /etc/default/grub.)

Standardval


Ett problem som jag stött på är vilket menyalternativ som ska vara standardvalet. På min laptop vill jag att detta ska vara Windows 7, men eftersom 10_linux lägger till alla kärnor den hittar i Ubuntu så kommer menyalternativet för Windows 7 hamna allt längre ned på menyn när det kommer kärnuppdateringar . Med andra ord kan jag inte använda GRUB_DEFAULT=3 som från början väljer Windows 7 (det räknas fram så här på ett nyinstallerat system: 0 = kärnversion 2.6.31-14, 1 = kärnversion 2.6.31-14 (recovery), 2 = memtest86+, 3 = Windows 7). Efter en kärnuppdatering till 2.6.31-15 så finns den gamla kärnan fortfarande kvar och 2 nya menyalternativ har tillkommit. Det finns några olika sätt att lösa det:

  1. Använd alternativet "saved" istället för siffran så kommer valet vid Grub att sparas. Det innebär förstås "problemet" att Ubuntu blir standardvalet efter varje gång du startat det.
  2. Döp om 30_os-prober till 06_os-prober så kommer Windows alltid hamna överst i listan och GRUB_DEFAULT=0 kan användas. Inte att rekommendera om du har andra Linuxinstallationer också, då de följer med upp i listan.
  3. Skriv menyalternativets titel istället, i exemplet med Windows 7 på min laptop så blir det GRUB_DEFAULT="Windows 7 (loader) on /dev/sda1" (rekommenderas)

Menykonfiguration


Har du bara ett operativsystem installerat så visas ingen meny alls. Vill du fortfarande se menyn kan du hålla nere Shift-tangenten under uppstarten.

I Grub2 finns det ett alternativ för hur länge datorn ska vänta med dold meny, alternativet heter GRUB_HIDDEN_TIMEOUT och är satt till 0 om det bara finns ett operativsystem på datorn (som då startas direkt utan att visa menyn). Med alternativet GRUB_HIDDEN_TIMETOUT_QUIET kan du bestämma om du vill att en nedräkning ska visas (false) eller ej (true).

Ett tredje alternativ gäller den tid innan ett val görs automatisk när menyn väl visas, detta heter GRUB_TIMEOUT och är satt till 10 som standard. Trycker du på en tangent under tiden menyn är dold så visas menyn och nedräkningen från 10 börjar. Vill du visa menyn till dess att ett val uttryckligen görs kan du sätta GRUB_TIMEOUT till -1.

Samtliga dessa alternativ ställs in i /etc/default/grub.

Egna menyalternativ


Vill du lägga till ett eget menyalternativ, kanske för att något inte hittas automatiskt, så kan du göra det i 40_custom. Syntaxen för att lägga till en menypost med titeln "Linux Mint 8" på andra hårddiskens första partition kan se ut så här:

menuentry "Linux Mint 8" {
        set root=(hd1,1)
        linux /boot/vmlinuz-2.6.31-15 root=UUID=de3a831f-906d-43ae-8205-fe0be034d011 ro
        initrd /boot/initrd.img-2.6.31-15-generic
}

Övrig information


Notera att nytt för Grub2 är sättet att numrera partitioner. Hårddiskar numreras från 0, så hd1 innebär alltså hårddisk nummer 2. Men partitioner numreras numera från 1, för att matcha beteckningen /dev/sdb1.

Vill du ta bort memtest86+, gamla kärnversioner och recovery-alternativen kan du läsa om det här: http://www.linuxportalen.se/forums/2010/01/29/boot-ordning-i-grub#commen...

Kom ihåg att köra update-grub efter alla ändringar så att en ny grub.cfg skapas!

För mer och utförligare information (på engelska) besök denna sida: https://help.ubuntu.com/community/Grub2

Revisionshistorik:

  • Uppdaterat med information om egna menyalternativ i 40_cutom och allmän uppstädning
  • Uppdaterat med menykonfiguration
  • Uppdaterat med källa
  • Uppdaterat med länk till mer information
  • Uppdaterad med Wiki-sidan
  • Uppdaterad med ny information angående 30_os-prober

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

tux-svens bild

 Tack FoH, det var bra att du reder ut begreppen åt oss andra som inte har den energin.  Faktum är att grub2 hitintills funkat väldigt bra för min del.  Men man vet ju aldrig när denna kunskap kan komma till nytta.      ;)  

---

Windows are for houses, Linux is for computers!

 

FoHs bild

Jag gillar Grub2, det verkar faktiskt lite mer flexibelt när man kommer in i det :) Det verkar sköta det mesta själv utan någon större handpåläggning, och med några lite enklare grepp verkar man kunna få det precis som man vill.

frilas bild

Tack FoH. Som vanligt matnyttig info från dig Smile

Jag tycker också att grub2 funkar utmärkt förutom att det startar lite långsamt med två hårddiskar.

frilas bild

Jag har en maskin där jag nu har Vista + Ubuntu men tänkte installera Win7 istället för Vista. Hur hanterar grub2 detta? Kommer Win7 att "förstöra" allt? Kan jag lätt återställa grub2 i så fall?

fredentofts bild

Det borde inte vara några problem, men OM det skulle bli så rekommenderar jag dig att installera grub på den partition du har /boot, och sedan i windows installera "easy bcd" som lätt kan lägga till din ubuntu (egentligen din grub) i windows bootmeny.

-
För övrigt anser jag att trådindenteringen måste lagas
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

FoHs bild

All information som jag postat här kommer från Ubuntus Wiki-sida om Grub2. Den beskriver återinstallationen av Grub2 på flera olika sätt, men den enklaste är denna:

  1. Starta med Ubuntus LiveCD
  2. Starta en terminal
  3. Om du inte redan vet vilken beteckning Ubuntu-partitionen har kan du ta reda på det med kommandot sudo fdisk -l (litet L). Exempelvis kanske det är /dev/sda2, som jag använder som exempel fortsättningsvis.
  4. Montera Ubuntu-partitionen med kommandot sudo mount /dev/sda2 /mnt
  5. Om du har en separat boot-partition måste den också monteras och då under /mnt/boot
  6. Kör kommandot sudo grub-install --root-directory=/mnt/ /dev/sda för att installera Grub2 i MBR på första hårddisken.
  7. Starta om (och kör sudo update-grub efter omstart för att lägga till Windows 7)

frilas bild

Tjusigt Smile Men vad menas med "en separat boot-partition", säger jag lite lätt generat...

FoHs bild

Att du har skapat en partition (under installation) där du monterar /boot och har kärnor och annat på. Om du inte vet vad det är så har du förmodligen inte en sådan, utan din /boot-katalog ligger på samma partition som det vanliga root-filsystemet Smile

jonasbjorks bild

 Bra artikel! Du gör det enkelt att förstå GRUB2.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

poka64s bild

Bra guide FoH

FoHs bild

Det har varit en del uppdateringar på den här bloggposten på sista tiden. Nu senaste uppdaterade jag vad scriptet 30_os-prober gör. Jag hade missuppfattat dess uppgift och trodde att 10_linux letar efter Linuxinstallationer (även på andra partitioner/hårddiskar) men det är, naturligtvis, 30_os-prober som sköter det jobbet (något jag upptäckte vid installation av Ubuntu Lucid Lynx 10.04 alpha2 på laptopen). Scriptet anropar för övrigt /usr/bin/os-prober och /usr/bin/linux-boot-prober

Så, med andra ord:

  • 10_linux = hittar bootalternativen på nuvarande rootfilsystem
  • 30_os-prober  = hittar "alla" andra operativsystem

Wikin är också uppdaterad.