5.13. Boot af Linux

Som tidligere skrevet kan Linux fint eksistere sammen med Windows 95/98 eller Windows NT. Hvad angår Windows 95/98, skal du se på LILO eller Loadlin som bootloader, men med hensyn til Windows NT kommer der i det følgende en vejledning i at anvende Linux sammen med Windows NT's OS Loader.

5.13.1. LILO

Mange vil allerede under installationen af Red Hat have installeret LILO som boot-manager. Senere kan det være, at du vil have mulighed for at boote med en ny kerne eller lignende. Du skal så ændre i opsætningsfilen /etc/lilo.conf, hvor der står en del for hvert af de styresystemer, der kan bootes. Når du har rettet, skal du køre /sbin/lilo som root, hvor efter rettelserne har effekt.

Et eksempel på /etc/lilo.conf kan være

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/zImage
        label=linux
        root=/dev/hda3
        read-only
image=/boot/vmlinuz-2.0.35-2
        label=linux2
        root=/dev/hda3
        read-only
other=/dev/hda1
        label=dos
        table=/dev/hda
I eksemplet bootes på første IDE harddisk (hda). En bootloader lægges i bootsektoren (kan cleares med fdisk /mbr i DOS), og der bootes efter 5 sekunder på den første af de tre muligheder. Der er her to muligheder for at boote Linux med to forskellige kerner (linjerne med image). Begge booter med root partition på /dev/hda3. Feltet "label" er det, du ser på skærmen som boot-valgmulighed. Den sidste mulighed i eksemplet er, at DOS bootes på den første partition (hda1) på første IDE disk.

Lilo kan en hel del, men kan være et lige så besværligt værktøj, som det kan være suverænt. Du bør måske læse den mini HOWTO om LILO, som kan findes under Linux Documentation Project på http://sunsite.auc.dk/ldp. Specielt kan det være at de to options "restricted" or "password" er værd at forstå.

5.13.2. Loadlin

En anden mulighed er at boote i Windows 95 og der lave en bootmanager via COMMAND.COM og AUTOEXEC.BAT filerne. Først hentes DOS programmet LOADLIN fra ftp://sunsite.auc.dk/pub/os/linux/sunsite/system/boot/dualboot/lodlin16.tgz

Vi har installeret loadlin i c:\linux\loadlin (loadlin kan downloades i zip-format og pakkes ud som vanligt med pkunzip eller winzip). Vor Linux-kerne har vi kopieret til c:\linux med navnet vmlinuz, og i nedenstående autoexec.bat har vi vores root-partition på /dev/hda3 (tredje partition på hoveddisken). Du skal rette i linjen c:\linux\loadlin\loadlin c:\linux\vmlinuz root=/dev/hda3 ro svarende til din konfiguration.

I det følgende skal du erstatte indholdet for Windows 95 (Win95) med det, som du selv har. Linux har reelt kun noget i AUTOEXEC.BAT

CONFIG.SYS

[MENU]
MENUITEM=Win95
MENUITEM=Linux
MENUDEFAULT=Linux,5

[Win95]
DEVICE=C:\UCD\UCDIDE.SYS /D:UCD0001
DEVICE=C:\WINDOWS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=045,850,C:\WINDOWS\COMMAND\country.sys

[Linux]

AUTOEXEC.BAT

GOTO %CONFIG%

:Win95
rem - By Windows Setup - C:\WINDOWS\COMMAND\MSCDEX /D:UCD0001
@ECHO OFF
PROMPT $p$g
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS;
SET TEMP=C:\DOS
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb dk,,C:\WINDOWS\COMMAND\keyboard.sys
GOTO END

:Linux
c:\linux\loadlin\loadlin c:\linux\vmlinuz root=/dev/hda3 ro
GOTO END

:END

5.13.3. Samtidig installation af Windows NT og Linux

Windows NT og Linux kan sagtens være installeret på samme maskine, det eneste lidt problematiske er boot-proceduren. Du kan vælge mellem at boote i Lilo bootmanageren eller at boote i NT's bootmanager. Det helt ideelle vil være, at begge bootmanagere kan boote begge systemer. Denne løsning kan man kalde 'den ideelle dualbootløsning'.

Når Windows NT installeres, bliver Master Boot Recorden (MBR) på harddisken altid overskrevet, således at NT's egen bootloader får kontrol med opstarten af maskinen. Når Linux installeres, får du en valgmulighed: du kan vælge at overskrive MBR med LILO, eller du kan vælge at installere LILO på en harddiskpartition.

Det er netop det, vi skal udnytte til at dualboote mellem LILO og Windows NT's OS Loader. Vi er ikke interesserede i at miste muligheden for at starte op i Linux ved hjælp af LILO, så det kan betragtes som en forebyggende handling at acceptere tingenes tilstand, det vil sige at placere Windows NT's OS Loader i MBR og at placere LILO på en passende primær partition. Derfor skal du svare NEJ til at placere LILO i Master Boot Recorden (MBR). LILO bør i stedet placeres på den primære partition, Linux er installeret i.

