Found at: http://linmag.no/article/articleprint/425/

Oppstart av Linux og grafisk arbeidsmiljø


Oppstart av Linux og grafisk arbeidsmiljø

I LINUXmagasinet nr. 5/2001 introduserte vi denne serien. Dette er ikke en ny variant over temaet "hvordan installere Linux", vi begynner der den forannevnte stopper, altså her: "Jaha, nå er Linux installert, men hva gjør jeg nå ?"

Det første man må være klar over, er at Linux ikke er som Windows. Dette gjelder for alt fra oppbygging av filsystemet til hvordan ting gjøres og hvordan de ser ut. For eksempel: Installerer man Windows får man med et grensesnitt automatisk, nemlig Windows og kun Windows. Operativsystemet Linux er terminalbasert, dvs. at man ikke trenger noe ressurskrevende grensesnitt for å bruke det. På denne måten begrenser man ressursbruken til de oppgavene man selv mener er viktige, og man slipper dermed å sløse bort cpu-cycler og RAM på et grafisk grensesnitt på en maskin hvor dette aldri ville bli brukt.
En mail-, web- eller filserver er gode eksempler på slike. Maskinen jobber enda bedre med sine primæroppgaver dersom den slipper å vise fancy grafikk til ingen nytte. Dette betyr dog IKKE at Linux er et dårligere alternativ enn Windows, tvert i mot ! Ikke bare kan du bestemme hvorvidt maskinen skal ha et grafisk grensesnitt , du er faktisk i en verden hvor du kan velge blant mange grensesnitt til Linux's grafiske arbeidsmiljø, X Window. Vi kommer tilbake til X litt senere i artikkelen.

LILO
Det første vi skal snakke litt om er LILO, eller Linux Loader. Nettopp denne delen av Linux er ditt første møte med et installert Linux-system. Det finnes en annen boot-loader som kommer med Red Hat; GRUB, men vi benytter her LILO, siden den er velkjent. Da er det alltid lettere å få hjelp i krisesituasjoner.
LILO består av en samling programmer og konfigurasjonsfiler, og må ikke forveksles med /sbin/lilo som er ett av disse. Den startes av BIOS i maskinen, og er ansvarlig for booting av Linux-kjernen som jo er det som egentlig er Linux. Kjernen ligger, sammen med LILO’s map-fil (hvor LILO lagrer informasjon om kjernens plassering ved kjøring av /sbin/lilo etter rekonfig. av /etc/lilo.conf eller bytte av kjerne) i katalogen /boot, og heter som regel noe slikt som vmlinuz-2.x.x. hvor tallet og x’ene tilsvarer versjonsnummeret. På min laptop med en original Red Hat 7.2 kjerne (kernel på engelsk) er dette vmlinuz-2.4.7-10. Dvs at jeg har en 2.4.7-kjerne med Red Hats interne versjon 10. Denne kjernen er som regel aldri over 1 MB i størrelse, og skulle den mot formodning nærme seg denne grensen, betyr det at du neppe har laget den selv. I såfall har du nok inkludert litt mye i selve kjernen i stedet for som moduler som Linux kan laste inn i kjernen ved behov. Disse modulene er det så opp til kjernen selv å kaste ut igjen når behovet ikke lengre er tilstede. Den operasjonen du må igjennom for å lage din egen kjerne, tilpasset nettopp din maskin skal vi komme tilbake til i en senere artikkel i denne serien.

Når Linux starter å boote, ser du bokstavene LILO på skjermen. De står en liten stund før bootingen fortsetter automatisk. Årsaken til at det stopper opp er for å gi deg muligheten til å tilføye LILO, og det vil si i praksis kjerne og moduler ekstra kommandoer dersom din maskin har spesielle behov. Dette kan være f.eks. et behov for styring av RAM ved å sette opp mem=128MB dersom Linux mot formodning bare ser 64MB av minnet automatisk. Du kan også komme ut for tilfeller hvor nettverkskort o.l. behøver spesielle settinger, eller at harddisken din behøver en mer inngående geometrisk beskrivelse før den lar seg boote fra, og da er LILO der for å gi deg denne muligheten. Nå er det imidlertid sjeldnere og sjeldnere at slike ekstra kommandoer er nødvendige, i alle fall på nyere maskiner. Har du en eldre PC kan det nok tenkes at den må “lokkes litt” i form av en ekstra kommando eller to. Jeg har opplevd dette spesielt i forbindelse med nyere kjerner med en litt mer sofistikert minnestyring enn den man hadde for få år siden. Man kan slippe denne manuelle kontrollen av LILO ved å benytte LILOs konfigurasjonsfil /etc/lilo.conf. Denne kan selvfølgelig redigeres ved hjelp av “vi” som alle de andre av Linux’s tekstbaserte konfigurasjonsfiler. En fordel ved å legge disse ekstra tingene inn i /etc/lilo.conf er at du da kan reboote maskinen via nettverk og unngå at den henger seg opp bare fordi du ikke kan nå tastaturet. Et eksempel på en slik modifisert fil kan være slik:

