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!

Multiboot med GRUB

Jag har förstått att många nybörjare har problem med konfigureringen av starthanteraren GRUB. Jag återger därför här innehållet i min gamla "handledning" Multiboot med GRUB. Handledningen har nämligen uppdaterats idag (110323).

OM GRUB

De allra flesta linuxdistributioner har GRUB (GRand Unified Bootloader) som standard starthanterare. För några år sedan var det mera vanligt med LILO - Linux Loader. Nedan skriver jag lite om hur du kan konfigurera GRUB. Observera att det tillkommit en ny version av GRUB - Grub 2 - som du kan läsa mera om nedan i sista stycket. Grub 2 används bl a av Ubuntu fr. o. m. version 9.10.

När du installerar t. ex. EXTON RHF 14 till hårddisk så får du möjlighet att välja GRUB som starthanterare. Om du gör det så skapas filen /boot/grub/menu.lst. Vanligen känner också GRUB av att du har andra installerade OS på datorn och lägger till "startdata" för dessa, t. ex. Windows 7. För Windows 7 ska dessa "startdata" normalt se ut så här:

title Windows 7 (sda1)
root (hd0,0)
makeactive
chainloader +1

Om du inte är nöjd med hur GRUB autokonfigurerat starten av dina OS så kan du själv redigera filen /boot/grub/menu.lst.

På en av mina datorer har jag 10 olika OS installerat. Datorn har två hårddiskar, varav en är en extern USB-disk. Så här ser min GRUB-konfigurationsfil (menu.lst) ut. Filen finns i EXTON-RHF 14 i mappen /boot/grub.

###################################################################
# extons eminenta menu.lst - 110322
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,7)
#          kernel /boot/vmlinuz-version ro root=/dev/sda8
#          initrd /boot/initrd-[generic-]version.img
# boot=/dev/sda8
default=0
timeout=30
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
# hiddenmenu

title Windows 7 (sda2)
rootnoverify (hd0,1)
chainloader +1

title EXTON-RHF14 - Fedora 14 :: GRUB :: (sda8)
root (hd0,7)
kernel (hd0,7)/boot/vmlinuz-2.6.35.6-48.fc14.i686 ro root=UUID=014dda35-7666-4a62-8b2c-bdd7f817c426 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LA$
initrd (hd0,7)/boot/initramfs-2.6.35.6-48.fc14.i686.img

title PCLinuxOS-EXTON 2011 (sda10)
root (hd0,9)
kernel (hd0,9)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=2021fd12-0220-4ffe-a6b8-a0ddda9238ed  resume=UUID=64b1f855-9a93-484e-8398-1505916da96d splash=silent vga=788
initrd (hd0,9)/boot/initrd.img

title CruxEX 2011 (sda7)
root (hd0,6)
kernel /boot/vmlinuz-2.6.37.2-exton root=/dev/sda7
boot

title EXTON OpSuS 11.4
root (hd0,2)
kernel /boot/vmlinuz-2.6.37.1-1.2-default root=/dev/disk/by-id/ata-TOSHIBA_MK1234GAX_X6MDT5N3T-part3 re$
initrd /boot/initrd-2.6.37.1-1.2-default

title ExTiX 8 LXDE (sdb8)
root (hd1,7)
kernel /boot/vmlinuz-2.6.32-5-486 root=/dev/sdb8 ro quiet locale=en_US.UTF-8 keyb=se
initrd /boot/initrd.img-2.6.32-5-486

title   Ubuntu 10.10 (sdb7)
root    (hd1,6)
kernel    /boot/vmlinuz-2.6.35-22-generic root=/dev/sdb7 ro quiet splash
initrd    /boot/initrd.img-2.6.35-22-generic
quiet

title    Lenny-Exton (sdb9)
root    (hd1,8)
kernel    /boot/vmlinuz-2.6.26-2-686 root=/dev/sda9 ro 
initrd    /boot/initrd.img-2.6.26-2-686

title   DebEX-Mint - Mint 10 (sda11)
root    (hd0,10)
kernel    /boot/vmlinuz-2.6.35-22-generic root=/dev/sda11 ro quiet splash
initrd    /boot/initrd.img-2.6.35-22-generic

title  SliTaz 2.0 (sda12)
root   (hd0,11)
kernel /boot/vmlinuz-2.6.25.5-slitaz root=/dev/hda12
boot