Når du vælger at installere LILO på en harddiskpartition i stedet for i Master Boot Recorden (MBR), er det nødvendigt at fremstille en bootdiskette til Linux, enten som en del af installationen eller efter installationen, men under alle omstændigheder før Linux lukkes ned. Ellers får du svært ved at starte op i Linux igen! Bootdisketten kan fremstilles efter installeringen med Linux-kommandoen mkbootdisk. Husk at have en formatteret diskette parat. Disketten skal være formatteret 'unconditional', så der ikke ligger information skjult på den, for eksempel FORMAT /U A: i en DOS-prompt eller Linux-kommandoen fdformat. Det er vigtigt, at disketten er 100% fri for fysiske fejl!

Eksempel:

[root@linus /root]# fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
[root@linus /root]# ls -l /lib/modules
total 1
drwxr-xr-x 10 root root 1024 Dec 1 22:40 2.0.36-0.7
lrwxrwxrwx  1 root root   23 Dec 3 13:22 preferred -> /lib/modules/2.0.36-0.7

preferred peger på kataloget 2.0.36-0.7. Det benyttes i mkbootdisk-kommandoen:

[root@linus /root]# mkbootdisk 2.0.36-0.7
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press <Enter> to continue or ^C to abort:

Microsoft anbefaler, at C-drevet under Windows NT kører FAT. Det giver muligheder for fejlfinding, der ikke eksisterer på et NTFS-drev. En uventet, men glædelig sideeffekt af dette er, at Linux kan mounte C-drevet. Det giver blandt andet mulighed for den ideelle dualboot-løsning beskrevet i dette afsnit.

Standard-installationen af Red Hat-udgaven af Linux konfigurerer dualboot-muligheden for Linux's bootmanager LILO automatisk. Det eneste, du skal gøre, er at acceptere de to bootmuligheder 'dos' eller 'Linux'. Når LILO starter, kan du trykke på TAB-tasten for at få en oversigt over boot-mulighederne. Typisk kan du vælge mellem 'Linux' og 'dos'. Når du vælger 'dos', starter LILO Windows NT's OS Loader.

Det lidt mere omstændelige er konfigurering af Windows NT's OS Loader, så LILO kan startes fra Windows NT's OS Loader. Windows NT's OS Loader benytter sig af filreferencer i filen C:\BOOT.INI.

Eksempel på BOOT.INI:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(3)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINNT="NT Workstation 4.00 SP3"
multi(0)disk(0)rdisk(0)partition(3)\WINNT="NT Workstation 4.00 SP3 [VGA mode]" /basevideo /sos
C:\="Windows 95"

Når NT-systemet med denne BOOT.INI startes op, har brugeren fem sekunder til at fravælge default-opstarten af WINNT.

Filen skal nu tilrettes, så Linux også bliver en valgmulighed.

Skriv i DOS/NT:

C:
CD \
ATTRIB -s -r BOOT.INI
EDIT BOOT.INI

Tilføj følgende linje:

C:\BOOTSECT.LNX="Linux - Red Hat Distribution 6.0"

Sæt derefter filens attributter igen:

ATTRIB +s +r BOOT.INI

Filen BOOTSECT.LNX skal fremstilles fra Linux. Først skal vi finde frem til navnet på Linux-partitionen i Linux. Udfør kommandoen df. Notér navnet på filsystemet for rod-disken ("/"). I det følgende ses på et eksempel med to SCSI diske (deraf sda og sdb).

Eksempel:

[root@linus /root]# df
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/sda2             692011  356539   299728     54%   /
/dev/sda1             618288  424384   193904     69%   /dos
/dev/sdb1             208592  196616    11976     94%   /dos2
/dev/sdb3             513808  426136    87672     83%   /dos3

Navnet på Linux-partitionen er forskelligt fra system til system. I eksemplet ovenfor er navnet på Linux-roddisken /dev/sda2. Nu skal BOOTSECT.LNX fremstilles. Dette gøres ved at kopiere 512 bytes fra starten af Linux-partitionen /dev/sda2 til filen BOOTSECT.LNX. Udfør kommandoerne:

[root@linus /root]#  dd if=/dev/sda2 of=/bootsect.lnx bs=512 count=1
[root@linus /root]#  mv /bootsect.lnx /dos/bootsect.lnx

Har du ikke adgang til den DOS-partition, hvor du booter fra (eller er det NTFS formatteret), kan du i stedet kopiere filen ud på en floppy disk med brug af mcopy.

[root@linus /root]#  dd if=/dev/sda2 of=/bootsect.lnx bs=512 count=1
[root@linus /root]#  mcopy /bootsect.lnx a:

Genstart derefter din maskine. Hvis du vælger at reinstallere LILO i Linux, skal du huske at fremstille en ny BOOTSECT.LNX-fil.

Nu kan Linux' bootmanager startes fra Windows NT's OS Loader, således at du kan opnå valgfrihed - også med Windows NT!

Hvis du vil vide meget mere om MBR-placering, bootmanagere og partitioner, kan det anbefales at læse HowTo-guiden om LILO. På Red Hat Linux-CD'en hedder filen /doc/HOWTO/mini/LILO