Eks. 1

prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.7-10
label=linux
initrd=/boot/initrd-2.4.7-10.img
read-only
root=/dev/hda6
append="mem=128MB”

Eks. 2

prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.7-10
label=linux
initrd=/boot/initrd-2.4.7-10.img
read-only
root=/dev/hda6
append="mem=128MB hdc=ide-scsi”

I Eks. 1 har jeg lagt til en append-setning hvor jeg forteller kjernen at min maskin har 256 MB RAM. I eks. 2 har jeg i tillegg sagt at jeg har en IDE CD-ROM som jeg ønsker å emulere som en SCSI CD-ROM. Dette må imdlertid komme i tillegg til andre triks i kjernen, men det kommer vi tilbake til senere. Etter en slik forandring av /etc/lilo.conf MÅ du kjøre “/sbin/lilo” for å gjøre forandringen kjent for LILO. Det som da skjer er at /sbin/lilo oppdaterer maskinens Master Boot Record og filen /boot/map med den nye informasjonen. Dersom du ikke gjør dette vil alt forbli ved det gamle og du må fortsatt taste inn kommandoene manuelt.

En annen variant av en slik /etc/lilo.conf ville være en som inkluderer eventuelle DOS- eller Windows-partisjoner du måtte ønske å kunne boote opp utenom Linux. Dersom du ikke la disse inn ved installasjonen av Linux kan du gå frem slik:

Vi går utfra at dette systemet ligger på første harddisk og på Linux-språket blir dette /dev/hda. Riktig !! Slave-disken på IDE-kontroller 0 blir /dev/hdb osv..... Bruk nå “/sbin/fdisk /dev/hda” og trykk “p” for å få se partisjonstabellen. Du vil da se noe slikt:

-------------------------------------------------------------------------------
The number of cylinders for this disk is set to 2432.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 2432 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 6 48163+ 83 Linux
/dev/hda2 7 643 5116702+ 83 Linux
/dev/hda3 644 834 1534207+ 82 Linux swap
/dev/hda4 835 2432 12835935 5 Extended
/dev/hda5 835 961 1020096 83 Linux
/dev/hda6 962 2432 11815776 83 Linux

Command (m for help):
-------------------------------------------------------------------------------

Dersom du da har noen partisjoner hvor Id System er satt til VFAT, FAT eller NTFS så vil dette være den partisjonen du er ute etter. Feks. kan vi si at dette er en NT-partisjon på /dev/hda1. Trykk så “q” for å avslutte fdisk. I /etc/lilo.conf legger du da inn følgende:

other = /dev/hda1
label = WinNT
table = /dev/hda

Fullt ferdig kan da konfigurasjonsfilen se noe slikt ut:

Eks. 3

prompt
timeout=50
default=WinNT
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.7-10
label=linux
initrd=/boot/initrd-2.4.7-10.img
read-only
root=/dev/hda6
append="mem=128MB hdc=ide-scsi”

other = /dev/hda1
label = WinNT
table = /dev/hda

Kjør så /sbin/lilo og du kan velge hvilket system du vil boote i det LILO dukker opp ved å skrive WinNT på LILO’s kommandolinje. Ved å forandre default-linjen i /etc/lilo.conf til default = WinNT vil NT bootes automatisk og du må angi linux på LILO’s kommandolinje istedet.

Dersom du ønsker å vite mer om LILO nå; Bruk kommandoen “man lilo” eller “man lilo.conf”, eller les det du finner i /usr/doc/lilo-(versjonsnr)


X Window
I starten av artikkelen snakket jeg litt om hvordan man i Linux kan forandre det grafiske grensesnittet totalt. Dette er en forandring som ikke må forveksles med Windows’ bruk av Themes (grafiske temaer) siden man ved bytte av WindowManager totalt forandrer arkitektur og funksjonalitet, og ikke bare det grafiske utseendet.