title DSL-Exton kernel 2.6.24 (sda9)
root (hd0,8)
# kernel /boot/linux24 root=/dev/hda9
kernel /boot/vmlinuz-2.6.24 root=/dev/hda9

title CDlinux-Exton (sdb1)
root (hd1,0)
kernel /CDlinux/bzImage quiet CDL_LANG=sv_SE.UTF-8
initrd /CDlinux/initrd   
#################################################################

Se en alternativ menu.lst för en dator med tretton (13) linuxsystem och Windows 7 installerade HÄR. Den datorn har tre hårddiskar, varav en är en extern USB-disk.

Om du vill ha GRUB installerat på någon annan linuxdist än t. ex. EXTON-RHF 14 så startar du upp det systemet och kör kommandot: grub-install /dev/sda. GRUB installeras då i MBR. Du kan utan vidare byta ut filen /boot/grub/menu.lst mot motsvarande fil i EXTON-RHF 14.

Hur du gör om du vill installera ett nytt linuxsystem och redan har installerat GRUB i samband med installationen av ett annat linuxsystem
När fråga om starthanteraren GRUB uppkommer under slutat av installationen så väljer du att installera GRUB på din installationspartition (/) istället för i MBR. När installationen är klar så väntar du med att starta om systemet tills du har redigerat din befintliga grubinstallation. D v s du monterar den partition på vilken du installerat det nya linuxsystem och den partition på vilken ditt "gamla" linuxsystem ligger. Kopiera sedan "startdata" från /boot/grub/menu.lst på det nya linuxsystemet till /boot/grub/menu.lst på ditt gamla linuxsystem. (D v s din fungerande GRUB-installation i MBR). Det nyssnämnda kan bara göras om du installerar det nya linuxsystemet under körning från en liveskiva. Läs dock nedan om hur du kan använda en liveskiva för att "chroota". Observera: Du kan givetvis alternativt bara starta om datorn sedan installationen är klar och sedan starta upp ditt gamla linuxsystem. Därefter lägger du bara till startdata för det nya linuxsystemet i filen /boot/grub/menu.lst. Det nyssnämnda är ett användbart förfaringssätt om du installerat det nya linuxsystemet från en s k installationsskiva. (D v s inte en liveskiva).

Hur du gör om kommandot grub-install fallerar i ett installerat linuxsystem
Du kör kommndot grub-install /dev/sda och får felmeddelandet "Could not find device for /boot: Not found or not a block device" eller får inte grubinstallationen att fungera av andra skäl. Gör då så här:

1. Öppna en terminal och kör kommandot grub. (Prompten "grub" visas då)

2. Kör kommandot find /boot/grub/stage1
Då visas värden som
(hdX,Y)

där X och Y är siffror. Kom ihåg dessa värden.

3. Kör kommandot root (hdX,Y) - i.e. root (hd1,2) - t. ex.
där X och Y alltså är de värden som gavs av "find-kommandot". Nu får alltså GRUB reda på var din bootpartition finns. Viktigt: GRUB räknar alltså från 0. Om du har t .ex. EXTON-RHF 14 på /dev/sda6 så blir alltså nyssnämnt "grubkommando" root (hd0,5)

4. Kör kommandot setup (hd0) < "0" är siffran noll.
GRUB skriver nu till MBR.

5. Avsluta med kommandot quit och starta sedan om datorn. Om du gjort rätt ska det bara fungera. Det finns inget större utrymme för misstag.

Det jag redogjort för ovan går också att utföra under körning av ett live linuxsystem. (Det kan ju vara så att du inte kan starta ditt installerade linuxsystem). Starta alltså då upp datorn från t. ex. EXTON-RHF LiveDVD. Logga in som root. Öppna upp en terminal och kör följande kommandon:
1. mount /dev/sdb6 /mnt/sdb6 < d v s montera installationspartitionen
2. mount -t proc proc /mnt/sdb6/proc
3. mount --bind /dev /mnt/sdb6/dev
4. chroot /mnt/sdb6 /bin/bash < d v s "chroota" in i installationspartitionen
5. Kör kommandona 1 - 5 ovan.
6. Gå ur chroot med kommandot exit och starta om datorn.
Det ovanstående förutsätter givetvis att du har en korrekt konfigurationsfil för GRUB. D v s filen /boot/grub/menu.lst måste ha rätt innehåll. Även filen /boot/grub/device.map måste vara korrekt. Nyssnämnda fil kan ha detta innehåll:
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc

