Kapitel 9. Opstart af Linux

I dette kapitel beskrives nærmere, hvordan Linux opstarten foregår på en PC. Vi fortæller de vigtigste ting om program pakkerne LILO og GRUB, så du har en chance for at komme igang på en nem måde. Nogle i linuxbog redaktionen foretrækker GRUB, andre LILO. Den vigtigste forskel er, at GRUB "forstår filsystemer" og kerne-exec formater. LILO springer det led over og arbejder med fysisk specificerede bloknumre på disken.

Som tidligere skrevet kan Linux fint eksistere sammen med Windows 95/98, NT 4.1, NT 5 og også MS-Windows XP. Linux kan i det hele taget eksistere sammen med andre systemer. Det normale er at installere en Linux opstart-manager, så man kan vælge, om man vil starte Linux eller fx. MS-Windows-NT. Det vil vi beskrive nærmere her i indledningen. Men først et par formanende ord, hvis du bruger Microsoft Windows XP.

Det siges, at Windows XP ikke accepterer at blive bootet fra en disk, som der er ændret på med programmer, som ikke er fra Microsoft, fx. Ghost, Novell, Partitionmagic - og Linux LILO. Efter vores viden er det en bug i MS-XP, som bevirker, at endog Microsoft setup-programmer kan lave rav i licens-kontrollen, således at man ikke får lov at starte MS-XP. Da dette selvfølgelig kan være alvorligt belastende, må vi råde til forsigtighed med de nyeste versioner af Microsoft produkter.

Hvis man vil bevare en MS-XP installation, må vi derfor anbefale den forsigtige metode. Vi kommenterer i øvrigt ikke på fejl i MS-XP eller hvordan man undgår dem.

De ældre Microsoft systemer, NT-4.x m.v., opfører sig helt korrekt og er non-destruktive overfor egne og andres data.

Den forsigtige metode består i, at man installerer Linux, men ikke installerer en LILO boot sector. Man benytter så den start-diskette, som man kan lave til sidst i installationen. Vi beskriver også, hvordan man selv kan lave sådan en diskette med sin egen kernekonfiguration. Det er i virkeligheden ret effektivt, idet disketten efter indlæsning af kernen sørger for, at harddisken bruges som udgangspunkt for alle andre operationer, herunder kernemoduler, hvis man benytter sådanne. Det drejer sig højst om 10-20 sekunder ekstra i opstarten.

Når man så er blevet træt af Microsoft programmer og ikke mere har brug for dem, så kan man fjerne den partition og installere LILO, således at man starter Linux op fra harddisken.

For MS-Windows-95, 98, NT, CE og lignende er det almindeligste at installere en LILO boot-manager, hvorfra man kan vælge, hvilken kerne (og evt. hvilken Windows-kerne) man ønsker at starte op.

Der er mange flere muligheder. Ældre maskiner kan boote Linux fra Windows 95/98 ved hjælp af et (ældre) program, som hedder loadlin (load Linux), men man kan selvfølgelig også bruge LILO eller GRUB på ældre maskiner.

Et alternativ til at have LILO boot manageren installeret er det at lægge en bootsector på den partition, som man har installeret Linux på, og så tilføje Linux partitionen til NT-boot manageren, og det kan gøres bl.a. med programmet bootpart.exe fra http://www.winimage.com og http://www.winimage.com/bootpart.htm.

9.1. GRUB

GRUB er et alternativ til LILO-opstartsprogrammet (se Afsnit 9.2), dvs. et program som kan håndtere opstarten af et eller flere styresystemer på maskinen (eng: boot loader). GRUB har været med i RedHat fra version 7.2. Se f.eks. http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/ref-guide/ch-grub.html. GRUB forstår fdisk-partitioner og BSD-type disk-opdeling; endvidere kender den til ext2fs, ReiserFS, JFS and XFS, BSD ufs, MS-DOS FAT16 og FAT32, Minix fs, og VSTa fs filesystems, plus fysiske bloklister. GRUB kan også boote andre kerner (operativsystemer) som fx. GNU og BSD. LILO, LInux LOader, er først og fremmest et Linux system, og nogen erfaringer tyder på, at den visse situationer kan være mere stabil. Den har også et væld af features.