Et slikt grensesnitt kalles en WindowManager (Vindushåndterer), heretter kun WM. Av slike kunne jeg nevne KDE, Gnome, WindowMaker, Enlightenment, Blackbox, twm m.m.
Det må altså tre ting til for å få et grafisk grensesnitt på Linux; Linux selv selvfølgelig, deretter X som i tillegg til å være selve "driveren" for skjermkortet ditt også sørger for at du kan legge opp vinduer slik du er vant til fra Windows. I tillegg til dette er X den delen av systemet som gjør det mulig for deg å kjøre et program på èn maskin, mens du viser vinduet med dette programmet på en helt annen maskin. Dette var ikke engang toppen av isberget av hva X kan gjøre for deg. Imidlertid ser ikke X særlig innbydende ut i "rå tilstand". For å tilføre den et innbydende og funksjonelt utseende legger man på en WM som består av diverse programmer som kontrollerer hvordan X oppfører seg, setter opp vindus-kontroller (klikkbokser for minimere, maksimere osv), paneler med startmenyer, etablerer virtuelle arbeidsflater (desktop’s), setter opp bakgrunnsbilder og mye, mye mer. Du ser i denne artikkelen skjermbilder av desktop's med KDE2, Ximian Gome 1.4 og Enlightenment 0.16.5. Alle har fordeler og ulemper, og du velger etter din egen smak. Jeg vil dog tro at KDE2 virker tiltalende for en nykommer fra Windows. Er du glad i å kunne finjustere den minste detalj i hvordan ting ser ut, ja da er definitivt Enlightenment veien å gå. De som ønsker noe traust og sikkert med god støtte fra produsent bør absolutt ta en titt på Ximian Gnome.

I Red Hats tilfelle vil Gnome installeres automatisk, dersom man ikke spesifikt ber om noe annet, og i tillegg settes X opp slik at man booter direkte inn i en X-basert innloggingssesjon. Skulle du ha valgt ikke å legge inn automatisk oppstart av X, ja da står du der etter installasjonen og det eneste du ser etter å ha bootet opp er en svart skjerm som ber deg taste inn brukernavn og deretter et passord. Slapp av, hjelpen er underveis ! Dette brukernavnet er felles for alle ny-installerte Linux-systemer; root
Passordet må du huske. Du ble bedt om å oppgi et slikt for nettopp root-brukeren da du installerte systemet. Skriv inn dette og trykk enter.
HINT:
Trykk Ctrl-Alt-Del slik at Linux rebooter. Idet LILO dukker opp på skjermen skriver du “linux single” og trykker enter. Dette vil ta deg til en "nød-prompt" hvor du tilslutt automatisk dumpes i et "root-skall". Du tildeles da en kommandolinje i et begrenset Linux-system (ikke fullt ut bootet system) med root-rettigheter. Her kan du ved hjelp av små teksteditorer redigere de filer hvor du har gjort tabben(e) som medfører at systemet ikke starter opp slik det skal. ”vi” er en slik editor som vanligvis blir installert dersom man ikke velger den ut selv. For å finne ut hvordan den brukes skriver du “man vi”. Du burde da få opp en beskrivelse av dette. Når du mener at du er klar skriver du så “vi /etc/shadow”. I denne filen ligger de krypterte passordene for alle brukerne. Disse er igjen hengt opp mot filen /etc/passwd hvor resten av bruker-infoen ligger. For igjen å kunne bruke root-brukeren sletter du det krypterte passordet i den linja som tilhører root slik:

FØR:
root:$rµrÖéüÒXng3pKYea9qGzvlwoi2UA/:11673:0:99999:7:::

ETTER:
root::11673:0:99999:7:::

Når dette er gjort lagrer du filen og avslutter “vi” med å trykke Shift-Esc, og deretter “wq” (write and quit) før du trykker enter. Nå kan du legge inn nytt passord for root ved å skrive “passwd root” og følg anvisningene.

For deg som bootet direkte inn i X er det enkelt å se hvilken WM som i allefall er installert. Dette ser du av logoen på innloggingsboksen. Sannsynligvis er det Gnome (Ikke Ximians versjon. Se lengre ned i artikkelen). Skulle dette være KDE2 er det like greit. For å komme videre legger du inn brukernavn og passord. Enten for root eller for deg selv dersom du opprettet en egen konto under installasjonen. Klikk så på Start eller Go avhengig av språkdrakten du valgte inn under installasjonen. For deg som bootet inn i en svart skjerm må vi nå få startet X. For enkelhetsskyld antar vi at du har alt du trenger installert i første omgang. Hvilken WindowManager det er, er av mindre betydning nå. Kjør kommandoen “startx”. Du vil nå se endel beskjeder flagre over skjermen og forhåpentligvis dukker det opp en grafisk desktop. Dersom X ikke vil starte skikkelig, skyldes det sannsynligvis at X ikke finner noen referanser til hva slags WM den skulle starte for deg. Dette krever litt mer forklaring.

