Inställning LILO (LInux LOader) Inledning 11.. SSyyffttee _L_i_n_u_x kan startas på olika sätt. Uppstarter handlar om att läsa och placera en kärnfil (kallas ofta zImage eller vmlinuz) i minnet och sedan starta denna. Trots att detta låter enkelt, så finns alltid besynnerligheter som måste hanteras. Detta är anledningen till att uppstart av ett operativsystem är en sorts magi. Till skillnad från många uppstartsladdare, som levereras med vissa andra kommersiella operativsystem, så är _L_I_L_O helt dokumenterat och är en av de mest kapabla laddarna. Först beskrivs vad som ingår och sedan beskrivs vad som kan göras med allt sammans. 22.. LLIILLOO::ss pprriinncciippeerr Utan att gå för djupt beskrivs här vad som gäller vid uppstart av en PC. 22..11.. DDeenn fföörrssttaa iinnvvåånnaarreenn:: BBIIOOSS Det första program som tar kommandot när en PC startas är _B_I_O_S som finns inbyggt i _R_O_M. När det mesta av hårdvaran i maskinen har initierats, så försöker det ladda ett pyttelitet program från antingen den första sektorn på disketten eller den första sektorn på den första disken. Detta program kallas _M_a_s_t_e_r _B_o_o_t _R_e_c_o_r_d eller _M_B_R. 22..22.. FFrråånn MMBBRR ppåå ddiisskkeenn ttiillll OOppeerraattiivvssyysstteemmeett .. _M_B_R på disken med hjälp av _B_I_O_S gör en av två saker: Den första alternativet (som _M_B_R i _D_O_S) är att det lokaliserar den aktiva partitionen och laddar den första sektorn på den partitionen. Sektorn innehåller ett litet program som vet lite mer om _o_p_e_r_a_t_i_v_s_y_s_t_e_m_e_t som finns på partitionen. Programmet fortsätter med att ladda de grundläggande systemkomponenterna eller helt enkelt ladda en mer sofistikerad laddare som slutför laddningen. Det andra alternativet är att _M_B_R på disken laddar information direkt från en av partitionerna och använder denna för att ladda operativsystem från vilken partition som helst. LILO kan ställas in på detta sätt. Laddaren i OS/2 och Partition Magic, som båda är välkända, kan också göra detta. 22..33.. LLaaddddsseekkttoorr ppåå eenn ddiisskkeetttt Laddsektorn på en diskett kan jämföras med laddsektorn på en aktiv partition. Normalt laddas operativsystemet som ligger på disketten. 22..44.. LLIILLOO _L_I_L_O är mycket inställbart, för att.. · Det kan installeras antingen som en ersättning för _M_B_R eller som laddsektorn i en partition och fortfarande ladda _L_i_n_u_x och de flesta andra operativsystem i en godtycklig partition från en godtycklig disk. · Det kan installeras i laddsektorn på en diskett och ändå ladda nästan vad som helst som finns från disk. · Förutom laddsektorn så finns inga dolda filer och inte heller används någon speciell partition. Dessutom kan dess inställningsfiler installeras i en godtycklig partition, även om dessa inte har med _L_i_n_u_x att göra, t ex i en underkatalog i en _D_O_S_- _p_a_r_t_i_t_i_o_n. · Det kan ladda flera olika kärninställningar och t o m flera olika kärnor. · Det kan ladda mer än en _L_i_n_u_x installation. · Det kan ladda _L_i_n_u_x från en godtycklig disk. 22..55.. LLIILLOO ,, LLiinnuuxx ,, oocchh rreesstteenn aavv vväärrllddeenn När _L_i_n_u_x installeras på ett system med flera operativsystem (förutom _L_i_n_u_x) tänk då på denna tumregel: Installera och anpassa alla andra operativsystem först efterssom de inte är så flexibla. Det är då lättare att ställa in LILO för att ladda alla de andra operativsystemen. 33.. IInnssttäällllnniinngg aavv LLIILLOO När du nu vet lite om vad _L_I_L_O kan göra, låt oss se hur du kan ställa in det genom att använda _L_i_n_u_x_c_o_n_f. Den grundläggande inställningen är indelad i delar. Här är en inledning till varje del. 33..11.. ÖÖvveerrggrriippaannddee eeggeennsskkaappeerr LLIILLOO Denna del anger hur _L_I_L_O installeras. 33..11..11.. DDeeaakkttiivveerraa LLIILLOO Om du laddar _L_i_n_u_x utan _L_I_L_O så kan du eventuellt tycka att _L_i_n_u_x_c_o_n_f är lite störande efterssom det försöker göra så att _L_I_L_O är ordentligt inställt hela tiden. Men man kan deaktivera _L_I_L_O från _L_i_n_u_x_c_o_n_f när som helst. Detta påverkar dock enbart _L_i_n_u_x_c_o_n_f. Ingenting annat påverkas. Det avinstallerar inte _L_I_L_O. Det betyder enbart: Sluta med att kontrollera LILO. 33..11..22.. LLaaddddsseekkttoorr iinnssttaalllleerraass ii eenn ppaarrttiittiioonn _L_I_L_O vaknar till liv i uppstartsögonblicket genom ett pyttelitet program som kallas llaaddddsseekkttoorr körs. Detta program måste installeras på ett strategiskt ställe. Fönsterlistan till detta fält ger dig tillgängliga val i lämplig ordning. Om _L_i_n_u_x är den aakkttiivvaa partitionen så har det inte så stor betydelse. I annat fall så måste laddsektorn installeras antingen på MBR i den första disken eller på en diskett. Observera att det fortfarande är ganska snabbt när diskett används efterssom endast en sektor läses från den. Alla andra filer finns fortfarande på hårddisken i Linux-partitionen. Om du har en annan laddare (t ex _O_S_/_2 _b_o_o_t _m_a_n_a_g_e_r eller Partition Magic) så vore det säkrast att installera laddsektorn direkt i linuxpartitionen. Du måste berätta för den andra laddaren om den här partitionen. _O_S_/_2 _b_o_o_t _m_a_n_a_g_e_r kan starta (som LILO) Linux även om det finns på en andra hårddisk (den som inte är den primära). 33..11..33.. BBIIOOSS uuppppssttaarrtt Känt för att vara snabbare men inte fungera på vissa maskiner. 33..11..44.. KKooddnniinngg aavv llaaddddnniinnggssttaabbeellll _L_I_L_O skapar en tabell som låter laddaren lokalisera kärnans filer. Denna kodning görs antingen som spår/huvud/sektor eller som ett linjärt blocknummer. För vissa SCSI-kort fungerar inte den första metoden. Om detta är fallet, pröva med att använda linjär kodning av blocknummer. De flesta moderna datorer fungerar fint med linjär kodning. 33..11..55.. SSkkrriivv LLIILLOO bboooott vviidd uuppppssttaarrtt Med detta alternativ visar _L_I_L_O sin markör. Detta är standardläge. LILO boot: Härifrån kan du: · Ladda ett annat operativsystem eller en annan inställning. · Ange uppstartsparametrar till kärnan. Vid markören kan man antingen välja eller trycka på TAB-tangent för att få en lista över tillgänglilga val. Skriv in önskat val eller helt enkelt för att välja standardinställning. Om du vill ange uppstartsparametrar till kärnan, så måste namnet för kärnan anges först, även om det är standardinställningen. 33..11..66.. FFöörrddrrööjjnniinngg iinnnnaann LLIILLOO bboooott LILO kan startas direkt eller dröja lite innan LILO boot: visas (om inställd att visa markören) eller avvakta (om den inte är inställd för detta). Under denna fördröjning går det bra att avbryta uppstartssekvensen genom skiftad TAB. Då visas LILO:s normala markör: LILO boot:. Om markören deaktiveras så rekommenderas en fördröjning på 5 sekunder. Genom att ange 0 så sker ingen fördröjning. 33..11..77.. VVäänntteettiidd Om väntetid saknas väntar LILO tills val görs. Man kan ange en väntetid efter vilken LILO automatiskt startar standardinställningen. Den förinställda väntetiden är 5 sekunder. Väntetiden anges i tiondels sekunder. 33..11..88.. MMeeddddeellaannddeeffiill Om meddelandefil anges ska det vara sökvägen till en textfil. Bäst är om texten är kort men fyller skärmen så att LILO:s markör LILO boot: kommer längst ner. Detta används för uppstartsdisketter av vissa Linux-distributioner. Man kan t ex använda det för att ge uppstartsinstruktioner till användare i ett labb eller till familjemedlemmar som kanske inte kommer ihåg vilka tangenter som ska användas. 33..22.. ÖÖvvrriiggaa vvaall Denna del anger de förinställda värden som _L_i_n_u_x_c_o_n_f använder för övriga inställningar. Genom att ange det här, behövs informationen inte upprepas senare. 33..22..11.. PPaarrttiittiioonn fföörr rroooott--ffiillssyysstteemm Här måste partitionen för root-filsystem anges. En fönsterlista till detta fält visar alla partitioner. 33..22..22.. SSttoorrlleekk fföörr rraamm--ddiisskk Ram-disk används för uppstart i samband med installation. De används sällan i den färdiga inställningen. Utvecklingen av moduler i kärnan har gjort att ram-diskar kan konfigureras efter uppstart. Noll i detta fält deaktiverar ram-disk. 33..22..33.. UUppppssttaarrttssllääggee:: EEnnddaasstt lläässnniinngg Normalt är denna funktion påslagen. För en _U_M_S_D_O_S-installation är den avslagen. En _U_M_S_D_O_S-installation använder normalt _l_o_a_d_l_i_n för uppstart istället för _L_I_L_O i alla fall. Såvida du inte verkligen vet vad du gör, så låt den vara påslagen. Detta är anledningen: När _L_i_n_u_x startas i läge för enbart läsning så tillåts en grundlig kontroll av partitionerna utan att de rörs på något sätt. Detta är bra, speciellt om uppstarten sker efter en stopp som har lämnat partitionerna i ett felaktigt läge. Varför bekymra sig om att inte röra partitionerna? Jo, _L_i_n_u_x ger stöd till flera tidsmarkeringar per fil. En av dessa är "senaste lästillfälle". Detta betyder att filsystemet har blivit rört (data skrivs till disken) bara genom att läsa filer (vilket är precis vad som händer vid uppstarten). Denna tidsmarkering är mycket användbar men är till bekymmer vid uppstarten. "Endast läsning" gör att _L_i_n_u_x inte skriver något. När partitionen har kontrollerats, så kommer systemet att sätta tillbaka läge till "läsning och skrivning" automatiskt. 33..22..44.. PPaarraammeettrraarr ttiillll kkäärrnnaann Vissa drivrutiner behöver information för korrekt initiering. T ex så identifierar vissa cdrom inte sig själva på ett korrekt sätt. För att tala om för _L_i_n_u_x att se din (något felaktigta) cdrom som en cdrom, så kan eventuellt behövas något som liknar: hdc=cdrom Detta talar om för _L_i_n_u_x att den primära IDE-enheten på det andra IDE- gränssnittet (dvs /dev/hdc) är en cdrom-enhet. 33..33.. LLiinnuuxxiinnssttäällllnniinnggaarr Delen med standardvärden följs av flera lika delar. Var och en anger en _L_i_n_u_x-inställning. Varje inställning upprepar alla parametrar från den första. Man kan överstyra dessa i var och en av delarna för önskad ändring. Den första inställningen blir standardinställningen. Detta betyder att _L_I_L_O startar denna automatiskt om inte annat anges vi uppstarten. Endast tre fält är annorlunda än standarddelen. 33..33..11.. TTaa bboorrtt Om du markerar detta val, så försvinner inställningen i samband med att du trycker på OK. 33..33..22.. FFiillnnaammnn fföörr kkäärrnnaa Detta är sökvägen för den kärna som startas för denna inställning. Observera att en enskild kärna kan användas i flera inställningar. 33..33..33.. EEttiikkeetttt Detta är en kort-namn som unikt identifierar inställningen. I och med att en kärna kan delas i flera olika inställningar, så behövs ett unikt namn. Detta används när uppstartsprocessen har stannat och väntar på inslag. _L_I_L_O förväntar sig enbart en etikett och startar motsvarande inställning. 33..44.. AAnnddrraa ooppeerraattiivvssyysstteemm _L_I_L_O kan starta nästan vad som helst. För varje operativsystem som ska startas ska en partition och en etikett anges. _L_I_L_O laddar helt enkelt laddsektorn i den partitionen och startar upp den. 44.. AAtttt ffllyyttttaa LLIILLOO iinnssttäällllnniinnggssffiilleerr Ibland måste man specialhantera _L_I_L_O:s inställningsfil. En fin nyhet är att den är flyttbar och att man kan tala om det för Linuxconf. Gå till "Lista inställningsfiler", hitta /etc/lilo.conf och och ändra sökvägen. Observera att att _L_I_L_O förväntar sig inställningsfilen under katalog etc. Vid flyttningen av filen måste den flyttas till en katalog som innehåller underkatalogen etc. T ex /mnt/tmp/etc/lilo.conf. 44..11.. VVaarrfföörr ffllyyttttaa LLIILLOO ?? Det finns olika anledningar till att man skulle kunna vilja göra detta. Här är några: · Din disk har fler än 1024 cylindrar och root-partitionen passerar förbi den 1024:e cylindern. _L_I_L_O använder BIOS för att ladda kärnan (bl a). Om kärnan ligger placerad efter den 1024:e cylindern, så kommer _L_I_L_O inte att kunna göra uppstarten korrekt. LILO meddelar detta direkt i samband med installationen. · Din root-partition är placerad på den tredje eller fjärde disken och din BIOS är för gammal och känner inte till denna andra IDE- kanal. I detta fall kommer LILO att varna dig i samband med installationen att vissa BIOS inte kan komma åt disken. Vid uppstarten kommer du att få se en massa felmeddelanden. Å andra sidan, vissa Linux-distributionen installerar alla filer, som behövs i samband med uppstarten, i katalog /boot, som finns i en separat partition, om din root-partition inte helt och hållet befinner sig under den 1024:e cylindern. I detta fall behövs knappast lilo.conf flyttas. 44..22.. HHuurr ffllyyttttaarr mmaann?? VVaarrtt?? På en maskin som uteslutande används för Linux, där du har en stor disk med fler än 1024 cylindrar, så kommer många att föredra att skapa en liten partition för de grundläggande delarna av operativsystemet och en större för data, för att säkerställa att alla LILO:s filer befinner sig under den 1024:e cylindern. Detta är ofta besvärande efterssom det gör hanteringen mer komplicerad. Du kommer att få två partitioner som delvis är fyllda. En annan lösning är att skapa en mycket liten partition (några MB) på början av disken, och reservera denna för _L_I_L_O-inställning och kärnan. På detta sätt kan du skapa en enstaka stor root-partition som är lättare att administrera. (Man kan hävda att det är en dålig ide att man skapa en enstaka stor partition efterssom det placerar alla ägg i en korg. Men med kännedom om EXT2 filsystem som distribuerar styrinformation lite var stans i partitionen, med kopior, så tror jag inte längre detta är relevant.) Så du har en partition som fyller sitt syfte. Alltsammans är tillgängligt för BIOS. Här är några steg att följa. Anta att denna partition är monterad under katalog lilo och att du vill placera alla root-partitionens inställningsfiler i denna partition. · 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 aktivera denna flyttade inställning så här: /sbin/lilo -r /lilo Och du kan göra detta med Linuxconf genom att ändra /etc/lilo.conf till /lilo/etc/lilo.conf. Från och med nu borde detta vara helt osynligt för dig eller någon annan som hanterar denna dator, så länge som Linuxconf används. 55.. AAlltteerrnnaattiivv ttiillll LLIILLOO _L_i_n_u_x kan startas från en vanlig diskett eller genom att använda _l_o_a_d_l_i_n från DOS. Detta är orelaterat till _L_I_L_O men är bra att känna till. Antag att din root-partition för _L_i_n_u_x är /dev/hdaX... 55..11.. AAtttt aannvväännddaa eenn ddiisskkeetttt För att skapa en vanlig startdiskett, gör helt enkelt: · cp zImage /dev/fd0 · rdev /dev/fd0 /dev/hdaX · rdev -R /dev/fd0 1 55..22.. AAtttt aannvväännddaa llooaaddlliinn För att starta med loadlin (ett _D_O_S-program), kopiera kärnan till din _D_O_S-partition och skriv vid _D_O_S-prompten: loadlin zimage root=/dev/hdaX ro