Hur du gör om MBR skrivs över av Windows (t. ex. vid uppgradering från Windows Vista till Windows 7)
Om du vill få tillbaka din GRUB-installation för att kunna starta ditt/dina linuxsystem ska du göra så här:
1. Starta upp datorn från en Linux live CD (t. ex. EXTON-RHF).
2. mount -t proc proc /mnt/sda4/proc
3. mount --bind /dev /mnt/sda4/dev
4. "Gå in" i det linuxsystem, i vilket du tidigare installerat GRUB med kommandot chroot /mnt/sda4/bin/bash. (Ändra givetvis sda4 mot vad som gäller på din dator. Du måste givetvis också först montera aktuell partition).
5. Installera om GRUB i MBR med kommandot grub-install /dev/sda.
6. Lämna chroot med kommandot exit.
Klart! (Du kan givetvis redigera din menu.lst och t. ex. ändra namn från Window Vista till Windows 7). När du sedan startar om datorn så har du din vanliga GRUB-meny igen.

Läs HÄR om hur du skapar en GRUB-bootdiskett. En sådan är mycket bra att ha till hands om din GRUB-installation fallerar eller om en ny installation av ett OS skulle resultera i att inget OS kan startas. Du kan också skapa en GRUB-bootCD. (Om du t. ex. skulle sakna diskettenhet på din dator). Läs HÄR om hur du gör.

Ta bort GRUB
Om du av någon anledning vill ta bort GRUB så startar du bara upp din dator från en DOS-diskett och kör detta kommando vid A:> fdisk /mbr. Om du har Windows XP/Vista/7 installerat så måste du starta upp från din installationsskiva och välja Rescue (Räddningsläge). Sedan kör du kommandot fixmbr. Efter det du kört något av dessa kommandon kan du starta upp ditt MS Windows-system utan problem. Däremot kan du inte starta ditt Linux-system, försåvitt du inte varit förutseende nog att ha skapat en GRUB-bootdiskett i ett tidigare skede enligt instruktion ovan. Om du har en bootdiskett kan du på nytt installera GRUB (om du skulle önska det). Starta i så fall upp ditt linuxsystem med bootdisketten och kör sedan kommandot grub-install /dev/sda.

Läs en synnerligen utförlig beskrivning av GRUB HÄR.

Om nya Grub 2
Ovanstående handledning om GRUB riskerar att snart bli obsolet. Observera nämligen följande om GRUB: Fr o m version 9.10 av Ubuntu används starthanteraren Grub 2. Den fungerar annorlunda än "gamla" GRUB. Nya GRUB (Grub 2 - the next generation of GRUB) behandlas bl a i Ubuntus Wiki och HÄRLinuxwiki.se (instruktivt). Läs också gärna mitt blogginlägg på Linuxportalen.se (med kommentarer) om GRUB. Det är troligt att Grub 2 kommer att ta över helt inom kort i de flesta linuxdistar. Å andra sidan använder nya openSUSE 11.4, som släpptes 110310 fortfarande "gamla" GRUB, så...

Du kan också läsa min handledning Multiboot med LILO.

Senast uppdaterad 2011-03-23

Alternativ för kommentarvisning

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

FoHs bild

Det är en bra handleding, men kanske borde du nämna Grub2 redan i början? Tror väldigt få människor har den goda vanan att läsa igenom en handledning från början till slut innan de faktiskt försöker följa den. Jag vet att jag åtminstone inte gör det Smile

extons bild

Tack för påpekandet. Jag har lagt till en rad om Grub 2 i början av "handledningen".

LINUX.EXTON.NET

FoHs bild

Senaste versionen av Grub 2 (1.99) har tydligen fått en "GRUB parser": "a parser for GRUB Legacy (GRUB1) files"

Här är release notes: http://lists.gnu.org/archive/html/grub-devel/2011-05/msg00032.html

tux-svens bild

Aha, detta är ju något som jag önskat mej, en Grub1-parser! Smile

---

Windows are for houses, Linux is for computers!