Siden Linux er et flerbruker operativsystem med strenge regler for hvem som får gjøre hva, blir alt litt mer komplekst enn i en-bruker systemer (f.eks. de fleste Windows-varianter). Som bruker har du ikke adgang til å lagre/slette filer i noen annen katalog enn i den som heter /home/(ditt brukernavn), samt i /tmp. I alle andre kataloger kan du enten lese/skrive/kjøre filer eller kombinasjoner av disse, alt avhengig av hva root har satt opp av rettigheter for deg og andre. Dette er ikke gjort for å gjøre ting vanskelige for deg, men for å beskytte deg mot det du selv eller andre kunne ødelegge med eller uten overlegg. Dersom du selv ikke legger inn ting i din hjemmekatalog som er uunnværlig, vil det meste inne i denne kunne slettes uten at det medfører noe annet enn en ny runde med oppsett av diverse programmer. Irriterende nok, men du har iallfall ikke ødelagt for andre enn deg selv. Operativsystemet vil fremdeles være like operativt for alle andre brukere.

Når det gjelder oppstart av X vil root kunne definere en obligatorisk (default) WM for alle brukerne, ved å sette opp en fil som heter /etc/X11/xinit/xinitrc. I denne definerer han så bl.a. hvilken WM som er standard for alle. Du har mulighet til å overstyre dette oppsettet ved å sette opp din egen versjon av denne filen. Dette gjøres enkelt ved at man på kommandolinjen, eller i et terminalvindu kjører kommandoen “vi .xinitrc”. Legg merke til "dotten" foran filnavnet! Denne er MEGET viktig, og alle slike konfigurasjonsfiler i din egen katalog vil komme til å få slike tegn i starten av filnavnet. Dette skiller dem fra de globale konfigurasjonsfilene, og i tillegg gjør dette dem "usynlige" for "vanlige" list-kommandoer i Linux som “ls”. Også i filbehandlere vil de i utgangspunktet ikke vises. Man må tilføre ekstra flagg som feks “ls -a” (list all) for å se dem. Dette hindrer at du sletter dem ved et uhell. Ok, kjør nå “vi .xinitrc” og legg så inn feks “exec gnome-session” for å starte Gnome, eller “exec startkde” dersom du vet at KDE er installert. Lagre filen og kjør “startx” dersom X ikke allerede er oppe.

For de som benytter grafisk innlogging vil det kanskje fortone seg litt merkelig at dersom man har installert flere WindowManagere, og systemet er rett konfigurert så vil man kunne velge hvilken man vil starte i samme boksen hvor man skriver inn brukernavn og passord. Alle disse står da ikke nevnt i noen av de tidligere xinitrc eller .xinitrc. Hvor kommer så denne infoen fra ? Jo, når man enten selv eller systemet har satt opp automatisk booting inn i X er det andre filer som styrer oppsettet av WM. Dette starter med at det i /etc/inittab settes opp at standard "run-level" (systemets funksjonsnivå) skal være 5. Dette tilsier for Red Hat Linux (ikke alle andre bruker samme oppsettet !!) at X11 (X Window) skal startes etter at alle andre prosesser er startet. Dette defineres i nevnte fil ved at linjen id:3:initdefault: settes til id:5:initdefault: Det som så skjer er at det i slutten av denne filen står en setning som ser slik ut: x:5:respawn:/etc/X11/prefdm -nodaemon

Dette forteller systemet at dersom standard run-level er 5 så skal det startes et grafisk innloggingsprogram som er definert via filen /etc/X11/prefdm. -nodaemon angir at prgrammet ikke skal legge seg i bakgrunnen siden man da ikke vil få tilgang til å skrive inn noe i det. Det vil simpelthen ikke vises. I den sistnevnte filen prefdm sjekker systemet om du har satt opp noen favoritt innloggingsmanager som feks kdm for KDE, gdm for Gnome eller xdm som er den gamle for Linux/Unix. Du kunne like gjerne endret den siste linjen i /etc/inittab selv til å se slik ut: x:5:respawn:/usr/bin/kdm -nodaemon for å starte KDE's versjon dersom KDE er installert og kdm ligger i katalogen /usr/bin. Likedan for evt bruk av gdm.