GRUB kan benytte filsystemet til at finde kernefilen. GRUB var lidt tidligere ude med grafiske raffinementer i opstartsfasen, noget, som har stor værdi for markedsføringen. LILO har nu også fået mulighed for grafik under opstarten.

I Eksempel 9-1 er vist et eksempel på den fil /boot/grub/grub.conf, som styrer opstartsprogrammet. Først er der en linje default=0, der viser at det første menupunkt (nummer nul) er det som man får per default. Næste del er timeout=10, som betyder at default-menupunket vil blive startet efter 10 sekunder. Parameteren splashimage angiver stien til at billede som lægges som baggrund for menuen. Det skal være et billede i VGA-størrelse dvs. 640x480 og man har kun 14 farver at gøre godt med. Filen skal gemmes i XPM-format (f.eks. lavet med GIMP eller ImageMagick) og derefter skal man køre gzip på filen idet den ellers vil fylde meget mere. Stien til filen er interessant. (hd0,0) betyder den første harddisk og første partition - dvs. /dev/hda1 hvor /boot/ skal ligge. Dernæst er stien relativ til kataloget /boot/ - dvs. stien her er fysisk /boot/grub/splash2.xpm.gz i eksemplet. Dernæst er der i /boot/grub/grub.conf en eller flere sektioner, der startes med title. Hver af dem bliver til et menu-punkt som man kan vælge mellem. I eksemplet er der tre menupunkter, som vil fremkomme med titlerne "Dell" hhv. "Red Hat Linux (2.4.21-13)" og "Windows". Bemærk at man igen her angiver den lidt specielle notation for hvilken Linux-kerne der skal hentes ved at skrive harddisk og partition som root (hd<DREV>,<PARTITION>).

Under det første menupunkt "Dell" hentes kernen fra /boot/bzImage.417 og filsystemets rod (dvs. /) bliver sat til /dev/hda2. ro betyder at root partitionen er read-only fra start, hvilket kan være en fordel, hvis en disk får en hardware fejl.

Man kan også se at det andet menupunkt "Red Hat Linux (2.4.21-13)" har en initiel RAM-disk /boot/initrd-2.4.21-13.img. I eksemplet er den originale Red Hat 7.2 kerne lagt under menupunktet "Red Hat Linux (2.4.21-13)", mens "Dell" er en nyere Linux-kerne uden initiel RAM-disk.

Det tre menupunkt "Windows" anvendes til at starte en Windows 95 eller NT op fra /dev/hda2 (det er den anden partition på første disk - dvs. (hd0,1).

Eksempel 9-1. Eksempel på en grub.conf


default=0
timeout=10
splashimage=(hd0,0)/grub/splash2.xpm.gz
title Dell
     root (hd0,0)
     kernel /bzImage.417 ro root=/dev/hda2
title Red Hat Linux (2.4.21-13)
     root (hd0,0)
     kernel /vmlinuz-2.4.21-13 ro root=/dev/hda2
     initrd /initrd-2.4.21-13.img
title Windows 
     root        (hd0,1)
     makeactive
     chainloader +1

Det eneste man skal gøre hvis man vil ændre i opstarts-opsætningen er at rette i /boot/grub/grub.conf og ved næste genstart af maskinen anvendes den nye opsætning. I bogens eksempler kan man finde splash2.xpm.gz som er et opstarts-billede med SSLUG-logo, der passer til GRUB og også til LILO fra version 22.3.

Det skal lige nævnes at muligheden for at lægge et billede ind kræver et patch til GRUB der kan hentes fra http://people.redhat.com/~katzj/grub/patches/.

Tip: Se http://linuxtoday.com/news_story.php3?ltsn=2002-03-08-014-20-PS-MS-RH og http://bratlady.com/linux_boot.shtmlfor information om GRUB, Linux og Windows XP.