LILO (LInux LOader) konfigurasjon Introduksjon 11.. FFoorrmmååll _L_i_n_u_x kan starte ved bruk av forskjellige mekanismer. Oppstart innvolverer å leser inn og plassere i minnet en kjernefil (ofte kalt zImage eller vmlinuz), for så å kjøre den. Mens dette høres enkelt ut så er det alltid noen underligheter som må tas hensyn til. Dette er grunnen til at oppstart av operativsysemer er en slags ``sortekunst''. Ulikt mange oppstartsprogrammer som følger med kommersielle OS, er _L_I_L_O fullt ut dokumentert og en av de mest versatile boot-loadere med god margin. Vi skal først prøve å beskrive hva som er involvert og så skal vi si litt om hva du kan gjøre med alt dette. 22.. LLIILLOO pprriinnssiippppeerr Uten å gå for langt i dybden, la oss bare forklare hva som ligger i å boote en PC. 22..11.. DDeenn fføørrssttee iinnnnbbyyggggeerreenn:: BBIIOOSSeenn Når en PC starter så er _B_I_O_S, som ligger i _R_O_M, det første programmet som tar kontroll. Etter å initialisere det meste av maskinvaren i datamaskinen, forsøker den å kjøre et lite program, vanligvis enten fra den første sektoren av disketten eller den første sektoren av den første harddisken. Dette programmet kalles _M_a_s_t_e_r _B_o_o_t _R_e_c_o_r_d eller _M_B_R på kort. 22..22.. FFrraa MMBBRR eenn ppåå hhaarrddddiisskkeenn ttiill OOSS eett _M_B_Ren på harddisken gjør, ved bruk av BIOS, en av to ting. Den første muligheten (som MBRen inkludert med DOS) er at den lokaliserer den aktive partisjonen og laster den første sektoren av _d_e_n partisjonen. Denne sektoren inneholder et lite program som vet litt mer om de indre detaljer til _O_Set som holder til på den partisjonen. Den går så videre til å laste enten basiskomponentene til systemet, eller ganske enkelt en mer sofistikert boot-loader som vil gjøre ferdig jobben. Alternativt kan MBRen til harddisken laste informasjon direkte fra en av partisjonene, og bruke denne til å laste OSer på enhver partisjon. LILO kan konfigureres på denne måten; OS/2 boot-loaderen og Partition Magic, to andre velkjente boot-loadere, gjør det samme. 22..33.. DDiisskkeetttteennss bboooottsseekkttoorr Bootsektoren på en diskett kan sammenlignes med boot sektoren på den aktive partisjonen. Den fortsetter normalt med å laste OSet som er på disketten. 22..44.. OOgg LLIILLOO _L_I_L_O er ganske fleksibel, og dette er hvorfor. · Den kan installeres enten som en erstatning for _M_B_Ren eller som bootsektoren på en partisjon, og fremdeles starte _L_i_n_u_x og de fleste andre OSer fra enhver partisjon på enhver disk. · Den kan installeres på bootsektoren på disketten og fremdeles utføre sin hovedoppgrave, å starte nesten hva som helst på harddisken(e). · Ved siden av bootsektoren, har den ingen gjemte filer, og bruker heller ingen spesiell partisjon. Videre kan konfigurasjons- filene installeres på enhver partisjon, selv de som ikke er relatert til _L_i_n_u_x, selv i en underkatalog av en _D_O_S partisjon. · Den kan starte flere forskjelloge kjernekonfigurasjoner og til og med flere forskjellige kjerner. · Den kan starte mer enn en _L_i_n_u_x installasjon. · Den kan starte linux på enhver disk. 22..55.. LLIILLOO,, LLiinnuuxx,, oogg vveerrddeenn Når man installierer _L_i_n_u_x på et system med flere OS (ved siden av _L_i_n_u_x), bruk dette som en tommelfingerregel: Installer og konfigurer oppstart for alle de andre OSene først, fordi de er mindre fleksible. Det vil da være enklere å sette LILO opp til å starte de andre OSene 33.. LLIILLOO kkoonnffiigguurraassjjoonnssddiiaallooggeenn Nå som du vet litt om hva _L_I_L_O kan gjøre, la oss se hvordan du kan konfigurer den ved å bruke _L_i_n_u_x_c_o_n_f. Hoved- konfigurasjonsdialogen er delt inn i seksjoner. Her er en introduksjon til hver seksjon. 33..11.. GGlloobbaallee ffuunnkkssjjoonneerr Denne seksjonen tar seg av hvordan _L_I_L_O installeres. 33..11..11.. SSllåå aavv LLIILLOO Hvis du starter ditt _L_i_n_u_x system uten _L_I_L_O, kan det hende at du synes _L_i_n_u_x_c_o_n_f er litt enerverende da det prøver å sørge for at _L_I_L_O er riktig satt opp til alle tider. Du kan slå av _L_I_L_O støtten fra _L_i_n_u_x_c_o_n_f når som helst. Dette virker kun inn på _L_i_n_u_x_c_o_n_f. Det gjør ingenting mer. Det vil ikke AV-installere _L_I_L_O. Det bare sier til _L_i_n_u_x_c_o_n_f ``stopp med å sjekke lilo''. 33..11..22.. IInnssttaalllleerr bboooottsseekkttoorr ppåå _L_I_L_O bringes til liv ved oppstart gjennom å kjøre et bittelite program, kalt bboooottsseekkttoorreenn. Dette programmet må være installert på et strategisk sted. Listen over valg for dette feltet gir deg en liste over gyldige valg sortert etter preferanse. Hvis _L_i_n_u_x er den aakkttiivvee partisjonen spiller det ikke stor rolle. Hvis ikke, eller hvis din _L_i_n_u_x partisjon ikke ligger på den første harddisken, må du installere bootsektoren enten på master boot record, (MBR), på den første harddisken, eller på diskett. Legg merke til at installasjon av bootsektoren på en oppstartsdiskett fremdeles er ganske raskt, fordi bare en sektor leses fra den. Alle andre filer lever fremdeles på _L_i_n_u_x-partisjonen på din harddisk. Hvis du har en annen bootmanager (_O_S_/_2 _b_o_o_t_m_a_n_a_g_e_r_e_n er en, Partition Magic en annen), så er det trygt å installere bootsektoren rett på linux-partisjonen. Du vil måtte fortelle din andre bootmanager om denne nye partisjonen. _O_S_/_2 _b_o_o_t_m_a_n_a_g_e_r_e_n kan starte (som LILO) linux selv om det er lokalisert på en sekundær harddisk (ikke den primære). 33..11..33.. BBiiooss--ooppppssttaarrttssmmoodduuss Sies å starte fortere. Vites å ikke virke på noen maskiner. Jeg har ingen erfaring med det. 33..11..44.. OOvveerrsseettttiinngg aavv ooppppssttaarrttssttaabbeellll LILO lager en tabell som lar boot-loaderen lokalisere kjernefilene Denne kodingen gjøres enten som spor/hode/sektot, eller som et lineært blokknummer. På noen SCSI-kontrollere virker ikke den første strategien. Hvis du opplever dette, prøv lineær modus. De fleste moderne datamaskiner virker fint når du bruker er lineært blokknummer. 33..11..55.. PPrreesseenntteerr LLIILLOO--kkoommmmaannddoolliinnjjeenn Med dette valget vil LILO vise kommandolinjen. Dette valget er på som standard. LILO boot: Herifra kan du · Starte et annet OS eller en annen konfigurasjon · Gi oppstartsparametere til kjernen På kommandolinjen kan du velge en konfigurasjon; trykk TAB tasten for å få en liste med konfigurasjoner. Skriv inn navnet på en konfigurasjon eller bare trykk tasten for å velge standard konfigurasjonen. Hvis du trenger å gi oppstartsparametere til kjernen, vil du måtte skrive inn navnet på konfigurasjonen først, selv om det er standard konfigurasjonen. 33..11..66.. TTiiddssaavvbbrruudddd ffoorr kkoommmmaannddoolliinnjjeenn Uten tidsavbrudd, vil LILO vente for alltid ved kommandolinjen. Du kan spesifisere et tidsavbrudd som LILO vil starte opp med standard konfigurasjonen etter. Forvalgt tidsavbrudd er 5 sekunder. 33..11..77.. TTiiddssaavvbbrruudddd ffoorr ooppppssttaarrtt LILO kan starte opp med en gang eller vente en tid før vising av boot: kommandolinjen (hvis det er konfigurert til å vise kommandolinjen) eller oppstart (hvis det ikke er konfigurert til å vise kommandolinjen). I denne venteperioden kan du stoppe oppstarts- sekvensen ved å trykke shift-tab; LILO vil da gi deg den normale boot: kommandolinjen. Hvis du slår av kommandilinjen, er det anbefalt med et 5 sekunders tidsavbrudd. Ved å bruke 0 slår man av tidsavbruddet. 33..11..88.. MMeellddiinnggssffiill Du må oppgi sti til en tekstfil. Ideelt sett skal teksten være kort og vil fylle skjermen, med _L_I_L_O kommandolinjen nederst. Dette brukes på oppstartsdiskettene til noen av distribusjonene Du kan bruke det, for eksempel til å gi oppstartsinstruksjoner til brukere i en lab eller til familiemedlemmer som kanskje ikke husker hvilke taster brukes. 33..22.. FFoorrvvaallgg Denne seksjonen gir deg den forvalgte konfigurasjonen, som Linuxconf tilegner de forskjellige _L_i_n_u_x-konfigurasjonsoppføringene. Ved å oppgi informasjon her slipper du å skrive den inn gjentatte ganger senere. 33..22..11.. RRoottppaarrttiissjjoonn Du må oppgi hvor _L_i_n_u_x-rotpartisjonen ligger. En pop-up-liste gir deg en liste over alle partisjonene. 33..22..22.. SSttøørrrreellssee ppåå rraammddiisskk Ramdisker brukes på oppstartsdisker for installasjon. De brukes sjelden for fulle konfigurasjoner. De senere utviklingskjernemodulene har gjort ramdisk konfigurerbart ved kjøring. Verdien 0 slår av bruk av ramdisk 33..22..33.. OOppppssttaarrttssmmoodduuss:: SSkkrriivveebbeesskkyytttteett?? Vanligvis er dette valget slått på. For _U_M_S_D_O_S installasjon er det av. _U_M_S_D_O_S installasjonen bruker vanligvis _l_o_a_d_l_i_n til å starte opp i stedet for _L_I_L_O likevel. Hvis ikke du virkelig vet hva du gjør, så la det stå på. Dette er grunnen: Når _L_i_n_u_x starter opp i skrivebeskyttet modus, kan det foreta utvidet inspeksjon av partisjonene uten å berøre dem i det hele tatt. Dette er bra, spesielt hvis oppstarten følger et krasj som har etterlatt partisjonene i en rar tilstand. Hvorfor alt bråket om å ikke røre partisjonen? Vel, _L_i_n_u_x støtter flere tidsstempel per fil. En er "siste aksess dato". Dette betyr at filsystemet endres (data skrives til disken) bare ved å lese filer (som er eksakt det som skjer ved oppstart). Dette siste aksess tidsstempelet er ganske nyttig, men blir plagsomt under oppstart. "Skrivebeskyttet" forteller _L_i_n_u_x at det skal la være å bruke denne oppførselen. Etter at partisjonen er sjekket, går systemet tilbake til "lese og skrive" modus automatisk. 33..22..44.. OOppppssttaarrttssaalltteerrnnaattiivveerr Noen drivere trenger noe informasjon for å initialisere seg på en riktig måte. For eksempel, noen CDROM spillere presenterer seg ikke skikkelig. For å gi beskjed til Linux om å se på din (ganske ødelagte) CDROM spiller som en CDROM spiller, kan det hende du trenger noe slikt som dette: hdc=cdrom Dette vil fortelle Linux at primær IDE-enheten på det andre IDE- grensesnittet (som er, /dev/hdc) er en CDROM enhet. 33..33.. LLiinnuuxx ooppppsseetttt Forvalgsseksjonen følges av flere identiske seksjoner Hver definerer en _L_i_n_u_x oppstartskonfigurasjon. Hver oppstartskonfigurasjon gjentar alle parameterene til forvalgsseksjonen. Du kan enkelt overstyre dem i hver enkelt seksjon hvis du vil endre dem. Den første konfigurasjonen vil bli satt som standard. Dette betyr at _L_I_L_O vil starte opp med denne hvis ikke noe annet oppgis ved boot: kommandolinjen. Bare 3 felt er forskjellig fra forvalgsseksjonen. 33..33..11.. SSlleetttt ddeennnnee kkoonnffiigguurraassjjoonneenn Hvis du haker av denne boksen, vil konfigurasjonen forsvinne når du trykker på aksepter knappen. 33..33..22.. KKjjeerrnneeffiill Dette er stien til kjernefilen som vil starte opp for denne konfigurasjonen. Merk at en kjernefil kan brukes i flere forskjellige konfigurasjoner. 33..33..33.. EEttiikkeetttt Dette er et kort navn som identifiserer konfigurasjonen. Gitt at en kjernefil kan deles av flere konfigurasjoner, så trenger vi en unik identifikasjon. Denne blir brukt når oppstartsprosessen stoppes. _L_I_L_O forventer bare et navn og vil starte opp med den tilhørende konfigurasjonen. 33..44.. AAnnddrree ooppeerraattiivvssyysstteemmeerr _L_I_L_O kan starte nesten hva som helst. For hvert OS du vil starte spesifiserer du bare partisjonen og en etikett. _L_I_L_O laster bare booksektoren til den partisjonen og kjører den. 44.. FFllyyttttiinngg aavv LLIILLOO kkoonnffiigguurraassjjoonnssffiilleerr Noen ganger må man endre på _L_I_l_O's konfigurasjonsfil De gode nyhetene er at (1) de er flyttbare og (2) du kan fortelle linuxconf om det. Bare gå til "List alle konfigurasjonsfiler" menyen, rull ned til /etc/lilo.conf linjen og velg rediger knappen. Skriv inn stien til _L_I_L_O konfigurasjonsfilen. Vær klar over at _L_I_L_O forventer å finne sin konfigurasjons- fil i /etc/lilo.conf. Når man flytter filen, må det gjøres til en katalog som har en etc underkatalog som du vil plassere filen lilo.conf i, for eksempel, /mnt/tmp/etc/lilo.conf. 44..11.. HHvvoorrffoorr ffllyyttttee LLIILLOO ii ddeett hheellee ttaatttt?? Det finnes forskjellige grunner for hvorfor man vil gjøre dette. Her er noen. · Harddisken din har mer enn 1024 sylindre og rotpartisjonen går forbi sylinder 1024. _L_I_L_O bruker BIOS til å laste kjernefilene (blant annet). Hvis kjernefilen ligger over denne 1024 sylinder grensen, vil ikke_L_I_L_O kunne starte opp skikkelig. LILO vil si i fra om dette med en gang under installasjonen. · Rotpartisjonen din er lokalisert på den tredje elle fjerde disken og BIOSen din (igjen) er for gammel og vet ikke om denne andre IDE- kanalen. I dette tilfellet, vil LILO advare deg ved installasjonen at noen BIOSer ikke kan aksessere disken. Ved oppstart vil du få en haug med feilmeldinger. På den andre siden så installerer noen distribusjoner på riktig måte alle filene som trengs for å starte opp i en /boot katalog, som ligger på en separat partisjon hvis rotkatalogen i sin helhet ikke ligger under 1024-sylinder merket. I dette tilfellet trenger du sannsynligvis ikke å flytte LILO i det hele tatt. 44..22.. HHvvoorrddaann ffllyyttttee?? hhvvoorr?? På en maskin dedikert til Linux, hvor du har en stor disk med mer enn 1024 sylindere, vil mange lage en mindre partisjon for basis OSet og en større for data for å forsikre at alle LILOs filer kommer under 1024 sylinder grensen. Dette er ofte plagsomt siden det gjør administrasjonen mer kompleks. Du blir sittende med to partisjoner som er delvis fylt. En annen løsning er å lage en veldig liten partisjon (et par MB) ved begynnelsen av disken og reservere den for _L_I_L_O konfigurasjons- og kjernefiler. På denn måten kan du lage en enkelt stor rotpartisjon som er enklere å administrere. (en kan argumentere med at å lage en enkelt stor partisjone er en dårlig ide siden det er å legge alle eggene i samme kurv. Gitt oppbygningen av EXT2-filsystemet som distribuerer administrasjons- informasjon over hele partisjonen, med replikasjon, så tviler jeg på at dette er relevant lenger). Så, du har en partisjon som passer beskrivelsen. Den er tilgjengelig fra BIOS. Her er stegene som må følges. Tenk deg at denne partisjonen er montert under lilo katalogen og du vil plassere alle konfigurasjonsfilene i roten av denne partisjonen. · mkdir /lilo/etc · cp /etc/lilo.conf /lilo/etc/lilo.conf · mkdir /lilo/boot · cp /boot/* /lilo/boot · cd / · tar cf - dev | (cd /lilo && tar xvf -) · cp /vmlinuz /lilo Du kan aktivere denne flyttede konfigurasjonen slik /sbin/lilo -r /lilo Og du kan gjøre dette med Linuxconf ved å fortelle det at /etc/lilo.conf er nå /lilo/etc/lilo.conf. Fra nå av, ved bruk av Linuxconf, skulle dette være helt usynlig for deg eller hvem som enn administrerer maskinen. 55.. AAlltteerrnnaattiivveerr ttiill LLIILLOO _L_i_n_u_x kan startes opp fra en vanlig diskett ved bruk av loadlin. Alt dette er ikke relatert til _L_I_L_O, men det er bra å vite om det. Tenkt at din _L_i_n_u_x-rotpartisjon er /dev/hdaX... 55..11.. BBrruukk aavv ddiisskkeetttt For å lage en enkel oppstartsdiskett gjør som følger: · cp zImage /dev/fd0 · rdev /dev/fd0 /dev/hdaX · rdev -R /dev/fd0 1 55..22.. BBrruukk aavv llooaaddlliinn For å starte med loadlin (et _D_O_S program), bare kopier kjernefilen til din _D_O_S-partisjon og skriv følgende ved _D_O_S- kommandolinjen: loadlin zimage root=/dev/hdaX ro