OBS! Vær meget nøye ved modifikasjoner i /etc/inittab, og spesielt ved oppsett av run-level. Setter du feks id:6:initdefault: så vil Linux boote opp til et visst nivå, for så å reboote automatisk i en evig runddans. For å bli kvitt en slik feil, må du boote opp med en rescue-disk (floppy eller CD-ROM), deretter mounte den delen av filsystemet som inneholder /etc (normalt ligger dette direkte på / -partisjonen), for så å redigere /etc/inittab. Et eksempel på en slik hendelse:

1. Boot opp med Red Hat CD-ROM #1 (eller en annen form for rescue boot-disk)
2. Velg rescuemode fra menyen (systemet vil nå boote opp og automatisk mounte original / for deg)
3. For de som ikke har siste versjon av Red Hat eller andre distribusjoner som har automatisert mounting av eksisterende partisjoner er dette ingen krise. Bruk fdisk til å finne ut hvilken partisjon som mest sannsynlig inneholder / partisjonen din. Dersom du ikke gjorde noe selv under installasjonen vil dette mest sannsynlig være /dev/hda1 (/dev/hda er første harddisk, og /dev/hda1 er første partisjon på denne disken. Booter du fra en SCSI-disk vil dette i såfall bli /dev/sda1). Bruk så kommandoen “mount -t ext2 /dev/hda1 /mnt” til å henge det originale filsystemet på nødløsningen satt opp av rescue-disken.

For at kdm, gdm eller xdm skal vite hvilken WM”s du har installert kommer enda en fil inn i bildet. I /etc/X11/xdm/Xsession ser du på slutten noen slike linjer:

case in
failsafe)
exec -l $SHELL -c "xterm -geometry 80x24-0-0"
;;
gnome)
exec -l $SHELL -c "gnome-session"
;;
kde|kde1|kde2)
exec -l $SHELL -c "/usr/share/apps/switchdesk/Xclients.kde"
;;
twm)
# fall back to twm
exec -l $SHELL -c "/usr/share/apps/switchdesk/Xclients.twm"
;;
esac

Disse vil dukke opp i innloggingsboksen i enten kdm, gdm eller xdm. Slik vil du kunne angi at du vil starte X med den ene eller andre WindowManager uten mere dikkedarer. Man kan da forandre utseende på Linux'en sin uten større inngrep enn et klikk med musen.

Du skulle nå sitte med en Linux-pc, ferdig bootet og med X Window startet. Hvorvidt du befinner deg i en KDE2- eller Gnome sesjon er av mindre betydning. Prøv gjerne flere slik at du kan danne deg et bilde av hvilken du liker best. Med Red Hat 7.2 kommer det mange. De med flest muligheter, og som jeg vurderer som best å starte med er KDE2, Gnome, WindowMaker og Enlightenment. De er ikke rangert etter noen spesielle preferanser ! For å hjelpe deg litt på vei skal jeg si noen ord om dem alle uten å gå i detalj.

KDE2
Meget integrert arbeidsmiljø. Hele systemet er nykonstruert og satt sammen for best mulig samarbeid melleom de forskjellige programmene som danner KDE2. Består av alt fra selve Windowmanageren til kontorapplikasjoner, internet programmer, konfigurasjonsprogrammer m.m. Utvilsomt den WM hvor de fleste Windows-brukere ville føle seg litt “hjemme” i Linux. For en garvet Linux-bruker vil nok KDE2 kanskje være litt for dominant, men smak og behag.....

Gnome 1.4
Gnome ligner på KDE2, ikke utseendemessig, men arbeidsmiljøet inneholder omtrent de samme komponenter. De er bare satt sammen på en annen måte, ved hjelp av andre biblioteker og med en annen filosofi. Gnome har sitt utspring i GNU, og har således hele tiden vært basert på GPL kildekode. Dette har ikke vært tilfelle for KDE-prosjektet som benytter bibliokteket Qt fra norske Trolltech. Tidligere var KDE utelatt fra mange av Linux-distribusjonene fordi Qt ikke var GPL. Skal man bruke Gnome som arbeidsmiljø, ville min prioritering etter oppstart av X være slik:

1. Sette opp internett
2. Besøke web-stedet www.ximian.com
3. Laste ned/installere Ximian Gnome for nettopp din Linux-variant.

Ximian har spesialisert seg på å lage en utmerket distribusjon av Gnome som inneholder alt man trenger av konfigurasjonsverktøy, kontorapplikasjoner, internet programmer m.m. En full installasjon er på rundt 160 MB, så en god internett-forbindelse er bra.
I neste utgave vil jeg ta for meg hvordan du setter opp Linux-boksen din i nettverk, kobler til internett via modem, GSM mobiltelefon m.m.




| Tilbake til vanlig sidevisning | Tips en venn om denne artikkelen |