Red Hat Enterprise Linux ved UiO

[ Som en lang HTML-side ]

Trond H. Amundsen

Universitets senter for informasjonsteknologi (USIT)
Gruppe for basis systemdrift (BSD)

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

LINUX is a trademark of Linus Torvalds. RED HAT is a registered trademark of Red Hat, Inc. All other names and trademarks are the property of their respective owners.


Innholdsfortegnelse

1. Konvensjoner for dette dokumentet
2. Introduksjon
2.1. Hva er RHEL?
2.2. Forgreninger av Red Hat Linux
2.3. Hvorfor RHEL på UiO?
3. Ditt ansvar som lokal driftsansvarlig
3.1. Kortfattet versjon
3.2. Lese dokumentasjon
3.3. Meld deg på relevante mailinglister
3.4. Vedlikehold av programvare og operativsystem
3.5. Oppgradering av kjerne
3.6. Følge pålegg fra sentral drift (USIT)
3.7. Holde kontaktinformasjon for maskinen oppdatert og korrekt
3.8. Vurder behovet for backup
4. Automatisk installasjon av RHEL med kickstart
4.1. Hva er kickstart?
4.2. Lage kickstart-fil med ks-generator
4.3. Gjøre kickstart-filen tilgjengelig
4.3.1. Kickstart-fil på diskett
4.3.2. Kickstart-fil på web
4.4. Lage boot-medium for kickstart
4.4.1. Lage boot-CD
4.4.2. Boote fra USB-penn (RHEL4 og RHEL5)
4.5. Installasjon med kickstart
4.6. Etter installasjon
4.7. Partisjonering med LVM
4.8. Aktuelle Linker
5. Manuell installasjon av RHEL fra CD
5.1. Installasjons-CD
5.2. Installasjon
5.3. Første boot
5.4. Etter installasjonen
5.4.1. Steg 1: Monter opp STORE-master
5.4.2. Steg 2: USITifisering
5.4.3. Steg 3: Gi beskjed til unix-drift
5.5. Etter installasjonen
5.6. Aktuelle Linker
6. Konfigurasjon av RHEL
6.1. Legge inn brukere
6.2. Hjemmeområder / Montere NFS-disker
6.3. Aktuelle Linker
7. Oppgradering til RHEL4
7.1. Manuell oppgradering fra CD
7.2. Manuell oppgradering fra nettverk
7.3. Automatisk oppgradering fra nettverk
7.4. Ting å tenke på etter oppgradering
7.4.1. Konvertering til LVM2
7.4.2. Fjerne foreldreløse RPM-pakker
8. Bruk av automounter med automapgenerate
8.1. Automatisk kjøring av automapgenerate fra use.daily
9. Installasjon, oppgradering og fjerning av RPM-pakker i RHEL5
9.1. Red Hat Network (RHN)
9.2. Introduksjon til YUM
9.3. Liste over RPM-pakker
9.3.1. Liste over alle installerte og uinstallerte RPM-pakker
9.3.2. Liste over uinstallerte (tilgjengelige) RPM-pakker
9.3.3. Liste over installerte RPM-pakker
9.3.4. Liste over foreldreløse RPM-pakker
9.4. Sjekke om det er tilgjengelige oppdateringer
9.5. Oppdatere tilgjengelige RPM-pakker
9.6. Installering av RPM-pakker med YUM
9.7. Fjerning av RPM-pakker med YUM
9.8. Informasjon om en RPM-pakke
9.9. Installasjon av 32bit RPM-pakker på 64bit Linux
10. Installasjon, oppgradering og fjerning av RPM-pakker i RHEL3 og RHEL4
10.1. Red Hat Network (RHN)
10.2. Introduksjon til up2date
10.2.1. Liste over uinstallerte RPM-pakker
10.2.2. Liste over alle RPM-pakker
10.2.3. Liste over foreldreløse pakker
10.2.4. Installasjon av en pakke
10.2.5. Installasjon av ekstra kjernepakker
10.2.6. Oppgradering av pakker
10.3. Automatisk oppgradering og kompabilitet
10.4. Oppgradering av kjernen
10.4.1. Finne ut om det er kommet en ny kjerne
10.4.2. Kommando for oppgradering
10.4.3. Fjerne gamle kjernepakker
11. Introduksjon til Logical Volume Management (LVM)
11.1. Hva er LVM?
11.2. Anatomien til LVM
11.2.1. Tegnforklaring
11.3. Lage en volumgruppe
11.3.1. Lage en fysisk partisjon på disken til LVM
11.3.2. Initialisere det fysiske volumet
11.3.3. Lage volumgruppen
11.4. Lage et logisk volum
11.5. Vise informasjon om volumgrupper o.l.
11.6. Finne ledig plass i volumgruppen
11.7. Øke størrelsen på logiske volumer
11.7.1. Red Hat Enterprise Linux 3
11.7.2. Red Hat Enterprise Linux 4
11.8. Mer informasjon
12. Backup av Linux
12.1. Hvordan registrere en maskin i backup-systemet
12.2. Test av backup-klienten
12.3. Aktuelle linker
13. Linux som NIS-server (YP)
13.1. Hva er NIS/YP?
13.2. Hvorfor kjøre NIS-server på Linux?
13.3. Sette opp en Linux-maskin som NIS-server
13.4. Stoppe og starte ypserv
13.5. Fjerne maskinen som NIS-server
13.6. Aktuelle Linker
14. Avanserte emner
14.1. Hvordan identifisere et nett-interface
14.2. Sette full-duplex mode på et nett-interface
14.3. Sette opp virtuelt nettverks-interface
14.4. Bonding av nettkort
14.4.1. Kjernemodul for bonding
14.4.2. Mer enn ett bonding-interface
14.4.3. Konfigurasjon av nett-interface
14.4.4. Dokumentasjon fra Red Hat for RHEL4
14.4.5. Dokumentasjon fra Red Hat for RHEL3
14.5. Statisk routing
14.6. Seriellkonsoll
14.6.1. Konfigurasjon av GRUB
14.6.2. Annen nødvendig konfigurasjon
14.7. Seriellkonsoll på Dell PowerEdge 2950 med DRAC5 management-kort
14.8. Seriellkonsoll på Dell PowerEdge 2850 med DRAC4 management-kort
14.9. Seriellkonsoll på Dell PowerEdge 2650 med DRAC3 management-kort
14.10. Seriellkonsoll på HP ProLiant-maskiner med iLO management-kort
14.11. Justering av kjerneparametre
14.11.1. Parametre for Oracle
14.12. Bruk av automounter
14.13. Bruk av netconsole for å kapre konsollogger
14.14. Lage installasjons-DVD av installasjons-CD-er
15. Spesielt om fellesmaskiner
15.1. Definisjon av fellesmaskiner
15.2. Regler for fellesmaskiner
16. RHEL5 på hjemmemaskin
16.1. Hvem og hva avtalen omfatter
16.2. Installasjon av RHEL på hjemmemaskiner
17. Spesielt for bærbare maskiner
17.1. Nettverksoppsett
17.2. Skru av NIS
17.3. Konfigurasjon av brukere
17.4. Legge inn UiO-bruker
17.5. Montering av hjemmeområder via automount
17.6. Ymse tips og råd
18. Erfaringer med maskinvare
18.1. Personlige arbeidsstasjoner
18.1.1. Dell OptiPlex gx620
18.1.2. Dell OptiPlex gx745
18.1.3. HP dx5750
19. FAQ om Linux på UiO

Pekere til annen dokumentasjon

1. Konvensjoner for dette dokumentet

I dette dokumentet er noen ord i annerledes fonter, størrelser m.m. Disse har spesiell betydning. Under er listet de forskjellige typene som brukes i dette dokumentet, og hva de betyr.

filnavn

Filnavn og navn på kataloger (mapper).

Applikasjon

Navn på applikasjon.

kommando

En kommando som skal gis på kommandolinjen.

opsjon

En opsjon til en kommando.

replaceable

Tekst i eksempler, som er ment erstattet av brukeren, eller av maskinen brukeren sitter på. F.eks. maskinnavn.uio.no.

tast

En tast på tastaturet.

tast+kombinasjon

En kombinasjon av taster.

knapp

En knapp i et program.

Meny i et program

En meny i et program, f.eks. File

Valgalternativ i en programmeny

En meny i et program, f.eks. File, kan inneholde Print....

2. Introduksjon

2.1. Hva er RHEL?

RHEL står for Red Hat Enterprise Linux.

2.2. Forgreninger av Red Hat Linux

Red Hat har gitt ut mange versjoner av Red Hat Linux. Siste versjon er Red Hat Linux 9, hvis levetid utløper 30.april 2004. Red Hat har bestemt seg for at Red Hat Linux skal forgrene seg i to retninger:

  • Red Hat™ Enterprise Linux®
  • Fedora™

Dette betyr at "vanlig" Red Hat Linux ikke lenger eksisterer lenger.

2.3. Hvorfor RHEL på UiO?

RHEL koster penger, men det er ikke en veldig betydelig sum siden det er store rabatter for universiteter og andre læresteder. Ettersom RHEL 3 er svært lik Red Hat Linux 9, og siden vi må støtte RHEL uansett fordi Oracle krever det, har USIT bestemt at vi inntil videre kun støtter RHEL.

Fedora er et helt annet produkt. Denne versjonen oppdateres hyppig og har meget kort levetid. Det betyr at vi ikke kan bruke Fedora på UiO, ettersom de færreste ønsker å oppgradere maskinen opptil to ganger i året.

3. Ditt ansvar som lokal driftsansvarlig

[Advarsel]Under utarbeidelse

Dette dokumentet er under utarbeidelse og kan inneholde feil og mangler.

Dette dokumentet beskriver ditt ansvar som lokal administrator for en eller flere Linux-maskiner. Med lokal administrator menes at du enten er lokal IT-ansvarlig med driftsansvar for Linux-maskiner, eller at du har root-passordet til din Linux-maskin.

3.1. Kortfattet versjon

  • Les dokumentasjonen på Linux-sidene. De inneholder mye informasjon du skal og bør vite om når du drifter en Linux-maskin.

  • Meld deg på relevante mailinglister.

  • Sørg for at vedlikehold, spesielt automatisk oppgradering av programvare via up2date[1] eller yum[2], og Store foregår uten problemer.

  • Oppgrader kjernen ofte. Gamle kjerner inneholder sikkerhetshull og kan være ustabile.

  • Følg pålegg fra sentral drift (USIT).

  • Hold maskinens kontaktinformasjon oppdatert og korrekt.

  • Vurder behovet for backup.

3.2. Lese dokumentasjon

Mye av ansvaret som pålegges deg som lokal administrator for en eller flere Linux-maskiner er beskrevet på Linux-sidene, som dette dokumentet er en del av. Du forplikter deg til å rådføre deg med dokumentasjonen dersom du ikke vet hvordan en administrativ oppgave på maskinen skal utføres, eller dersom du er i tvil om hvilke retningslinjer og regler som gjelder i forbindelse med driftsoppgaver.

Dersom informasjonen du trenger ikke finnes på disse web-sidene, og du mener at den burde ligge her, vennligst ta kontakt med unix-drift slik at vi kan rette det opp. Foruten normal Linux- eller UNIX-kompetanse skal disse web-sidene beskrive normale driftsoppgaver og eventuelle UiO-spesifikke retningslinjer for normale driftsoppgaver.

3.3. Meld deg på relevante mailinglister

Dersom du er lokal IT-ansvarlig skal du være medlem av en driftsliste for avdelingen, mye informasjon fra USIT til lokale administratorer går denne veien. Vi har også en mailingliste linux-drift@uio.no for lokale administatorer av Linux-maskiner. Meld deg på denne. Dette er en mailingliste med svært liten trafikk så det er ikke fare for å bli oversvømt av mail. USIT bruker av og til denne listen for å gi viktig informasjon til alle med driftsansvar for Linux-maskiner, så meld deg på!

3.4. Vedlikehold av programvare og operativsystem

Som lokal administrator har du ansvaret for å sørge for at oppdatering av programvare og operativsystem foregår på normalt vis. Alle Linux-maskiner kjører oppgradering av programvare hver natt, så lenge maskinene er påslått og befinner seg på UiO-nettet.

Du skal sørge for at disse oppgraderingsjobbene fungerer uten trøbbel. Det innebærer blant annet å ikke installere tredjeparts programvare som kommer i konflikt med programvare fra leverandøren (Red Hat). Dersom det er en konflikt i RPM-basen vil oppgraderingene feile og føre til at maskinen blir en sikkerhetsrisiko.

Det skilles mellom normale oppgraderinger, som gjøres automatisk hver natt, og kjerneoppgraderinger, som ikke gjøres automatisk. Årsaken til at kjerneoppgraderinger ikke gjøres automatisk er blant annet at det kreves en reboot for at oppgraderingen skal tre i kraft, dvs. at nyinstallert kjerne tas i bruk.

3.5. Oppgradering av kjerne

Som lokal administrator plikter du å sørge for at maskinen eller maskinene du har ansvar for har en noenlunde oppdatert kjerneversjon. Det oppdages til stadighet nye sikkerhetshull i linux-kjernen, og det kommer fortløpende nye kjernepakker fra leverandøren (Red Hat) som tetter disse sikkerhetshullene.

I normale situasjoner aksepteres det at maskinene kjører forrige versjon av Red Hat-kjernen. Med dette menes forrige Update-versjon av RHEL. Red Hat kommer med ny Update av RHEL ca. hver tredje/fjerde måned. For eksempel er Linux-kjernen for RHEL4 Update 3 "2.6.9-34.noe", mens forrige versjon (Update 2) var "2.6.9-22.noe". Det godtas dermed å kjøre en Update 2-kjerne på et Update 3-system, mens Update 1-kjernen godtas ikke.

Sørg for å følge med på hva som er siste Linux-kjerne, og installer nyeste en gang i blant. Hvordan man oppgraderer kjernen er beskrevet her:

3.6. Følge pålegg fra sentral drift (USIT)

Du forplikter deg å følge pålegg fra sentral drift (USIT). Dette kan være pålegg om oppgradering av kjerne eller Red Hat-versjon, rydding i cron-jobber eller fiksing av diverse feil. I visse tilfeller kan USIT også kreve en fullstendig reinstallasjon av maskinen.

3.7. Holde kontaktinformasjon for maskinen oppdatert og korrekt

Hver maskin skal ha kontaktinformasjon. Denne skal holdes oppdatert og være korrekt, slik at USIT kan forholde seg til denne informasjonen ifm. drift av maskinene. Kontaktinformasjon for en maskin ligger i tre filer under /etc/usit:

Tabell 1. Filer med kontaktinformasjon

FilnavnFunksjon og beskrivelse
/etc/usit/site-admin

Denne filen er obligatorisk og skal inneholde en e-postadresse til systemeier for maskinen. E-postadressen skal fortrinnsvis være en mailingliste, slik at man ikke er avhengig av kun én person. Med systemeier menes den eller de som eier systemet og/eller tjenestene som går på maskinen. I de fleste tilfeller vil dette være e-postliste til lokal driftsavdeling.

/etc/usit/root-mail

Denne filen er valgfri og skal inneholde en e-postadresse hvor teknisk informasjon kan sendes. Dette kan f.eks. være feilmeldinger fra USITs eller lokale scripts/cron-jobber. E-postadressen skal fortrinnsvis være en mailingliste. Denne filen trenger bare å eksistere hvis lokal driftsansvarlig ønsker at teknisk (automatisk genererte) e-poster skal sendes et annet sted enn til det som er spesifisert med site-admin over.

/etc/usit/primary-user

Dersom maskinen er en personlig arbeidsstasjon, skal brukernavnet til vedkommende registreres i denne filen. Den skal altså kun inneholde ett brukernavn, og skal kun eksistere for personlige arbeidsstasjoner. Tjenermaskiner, termstuemaskiner o.l. skal ikke ha denne filen.


3.8. Vurder behovet for backup

Noen maskiner er viktige, eller har viktige data. Når du setter opp en ny maskin, eller lager nye filsystemer på en eksisterende, må du vurdere om dette er noe du har råd til å miste. Dersom svaret er nei, les mer om backup her: Seksjon 12, “Backup av Linux”

4. Automatisk installasjon av RHEL med kickstart

[Notat]Om dette dokumentet

Dette dokumentet beskriver en installasjonsmetode for Red Hat™ Enterprise Linux 3, 4 eller 5 basert på Red Hat kickstart. Kickstart-installasjon er en automatisert installasjon som gjør installasjon av flere maskiner enklere.

4.1. Hva er kickstart?

Kickstart er automatisert installasjon. Prinsippet er meget enkelt, og baserer seg på at alle valg som normalt gjøres interaktivt under installasjon er gjort på forhånd. Denne informasjonen lagres i en fil, som installasjonsprogrammet vil lese fra.

4.2. Lage kickstart-fil med ks-generator

USIT har laget en egen generator for kickstart. Dette er et script som automatisk lager en kickstart-fil basert på standard konfigurasjon av server eller arbeidsstasjon ved UiO. Kickstart-generatoren inkluderer også et såkalt post-installasjonsscript, som gjør all nødvendig konfigurasjon for at maskinen skal kunne USITifiseres. Det er altså ikke nødvendig å gjøre ytterligere konfigurasjon av maskinen etter installasjon. USIT ved unix-drift tar over resten av USITifiseringen etter installasjon vha. kickstart-generatoren.

Kickstart-generatoren heter ks-generator, og kjøres slik:

maskin ~$ ks-generator

   * Welcome to UiO kickstart generator II v.1.20 for RHEL *
   ---------------------------------------------------------

Red Hat version that you wish to install [Red Hat Enterprise Linux 4]: 
     a. Red Hat Enterprise Linux 3
     b. Red Hat Enterprise Linux 4
     c. Red Hat Enterprise Linux 5 Client
     d. Red Hat Enterprise Linux 5 Server

> 

Du blir så presentert flere valg. For utfyllende forklaring, se manualsiden: ks-generator(8)

[Notat]32bit eller 64bit?

Kickstart-generatoren spør om du vil installere 32- eller 64bit Linux. Vi anbefaler 64bit for maskiner som kan kjøre dette. Dersom du er usikker på om maskinen er 64bit, prøv med 64bit først. Alle nye maskiner som kjøpes i dag (unntatt enkelte bærbare) har 64bit CPU.

ks-generator spør om en rekke ting. Det finnes hjelpetekst til mye av det den spør om.

[Notat]Client eller Server?

For RHEL5 kan du velge mellom Client eller Server. Valget er egentlig enkelt. Dersom maskinen skal være en arbeidsstasjon, velg Client. Dersom den skal være en tjenermaskin, velg Server. Server-varianten inneholder i mindre grad brukerprogramvare, f.eks. har den ikke OpenOffice.

ks-generator lager en fil ks.cfg. Denne må gjøres tilgjengelig for installasjonsprogrammet. Det er flere måter å gjøre det på.

4.3. Gjøre kickstart-filen tilgjengelig

Det er mange måter å gjøre kickstart-filen ks.cfg tilgjengelig for installasjonsprogrammet. Ikke alle metodene er dokumentert her, vi konsentrerer oss om det som er mest vanlig og praktisk. Hver måte å gjøre filen tilgjengelig på medfører ulike opsjoner som må gis til installasjonsprogrammet (på kommandolinje) ved oppstart av dette:

Figur 1. Bootparameter til kickstart

Bootparameter til kickstart

Eksempel på boot-parameter til installasjonsprogrammet.


4.3.1. Kickstart-fil på diskett

Kopier kickstart-filen ks.cfg over på en DOS-formattert diskett (som kan inneholde bootdisk-image for RHEL3 WS), f.eks. ved å bruke mcopy:

maskin ~$ mcopy ks.cfg a:

Bruker du denne metoden skal du skrive følgende på kommandolinjen til installasjonsprogrammet:

boot: linux ks=floppy

4.3.2. Kickstart-fil på web

Du kan legge kickstart-filen som ble generert med ks-generator på web, f.eks. under ~/www_docs. Da skal du gi følgende boot-parametre:

boot: linux ks=http://folk.uio.no/brukernavn/ks.cfg

Husk at denne filen må være lesbar for alle, slik det er for alle filer som skal være tilgjengelig via web, ettersom web-tjeneren kjører som en upriviligert bruker. Dersom du er i tvil, kjør følgende kommando etter at filen er kopiert til ~/www_docs:

maskin: ~$ chmod a+r ~/www_docs/ks.cfg

4.4. Lage boot-medium for kickstart

Det er flere måter å boote installasjonsprogrammet. I dette avsnittet diskuteres to av dem, boot fra CD og boot fra USB-penn. Det siste kan kun gjøres på RHEL4 og RHEL5, og er ikke anbefalt for nybegynnere.

4.4.1. Lage boot-CD

Før du begynner å installere trenger du en boot-CD. Denne kan du hente image for her:

Tabell 2. Image for boot-CD

 RHEL3 Update 8RHEL4 Update 5RHEL5 ClientRHEL5 Server
32bit i386-kompatibel CPUboot.isoboot.isoboot.isoboot.iso
64bit x86_64 (AMD Opteron, Intel EM64T)boot.isoboot.isoboot.isoboot.iso

Kommando for å lage boot-CD på en Linux-maskin med CD-brenner:

maskin.uio.no# cdrecord -eject boot.iso

4.4.2. Boote fra USB-penn (RHEL4 og RHEL5)

For maskiner som ikke har CD-ROM er det mulig å bruke en USB-penn eller lignende å boote fra. Last da ned diskboot.img fra samme sted som hvor boot.iso ligger:

Tabell 3. Image for diskboot (USB-penn)

 RHEL4 Update 5RHEL5 ClientRHEL5 Server
32bit i386-kompatibel CPUdiskboot.imgdiskboot.imgdiskboot.img
64bit x86_64 (AMD Opteron, Intel EM64T)diskboot.imgdiskboot.imgdiskboot.img

og skriv denne over på USB-mediet med følgende kommando:

maskin.uio.no# dd if=diskboot.img of=/dev/sdX bs=1M

Erstatt /dev/sdX med device-navnet som din maskin bruker. Sjekk hva USB-mediet bruker ved å se output fra kommandoen dmesg etter at du har puttet inn USB-mediet. Det vil for eksempel se slik ut:

usb 1-6.1.3: new high speed USB device using address 35
scsi24 : SCSI emulation for USB Mass Storage devices
  Vendor: Sony      Model: Storage Media     Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sdf: 1014784 512-byte hdwr sectors (520 MB)
sdf: Write Protect is off
sdf: Mode Sense: 43 00 00 00
sdf: assuming drive cache: write through
 sdf: unknown partition table
Attached scsi removable disk sdf at scsi24, channel 0, id 0, lun 0
USB Mass Storage device found at 35

Eksemplet er fra min maskin som har SATA-disker. I eksemplet bruker USB-pennen /dev/sdf.

[Notat]Gjelder kun RHEL4:

Du kan montere USB-pennen og legge den direkte på denne, slik (forutsatt samme maskin som ovenfor, der USB-pennen blir /dev/sdf:

maskin.uio.no# mount /dev/sdf /mnt
maskin.uio.no# cp /hom/brukernavn/ks.cfg /mnt
maskin.uio.no# umount /mnt

Da skal du gi boot-parametrene

boot: linux ks=hd:sdX:ks.cfg

Dette forutsetter at du vet hvilket device USB-pennen vil være på maskinen som skal installeres. Devicet sdX skal erstattes med hva USB-pennen vil få under installasjon på den nye maskinen. Her er noen eksempler:

  • Dell Optiplex GX620 med en disk (SATA): sdb
  • Dell PowerEdge 2850 med 2 disker i RAID1 (SCSI): sdb
  • HP DL380, DL385 o.l.: sda

Regelen er at USB-devicet alltid kommer sist, etter eventuelle SATA- og/eller SCSI-disker. Unntak er HP SmartArray som finnes i ProLiant DL380 osv., hvor diskene har device /dev/cciss/c0d0 og lignende. Selv om dette er SCSI-disker teller de ikke med i denne sammenhengen.

Dersom maskinen har diskettstasjon kan du legge ks.cfg på en diskett og følge oppskriften i avsnittet under.

Se også dokumentasjon fra Red Hat: RHEL4 | RHEL5

4.5. Installasjon med kickstart

Installasjon med kickstart er temmelig enkelt. Sett boot-CD'en i maskinen og skriv følgende i menyen som kommer opp:

boot: linux ks=kickstart-fil

Erstatt kickstart-fil med riktig syntaks for beskrivelse av hvor filen ligger. For utfyllende forklaring, se Seksjon 4.3, “Gjøre kickstart-filen tilgjengelig”.

[Obs]Obs

Dersom kickstart-filen er gjort tilgjengelig via web som beskrevet under Seksjon 4.3.2, “Kickstart-fil på web”, vil installasjonsprogrammet være avhengig av nettverket for å hente filen. Installasjonsprogrammet vil først forsøke å få en IP-adresse automatisk via DHCP, men hvis dette ikke går, typisk fordi det ikke er en DHCP-tjeneste på det aktuelle subnettet, vil programmet be deg taste inn IP-adresse, nettmaske, gateway og navnetjener. Dette er helt normalt.

Installasjonsprogrammet vil da gjøre resten automatisk. Ta CD'en ut av maskinen før du forlater den til seg selv, for maskinen booter automatisk opp etter at installasjonen er fullført.

[Notat]Notat

Dersom installasjonsprogrammet begynner å spørre om andre ting enn nettverksinformasjon, som språk, tastaturinnstillinger o.l., har noe gått galt. Dette betyr at installasjonsprogrammet ikke har lykkes å få tak i eller lest kickstart-filen. Dersom kickstart-filen er gjort tilgjengelig via web som beskrevet under Seksjon 4.3.2, “Kickstart-fil på web”, sjekk tilgangsnivået til filen. Den må være lesbar for alle.

4.6. Etter installasjon

Maskinen rebootes automatisk etter installasjonen, og første gang den bootes vil den kjøre et konfigurasjonsscript som:

  • USITifiserer maskinen, og
  • Melder maskinen inn i Red Hat Network (RHN)
  • Installerer alle de nyeste oppgraderingene
  • Legger inn Store.
[Obs]Merk!

Dette tar noen minutter. Ikke reboot maskinen fordi du synes det tar for lang tid. Vent heller litt lenger.

For mer informasjon om Store, se dokumentasjon på web

Etter at maskinen er ferdig å konfigurere seg selv, gi den en reboot og den er klar til bruk.

4.7. Partisjonering med LVM

ks-generator partisjonerer automatisk disken og bruker LVM (Logical Volume Manager) til alle partisjoner unntatt root-partisjonen og en eller to swap-partisjoner.

Volumgruppen som lages kalles internvg og omfatter nesten hele disken. Hele disken er da partisjonert opp, og hvis man skal lage en partisjon /site eller lignende, skal man følge oppskrift som beskrevet her: Seksjon 11.4, “Lage et logisk volum”.

For å få ut informasjon om volumgruppen som er laget, kjør kommandoen vgdisplay som beskrevet her: Seksjon 11.5, “Vise informasjon om volumgrupper o.l.”.

4.8. Aktuelle Linker

5. Manuell installasjon av RHEL fra CD

[Notat]Om dette dokumentet

Dette dokumentet beskriver hvordan man skal installere Red Hat™ Enterprise Linux 3 eller 4 på en av UiOs maskiner. Det forutsettes at man har basiskunnskaper om Linux eller UNIX fra før, og normal fornuft.

[Viktig]Viktig

Denne siden er ikke oppdatert for RHEL5.

Skulle du likevel installere RHEL5 manuelt trenger du et såkalt installation number. Disse er:

  • RHEL5 Server: 047bfa4f047c35fa
  • RHEL5 Client: 9d9735139d9b7534

5.1. Installasjons-CD

[Viktig]Viktig

Vi anbefaler hvis mulig å bruke kickstart (Se Seksjon 4, “Automatisk installasjon av RHEL med kickstart”) framfor manuell installasjon!

Før man kan starte oppgraderingen trenger man et sett med installasjons-CD-er. ISO-images til installasjons-CD-ene finner dere her:

  • FTP-server: linux.uio.no
  • Brukernavn: guest
  • Passord: uio

5.2. Installasjon

Putt CD nr. 1 i maskinen og ta en omstart. Du vil da bli presentert med flere valg. Graphical mode (som er default) er helt ok. Bare trykk ENTER.

Installasjons-/oppgraderingsprogrammet fortsetter så med en rekke vinduer der man skal svare på spørsmål og skrive inn informasjon. På de ulike vinduene som dukker opp, velg følgende:

Vindustittel Kommentar
Choose a Language

Velg English

Resten av veiledningen forutsetter at du velger engelsk.

Keyboard Velg Norwegian (latin1)
Mouse Configuration Velg en mus som passer din maskin. De fleste skal bruke en av "Generic"-typene for PS/2 eller USB. Dersom musen din bare har to knapper, må du også velge Emulate 3 Buttons.
Disk Partition Setup

Velg Manually partition with Disk Druid.

Partitioning

Hvordan du partisjonerer disken er opp til deg, men lag ihvertfall én partisjon på minst 6 GB til /fak/maskin/local. Ellers er det greit å ha en egen partisjon til / (root-partisjonen) på minst 1 GB. Husk også å lage en eller flere swap-partisjoner. Generelt bør man ha omtrent dobbelt så mye swap som konvensjonelt minne, med mindre maskinen har veldig mye minne.

For alle partisjoner som skal brukes under Linux bør filsystemet være av typen "ext3".

Katalogen /fak/maskin/site er bare nødvendig hvis ditt institutt/fakultet har et eget opplegg for Unix- og/eller Linux-maskiner, med disting av software og oppsettsfiler til /site.

Merk at for partisjonene /fak/maskin/local og /fak/maskin/site skal "fak" byttes ut med fakultetsforkortelse, f.eks. "mn" for MatNat og "usit" for USIT, og "maskin" skal byttes ut med maskinnavnet.

Et par eksempler på anbefalt partisjonering:

Arbeidsstasjon med 80 GB harddisk og 1024 MB minne med /site-partisjon på 10 GB:

MonteringspunktStørrelse
swap2048 MB
/1000 MB
/var2000 MB
/tmp2000 MB
/usr8000 MB
/fak/maskin/local10000 MB
/fak/maskin/site10000 MB
(upartisjonert)resten

Server med 36 GB harddisk og 2 GB minne uten /site-partisjon:

MonteringspunktStørrelse
swap2048 MB
swap2048 MB
/1000 MB
/var2000 MB
/tmp2000 MB
/usr6000 MB
/fak/maskin/local10000 MB
(upartisjonert)resten

Det lønner seg å bruke LVM (Logical Volume Management). Når vi på USIT setter opp en maskin, bruker vi samme konvensjon for arbeidsstasjon og server: Alle partisjoner skal i LVM utenom / (root-partisjonen) og swap-partisjonen(e). Volumgruppen pleier vi å kalle internvg, og omfatter hele den første harddisken unntatt root-partisjon og swap.

Vi pleier også å ikke partisjonere opp plass vi ikke har tenkt å bruke. Det kan være praktisk å ha endel ubrukt plass til fremtidige utvidelser.

Du kan lese mer om LVM her: Seksjon 11, “Introduksjon til Logical Volume Management (LVM)”

Boot Loader Configuration:

Velg GRUB som boot loader. Konfigurer så etter følgende retningslinjer:

  • Du trenger normalt ikke noen "advanced boot loader options".

  • Du trenger bare passord til boot loaderen hvis maskinen ikke er innelåst på et kontor e.l., slik at flere personer har adgang til maskinen. Eksempel på maskiner som skal ha passord er terminalstue-maskiner for studenter.

  • Hvis maskinen er dualboot, dvs. har både Linux og andre OS'er, f.eks. Windows, installert, kan du skrive inn informasjon her. Sannsynligvis har installasjonsprogrammet funnet ut av det for deg, slik at du automatisk får korrekte parametre her.

  • Velg MBR som sted for installasjon av boot loader.

  • Vanligvis er standardverdiene helt OK, og du trenger bare trykke Forward.

Network Configuration

Du får listet opp alle nettverkskortene maskinen har. For det kortet som skal brukes for UiO-nett (vanligvis eth0), trykk edit.

Velg ikke "Configure using DHCP", med mindre maskinen er en laptop som konfigureres til å få samme IP-adresse hver gang ("statisk" DHCP) fra DHCP-serveren.

For resten av konfigurasjonen for dette vinduet, sett inn verdier etter følgende tabell:

FeltVerdi
IP address:Denne har du fått tildelt av unix-drift@usit.uio.no
Netmask:Som regel 255.255.254.0. Snakk med lokal IT-ansvarlig eller unix-drift hvis du er usikker.
HostnameSett dette manuelt, og bruk da fullkvalifisert navn (dvs. "maskinnavn.uio.no", ikke bare "maskinavn").
Default Gateway (IP):

129.240.subnett.1

UiO har 512 IP-adresser på de fleste subnett, og verdien til subnett er da alltid et partall, så hvis man har oddetall skal man trekke ifra 1.

(Eks.: Hvis maskinen har IP-nummer 129.240.201.52 så er Gateway 129.240.200.1)

Primary nameserver:129.240.10.7
Secondary nameserver:129.240.200.21
Tertiary nameserver:129.240.2.3
Firewall

Linux har et meget sofistikert sikkerhetsopplegg som er knyttet både til kjernen (på pakkenivå) og kontroll over hvilke tjenester maskinen skal tilby omverdenen. Velg No firewall.

Additional Language Support

Default language skal være English (USA). Forøvrig kan du velge hva du vil.

Time Zone Selection

Det er opp til deg om du vil at klokken i maskinen (i hardware, på hovedkortet) skal settes til GMT. Tidssone forøvrig er Europe/Oslo.

Root Password

Velg et skikkelig passord til root. Det skal være på 8 tegn, bestå av både store og små bokstaver og skal ha et eller flere spesialtegn eller tall blant de 8 første tegnene. Unngå bruk av norske særtegn eller mellomrom. USIT prøver kontinuerlig å knekke root-passord for å sjekke at de er bra nok. Hvis du er i tvil, kan du prøve funksjonen misc checkpassw i bofh for å kontrollere at passordet holder mål.

PS. Det er en pinlig affære for deg om vi klarer å knekke passordet...

Package Defaults

Hvis du vil endre på standardkonfigurasjonen av hvilke pakker som skal installeres, velg Customize the set og packages to be installed.

I utgangspunktet blir ikke KDE installert, kun GNOME. Hvis du vil ha KDE i tillegg til GNOME må du velge Customize the set og packages to be installed.

Følg så anvisningene for å velge ekstra ting, eller velge bort andre ting.

Package Group Selection

Dette vinduet kommer hvis du valgte å velge programpakker selv i forrige vindu.

Tabellen under angir de ulike gruppene av programvare. De to siste kolonnene angir om pakken bør velges eller ikke for hhv. server og arbeidsstasjon, men dette er bare veiledende.

  • X = pakken bør velges
  • ! = pakken skal ikke velges
Pakkenavn Beskrivelse Server Arb.
Desktop
X Window System Installer denne pakkegruppen for å bruke et grafisk grensesnitt (X).   X
GNOME Desktop Environment GNOME er et kraftig, grafisk brukergrensesnitt som inkluderer et panel, skrivebord, systemikoner og en grafisk filhåndterer   X
KDE Desktop Environment KDE er et kraftig, grafisk brukergrensesnitt som inkluderer et panel, skrivebord, systemikoner og en grafisk filhåndterer.   X
Applications
Editors Disse programmene, ofte kalt teksteditorer, lar deg lage og redigere filer. Emacs og Vi er inkludert her. X X
Engineering and Scientific Denne gruppen inneholder pakker for å utføre matematiske og vitenskapelige beregninger/visualiseringer samt enhetskonverteringer.   X
Graphical Internet Denne gruppen inkluderer grafiske epost, web og chat-klienter.   X
Text-based Internet Denne gruppen inneholder tekstbaserte epost, web og chat-klienter. Disse programmene trenger ikke X. X X
Office/Productivity Applikasjonene innerholder kontorstøtteprogrammer, PDF-lesere og mer.   X
Sound and Video Denne pakkegruppen inneholder programmer for å spille av CDer og multimediefiler samt arbeide med lyd og bilde på systemet.   X
Authoring and Publishing Disse verktøyene lar deg lage dokumentasjon i DocBook-formatet og konvertere dem til HTML, PDF, Postscript og tekst.   X
Graphics Denne gruppen inneholder pakker for manipulering og innscanning av bilder.   X
Games and Entertainment Forskjellige måter å slappe av og fordrive fritiden.   X
Servers
Web Server Disse verktøyene lar deg kjøre en web-tjener på systemet.    
Mail Server Disse pakkene lar deg konfigurere en IMAP eller Postfix eposttjener. ! !
Windows File Server Denne pakkegruppen lar deg dele filer mellom Linux og MS Windows™-systemer. ! !
SQL Database Denne pakkegruppen inneholder pakker som er nyttige for bruk med Postgresql.    
MySQL Database Denne pakkegruppen inneholder pakker some er nyttige for bruk med MySQL.    
Legacy Network Server Disse pakkene inkluderer tjenere for eldre nettverksprotokoller som rsh og telnet.    
Development
Development Tools Disse verktøyene inkluderer utviklingsverktøy som automake, gcc, perl, python og avlusere. X X
Kernel Development Installer disse pakkene for å rekompilere kjernen.    
X Software Development Disse pakkene lar deg utvikle programmer for X.   X
GNOME Software Development Installer disse pakkene for utvikling av GTK+- og GNOME-programmer.    
KDE Software Development Installer disse pakkene for utvikling av QT og KDE-programmer.    
Legacy Software Development Disse pakkene inneholder støttefunksjoner for tidligere utgaver av Red Hat Enterprise Linux. X X
System
Administration Tools Denne gruppen er en samling av grafiske administrasjonsverktøy for systemet, inkludert brukeradministrasjon og hardwarekonfigurering. X X
System Tools Denne gruppen er en samling av ulike systemverktøy, som oppkobling mot SMB-ressurser og nettverksovervåkning. X X
Printing Support Installer disse verktøyene for å kunne bruke skriver og å kunne sette opp systemet some utskriftstjener.    
Miscellaneous
Everything Ikke installer denne! ! !

 

About to install

Så begynner selve installasjonen. Partisjonene formatteres og programmene installeres.

Installasjonen kjører. Tar litt tid. Du må skifte CD underveis.
Bootdisk Det er vanligvis greit å ha en bootdisk.
Graphical Interface (X) Configuration

Forhåpentligvis fant installasjonsprogrammet ut hvilket skjermkort maskinen har...

For servere trenger du ikke konfigurere X, velg i tilfelle Skip X Configuration.

Monitor Configuration

Hvis installasjonsprogrammet fant ut hvilken monitor du har, er det som regel greit å svare OK på det som foreslås.

Hvis ikke må du ty til manualen som fulgte med monitoren for å finne ut rater for Hsync og Vsync, og spesifisere dette manuelt.

X Customization

Velg det som passer av oppløsning og fargedybde.

Congratulations

Da er installasjonen ferdig :-)

Ta CD-en ut av maskinen og klikk Exit

5.3. Første boot

[Notat]Notat

Dette gjelder kun hvis du har valgt å starte X ved boot.

Når man booter opp første gang etter installasjonen, dukker det opp et vindu med endel ekstra konfigurasjon. I de vinduene som så dukker opp, velg følgende:

Vindustittel Kommentar
Welcome

Blabla.. klikk Forward

User Account

Du skal ikke lage en brukerkonto. Maskiner på UiO skal bruke UiO-brukernavn og -passord. Du finner mer informasjon om hvordan man legger til brukere her: Q & A 19.6, “Brukere og hjemmeområder”.

Bare klikk Forward. Det kommer en advarsel om at Redhat synes dette er teit, men vi vet bedre. Klikk Continue.

Date and Time

Dette kan du trygt ignorere. Ved USITifisering installeres vår egen NTP-klient, som synkroniserer klokken mot en server hos oss.

Bare klikk Forward

Red Hat Network

Ignorer denne nå, men gi beskjed til unix-drift om at maskinen er klar til å tas inn i RHN!

Additional CDs

Bare ignorer denne.

Finish Setup

Ferdig.

5.4. Etter installasjonen

Når man er ferdig med å installere, skal maskinen konfigureres slik at den blir i henhold til USITs retningslinjer for UNIX- og Linux-maskiner ved UiO.

5.4.1. Steg 1: Monter opp STORE-master

Logg først inn via vanlig tekst-konsoll, ved å trykke Ctrl+Alt+F1, og logg deretter inn som root.

Monter opp storeulv:/uio/storeulv/store på maskinen:

  1. Lag monteringspunktet:

    [root@maskin root]# mkdir -p /uio/storeulv/store
    
  2. Og monter NFS-disken:

    [root@maskin root]# mount storeulv:/uio/storeulv/store /uio/storeulv/store
    

5.4.2. Steg 2: USITifisering

Kjør kommandoen redhat-config fra storeulv.uio.no, slik:

[root@maskin root]# /uio/storeulv/store/.usit-etc/ver-cvs/etc/config/redhat-config

All konfigurasjon gjøres så automatisk. Dersom kommandoen over feiler, vennligst ta kontakt med unix-drift@usit.uio.no slik at vi får rettet opp feilen.

Maskinen blir automatisk lagt inn i Store, dersom du svarer "yes" på spørsmål om dette.

Mer informasjon om Store finner du her: http://www.usit.uio.no/it/unix/store/

[Obs]Obs

Merk at dersom maskinen skal være en arbeidsstasjon, og derfor kjøre X-Windows, bør følgende gruppe av programvare legges inn fra Store:

@usit-desktop

Mer informasjon om dette finner du på denne web-siden.

Maskinen blir satt opp med standard UiO-konfigurasjon av X-Windows. For RHEL4 brukes GDM istedenfor XDM. Førstnevnte er Red Hats default. Se Bytte fra XDM til GDM for mer informasjon.

5.4.3. Steg 3: Gi beskjed til unix-drift

Innmelding av maskinen i Red Hat Network, slik at maskinen kan få daglige oppdateringer fra Red Hat, er foreløpig ikke automatisert. Vi trenger derfor å få beskjed når en ny maskin er installert.

[Viktig]Viktig

Husk å gi beskjed til unix-drift!

Etter at maskinen er registrert i RHN (se Seksjon 10.1, “Red Hat Network (RHN)”) vil unix-drift oppgradere programvare (inkludert kjernen), og maskinen blir rebootet.

5.5. Etter installasjonen

Etter at maskinen er installert og USITifisert, kan man legge inn brukere, montere opp disker o.l. Det står mer om dette her:

Seksjon 6, “Konfigurasjon av RHEL”

6. Konfigurasjon av RHEL

[Notat]Om dette dokumentet

Dette dokumentet beskriver normale endringer man gjerne ønsker å gjøre etter at en maskin er installert.

6.1. Legge inn brukere

Man vil normalt legge inn brukere på maskinen, dvs. å gi en eller flere brukere muligheten til å logge inn på vanlig måte. Da må maskinen kjenne til disse brukerne, og denne informasjonen vil maskinen få via NIS (Network Information Service), også kjent som YP (Yellow Pages).

Legg inn enkeltbrukere eller nettgrupper i filen /etc/passwd, f.eks. slik:

+trondham
+@unix-drift

Her er enkeltbrukeren "trondham" og nettgruppen "unix-drift" lagt inn.

For at dette skal virke må maskinen ha opprettet kontakt med en YP-server. Dette kan du verifisere ved å kjøre kommandoen

maskin.uio.no# ypwhich
ulrik.uio.no

I dette tilfellet har maskinen kontakt med ulrik.uio.no. Det finnes mange flere YP-servere på UiO. Så lenge du ikke får feilmelding er alt vel.

6.2. Hjemmeområder / Montere NFS-disker

For at brukere skal kunne logge inn og gjøre noe på maskinen, dvs. kunne bruke maskinen på normal måte, må de ha et hjemmeområde tilgjengelig. I avsnittet Seksjon 6.1, “Legge inn brukere” over forutsetter vi at brukerne har sitt hjemmeområde montert på maskinen via NFS (Network File System), siden vi ikke har spesifisert et annet hjemmeområde. Hvis du vil spesifisere hvilket hjemmeområde brukerne skal ha på maskinen, kan du f.eks. legge inn følgende i /etc/passwd:

+trondham:::::/site/home/trondham:
+staalej:::::/site/home/staalej:

I dette eksemplet har vi spesifisert hjemmeområdet til brukerne "trondham" og "staalej". Disse katalogene (hjemmeområdene) må selvsagt eksistere, og være eiet av brukeren.

Vi anbefaler bruk av automounter til å montere hjemmeområder på UiO-maskiner. For mer info om dette, se Seksjon 8, “Bruk av automounter med automapgenerate”.

Se Q: for en beskrivelse av hva som må til for at en maskin skal kunne montere ekte hjemmeområder via NFS på maskinen.

7. Oppgradering til RHEL4

[Notat]Om dette dokumentet

Dette dokumentet beskriver hvordan man går fram for å oppgradere fra Red Hat™ Enterprise Linux 3 (RHEL3) til Red Hat™ Enterprise Linux 4 (RHEL4).

Dersom du skal oppgradere fra RHEL2.1 anbefales heller en reinstallasjon, bl.a. for å få med LVM til filsystemer.

Det er flere måter å oppgradere på. I dette dokumentet beskrives tre metoder: Manuell oppgradering fra CD, manuell oppgradering fra nettverk, og automatisk oppgradering via et hjemmesnekret script fra USIT.

7.1. Manuell oppgradering fra CD

Før man kan starte oppgraderingen trenger man et sett med installasjons-CD-er. ISO-images til installasjons-CD-ene finner dere her:

  • FTP-server: linux.uio.no
  • Brukernavn: guest
  • Passord: uio

USIT har klønet og /usr/tmp og /usr/spool er absolutte symlinker som skal være relative. Oppgraderingen vil feile hvis du først ikke fikser dette, slik:

maskin.uio.no# cd /usr
maskin.uio.no# rm tmp spool
maskin.uio.no# ln -s ../var/tmp .
maskin.uio.no# ln -s ../var/spool .

Putt CD nr. 1 i maskinen og ta en omstart. Du vil da bli presentert med flere valg. Graphical mode (som er default) er helt ok. Bare trykk ENTER.

Installasjons-/oppgraderingsprogrammet Anaconda fortsetter så med en rekke vinduer der man skal svare på spørsmål og skrive inn informasjon. På de ulike vinduene som dukker opp, velg følgende:

VindustittelKommentar
CD Found

Velg OK hvis du ønsker å teste installasjons-CD-ene før oppgradering. Hvis ikke, velg Skip.

Welcome to Red Hat Enterprise Linux WS

Jada.. Klikk Next.

Choose a Language

Velg English (English)

Resten av veiledningen forutsetter at du velger engelsk.

Keyboard ConfigurationVelg Norwegian
Installation method

Her har forhåpentligvis Anaconda funnet ut at maskinen hadde installert RHEL3 fra før, og hvor det var installert. Velg Upgrade an existing installation.

Upgrade Boot Loader Configuration

For de fleste er det best å velge Update boot loader configuration.

About to Upgrade

På tide å begynne.. Klikk Next.

Deretter må du bytte CD noen ganger til installasjonen er ferdig. Etter installasjonen skal maskinen bootes, og oppgraderingen er avsluttet.

Etter oppgradering kan det lønne seg å gi systemet litt ekstra oppmerksomhet. Se Seksjon 7.4, “Ting å tenke på etter oppgradering”.

7.2. Manuell oppgradering fra nettverk

[Advarsel]Advarsel

Dette avsnittet er under utvikling og kan inneholde feil og mangler!

Før man kan starte oppgraderingen trenger man en boot-CD som svarer til nyeste update av RHEL4. Den finner dere her:

  • RHEL 4 Update 1 for i386: boot.iso

  • RHEL 4 Update 1 for x86_64 (AMD Opteron / Intel EM64T): boot.iso

USIT har klønet og /usr/tmp og /usr/spool er absolutte symlinker som skal være relative. Oppgraderingen vil feile hvis du først ikke fikser dette, slik:

maskin.uio.no# cd /usr
maskin.uio.no# rm tmp spool
maskin.uio.no# ln -s ../var/tmp .
maskin.uio.no# ln -s ../var/spool .

Putt boot-CD-en i maskinen og ta en omstart. Du vil da bli presentert med flere valg. Graphical mode (som er default) er helt ok, men virker ikke med oppgradering/installasjon fra nettverk, så det blir text-mode uansett. Bare trykk ENTER.

Installasjons-/oppgraderingsprogrammet Anaconda fortsetter så med en rekke vinduer der man skal svare på spørsmål og skrive inn informasjon. På de ulike vinduene som dukker opp, velg følgende:

VindustittelKommentar
Choose a Language

Velg English

Resten av veiledningen forutsetter at du velger engelsk.

KeyboardVelg Norwegian
Media

Velg HTTP.

HTTP Server

Skriv inn følgende verdier:

  • HTTP Server: 129.240.12.6
  • Path: rhel4/ws/u1/arkitektur

arkitektur er her enten i386, dersom maskinen har i386-kompatibel CPU uten 64bits-støtte, eller x86_64, dersom maskinen har AMD64, AMD Opteron eller Intel-CPU med EM64T.

Installation method

Her har forhåpentligvis Anaconda funnet ut at maskinen hadde installert RHEL3 fra før, og hvor det var installert. Velg upgrade.

Etter installasjonen skal maskinen bootes, og oppgraderingen er ferdig.

7.3. Automatisk oppgradering fra nettverk

[Advarsel]Advarsel

Denne oppgraderingsmetoden er ikke godt testet. Ikke bruk denne dersom det finnes data på maskinen som du er redd for å miste, eller som det er vanskelig og/eller upraktisk å legge tilbake fra backup!

Automatisk oppgradering kan gjøres på maskinen ved å kjøre følgende program/script:

maskin.uio.no# /local/sbin/linux-upgrade-to-rhel4

Dette scriptet vil gjøre det meste for deg:

  • Lager kickstart-fil for oppgradering.

  • Henter ned boot-CD-image, loop-monterer det og plukker ut boot-image og initrd.

  • Konfigurerer GRUB til å boote fra det nye boot-imaget, med informasjon om hvor kickstart-filen finnes.

Dersom alt gikk bra under kjøring av scriptet, er det kun en reboot som skal til for å oppgradere maskinen.

7.4. Ting å tenke på etter oppgradering

7.4.1. Konvertering til LVM2

Oppgraderingsprogrammet (Anaconda) konverterer ikke LVM på maskinen til LVM2. Det må du gjøre selv, dersom du ønsker det. For å konvertere volumgruppen "internvg" (standard navn dersom du har installert med UiOs kickstart-opplegg) skriv følgende:

maskin.uio.no# vgconvert -M2 internvg
  Volume group internvg successfully converted

Etterpå bør du ta en reboot av maskinen.

Dersom du får følgende feilmelding, bruker du feil versjon av LVM-verktøyene:

maskin.uio.no# vgdisplay
vgdisplay -- LVM driver/module not loaded?

Dette er vgdisplay som ligger under /sbin, mens den du skal bruke ligger under /usr/sbin. For å unngå misforståelser og feilmeldinger som den over, fjern versjon 1 av LVM-verktøyene, slik:

maskin.uio.no# rpm -e lvm

Da skal LVM virke igjen:

maskin.uio.no# vgdisplay
  --- Volume group ---
  VG Name               internvg
  System ID             localhost.localdomain1080230194
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                256
  Cur LV                5
  Open LV               5
  Max PV                256
  Cur PV                1
  Act PV                1
  VG Size               72.91 GB
  PE Size               4.00 MB
  Total PE              18666
  Alloc PE / Size       5504 / 21.50 GB
  Free  PE / Size       13162 / 51.41 GB
  VG UUID               FvGIBF-AB5L-3EKH-7ZRG-3NRq-X6ti-Feo3X6
   

Som man ser at output fra vgdisplay bruker nå maskinen versjon 2 av LVM (Format = lvm2).

7.4.2. Fjerne foreldreløse RPM-pakker

Det er endel RPM-pakker i RHEL3 som ikke er erstattet av nye RPM-pakker fra RHEL4. Disse er da foreldreløse, dvs. at de ikke er med i en RHN-kanal som benyttes for RHEL4, og bør dermed fjernes. For å liste opp foreldreløse RPM-pakker, gjør følgende:

maskin.uio.no# up2date --show-orphans
gdm-uio-2.0-1.noarch
rhn-org-trusted-ssl-cert-1.0-2.noarch

Eksemplet over er gjort på en maskin hvor foreldreløse RPM-pakker er ryddet, men det er likevel et par som listes opp. Disse to, gdm-uio og rhn-org-trusted-ssl-cert skal du la være, de er lagt inn av USIT og er en del av tilpasning av RHEL til UiO.

Dersom det listes opp flere enn i eksemplet over, er det høyst sannsynlig rester fra RHEL3, og de bør da fjernes. Siden disse har avhengigheter mellom seg er det best å fjerne alle på en gang. Dette kan f.eks. gjøres slik:

maskin.uio.no# rpm -e `up2date --show-orphans | egrep -v gdm-uio\|rhn-org-trusted-ssl-cert | perl -pe 's/\n/ /g'`
[Tips]Tips

Dersom du er usikker på at kommandoen over gjør det du ønsker, legg en echo foran. Det er helt trygt.

Kjør så en ny up2date --show-orphans for å verifisere at de uønskede RPM-pakkene er borte.

8. Bruk av automounter med automapgenerate

UiO har mange maskiner som deler ut hjemmeområde via NFS. I tillegg til dette vil man kanskje også montere utvalgte disker med automount selv om de ikke inneholder noe hjemmeområde. Dersom mange disker skal monteres over NFS, er automount å foretrekke framfor fast montering.

Vi har laget et script som genererer automounter-maps utfra informasjon i NIS og/eller /etc/passwd, med mulighet for å konfigurere hva som skal monteres opp. Scriptet heter /local/sbin/automapgenerate.

Standard oppførsel for automapgenerate (dvs. uten konfigurasjon) er å slå opp i /etc/passwd og NIS (dvs. den bruker getpwent()), og konfigurere automount til montere hjemmeområdet til alle brukerne som kan logge inn på maskinen. automapgenerate har en konfigurasjonsfil /etc/usit/automount.conf. Under er et eksempel på en slik konfigurasjonsfil, og kan være et utgangspunkt for å konfigurere selv:

# Configuration file for /local/sbin/automapgenerate(8)
# http://www.usit.uio.no/it/unix/linux/doc/avansert.html#NETWORK-AUTOMOUNT
# (Comments begin with a hash '#')

# Exclude the following hosts or mountpoints, even if valid users
# exist with homedir on these:
<exclude>
    rikke            # Exclude all from rikke.uio.no
    /usit/arkimedes  # Exclude only this mountpoint from arkimedes
</exclude>

# Include the following hosts, even if no valid users exists with
# homedir on these:
<include>
    /uio/storeulv
    /uio/caesar
</include>

# Set to 'no' if you don't want to include all homedir hosts
# for all valid users
UseGetpwent yes

# Set to 'yes' if you want to include ALL homedir hosts
# for ALL valid users in NIS map 'uio'. Use this for hosts with
# a '+' in their passwd file, as it is a safer way, especially on
# Solaris, which has troubles with getpwent(3).
IncludeAllFromNIS no

Etter at automapgenerate er kjørt, har den endret på /etc/auto.master, og generert en haug med filer under /etc/auto.d/.

Når alle filer er generert og oppsettet er slik man vil ha det, må autofs startes, restartes eller reloades. Det gjøres med init-scriptet /etc/init.d/autofs:

/etc/init.d/autofs start|stop|restart|reload

Man bruker typisk kun reload, dersom autofs allerede kjører, og man kun skal ha inn eventuelle endringer fra automapgenerate.

[Notat]Automapgenerate på Solaris

Automapgenerate brukes også på Solaris. Oppførselen er helt lik, og den konfigureres på samme måte. Men automount stoppes/startes på forskjellig vis. For å ta med endringer etter kjøring av automapgenerate, kan man kjøre følgende på Solaris:

maskin.uio.no# /usr/sbin/automount

Sørg også for at autofs starter ved boot, slik:

maskin.uio.no# /sbin/chkconfig autofs on

8.1. Automatisk kjøring av automapgenerate fra use.daily

Det er også laget et opplegg for å kjøre automapgenerate hver natt:

  1. Kjører automapgenerate
  2. Kjører /etc/init.d/autofs reload (eller tilsvarende for Solaris)

Dette for å ta hensyn til maskiner med mange brukere og som dermed monterer mange hjemmeområder. Denne jobben kjøres hver natt fra use.daily kun dersom filen /etc/usit/automapgenerate finnes. For å lage denne filen, kjør følgende:

maskin.uio.no# touch /etc/usit/automapgenerate

9. Installasjon, oppgradering og fjerning av RPM-pakker i RHEL5

[Viktig]Gjelder kun RHEL5

Dette dokumentet omhandler i all hovedsak bruk av programmet yum, som ikke finnes i tidligere versjoner av RHEL.

9.1. Red Hat Network (RHN)

Alle Linux-maskiner på UiO som kjører Red Hat Enterprise Linux skal være registrert i Red Hat Network. RHN er kort sagt en database med informasjon om hver maskin som er registrert, og blant den informasjonen er liste over alle RPM-pakker som er installert på maskinen.

Ved hjelp av denne informasjonen kan logikken i RHN vite når en maskin trenger oppdateringer, og hvilke andre RPM-pakker som trengs for å tilfredsstille avhengigheter. Vi benytter oss av denne mekanismen for å gjøre oppgraderinger av RPM-pakker på alle RHEL-maskiner på UiO.

9.2. Introduksjon til YUM

yum står for "Yellowdog Updater Modified".

yum er programmet som brukes for å installere og oppgradere pakker på maskinen. yum kommuniserer med RHN, og benytter rpm i bakgrunnen for selve operasjonene på RPM-pakkene.

yum tar mange opsjoner:

usage: yum [options] < grouplist, localinstall, groupinfo, localupdate,
                          resolvedep, erase, deplist, groupremove, makecache,
                          upgrade, provides, shell, install, whatprovides,
                          groupinstall, update, groupupdate, info, search,
                          check-update, list, remove, clean, grouperase >

options:
  -h, --help            show this help message and exit
  -t, --tolerant        be tolerant of errors
  -C                    run entirely from cache, don't update cache
  -c  [config file]     config file location
  -R  [minutes]         maximum command wait time
  -d  [debug level]     debugging output level
  -e  [error level]     error output level
  -y                    answer yes for all questions
  --version             show Yum version and exit
  --installroot=[path]  set install root
  --enablerepo=[repo]   enable one or more repositories (wildcards allowed)
  --disablerepo=[repo]  disable one or more repositories (wildcards allowed)
  -x [package], --exclude=[package]
                        exclude package(s) by name or glob
  --obsoletes           enable obsoletes processing during updates
  --noplugins           disable Yum plugins

I avsnittene under tar vi for oss de vanligste og nyttigste opsjonene.

9.3. Liste over RPM-pakker

Opsjonen list til yum brukes til å lite opp RPM-pakker. Opsjonen list tar igjen mange opsjoner, og her er de vanligste:

9.3.1. Liste over alle installerte og uinstallerte RPM-pakker

yum list uten ytterligere opsjoner eller argumenter lister opp alle RPM-pakker, enten de er installert eller ikke. Man kan angi ett eller flere pakkenavn eller regulære uttrykk av pakkenavn for å spesifisere nærmere hva man er ute etter. Her er et enkelt eksempel:

Eksempel 1. Liste opp alle pakker som begynner på "kernel"

maskin.uio.no# yum list 'kernel*'
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Installed Packages
kernel.x86_64                            2.6.18-8.1.3.el5       installed       
kernel.x86_64                            2.6.18-8.1.4.el5       installed       
kernel-devel.x86_64                      2.6.18-8.1.3.el5       installed       
kernel-devel.x86_64                      2.6.18-8.1.4.el5       installed       
kernel-headers.x86_64                    2.6.18-8.1.4.el5       installed       
Available Packages
kernel-doc.noarch                        2.6.18-8.1.4.el5       rhel-x86_64-clie
kernel-xen.x86_64                        2.6.18-8.1.4.el5       rhel-x86_64-clie
kernel-xen-devel.x86_64                  2.6.18-8.1.4.el5       rhel-x86_64-clie

Legg merke til bruken av enkle anførselstegn rundt kernel* i kommandoen over. Dette hindrer shell'et (kommandotolkeren) i å ekspandere stjernetegnet, slik den ellers ville gjort. Alternativet er å bruke "escape-tegn" foran *, slik: yum list kernel\*


9.3.2. Liste over uinstallerte (tilgjengelige) RPM-pakker

For å liste opp uinstallerte pakker kan man gi opsjonen available til yum list. Da vil alle tilgjengelige pakker listes opp. Som med yum list, kan man angi argumenter. Her er et enkelt eksempel som lister opp alle uinstallerte RPM-pakker som starter med "openmotif":

Eksempel 2. Liste opp alle uinstallerte pakker som begynner på "openmotif"

maskin.uio.no# yum list available 'openmotif*'
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Available Packages
openmotif.i386                           2.3.0-0.3.el5          rhel-x86_64-clie
openmotif.x86_64                         2.3.0-0.3.el5          rhel-x86_64-clie
openmotif-devel.x86_64                   2.3.0-0.3.el5          rhel-x86_64-clie
openmotif-devel.i386                     2.3.0-0.3.el5          rhel-x86_64-clie
openmotif22.i386                         2.2.3-18               rhel-x86_64-clie
openmotif22.x86_64                       2.2.3-18               rhel-x86_64-clie

Legg merke til bruken av enkle anførselstegn rundt openmotif* i kommandoen over. Dette hindrer shell'et (kommandotolkeren) i å ekspandere stjernetegnet, slik den ellers ville gjort.


9.3.3. Liste over installerte RPM-pakker

Man kan bruke yum list til å liste opp installerte RPM-pakker, ved å gi opsjonen installed. Her er nok et eksempel som benytter seg av et enkelt regulært uttrykk:

Eksempel 3. Liste opp alle installerte pakker som begynner på "perl"

maskin.uio.no# yum list installed 'perl*'
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Installed Packages
perl.x86_64                              4:5.8.8-10             installed       
perl.i386                                4:5.8.8-10             installed       
perl-Archive-Tar.noarch                  1.30-1.fc6             installed       
perl-Compress-Zlib.x86_64                1.42-1.fc6             installed       
perl-Digest-HMAC.noarch                  1.01-15                installed       
perl-Digest-SHA1.x86_64                  2.11-1.2.1             installed       
perl-HTML-Parser.x86_64                  3.55-1.fc6             installed       
perl-HTML-Tagset.noarch                  3.10-2.1.1             installed       
perl-IO-Socket-INET6.noarch              2.51-2.fc6             installed       
perl-IO-Socket-SSL.noarch                1.01-1.fc6             installed       
perl-IO-Zlib.noarch                      1.04-4.2.1             installed       
perl-Net-DNS.x86_64                      0.59-1.fc6             installed       
perl-Net-IP.noarch                       1.25-2.fc6             installed       
perl-Net-SSLeay.x86_64                   1.30-4.fc6             installed       
perl-SGMLSpm.noarch                      1.03ii-16.2.1          installed       
perl-Socket6.x86_64                      0.19-3.fc6             installed       
perl-String-CRC32.x86_64                 1.4-2.fc6              installed       
perl-URI.noarch                          1.35-3                 installed       
perl-libwww-perl.noarch                  5.805-1.1.1            installed       

Legg merke til bruken av enkle anførselstegn rundt perl* i kommandoen over. Dette hindrer shell'et (kommandotolkeren) i å ekspandere stjernetegnet, slik den ellers ville gjort.


9.3.4. Liste over foreldreløse RPM-pakker

Man kan bruke yum list til å liste opp installerte RPM-pakker som ikke tilhører noen kjent kanal i RHN eller et konfigurert yum-repository, ved å gi opsjonen extras. Slike pakker er som regel tredjeparts programvare og man bør passe ekstra på. Slik kan man holde oversikten:

Eksempel 4. Liste opp alle ekstra-pakker

maskin.uio.no# yum list extras
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
uio-extras                100% |=========================|  951 B    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Extra Packages
cabextract.i386                          1.2-1                  installed       
gpg-pubkey.None                          ad7beec8-456c522d      installed       
gpg-pubkey.None                          37017186-45761324      installed       
rhn-org-trusted-ssl-cert.noarch          1.0-2                  installed       

Se for øvrig Installasjon av tredjeparts RPM-pakker.

9.4. Sjekke om det er tilgjengelige oppdateringer

Man kan bruke yum til å sjekke om det er tilgjengelige oppdateringer for maskinen. Dette gjøres med opsjonen check-update.

Eksempel 5. Sjekke om det finnes oppdateringer

maskin.uio.no# yum check-update
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files

I dette eksemplet er det ingenting å oppgradere.


På UiO kjører vi yum hver natt på alle maskiner, slik at det normalt ikke er nødvendig for en lokal administrator å bry seg med å kjøre inn oppdateringer. Unntak er maskiner med et bruksmønster som gjør at de sjelden eller aldri befinner seg på UiO-nett (eller er slått på i det hele tatt) om natten, f.eks. bærbare maskiner. Disse bør man ta en sjau på en gang i blant.

9.5. Oppdatere tilgjengelige RPM-pakker

Man bruker yum til å oppgradere og oppdatere RPM-pakker som er installert på maskinen. Dette kan være sikkerhetsoppgraderinger, bug-fikser eller lignende. Bruk opsjonen update for å kjøre inn tilgjengelige oppdateringer:

maskin.uio.no# yum -y update

Som vist over bruker man gjerne opsjonen -y til yum når man gjør oppgraderinger og lignende. Da slipper man å måtte svare ja til det man har bedt yum om å gjøre.

9.6. Installering av RPM-pakker med YUM

Man bruker yum install til å installere RPM-pakker på maskinen, så sant disse RPM-pakkene finnes i en RHN-kanal eller i et konfigurert yum-repository. Her er et enkelt eksempel:

Eksempel 6. Installering av RPM-pakke med yum install

maskin.uio.no# yum install perl-Net-Telnet
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up Install Process
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-Net-Telnet to pack into transaction set.
perl-Net-Telnet-3.03-5.no 100% |=========================| 3.5 kB    00:00     
---> Package perl-Net-Telnet.noarch 0:3.03-5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 perl-Net-Telnet         noarch     3.03-5           rhel-x86_64-client-5   56 k

Transaction Summary
=============================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 56 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): perl-Net-Telnet-3. 100% |=========================|  56 kB    00:00     
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: perl-Net-Telnet              ######################### [1/1] 

Installed: perl-Net-Telnet.noarch 0:3.03-5
Complete!

Dersom man ønsker å slippe å svare ja på at det er greit å installere RPM-pakken (med evt. pakker den er avhengig av), kan man gi opsjonen -y til yum, slik:

maskin.uio.no# yum -y install perl-Net-Telnet

9.7. Fjerning av RPM-pakker med YUM

Man kan bruke yum remove for å fjerne en eller flere RPM-pakker angitt som argument. Dersom pakken eller pakkene man ber yum om å fjerne har pakker som igjen er avhengig av dem, vil disse også bli fjernet. Her er et eksempel, hvor en pakke uten avhengigheter blir fjernet:

Eksempel 7. Fjerning av RPM-pakker med YUM

maskin.uio.no# yum remove perl-Net-Telnet
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package perl-Net-Telnet.noarch 0:3.03-5 set to be erased
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Removing:
 perl-Net-Telnet         noarch     3.03-5           installed         154 k

Transaction Summary
=============================================================================
Install      0 Package(s)         
Update       0 Package(s)         
Remove       1 Package(s)         

Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Removing  : perl-Net-Telnet              ######################### [1/1]

Removed: perl-Net-Telnet.noarch 0:3.03-5
Complete!

Ettersom yum remove også vil fjerne pakker som er avhengig av pakken du ber den fjerne, bør man vise forsiktighet. Ikke bruk opsjonen -y her, se heller over hva den vil fjerne og svar ja eller nei.

9.8. Informasjon om en RPM-pakke

For å vise generell informasjon om en RPM-pakke kan man bruke yum info med et pakkenavn som argument. Eksempel:

Eksempel 8. Vise informasjon om en RPM-pakke med YUM

maskin.uio.no# yum info perl-Net-Telnet
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Available Packages
Name   : perl-Net-Telnet
Arch   : noarch
Version: 3.03
Release: 5
Size   : 56 k
Repo   : rhel-x86_64-client-5
Summary: Net-Telnet Perl module

Description:
Net::Telnet allows you to make client connections to a TCP port and do network I/O,
especially to a port using the TELNET protocol. Simple I/O methods such as print,
get, and getline are provided. More sophisticated interactive features are provided
because connecting to a TELNET port ultimately means communicating with a program
designed for human interaction. These interactive features include the ability to
specify a time-out and to wait for patterns to appear in the input stream, such as
the prompt from a shell.


9.9. Installasjon av 32bit RPM-pakker på 64bit Linux

For 64bit RHEL finnes alle biblioteker også i 32bit-versjon, og mange er allerede installert. Dette skyldes at man gjerne vil kjøre 32bit programvare på 64bit OS. For å installere 32bit-versjonen av en RPM-pakke må man spesifisere nettopp dette, ved å hekte på .i386 på slutten av pakkenavnet, slik pakken fremstår ved f.eks. yum list.

Eksempel 9. Installere 32bit RPM-pakker på 64bit RHEL

Først vil vi se hva som er installert og hva som er tilgjengelig:

maskin.uio.no# yum list ncurses\*
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Installed Packages
ncurses.x86_64                           5.5-24.20060715        installed       
ncurses-devel.x86_64                     5.5-24.20060715        installed       
Available Packages
ncurses.i386                             5.5-24.20060715        rhel-x86_64-clie
ncurses-devel.i386                       5.5-24.20060715        rhel-x86_64-clie

Som vi ser over er altså kun 64bit-versjonen av RPM-pakkene ncurses og ncurses-devel installert. Vi vil installere 32bit-versjonen av de samme pakkene:

maskin.uio.no# yum -y install ncurses.i386 ncurses-devel.i386
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
Setting up Install Process
Setting up repositories
rhel-x86_64-client-workst 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-supple 100% |=========================| 1.4 kB    00:00     
rhel-x86_64-client-5      100% |=========================| 1.4 kB    00:00     
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for ncurses to pack into transaction set.
ncurses-5.5-24.20060715.i 100% |=========================| 280 kB    00:01     
---> Package ncurses.i386 0:5.5-24.20060715 set to be updated
---> Downloading header for ncurses-devel to pack into transaction set.
ncurses-devel-5.5-24.2006 100% |=========================|  98 kB    00:00     
---> Package ncurses-devel.i386 0:5.5-24.20060715 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 ncurses                 i386       5.5-24.20060715  rhel-x86_64-client-5  1.1 M
 ncurses-devel           i386       5.5-24.20060715  rhel-x86_64-client-workstation-5  1.6 M

Transaction Summary
=============================================================================
Install      2 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 2.8 M
Downloading Packages:
(1/2): ncurses-5.5-24.200 100% |=========================| 1.1 MB    00:00     
(2/2): ncurses-devel-5.5- 100% |=========================| 1.6 MB    00:02     
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ncurses                      ######################### [1/2] 
  Installing: ncurses-devel                ######################### [2/2] 

Installed: ncurses.i386 0:5.5-24.20060715 ncurses-devel.i386 0:5.5-24.20060715
Complete!

Tilsvarende kan man spesifisere at man kun ønsker 64bit-versjonen av en RPM-pakke, ved å hekte på .x86_64 på pakkenavnet.

[Notat]Notat

Red Hat har konsekvent valgt å legge 64bit biblioteker under /usr/lib64 og /lib64, mens 32bit biblioteker havner under /usr/lib og /lib. På denne måten kan 32bit og 64bit biblioteker eksistere sammen på samme maskin, og programvare kompilert for 32bit RHEL vil fungere på 64bit RHEL fordi biblioteker ligger på forventet sted, dvs. samme sted som på en maskin med 32bit RHEL.

10. Installasjon, oppgradering og fjerning av RPM-pakker i RHEL3 og RHEL4

[Viktig]Gjelder ikke RHEL5

Dette dokumentet omhandler i all hovedsak bruk av programmet up2date, som ikke finnes i RHEL5.

10.1. Red Hat Network (RHN)

Alle Linux-maskiner på UiO som kjører Red Hat Enterprise Linux skal være registrert i Red Hat Network. RHN er kort sagt en database med informasjon om hver maskin som er registrert, og blant den informasjonen er liste over alle RPM-pakker som er installert på maskinen.

Ved hjelp av denne informasjonen kan logikken i RHN vite når en maskin trenger oppdateringer, og hvilke andre RPM-pakker som trengs for å tilfredsstille avhengigheter. Vi benytter oss av denne mekanismen for å gjøre oppgraderinger av RPM-pakker på alle RHEL-maskiner på UiO.

10.2. Introduksjon til up2date

up2date er programmet som brukes for å installere og oppgradere pakker på maskinen. up2date kommuniserer med RHN, og benytter rpm i bakgrunnen for selve operasjonene på RPM-pakkene.

10.2.1. Liste over uinstallerte RPM-pakker

Du kan få en liste over uinstallerte RPM-pakker ved å bruke opsjonen --show-available til up2date:

Eksempel 10. Up2date med opsjonen --show-available

maskin.uio.no# up2date --show-available
Canna-3.6-20.i386
Canna-libs-3.6-20.i386
FreeWnn-1.11-36.i386
FreeWnn-common-1.11-36.i386

[...osv...]


10.2.2. Liste over alle RPM-pakker

En liste over alle RPM-pakker tilgjengelig fra RHN, inkludert de som allerede er installert, kan du få med opsjonen --showall:

Eksempel 11. Up2date med opsjonen --showall

maskin.uio.no# up2date --showall
4Suite-0.11.1-14.i386
Canna-3.6-20.i386
Canna-libs-3.6-20.i386
ElectricFence-2.2.2-15.i386

[...osv...]


10.2.3. Liste over foreldreløse pakker

Du kan få opp en liste over RPM-pakker som ikke er med i kanalen(e) som maskinen abonnerer på fra RHN. Kan være nyttig i de tilfellene hvor du ikke lenger har oversikt over dette. Bruk opsjonen --show-orphans:

Eksempel 12. Up2date med opsjonen --show-orphans

maskin.uio.no# up2date --show-orphans
gdm-uio-2.0-1.noarch
rhn-org-trusted-ssl-cert-1.0-2.noarch

10.2.4. Installasjon av en pakke

Installasjon av en enkelt pakke gjøres på følgende måte:

maskin.uio.no# up2date pakkenavn

Vil du installere flere pakker samtidig, kan du angi dem på samme linje.

[Notat]Notat

Merk at man skal angi pakkenavn, ikke pakkenavn-versjon-osv. Dvs. at dette fungerer:

maskin.uio.no# up2date httpd

Men dette fungerer ikke:

maskin.uio.no# up2date httpd-2.0.46-32.ent.i386

10.2.5. Installasjon av ekstra kjernepakker

Hvis man skal installere en ekstra pakke hvis navn starter med "kernel", må opsjonen -f være med. Eksempel på dette har man hvis man trenger å installere pakken "kernel-source" for å kunne kompilere NVidia-driver til skjermkortet.

Pakken kernel-source installeres slik:

maskin.uio.no# up2date -f kernel-source

10.2.6. Oppgradering av pakker

Oppdatering av pakker gjøres automatisk hver natt. Scriptet som da kjøres er /local/etc/config/linux-up2date.

10.3. Automatisk oppgradering og kompabilitet

Red Hat garanterer at alle bugfikser og sikkerhetsoppgraderinger av RPM-pakker foregår uten tap av funksjonalitet. Dette betyr at de aller fleste patcher til er back-portet til den versjonen som opprinnelig følger med distribusjonen.

10.4. Oppgradering av kjernen

I utgangspunktet blir alle pakker utenom kjernen oppgradert automatisk hver natt. Dette betyr at oppgradering av kjernen krever en aktiv deltakelse fra maskinens administrator. Dette er ikke uten hensikt, ettersom oppgradering av kjernen er en stor operasjon fordi den innebærer en reboot av maskinen.

10.4.1. Finne ut om det er kommet en ny kjerne

Du kan finne ut om det er kommet en ny kjerne til din maskin ved å kjøre følgende kommando:

maskin.uio.no# up2date -u

Fetching package list for channel: rhel-i386-ws-3...
########################################

Fetching Obsoletes list for channel: rhel-i386-ws-3...

Fetching rpm headers...

Name                                    Version        Rel     
----------------------------------------------------------

The following Packages were marked to be skipped by your configuration:

Name                                    Version        Rel  Reason
-------------------------------------------------------------------------------
kernel                                  2.4.21         9.0.1.ELPkg name/pattern
kernel-smp                              2.4.21         9.0.1.ELPkg name/pattern

All packages are currently up to date

I eksemplet over ser vi at det listes opp pakker som ikke automatisk oppgraderes. I dette tilfellet er det kommet to nye kjernepakker som er aktuelle for denne maskinen.

Dersom det ikke er tilgjengelige oppgraderinger av kjernen, vil resultatet være som følger:

maskin.uio.no# up2date -u

Fetching package list for channel: rhel-i386-ws-3...
########################################

Fetching Obsoletes list for channel: rhel-i386-ws-3...

Fetching rpm headers...

Name                                    Version        Rel     
----------------------------------------------------------

All packages are currently up to date

10.4.2. Kommando for oppgradering

For å oppgradere kjernen kjører du følgende:

maskin.uio.no# up2date -uf

Opsjonen -u sørger for oppgradering, mens opsjonen -f betyr "force". Da vil alle pakker som ifølge konfigurasjonen ikke skal oppgraderes automatisk bli oppgradert.

[Notat]Notat

Kjernen blir ikke oppgradert i vanlig forstand, dvs. at den gamle erstattes med den nye. Det som skjer er at nyeste versjon legges inn og settes som default ved reboot (i filen /etc/grub.conf). Den gamle kjernen er fremdeles tilstede, og må slettes manuelt hvis du vil bli kvitt den.

Etter at ny kjerne er installert må maskinen naturligvis rebootes for at endringen skal tre i kraft.

10.4.3. Fjerne gamle kjernepakker

Ettersom allerede installerte kjernepakker ikke blir fjernet ved oppgradering, må de fjernes manuelt hvis du vil bli kvitt dem. Det gjøres ved hjelp at et par RPM-kommandoer:

Liste over installerte kjernepakker:

maskin.uio.no# rpm -qa | grep kernel
kernel-smp-2.4.21-9.EL
kernel-utils-2.4-8.37.1
kernel-2.4.21-9.EL
kernel-pcmcia-cs-3.1.31-13
kernel-2.4.21-9.0.1.EL
kernel-smp-2.4.21-9.0.1.EL

I eksemplet over er det fire kjernepakker installert, to stk. SMP[3]-kjerner og to UP[4]-kjerner. Sjekk hvilken kjerne maskinen kjører:

maskin.uio.no# uname -r
2.4.21-9.0.1.ELsmp

Fjern de du ikke ønsker installert, f.eks. de som ikke er samme versjon som den kjørende kjernen:

maskin.uio.no# rpm -e kernel-2.4.21-9.EL kernel-smp-2.4.21-9.EL

Etterpå er kun den kjørende kjernen (og dens ekvivalente for kun én prosessor) installert:

maskin.uio.no# rpm -qa | grep kernel
kernel-utils-2.4-8.37.1
kernel-pcmcia-cs-3.1.31-13
kernel-2.4.21-9.0.1.EL
kernel-smp-2.4.21-9.0.1.EL


[3] SMP = Symmetric Multiprocessing, dvs. en SMP-kjerne er beregnet for maskiner med mer enn én CPU. En RPM-pakke med SMP-kjerne har navn "kernel-smp".

[4] UP = Uniprocessor. Kjerne med støtte for kun én prosessor. UP-kjerner har navn "kernel".

11. Introduksjon til Logical Volume Management (LVM)

11.1. Hva er LVM?

LVM gir deg et høyere nivå av adgang til disk og lagring på en datamaskin enn den tradisjonelle representasjonen av disker og partisjoner. Dette gir maskinens administrator større fleksibilitet ved allokering av lagringsplass til applikasjoner/systemer og brukere.

Diskvolumer under LVM kan flyttes rundt nesten som man ønsker, samt at det er mulig å endre størrelsen på volumene uten at det krever en større inngripen i layout eller organisering av fysiske disker eller partisjoner.

Ved bruk av LVM får man logiske navn på volumet, slik som "local", "site" eller "privat", istedenfor navn av typen "/dev/sda7" eller "/dev/cciss/c0d0p5".

LVM har mulighet for avanserte operasjoner som er til stor nytte ved bruk på servere, eksempelvis snapshot. Disse avanserte operasjonene blir imidlertid ikke omtalt i dette dokumentet. Se LVM-HOWTO for mer informasjon dette.

11.2. Anatomien til LVM

LVM lager et ekstra logisk lag mellom filsystemer og fysiske disker. Dette kan best forklares ved hjelp av en illustrasjon (tatt fra LVM-HOWTO):


    hda1   hdc1      (PV:s on partitions or whole disks)
       \   /
        \ /
       diskvg        (VG)
       /  |  \
      /   |   \
  usrlv rootlv varlv (LV:s)
    |      |     |
 ext2  reiserfs  xfs (filesystems)

En annen måte (også tatt fra LVM-HOWTO):

+-- Volume Group --------------------------------+
|                                                |
|    +----------------------------------------+	 |
| PV | PE |  PE | PE | PE | PE | PE | PE | PE |	 |
|    +----------------------------------------+	 |
|      .       	  .    	     . 	      .	       	 |
|      .          .    	     .        .	         |
|    +----------------------------------------+	 |
| LV | LE |  LE | LE | LE | LE | LE | LE | LE |	 |
|    +----------------------------------------+	 |
|            .          .        .     	   .     |
|            . 	        .        .     	   .     |
|    +----------------------------------------+	 |
| PV | PE |  PE | PE | PE | PE | PE | PE | PE |	 |
|    +----------------------------------------+	 |
|                                                |
+------------------------------------------------+

11.2.1. Tegnforklaring

Forkortelse Forklaring / Beskrivelse
PV = Physical Volume Fysisk volum, enten en disk eller en partisjon på en disk
PE = Physical Extent Fysisk ekstent, en gitt størrelse av et fysisk volum. En PE er en eksponent av 4 MB, minimum 4 MB. Alle PE i en volumgruppe er like store.
VG = Volume Group Volumgruppe
LV = Logical Volume Logisk volum
LE = Logical Extent Logisk ekstent. Disse er like store som fysiske ekstenter. Et logisk volum består at et gitt antall logiske ekstenter.

11.3. Lage en volumgruppe

For å lage en volumgruppe må man ha ett eller flere fysiske volumer som volumgruppen kan bestå av. La oss tenke oss at vi skal lage en volumgruppe som består av én disk /dev/sdb. I eksemplet er dette en disk på 1.4 TB.

11.3.1. Lage en fysisk partisjon på disken til LVM

Det første man gjør er å lage en partisjon /dev/sdb1 av hele disken, og sørge for at /dev/sdb1 i partisjonstabellen er markert som et fysisk volum i LVM. Start opp fdisk:

maskin.uio.no# fdisk /dev/sdb

The number of cylinders for this disk is set to 182358.
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)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Lag en ny partisjon av hele disken:

Command (m for help): n

Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-182358, default 1): <trykk enter>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-182358, default 182358): <trykk enter>
Using default value 182358

Sett partisjonstype for /dev/sdb1 til 8e, som er LVM physical volume:

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Skriv partisjonstabellen til disk:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[Notat]Notat

Det er strengt tatt ikke nødvendig å lage en partisjon på disken hvis hele disken skal brukes som et fysisk volum i en volumgruppe. I dette eksemplet kunne vi godt brukt bare /dev/sdb.

Likevel anbefaler vi å lage en partisjon, ettersom skaper potensielt mindre feilkilder ved evt. oppgradering av maskinen senere.

11.3.2. Initialisere det fysiske volumet

Før et fysisk volum kan meldes inn i en volumgruppe må det initialiseres. Det gjøres med kommandoen pvcreate:

  pvcreate: Initialize physical volume(s) for use by LVM

pvcreate 
        [--restorefile file]
        [-d|--debug]
        [-f[f]|--force [--force]] 
        [-h|-?|--help] 
        [--labelsector sector] 
        [-M|--metadatatype 1|2]
        [--metadatacopies #copies]
        [--metadatasize MetadataSize[kKmMgGtT]]
        [--setphysicalvolumesize PhysicalVolumeSize[kKmMgGtT]
        [-t|--test] 
        [-u|--uuid uuid] 
        [-v|--verbose] 
        [-y|--yes]
        [-Z|--zero {y|n}]
        [--version] 
        PhysicalVolume [PhysicalVolume...]

Eksempel 13. Kommandoen pvcreate

maskin.uio.no# pvcreate /dev/sdb1
pvcreate -- physical volume "/dev/sdb1" successfully created


11.3.3. Lage volumgruppen

En volumgruppe lages med kommandoen vgcreate:

  vgcreate: Create a volume group

vgcreate
        [-A|--autobackup {y|n}] 
        [--addtag Tag] 
        [--alloc AllocationPolicy] 
        [-c|--clustered] 
        [-d|--debug]
        [-h|--help]
        [-l|--maxlogicalvolumes MaxLogicalVolumes]
        [-M|--metadatatype 1|2] 
        [-p|--maxphysicalvolumes MaxPhysicalVolumes] 
        [-s|--physicalextentsize PhysicalExtentSize[kKmMgGtT]] 
        [-t|--test] 
        [-v|--verbose]
        [--version] 
        VolumeGroupName PhysicalVolume [PhysicalVolume...]

Eksempel 14. Kommandoen vgcreate

maskin.uio.no# vgcreate -s 128M datavg /dev/sdb1
vgcreate -- INFO: maximum logical volume size is 2 Terabyte
vgcreate -- doing automatic backup of volume group "datavg"
vgcreate -- volume group "datavg" successfully created and activated


I eksemplet lager vi en volumgruppe "datavg" med ett fysisk volum /dev/sdb1. Siden det i eksemplet er snakk om en temmelig stor disk (1.4 TB) lager vi større fysiske ekstenter (PE) enn det som er default. Hvor store fysiske ekstenter man ønsker avgjøres av hvor finmasket man ønsker å kunne angi størrelsen på logiske volumer som lages i volumgruppen. På en såpass stor disk som dette vil PE-størrelse på 4 MB (default) gi en ganske stor liste for LVM å holde orden på, som kan medføre noe nedsatt hastighet ved I/O til disken.

11.4. Lage et logisk volum

For å lage et logisk volum brukes kommandoen lvcreate:

  lvcreate: Create a logical volume

lvcreate 
        [-A|--autobackup {y|n}]
        [--addtag Tag]
        [--alloc AllocationPolicy]
        [-C|--contiguous {y|n}]
        [-d|--debug]
        [-h|-?|--help]
        [-i|--stripes Stripes [-I|--stripesize StripeSize]]
        {-l|--extents LogicalExtentsNumber |
         -L|--size LogicalVolumeSize[kKmMgGtT]}
        [-M|--persistent {y|n}] [--major major] [--minor minor]
        [-n|--name LogicalVolumeName]
        [-p|--permission {r|rw}]
        [-r|--readahead ReadAheadSectors]
        [-t|--test]
        [--type VolumeType]
        [-v|--verbose]
        [-Z|--zero {y|n}]
        [--version]
        VolumeGroupName [PhysicalVolumePath...]

lvcreate -s|--snapshot
        [-c|--chunksize]
        [-A|--autobackup {y|n}]
        [--addtag Tag]
        [--alloc AllocationPolicy]
        [-C|--contiguous {y|n}]
        [-d|--debug]
        [-h|-?|--help]
        [-i|--stripes Stripes [-I|--stripesize StripeSize]]
        {-l|--extents LogicalExtentsNumber |
         -L|--size LogicalVolumeSize[kKmMgGtT]}
        [-M|--persistent {y|n}] [--major major] [--minor minor]
        [-n|--name LogicalVolumeName]
        [-p|--permission {r|rw}]
        [-r|--readahead ReadAheadSectors]
        [-t|--test]
        [-v|--verbose]
        [--version]
        OriginalLogicalVolume[Path] [PhysicalVolumePath...]

Eksempel 15. Kommandoen lvcreate

maskin.uio.no# lvcreate -L 100G -n test datavg
lvcreate -- doing automatic backup of "datavg"
lvcreate -- logical volume "/dev/datavg/test" successfully created


Her lages et logisk volum på 100 GB i volumgruppen "datavg". Det logiske volumet gis navnet "test".

Etter at det logiske volumet er laget må det lages et filsystem på det og det må monteres på vanlig måte. Først lages et filsystem, f.eks. ext3:

maskin.uio.no# mke2fs -j /dev/datavg/test
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
13107200 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
800 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Deretter lages en passende linje i /etc/fstab:

/dev/datavg/test /usit/maskin/test ext3 defaults 1 2

Monteringspunktet lages og filsystemet monteres:

maskin.uio.no# mkdir -p /usit/maskin/test
maskin.uio.no# mount /usit/maskin/test

Da var jobben utført.

[Obs]Backup og Palantir

Dersom dette er en viktig maskin og det nye filsystemet er skal inneholde viktige data, husk å gi beskjed til restore@usit.uio.no om backup. Husk også å legge til det nye filsystemet i Palantir slik at det blir overvåket.

11.5. Vise informasjon om volumgrupper o.l.

Man kan få maskinen til å vise fram informasjon om LVM's oppbygning på en maskin ved å bruke kommandoen vgdisplay:

  vgdisplay: Display volume group information

vgdisplay 
        [-c|--colon | -s|--short | -v|--verbose]
        [-d|--debug] 
        [-h|--help] 
        [--ignorelockingfailure]
        [--nosuffix]
        [-P|--partial] 
        [--units hsbkmgtHKMGT]
        [-A|--activevolumegroups | [-D|--disk]
        [--version]
        [VolumeGroupName [VolumeGroupName...]]

vgdisplay --columns|-C
        [--aligned]
        [-d|--debug] 
        [-h|--help] 
        [--ignorelockingfailure]
        [--noheadings]
        [--nosuffix]
        [-o|--options [+]Field[,Field]]
        [-O|--sort [+|-]key1[,[+|-]key2[,...]]]
        [-P|--partial] 
        [--separator Separator]
        [--unbuffered]
        [--units hsbkmgtHKMGT]
        [--verbose]
        [--version]
        [VolumeGroupName [VolumeGroupName...]]

Eksempel 16. Kommandoen vgdisplay

maskin.uio.no# vgdisplay
--- Volume group ---
VG Name               datavg
VG Access             read/write
VG Status             available/resizable
VG #                  1
MAX LV                256
Cur LV                1
Open LV               0
MAX LV Size           2 TB
Max PV                256
Cur PV                1
Act PV                1
VG Size               1.36 TB
PE Size               128 MB
Total PE              11174
Alloc PE / Size       800 / 100 GB
Free  PE / Size       10374 / 1.27 TB
VG UUID               BufIDr-HF34-Lj4p-HYcI-sv3d-k2aT-IX5vNb

--- Volume group ---
VG Name               internvg
VG Access             read/write
VG Status             available/resizable
VG #                  0
MAX LV                256
Cur LV                6
Open LV               6
MAX LV Size           255.99 GB
Max PV                256
Cur PV                1
Act PV                1
VG Size               31.39 GB
PE Size               4 MB
Total PE              8037
Alloc PE / Size       4864 / 19 GB
Free  PE / Size       3173 / 12.39 GB
VG UUID               ls51Gm-UkNZ-VePm-G3fG-oZ4K-pCAH-jaT4pQ



Her listes det opp to volumgrupper, siden vi på denne maskinen både har en volumgruppe 'internvg' for interndisker og en volumgruppe 'datavg' for det eksterne diskkabinettet. For å liste opp informasjon om kun den ene volumgruppen angir man volumgruppens navn. Man kan liste opp mer fyldig informasjon med vgdisplay -v.

Eksempel 17. Kommandoen vgdisplay -v

maskin.uio.no# vgdisplay -v datavg
--- Volume group ---
VG Name               datavg
VG Access             read/write
VG Status             available/resizable
VG #                  1
MAX LV                256
Cur LV                1
Open LV               0
MAX LV Size           2 TB
Max PV                256
Cur PV                1
Act PV                1
VG Size               1.36 TB
PE Size               128 MB
Total PE              11174
Alloc PE / Size       800 / 100 GB
Free  PE / Size       10374 / 1.27 TB
VG UUID               BufIDr-HF34-Lj4p-HYcI-sv3d-k2aT-IX5vNb

--- Logical volume ---
LV Name                /dev/datavg/test
VG Name                datavg
LV Write Access        read/write
LV Status              available
LV #                   1
# open                 0
LV Size                100 GB
Current LE             800
Allocated LE           800
Allocation             next free
Read ahead sectors     1024
Block device           58:5


--- Physical volumes ---
PV Name (#)           /dev/sdb1 (1)
PV Status             available / allocatable
Total PE / Free PE    11174 / 10374



Andre kommandoer for å vise frem informasjon er lvdisplay og pvdisplay.

11.6. Finne ledig plass i volumgruppen

Man kan finne ut hvor mye ledig plass som er tilgjengelig i volumgruppen ved å bruke vgdisplay.

Eksempel 18. Finne ledig plass i volumgruppe

maskin.uio.no# vgdisplay internvg | grep -i free
  Free  PE / Size       172 / 5.38 GB

I eksemplet er det ca. 5 GB ledig (172 fysiske ekstenter (PE)) i volumgruppen internvg.

Alternativt, hvis man kjører RHEL4 og dermed har LVM2, kan man bruke opsjonen -C til vgdisplay for å få denne informasjonen:

maskin.uio.no# vgdisplay -C
  VG       #PV #LV #SN Attr  VSize   VFree 
  datavg     1   3   0 wz--n 136.62G 91.62G
  internvg   1   7   0 wz--n  28.88G  5.38G

11.7. Øke størrelsen på logiske volumer

11.7.1. Red Hat Enterprise Linux 3

Å øke størrelsen på LVM-volumer er enkelt. Det vanskeligste er ofte å avklare hvordan man skal kunne avmontere filsystemet først, ettersom ext3 ikke kan utvides online. Under er et eksempel på utvidelse av et logisk volum på maskinen ernesto.uio.no.

Eksempel 19. Øke størrelsen på filsystem, RHEL3

Dette er filsystemet vi skal utvide. Det skal utvides med 10GB:

ernesto.uio.no# df /sv/ernesto/stv-u14
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/ernestovg01/stv-u14
                       6192704   5011304    866828  86% /sv/ernesto/stv-u14

Først må filsystemet avmonteres:

ernesto.uio.no# umount /sv/ernesto/stv-u14

Til utvidelse av det logiske volumet brukes lvextend:

lvextend [-A|--autobackup {y|n}] [-d|--debug] [-h|--help] {-l|--extents
    [+]LogicalExtentsNumber|   -L|--size    [+]LogicalVolumeSize[kKmMgGtT]}
    [-v|--verbose] LogicalVolumePath [PhysicalVolumePath...]

Her utvides /dev/ernestovg01/stv-u14 med 10GB:

ernesto.uio.no# lvextend -L +10G /dev/ernestovg01/stv-u14
lvextend -- extending logical volume "/dev/ernestovg01/stv-u14" to 16 GB
lvextend -- doing automatic backup of volume group "ernestovg01"
lvextend -- logical volume "/dev/ernestovg01/stv-u14" successfully extended

Det hjelper lite å utvide partisjonen, hvis ikke filsystemet også utvides tilsvarende, men før vi utvider filsystemet er det obligatorisk med en sjekk:

ernesto.uio.no# e2fsck -f /dev/ernestovg01/stv-u14
e2fsck 1.32 (09-Nov-2002)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/ernestovg01/stv-u14: 29689/786432 files (5.2% non-contiguous), 1277514/1572864 blocks

Så utvider vi filsystemet med resize2fs:

resize2fs [-d debug_flags] [-f] [-F] [-p] device [new-size]

Uten opsjoner vil filsystemet utvides til maksimal tillatt størrelse, som avgjøres av hvor stor partisjonen (LVM-volumet) er.

ernesto.uio.no# resize2fs /dev/ernestovg01/stv-u14
resize2fs 1.32 (09-Nov-2002)
The filesystem on /dev/ernestovg01/stv-u14 is now 4194304 blocks long.

Da er det bare å montere filsystemet igjen:

ernesto.uio.no# mount /sv/ernesto/stv-u14

Det ferdige resultatet er som forventet, filsystemet er utvidet med 10GB:

ernesto.uio.no# df /sv/ernesto/stv-u14
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/ernestovg01/stv-u14
                      16513960   5011304  10831568  32% /sv/ernesto/stv-u14

11.7.2. Red Hat Enterprise Linux 4

Å øke størrelsen på LVM-volumer er enkelt. For RHEL4 trenger man ikke avmontere filsystemer før man utvider det. Under er et eksempel på utvidelse av et logisk volum på maskinen ernesto.uio.no.

Eksempel 20. Øke størrelsen på filsystem, RHEL4

Dette er filsystemet vi skal utvide. Det skal utvides med 10GB:

ernesto.uio.no# df /sv/ernesto/stv-u14
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/ernestovg01-stv-u14
                       6192704   5011304    866828  86% /sv/ernesto/stv-u14

Til utvidelse av det logiske volumet brukes lvextend:

  lvextend: Add space to a logical volume

lvextend
        [-A|--autobackup y|n]
        [--alloc AllocationPolicy]
        [-d|--debug]
        [-h|--help]
        [-i|--stripes Stripes [-I|--stripesize StripeSize]]
        {-l|--extents [+]LogicalExtentsNumber |
         -L|--size [+]LogicalVolumeSize[kKmMgGtT]}
        [-n|--nofsck]
        [-r|--resizefs]
        [-t|--test]
        [--type VolumeType]
        [-v|--verbose]
        [--version]
        LogicalVolume[Path] [ PhysicalVolumePath... ]

Her utvides /dev/ernestovg01/stv-u14 med 10GB:

ernesto.uio.no# lvextend -L +10G /dev/ernestovg01/stv-u14
lvextend -- extending logical volume "/dev/ernestovg01/stv-u14" to 16 GB
lvextend -- doing automatic backup of volume group "ernestovg01"
lvextend -- logical volume "/dev/ernestovg01/stv-u14" successfully extended

Det hjelper lite å utvide partisjonen, hvis ikke filsystemet også utvides tilsvarende. Vi utvider filsystemet med ext2online:

ext2online [-C fd] [-dfqvV] device [new_size[bkmgt]]
        -C, --completion : print completion information
        -d, --debug      : turn debug info on
        -f, --force      : skip safety checks
        -q, --quiet      : be quiet (print only errors)
        -v, --verbose    : be verbose
        -V, --version    : print version and exit
        fd is the file descriptor to output completion data to,
        new_size is in ext2 blocks (1k, 2k, or 4k) (default),
        disk Blocks (512 byte), Kilo-, Mega-, Giga-, or Terabytes

Uten opsjoner vil filsystemet utvides til maksimal tillatt størrelse, som avgjøres av hvor stor partisjonen (LVM-volumet) er.

ernesto.uio.no# ext2online /dev/ernestovg01/stv-u14

Det ferdige resultatet er som forventet, filsystemet er utvidet med 10GB:

ernesto.uio.no# df /sv/ernesto/stv-u14
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/ernestovg01-stv-u14
                      16513960   5011304  10831568  32% /sv/ernesto/stv-u14

11.8. Mer informasjon

Denne web-siden er kun ment som en introduksjon. For mer informasjon om LVM, se LVM-HOWTO.

12. Backup av Linux

UiO har standardisert på TSM (Tivoli™ Storage Manager) som backupsystem. Dette systemet brukes av alle UNIX-maskiner og også endel PC-er som folk vil ta backup av.

De aller fleste Linux-maskiner ikke trenger backup i det hele tatt, og man slipper litt styr med å sette opp det hele. Det er ikke noe poeng i å ta backup av en maskin med bare /, /usr og /local, da dette er lett å gjenskape ved reinstallasjon og dist (STORE).

[Notat]Notat

For generell informasjon om backup av UNIX, samt en utførlig FAQ med eksempler, se denne siden.

12.1. Hvordan registrere en maskin i backup-systemet

For å registrere en backup-klient, send en mail til . For å si fra at en maskin ikke trenger backup i det hele tatt lager du en fil /etc/usit/tsm.noclient:

maskin.uio.no# touch /etc/usit/tsm.noclient

Hvis du har konfigurert maskinen etter installasjon slik det fremgår på disse web-sidene, blir dette flagget laget automatisk.

For at USIT skal sikre skikkelig backup av din Linux-maskin må du altså si fra til om følgende:

  • Hvilke partisjoner/kataloger det skal tas backup av

  • Hvor ofte det skal tas backup (daglig/ukentlig)

  • Spesifiser hvilke filsystemer som kjører, hvis det er noe annet enn ext3

12.2. Test av backup-klienten

TSM-klienten linker gjerne mot tidligere versjoner av libstdc++, og fordi det ikke er (var) binærkompabilitet mellom g++-versjoner trengs det en egen pakke i nyere RedHat-versjoner.

Prøv å kjøre kommandoen dsmc, f.eks. slik:

maskin.uio.no# dsmc query filespace
/local/opt/tsm/bin/dsmc: error while loading shared libraries:
libstdc++.so.5: cannot open shared object file:
No such file or directory

Hvis du får feilmeldingen over og maskinen kjører RHEL4 eller RHEL5, mangler kompabilitetspakken "compat-libstdc++-33", som du kan installere slik:

For RHEL4:

maskin.uio.no# up2date compat-libstdc++-33

For RHEL5:

maskin.uio.no# yum -y install compat-libstdc++-33
[Obs]Obs

Hvis maskinen kjører 64bit Linux (x86_64), må du spesifisere at du skal installere 32bit-versjonen slik:

For RHEL4:

maskin.uio.no# up2date compat-libstdc++-33 --arch=i386

For RHEL5:

maskin.uio.no# yum -y install compat-libstdc++-33.i386

Da skal dsmc virke igjen.

13. Linux som NIS-server (YP)

13.1. Hva er NIS/YP?

Følgende sitat er fra Sun™ System & Network Administration Manual:

NIS was formerly known as Sun Yellow Pages (YP) but the name Yellow Pages™ is a registered trademark in the United Kingdom of British Telecom plc and may not be used without permission.

NIS står for "Network Information Service". Hensikten med NIS er å gjøre tilgjengelig informasjon som trenger å være kjent i hele nettverket. Informasjon som gjøres tilgjengelig på denne måten på UiO er blant annet:

  • Brukernavn, passord, hjemmeområder (/etc/passwd)

  • Filgrupper (/etc/group)

  • Nettgrupper for maskiner og brukere

13.2. Hvorfor kjøre NIS-server på Linux?

Flere subnett har pr. i dag ikke egen NIS-server. En konsekvens av dette er at maskinene på disse subnettene må bruke en NIS-server utenfor sitt eget subnett, vanligvis en av USITs sentrale NIS-servere. Dette medfører igjen at nettverkstrafikken gjennom ruterne øker, at de sentrale NIS-serverne får økt belastning, og at hvert oppslag tar lenger tid. Alle subnett med mer enn 10 UNIX- eller Linux-maskiner bør ha minst en NIS-server for å øke ytelsen og minke nettverkstrafikken.

13.3. Sette opp en Linux-maskin som NIS-server

[Viktig]Viktig

En NIS-server må ha høy oppetid. Den må være en stabil maskin som er tilgjengelig døgnet rundt. Dette er viktig for ikke å lage problemer for klientene som bruker NIS-serveren. En maskin som kjører NIS-server trenger ikke være sterk, ettersom NIS-serverprogramvaren ikke tar mye ressurser, men maskinen må være stabil.

Å installere å kjøre i gang NIS-server på en Linux-maskin er temmelig enkelt. Her er en liten "kokebok":

  1. Legg inn Store-pakken "ypserv", f.eks. slik:

    maskin.uio.no# storeapp -a ypserv
    
  2. Send mail til og fortell at maskinen skal være NIS-server. At den er tatt med i oversikten over NIS-servere kan du sjekke med kommandoen

    maskin.uio.no# ypmatch maskin.uio.no ypservers
    maskin.uio.no
    

    Dersom YP-kartet over NIS-serverne er oppdatert med den nye maskinen vil resultatet bli som over. Merk at man må spørre etter fullt navn (FQDN).

    Vær oppmerksom på at det tar tid før dette oppdaterer seg på hele UiO etter at unix-drift har lagt til maskinen. Man kan godt installere NIS-server på maskinen likevel selv om den ikke vises med kommandoen ovenfor, men er den ikke der neste dag, må unix-drift få beskjed.

  3. Shell-scriptet /local/etc/yp/ypinit_linux.sh installerer NIS-server på maskinen og henter inn alle NIS-maps fra sjefs-NIS-serveren, så kjør kommandoen

    maskin.uio.no# /local/etc/yp/ypinit_linux.sh
    

    og følg med på hva som skjer.

    Det er vanlig å se to typer feilmeldinger:

    failed to send 'clear' to local ypserv: RPC: Program not registered
    

    som kommer av at man via kommandoen makedbm -c prøver å sende et signal til ypserv, men ypserv er ikke startet ennå. Altså ikke noe å bry seg om.

    ethers.byname: /var/yp/gnu/uio/ethers.byname: No such file or directory (ignored)
    

    Her klages det på at filen /var/yp/gnu/uio/ethers.byname ikke finnes, men vi vet jo at det er første gang den hentes. Heller ikke noe å bry seg om.

  4. Etterpå må man fortelle hvilke(t) subnett maskinen skal svare på henvendelser fra i filen /var/yp/securenets. En eksempelfil er installert, editer den til ditt behov.

  5. Start så ypserv med kommandoen

    maskin.uio.no# service ypserv start
    Starting YP server services:                               [  OK  ]
    
  6. Sørg for at NIS-serveren startes ved boot. Det gjøres med følgende kommando:

    maskin.uio.no# chkconfig ypserv on
    

13.4. Stoppe og starte ypserv

ypserv er lagt inn i Red Hats oppstartsscript på vanlig måte. Den kan stoppes, startes, restartes og også monitores med

service ypserv {start|stop|status|restart|reload|condrestart}

13.5. Fjerne maskinen som NIS-server

Av og til kan det være nødvendig å fjerne maskinen fra oppgaven som NIS-server. Det er da nødvendig med litt opprydning:

  1. Stopp serveren med

    maskin.uio.no# service ypserv stop
    Stopping YP server services:                               [  OK  ]
    
  2. Fjern ypserv fra oppstartsscriptene:

    maskin.uio.no# chkconfig ypserv off
    maskin.uio.no# rm -f /etc/init.d/ypserv
    
  3. Fjern så lagrede NIS-maps og securenets med

    maskin.uio.no# rm -rf /var/yp/{uio,securenets,gnu}
    
  4. Fjern Store-pakken "ypserv", f.eks. slik:

    maskin.uio.no# storeapp -r ypserv
    
  5. Fjern cron-jobbene som henter NIS-maps fra crontab. Dette gjøres ved å kjøre kommandoen crontab -e og fjerne linjene som inneholder ypxfr.

    Du kan liste opp innholdet i crontab med følgende kommando:

    maskin.uio.no# crontab -l
    ## Transfer YP maps. ###################################
    #
     2 6,10,13,16,20,0 * * * sh /local/etc/yp/ypxfr_1perhour
     2 2,14 * * * sh /local/etc/yp/ypxfr_2perday
     2 4 * * * sh /local/etc/yp/ypxfr_1perday
    
  6. Send en mail til med melding om at maskinen ikke lenger er en NIS-server, og kan tas ut fra ypservers-kartet.

Da er ikke maskinene lenger en NIS-server.

13.6. Aktuelle Linker

14. Avanserte emner

[Notat]Om dette dokumentet

Dette kapitlet tar for seg avanserte emner (eller små emner som ikke fortjener en egen side) i drift og oppsett av Linux-maskiner. Det meste av informasjonen som ligger her var tidligere kun tilgjengelig på USITs intra-web. Vi har gjort det tilgjengelig for alle med håp om at det kan være nyttig.

14.1. Hvordan identifisere et nett-interface

En server har som regel minst to interfacer, og gjerne flere. For å identifisere et spesifikt interface fysisk kan du bruke ethtool til å la det angitte interfacet blinke et gitt antall sekunder. Eksempel:

maskin.uio.no# ethtool -p eth0 5

Ved kjøring av kommandoen over vil den fysiske porten til interfacet som Linux identifiserer som eth0 blinke i 5 sekunder. Antall sekunder er angitt med parameteren 5 i eksemplet over. Man kan naturligvis la det blinke lenger hvis man vil.

Blinkingen vil ikke påvirke nettrafikken.

14.2. Sette full-duplex mode på et nett-interface

Linux prøver å forhandle med svitsjen om hvilken båndbredde og duplex som skal brukes. Dersom svitsjen er satt til fast 100Mbit full-duplex (uten autonegotiation) vil Linux falle tilbake på 100Mbit half-duplex. Dette er korrekt oppførsel.

Du kan sjekke hva som kjører på et nett-interface med kommandoen ethtool:

Eksempel 21. Kommandoen ethtool

maskin.uio.no# ethtool eth1
Settings for eth1:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Half
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g

I eksemplet kjører eth1 i half-duplex, noe som generelt ikke er ønskelig. For å bøte på dette er det to alternativer:

  1. Endre innstillingene på den aktuelle porten på svitsjen slik at den støtter autonegotiation på både båndbredde og duplex (dvs. auto/auto).

  2. Dersom alternativ 1 er upraktisk eller umulig, kan man tvinge Linux til å kjøre 100Mbit full-duplex på nettkortet. Det gjøres best ved å legge inn følgende linje i /etc/sysconfig/network-scripts/ifcfg-ethX, der X vanligvis er 0 eller 1:

    ETHTOOL_OPTS="speed 100 duplex full autoneg off"
    

    Etter dette kan interfacet restartes:

    maskin.uio.no# ifdown ethX
    maskin.uio.no# ifup ethX
    

For å tvinge nettkortet til 100Mbit full-duplex med det samme, kan man kjøre følgende kommando (forutsatt at nettkortet støtter MII, noe de fleste gjør):

maskin.uio.no# mii-tool -F100baseTx-FD ethX

14.3. Sette opp virtuelt nettverks-interface

Et virtuelt interface er et interface som er assosiert med den samme fysiske maskinvaren (nettkortet). De har vanligvis navn som begynner med navnet på det ekte interfacet, med påfølgende kolon og løpenummer, f.eks. eth0:1, eth0:2 osv. Det ekte interfacet må ha en statisk IP-adresse, det vil ikke virke med IP-adresse levert fra DHCP-server. Det virtuelle interfacet må være på samme subnett som det ekte.

Man bruker virtuelle interfacer i mange ulike situasjoner. F.eks. bruker man det gjerne på web-servere som server HTTP over SSL for flere domener/adresser. Hver adresse må da ha et eget IP-nummer, hvis de skal ha sitt eget SSL-sertifikat.

Følgende er en oppskrift på hvordan man setter opp et virtuelt interface for eth0.

  1. Ta utgangspunkt i filen /etc/sysconfig/network-scripts/ifcfg-eth0:

    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:14:22:1C:80:58
    IPADDR=129.240.14.32
    NETMASK=255.255.254.0
    ONBOOT=yes
    TYPE=Ethernet
    
  2. Kopier denne til ifcfg-eth0:1:

    maskin.uio.no# cd /etc/sysconfig/network-scripts
    maskin.uio.no# cp ifcfg-eth0 ifcfg-eth0:1
    
  3. Editer ifcfg-eth0:1 så den inneholder følgende:

    DEVICE=eth0:1
    BOOTPROTO=none
    IPADDR=129.240.14.nytt
    NETMASK=255.255.254.0
    ONBOOT=yes
    
  4. Start det virtuelle interfacet:

    maskin.uio.no# ifup eth0:1
    

Det virtuelle interfacet skal så kjøres og vil vises med ifconfig, og skal svare på ping og andre vanlige forespørsler.

14.4. Bonding av nettkort

På RHEL3 og RHEL4 er prosedyren for å sette opp to nettkort i standby-modus, klipp og lim-oppskrift, forutsetter at maskinen er installert med eth0 som nettkort, at alle kortene er kjent og at bonding er som en modul. Dette passer typisk for en Dell 2650 eller 2850.

14.4.1. Kjernemodul for bonding

Sørg for å laste kjernemodulen. Dette konfigureres i /etc/modules.conf for RHEL3, og /etc/modprobe.conf for RHEL4.

- For Red Hat Enterprise Linux 3:

maskin.uio.no# echo alias bond0 bonding >> /etc/modules.conf
maskin.uio.no# echo options bond0 mode=1 miimon=100 >> /etc/modules.conf

- For Red Hat Enterprise Linux 4:

maskin.uio.no# echo alias bond0 bonding >> /etc/modprobe.conf
maskin.uio.no# echo options bond0 mode=1 miimon=100 >> /etc/modprobe.conf

Opsjonene her betyr:

OpsjonBeskrivelse
mode=1

Sets an active-backup policy for fault tolerance. Transmissions are received and sent out via the first available bonded slave interface. Another bonded slave interface is only used if the active bonded slave interface fails.

miimon=100

Specifies (in milliseconds) how often MII link monitoring occurs. This is useful if high availability is required because MII is used to verify that the NIC is active.

14.4.2. Mer enn ett bonding-interface

Dersom man skal ha mer enn ett bonding-interface, må ting gjøres litt annerledes i /etc/modules.conf (RHEL3) eller /etc/modprobe.conf (RHEL4). For eksempel, hvis man har to bonding-interfacer:

Følgende gjelder for RHEL3 (/etc/modules.conf):

alias bond0 bonding
options bond0 mode=1 miimon=100
alias bond1 bonding
options bond1 -o bonding1 mode=1 miimon=100

Dette skyldes at man for linux 2.4 ikke kan bruke samme modul til to interfacer. Selv om det er samme modul, må den lastes inn to ganger. RHEL4 bruker 2.6-kjerne, og da er det annerledes.

For RHEL4 gjør man slik (/etc/modprobe.conf):

install bond0 /sbin/modprobe -a eth0 eth2 && /sbin/modprobe bonding
alias bond0 bonding
install bond1 /sbin/modprobe -a eth1 eth3 && /sbin/modprobe bonding
alias bond1 bonding
options bonding mode=1 miimon=100 max_bonds=2

I listingen over bondes eth1 sammen med eth3, mens eth0 bondes med eth2.

14.4.3. Konfigurasjon av nett-interface

All konfigurasjon gjøres i katalogen /etc/sysconfig/network-scripts:

cd /etc/sysconfig/network-scripts

# Ta vare paa mac-adresser
hw0=`grep ^HWADDR ifcfg-eth0 | cut -d= -f2`
hw1=`grep ^HWADDR ifcfg-eth1 | cut -d= -f2`

mv ifcfg-eth0 ifcfg-bond0

perl -p -i~ -e  "s/eth0/bond0/g; s/^TYPE=.+/TYPE=Bonding/g; s/^HWADDR=.+//g;" ifcfg-bond0

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
USERCTL=no
ONBOOT=yes
HWADDR=$hw0
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<EOF
DEVICE=eth1
USERCTL=no
ONBOOT=yes
HWADDR=$hw1
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
EOF

Nettverket restartes med /etc/init.d/network restart

14.5. Statisk routing

For nyere versjoner av Red Hat (Enterprise) Linux konfigureres statisk routing i /etc/sysconfig/network-scripts/route-<interface-name>. For eksempel vil vi at trafikk fra UiO-maskiner skal routes via UiO-interfacet på yar.extern.uio.no:

129.240.0.0/16 via 129.240.191.1

Filen /etc/sysconfig/network-scripts/route-<interface-name> inneholder linjer som er argumenter til /sbin/ip route add. Full dokumentasjon er i /usr/share/doc/iproute-2.4.7/ip-cref.ps. Kapittel 7 er spesielt interessant.

14.6. Seriellkonsoll

Slik går man fram for å få seriell-konsoll på spider for en Linux-maskin eksempelvis på USITs maskinrom, etter at maskinen er konfigurert på spider.uio.no (lagt til /etc/usit/conserver.cf og conserver reloadet):

[Advarsel]Advarsel

Hvis kjernen er egenkompilert, husk at det må være kompilert inn støtte for seriell-konsoll, dvs. "Support for console on serial port" (CONFIG_SERIAL_CONSOLE) må være satt.

14.6.1. Konfigurasjon av GRUB

GRUB står for Grand Unified Boot Loader, og er den vanligste bootloaderen på Linux for tiden. Vi bruker GRUB på alle Linux-maskiner på UiO.

[Tips]Tips

Istedenfor å følge denne oppskriften kan du kjøre scriptet /local/sbin/usit-config-serialconsole, som konfigurer filene /etc/grub.conf, /etc/inittab, /etc/securetty og /etc/sysconfig/kudzu for deg.

Editer filen /etc/grub.conf:

  • I global section, legg til:

    serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
    terminal --timeout=10 --dumb serial
    

    Og fjern eller kommenter ut følgende:

    splashimage=(hd0,0)/boot/grub/splash.xpm.gz
    hiddenmenu
    
  • For kjerne-image som skal ha seriell-konsoll, legg til på slutten av linjen:

    console=tty0 console=ttyS0,9600n81
    

    Og fjern evt. disse to kjerneparametrene:

    rhgb quiet
    

    De er et par magiske parametre som forteller startup-scriptene i RHEL4 at de skal kjøre grafisk boot-up. Vet ikke om det har noen betydning for seriellkonsoll, men det er noe herk uansett.

Eksempel 22. /etc/grub.conf konfigurert for seriell-konsoll:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/sda1
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
#splashimage=(hd0,0)/boot/grub/splash.xpm.gz
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 --dumb serial
title Red Hat Enterprise Linux WS (2.6.9-11.ELsmp)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-11.ELsmp ro root=LABEL=/ console=tty0 console=ttyS0,9600n81
        initrd /boot/initrd-2.6.9-11.ELsmp.img
title Red Hat Enterprise Linux WS (2.6.9-11.EL)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-11.EL ro root=LABEL=/ console=tty0 console=ttyS0,9600n81
        initrd /boot/initrd-2.6.9-11.EL.img

14.6.2. Annen nødvendig konfigurasjon

  • Legg ttyS0 til i /etc/securetty, slik at vi får logget på som root:

    maskin.uio.no# echo ttyS0 >>/etc/securetty
    
  • Legg til i /etc/inittab, slik at vi får prompt:

    # Serial terminal on ttyS0
    S0:12345:respawn:/sbin/agetty ttyS0 9600 vt100
    
  • Endre konfigurasjonen for kudzu til å kjøre i safe mode i filen /etc/sysconfig/kudzu:

    SAFE=yes
    

14.7. Seriellkonsoll på Dell PowerEdge 2950 med DRAC5 management-kort

[Advarsel]Advarsel

Dette er veldig USIT-spesifikt...

På Dell PowerEdge 2950 med DRAC5 har vi muligheten til å bruke seriellkonsoll uten å bruke en fysisk kabel mot en seriell-switch eller tilsvarende. Vi konfiguerer RAC-kortet til å gjøre en intern kobling mellom seriellporten og kortet, og bruker telnet mot kortet for å få ut seriellkonsoll.

Konfigurasjon av BIOS:

  1. Sett opp IP-adresse m.m. på RAC-kortet ved å trykke Ctrl+e ved boot.

  2. Restart maskinen og gå inn i BIOS ved å trykke F2.

  3. I BIOS-menyen, velg Serial Communication.

  4. Serial communication settes til On with console Redirection via COM2.

  5. Redirection After Boot settes til Disabled.

  6. Gå ut av BIOS med ESC.

Konfigurasjon av RAC-kortet:

  1. Bruk en maskin med racadm installert. BSD/USIT kan bruke tux.uio.no til dette.

  2. Sett opp RAC-kortet til telnet og seriellkonsoll, deretter reset RAC:

    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialConsoleEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialTelnetEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password racreset
    

    Dette kan gjøres enklere vha. av et hjelpe-script på tux:

    tux: ~$ /site/bin/serial-enable maskinnavn-lc.uio.no
    

Deretter konfigureres bootloader og OS. Bruk oppskriften som for vanlig seriellkonsoll over, men baudrate skal være 57600. Ellers er det en god ide å bruke opsjonene -h -L til agetty i /etc/inittab.

[Tips]Tips

For automatisert konfigurasjon, bruk

maskin.uio.no# usit-config-serialconsole --drac5

Konfigurer så seriellkonsollet på spider.uio.no ved å editere /etc/usit/conserver.cf med rcsed. Følgende skal legges inn:

console maskinnavn { include drac5; maskinnavn-lc.uio.no; }

Reload så conserver med /local/etc/init.d/conserver reload.

14.8. Seriellkonsoll på Dell PowerEdge 2850 med DRAC4 management-kort

[Advarsel]Advarsel

Dette er veldig USIT-spesifikt...

På Dell PowerEdge 2850 med DRAC4 har vi muligheten til å bruke seriellkonsoll uten å bruke en fysisk kabel mot en seriell-switch eller tilsvarende. Vi konfiguerer RAC-kortet til å gjøre en intern kobling mellom seriellporten og kortet, og bruker telnet mot kortet for å få ut seriellkonsoll.

Konfigurasjon av BIOS:

  1. Sett opp IP-adresse m.m. på RAC-kortet ved å trykke Ctrl+d ved boot.

  2. Restart maskinen og gå inn i BIOS ved å trykke F2.

  3. I BIOS-menyen, velg Integrated Devices.

  4. I undermenyen, velg Serial Port 1 og sett denne til RAC.

  5. Gå ut av Integrated Devices ved å trykke ESC. Velg så Console Redirection i BIOS-menyen.

  6. I undermenyen, sett Console Redirection til Serial Port 1, sett baudrate til 57600 og sett Redirection After Boot til Disabled.

  7. Gå ut av BIOS med ESC.

Konfigurasjon av RAC-kortet:

  1. Bruk en maskin med racadm installert. BSD/USIT kan bruke tux.uio.no til dette.

  2. Sett opp RAC-kortet til telnet og seriellkonsoll, deretter reset RAC:

    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialConsoleEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialTelnetEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password racreset
    

    Dette kan gjøres enklere vha. av et hjelpe-script på tux:

    tux: ~$ /site/bin/serial-enable maskinnavn-lc.uio.no
    

Deretter konfigureres bootloader og OS. Bruk oppskriften som for vanlig seriellkonsoll over, men baudrate skal være 57600. Ellers er det en god ide å bruke opsjonene -h -L til agetty i /etc/inittab.

[Tips]Tips

For automatisert konfigurasjon, bruk

maskin.uio.no# usit-config-serialconsole --drac4

Konfigurer så seriellkonsollet på spider.uio.no ved å editere /etc/usit/conserver.cf med rcsed. Følgende skal legges inn:

console maskinnavn { include drac4; maskinnavn-lc.uio.no; }

Reload så conserver med /local/etc/init.d/conserver reload.

14.9. Seriellkonsoll på Dell PowerEdge 2650 med DRAC3 management-kort

[Advarsel]Advarsel

Dette er veldig USIT-spesifikt...

Dette er veldig likt som for 2850 med DRAC4, men vi bruker COM2 istedenfor COM1.

Konfigurasjon av BIOS:

  1. Sett opp IP-adresse m.m. på RAC-kortet ved å trykke Ctrl+d ved boot.

  2. Restart maskinen og gå inn i BIOS ved å trykke F2.

  3. I BIOS-menyen, velg Integrated Devices.

  4. I undermenyen, velg Serial Port 2 og sett denne til COM2.

  5. Gå ut av Integrated Devices ved å trykke ESC. Velg så Console Redirection i BIOS-menyen.

  6. I undermenyen, sett Console Redirection til Serial Port 2 og sett Redirection After Boot til Disabled.

  7. Gå ut av BIOS med ESC.

Konfigurasjon av RAC-kortet:

  1. Bruk en maskin med racadm installert. BSD/USIT kan bruke tux.uio.no til dette.

  2. Sett opp RAC-kortet til telnet og seriellkonsoll, deretter reset RAC:

    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialConsoleEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password \
      config -g cfgSerial -o cfgSerialTelnetEnable 1
    
    tux: ~$ racadm -r maskinnavn-lc.uio.no -u username -p password racreset
    

    Dette kan gjøres enklere vha. av et hjelpe-script på tux:

    tux: ~$ /site/bin/serial-enable maskinnavn-lc.uio.no
    

Deretter konfigureres bootloader og OS. Bruk oppskriften som for vanlig seriellkonsoll over, men baudrate skal være 57600 og vi bruker ttyS1 istedenfor ttyS0. Ellers er det en god ide å bruke opsjonene -h -L til agetty i /etc/inittab.

[Tips]Tips

For automatisert konfigurasjon, bruk

maskin.uio.no# usit-config-serialconsole --drac3

Konfigurer så seriellkonsollet på spider.uio.no ved å editere /etc/usit/conserver.cf med rcsed. Følgende skal legges inn:

console maskinnavn { include drac3; host maskinnavn-lc.uio.no; }

Reload så conserver med /local/etc/init.d/conserver reload.

14.10. Seriellkonsoll på HP ProLiant-maskiner med iLO management-kort

[Advarsel]Advarsel

Dette er veldig USIT-spesifikt...

Sett maskinen opp med HPs management-verktøy. Det gjøres ved å kjøre et script /local/sbin/usit-config-hpserver:

maskin.uio.no# usit-config-hpserver

Etter at scriptet er kjørt, konfigurer iLO-kortet. Det gjøres ved å kjøre et script /local/sbin/usit-config-ilo:

maskin.uio.no# usit-config-ilo
[Notat]Notat

For at usit-config-ilo skal fungere, må maskinens iLO-kort ha adresse i DNS, dvs. maskinnavn-lc.uio.no.

Dersom iLO-kortet har gammel firmware, bør denne oppgraderes. Sjekk firmware-versjon med hponcfg:

maskin.uio.no# hponcfg -g
Firmware Revision = 1.22 Device type = iLO 2 Driver name = cpqci
Host Information:
                        Server Name: maskin.uio.no
                        Server Number: 000000000

Oppgrader firmware på iLO-kortet med

maskin.uio.no# sh /local/lib/usit-bios-upgrades/linux/hp/ILO2_firmware_versjon

Dersom maskinen er helt ny, dvs. siste modell fra HP, trenger man ikke konfigurere BIOS for seriellkonsoll. Dersom maskinen er forrige generasjon, må BIOS konfigureres. Dette kan gjøres fra programmet hpasmcli:

maskin.uio.no# hpasmcli
HP management CLI for Linux (v1.0)
Copyright 2004 Hewlett-Packard Development Group, L.P.

--------------------------------------------------------------------------
NOTE: Some hpasmcli commands may not be supported on all Proliant servers.
      Type 'help' to get a list of all top level commands.
--------------------------------------------------------------------------
hpasmcli> set serial bios com2 115200
Successfully set BIOS serial port to COM2/115200.

Deretter må seriellkonsollet settes opp i Linux. Kjør følgende script:

maskin.uio.no# usit-config-serialconsole --ilo
[Notat]Notat

Eksemplet over gjelder for normale (standalone) HP-maskiner. Dersom maskinen er et C-klasse blade, skal man gi opsjonen --bilo istedenfor, slik:

maskin.uio.no# usit-config-serialconsole --bilo

Konfigurer så seriellkonsollet på spider.uio.no ved å editere /etc/usit/conserver.cf med rcsed. Følgende skal legges inn:

console maskinnavn { include hpilo; host maskinnavn-lc.uio.no; }

Reload så conserver med /local/etc/init.d/conserver reload.

14.11. Justering av kjerneparametre

Av og til må default-instillingene på Linux-maskiner justeres, vanligvis gjelder dette parametre som antall åpne filer (max filehandles), delt minne o.l. For Linux-maskiner som skal kjøre programvare for Oracle er det endel parametre som må endres på.

De fleste parametre som det er aktuelt å endre på kan justeres online. Installasjonsdokumenter fra bl.a. Oracle foreslår å endre disse direkte i /proc-filsystemet. Vi anbefaler heller å bruke sysctl, et grensesnitt som er laget for dette formålet, hvor parametrene er langt lettere å vedlikeholde i ettertid, og hvor endringer gjøres permanent og overlever en reboot.

For å endre en typisk kjerneparameter, legger man til en linje i filen /etc/sysctl.conf:

# dette er en kommentar
; dette er ogsaa en kommentar
token = value

For eksempel, for å sette antall åpne filer til 65536 (default er 8192 for RHEL3), legg inn følgende linje:

# Setting open files to 2^16
fs.file-max = 65536

For å utføre endringen må programmet sysctl kjøres med opsjonen -p:

maskin.uio.no# sysctl -p

Dersom man vil se alle verdier som er satt, og som kan settes via sysctl, gi opsjonen -a:

maskin.uio.no# sysctl -a
[...]
kernel.random.write_wakeup_threshold = 128
kernel.random.read_wakeup_threshold = 64
kernel.random.entropy_avail = 3328
[...]

Det er altså ganske mange parametre som kan styres via sysctl. De aller fleste vil du ikke røre, vær forsiktig!

14.11.1. Parametre for Oracle

For Oracle-database bør følgende parametre settes:

#---------------------------------------------------------------------
# Oracle 9 recommendations
#---------------------------------------------------------------------
# Sets max shared memory to 2^31
kernel.shmmax = 2147483648

# Setting max filehandles to 2^16
fs.file-max = 65536

# Sockets
net.ipv4.ip_local_port_range = 1024 65000

# Shared memory
kernel.sem = 250 32000 100 128 
kernel.shmall = 2097152
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

For Oracle 10g AS bør følgende parametre settes:

##############################################
# Recommended values by Oracle 10g AS #
##############################################
# Semaphores semmsl, semmns, semopm, semmni
kernel.sem = 256 32000 100 142
# Shared memory
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65535
# Setting max filehandles to 2^17
fs.file-max = 131072
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Controls range of IP local port
net.ipv4.ip_local_port_range = 10000 65000

Klipp og lim fra listingene over inn i /etc/sysctl.conf på Oracle-maskinen, og kjør sysctl -p for å effektuere endringene.

14.12. Bruk av automounter

[Notat]Flyttet

Dette avsnittet er flyttet hit: Seksjon 8, “Bruk av automounter med automapgenerate”

14.13. Bruk av netconsole for å kapre konsollogger

Av og til er det upraktisk, umulig eller unødvendig å bruke seriellkonsoll. Hvis man kun er interessert i å kapre en kernel oops, panic eller lignende kan man bruke netconsole. Dette er en kjernemodul lar deg logge konsollmeldinger over nettet. For mer informasjon om denne modulen, se /usr/share/doc/kernel-doc-2.6.9/Documentation/networking/netconsole.txt (for RHEL4). Dette avsnittet gir bare en praktisk innføring i hvordan den kan brukes.

Netconsole må lastes inn på maskinen som skal logge over nettet, og man må spesifisere noen parametre:

netconsole=[src-port]@[src-ip]/[dev],[tgt-port]@<tgt-ip>/[tgt-macaddr]

De forskjellige feltene betyr:

FeltKommentar
src-portLokal port
src-ipLokal IP-adresse
devNettverks-interface
tgt-portPort hos mottakeren
tgt-ipMottakerens IP-adresse
tgt-macaddrMottakerens MAC-adresse

For eksempel, hvis maskinen tyr.uio.no skal logge konsollmeldinger til maskinen tux.uio.no, skal netconsole lastes inn på tyr på følgende måte:

tyr.uio.no# modprobe netconsole netconsole=6666@129.240.6.14/eth0,6666@129.240.6.13/00:13:20:16:44:C7

Her brukes port 6666 både på sender og mottaker.

[Notat]Notat

Dersom de to maskinene ikke står på samme subnett, skal tgt-macaddr være MAC-adressen til routeren.

For å ta imot meldingene hos mottaker, kan man bruke nc, slik:

tux: ~$ nc -l -p 6666 -u

14.14. Lage installasjons-DVD av installasjons-CD-er

Red Hat har for vane å kun gi ut CD-er for RHEL. Dette er irriterende, spesielt siden nyere versjoner av RHEL da blir ganske mange CD-er. For å lage en bootbar DVD kan man bruke denne oppskriften:

Eksempelet gjelder RHEL5 Client i386.

  1. Last ned CD-ene fra ftp://linux.uio.no/

  2. Sett en blank DVD-plate i DVD-stasjonen.

  3. Lag monteringspunkter for CD-ene:

    maskin.uio.no# mkdir /mnt/tmp{1,2,3,4,5,6}
    
  4. Monter CD-image-ene readonly loopback:

    maskin.uio.no# for i in `seq 1 6`; do mount -oro,loop rhel-5-client-i386-disc$i.iso /mnt/tmp$i; done
    
  5. Plukk ut noen saker fra CD1 og legg dem et egnet sted:

    maskin.uio.no# mkdir /tmp/dvd
    maskin.uio.no# cd /tmp/dvd
    maskin.uio.no# cp -a /mnt/tmp1/isolinux /mnt/tmp1/.discinfo .
    maskin.uio.no# chmod +w isolinux/isolinux.bin
    maskin.uio.no# rm -f isolinux/boot.cat
    
  6. Editer på filen .discinfo. Endre "1" til "1,2,3,4,5,6" slik at installasjonsprogrammet vet at DVD-en inneholder alle CD-ene.

  7. Brenn DVD-en:

    maskin.uio.no# growisofs -dvd-compat -speed=8 -Z /dev/dvd -v \
        -V "RHEL5-CLIENT-U0-i386-DVD" -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table -r -R -T -m TRANS.TBL \
        -x /mnt/tmp1/.discinfo -x /mnt/tmp1/isolinux \
        -graft-points /mnt/tmp1 .discinfo=.discinfo isolinux/=isolinux \
        Client=/mnt/tmp2/Client \
        Client=/mnt/tmp3/Client \
        Client=/mnt/tmp4/Client \
        Client=/mnt/tmp5/Client \
        Client=/mnt/tmp6/Client \
        Workstation=/mnt/tmp2/Workstation \
        Workstation=/mnt/tmp3/Workstation \
        Workstation=/mnt/tmp4/Workstation \
        Workstation=/mnt/tmp5/Workstation \
        Workstation=/mnt/tmp6/Workstation \
        VT=/mnt/tmp2/VT \
        VT=/mnt/tmp3/VT \
        VT=/mnt/tmp4/VT \
        VT=/mnt/tmp5/VT \
        VT=/mnt/tmp6/VT
    
  8. Rydd opp:

    maskin.uio.no# umount /mnt/tmp{1,2,3,4,5,6}
    maskin.uio.no# rmdir /mnt/tmp{1,2,3,4,5,6}
    maskin.uio.no# rm -rf /tmp/dvd
    

Vips, ferdig.

15. Spesielt om fellesmaskiner

[Notat]Om dette dokumentet

Dette dokumentet beskriver spesielle krav og tips for drift av Linux-maskiner på UiO som faller inn under kategorien "fellesmaskiner".

15.1. Definisjon av fellesmaskiner

Det skilles mellom fellesmaskiner og personlige maskiner. Fellesmaskiner er maskiner som er tilgjengelige for alle, hvorav endel kan være mer klåfingret enn vi liker. Eksempel på fellesmaskiner er termstue-/pcstue-maskiner for studenter. Personlige maskiner er maskiner der den lokale IT-ansvarlige har tiltrodd eieren privilegier som f.eks. root-passordet. Det er helt klart fellesmaskiner som gir sikkerheten størst utfordring.

En fellesmaskin kan kort defineres som en maskin der det er lagt opp til at mange brukere har adgang, enten logisk ved mulighet for vanlig innlogging og/eller fysisk adgang til maskinen. Man bør passe særlig godt på maskiner hvor "vanlige" studenter har adgang.

15.2. Regler for fellesmaskiner

Følgende regler er viktige for sikkerheten på fellesmaskiner:

  1. Maskinen skal ikke kunne boote fra diskett, CDROM, USB-penn e.l.

    I så tilfelle kan hvem som helst bli root, ved enten å boote sitt eget lille OS eller ved å omgå andre sikkerhetstiltak som settes under boot.

  2. Maskinen skal ha satt BIOS-passord, slik at ikke hvemsomhelst kan få maskinen til å boote fra annet enn harddisk. Se over.

  3. Maskinen skal ha passord satt i boot-loader /etc/grub.conf. Dette gjøres for å ta fra vanlige brukere muligheten til å starte GRUB i interaktiv modues og spesifisere boot-parametre til Linux-kjernen, og på denne måten skaffe seg root-aksess.

    Dette gjøres ved å legge inn en linje

    password --md5 PASSWORD
    

    i filen /etc/grub.conf. Passordet skal være MD5-kryptert, og kan f.eks. generes ved å kjøre kommandoen md5crypt i GRUB. Se dokumentasjonen til GRUB for mer informasjon. (Kjør kommandoen info grub og velg "Security").

  4. Maskinen skal ikke være dual-boot, slik at man ikke kan bruke DOS-programmer til å unngå restriksjoner satt i BIOS og boot-loader.

    Det kan gis unntak fra denne regelen dersom IT-ansvarlig er helt sikker på at dette ikke er mulig fra Windows, dvs. at nødvendige restriksjoner er satt i Windows for å forhindre dette.

Det er den lokale IT-ansvarlige som avgjør hvilke disker en gitt maskin skal kunne montere, og det er viktig at særlig fellesmaskiner sikres skikkelig før man eksporterer disker til dem.

16. RHEL5 på hjemmemaskin

[Notat]Om dette dokumentet

Dette dokumentet beskriver USITs avtale med Red Hat for RHEL på hjemmemaskiner, og en fremgangsmåte for hvordan man registrerer maskinen i Red Hat Network for å få oppdateringer av programvare fra Red Hat.

16.1. Hvem og hva avtalen omfatter

  • Avtalen med Red Hat omfatter alle studenter og ansatte ved UiO. Det skilles ikke på fast ansatte, deltid, timebasert e.l. Ansatt er ansatt. USIT har pr. i dag 3000 lisenser for RHEL dedikert til hjemmemaskiner, men dette tallet kan økes ved behov. Det er ingen begrensning på antall maskiner hver ansatt kan installere på.

  • Avtalen gjelder utelukkende brukerens PRIVATE UTSTYR. Det er ikke tillatt å bruke denne avtalen til annet formål.

  • Avtalen gjelder kun Workstation-utgaven av RHEL.

  • Følgende CPU-arkitekturer omfattes av avtalen:

    • i386-kompatibel (32-bit Intel Pentium™ eller tilsvarende)
    • AMD Opteron™, Intel EM64T™ eller tilsvarende
    • Intel Itanium2™

16.2. Installasjon av RHEL på hjemmemaskiner

Installasjon utføres enklest ved bruk av standard installasjons-CD-er, selv om andre metoder kan brukes. ISO-images til installasjons-CD-ene finner dere her:

  • FTP-server: linux.uio.no
  • Brukernavn/Passord: guest / uio

Første gang maskinen booter (hvis du har valgt grafisk grensesnitt som default) vil du bli presentert et lite program som lar deg bl.a. lage lokale brukere og registrere maskinen i RHN. For å gjøre det siste trenger du enten en egen RHN-konto eller bruke en eksisterende. Vi anbefaler å ikke gjøre denne registreringen her, men registrere manuelt som beskrevet under. Noen har kommentert at man ikke kommer videre i denne applikasjonen uten å registrere, men at det nytter å dra ut nettkontakten, vente til den får timeout og deretter sette inn nettkontakten igjen.

Etter installasjon bør maskinen registreres i Red Hat Network for oppdatering av programvare fra Red Hat. Det gjøres på følgende måte:

Su til root om du allerede ikke er det:

maskin ~$ su - root
Password:  <skriv inn passord>
maskin /root# 

Nå kan maskinen registreres:

maskin /root# /usr/sbin/rhnreg_ks --profilename=brukernavn-home-nummer \
	--email=e-post-adresse \
	--activationkey=65516856b46191e7d73f220635013bca

Her er det flere felter som skal fylles inn. USIT vil gjerne ha konsistens på profilnavn i Red Hat Network, slik at vi enkelt kan se hvem en maskin tilhører. E-post-adressen bør være din egen, gjerne UiO-adressen.

Eksempel 23. Registrering i Red Hat Network

Eksempel for brukeren trondham, som skal registrere sin eneste Linux-maskin i hjemmet:

maskin /root# /usr/sbin/rhnreg_ks --profilename=trondham-home-1 \
	--email=trondham@ulrik.uio.no \
	--activationkey=65516856b46191e7d73f220635013bca

Etter registrering bør man kjøre yum for å installere de siste oppdateringene fra Red Hat:

maskin /root# yum -y update

Dersom maskinen har fått ny kjerne, ta en reboot.

[Advarsel]Advarsel

Denne metoden for registrering i Red Hat Network skal kun benyttes til registrering av hjemmemaskiner ihht. retningslinjene beskrevet over i Seksjon 16.1, “Hvem og hva avtalen omfatter”. Det skal under ingen omstendigheter brukes til registrering av maskiner som eies av UiO og/eller som brukes på UiO-nettet.

17. Spesielt for bærbare maskiner

[Notat]Om dette dokumentet

Dette dokumentet beskriver hvordan kan få en laptop med USITifisert Linux til å virke både hjemme og på jobb. Dokumentet forutsetter en viss forhåndskunnskap om UNIX-brukere og -grupper, men det skal ikke være veldig avansert. Kontakt unix-drift hvis noe er uklart.

17.1. Nettverksoppsett

En bærbar maskins viktigste egenskap er at den er bærbar. Den vil som regel bevege seg mellom to eller flere nett, og skal fungere på alle. Derfor pleier man å sette den opp til å få nettverkskonfigurasjonen via DHCP (Dynamic Host Configuration Protocol). Dette gjøres på følgende måte:

  • Kommenter ut linjen med GATEWAY i filen /etc/sysconfig/network, så den ser noenlunde slik ut:

    NETWORKING=yes
    HOSTNAME=maskinnavn.uio.no
    #GATEWAY=129.240.197.17
    NISDOMAIN=uio
    
  • Sett BOOTPROTO til dhcp i filen /etc/sysconfig/network-scripts/ifcfg-eth0:

    BOOTPROTO=dhcp
    

    Resten kan stå som det er, men du kan godt kommentere ut IPADDR og NETMASK om du vil.

Restart så nettverket med service network restart, dersom DHCP-serveren er satt opp riktig, dvs. til å gi maskinen din samme IP-adresse hver gang.

Konfigurasjon av DHCP-serveren må gjøres av lokal IT-ansvarlig (hvis avdelingen har egen DHCP-server) eller av USIT. Se denne web-siden for mer informasjon om konfigurasjon av DHCP-server.

17.2. Skru av NIS

Det første man bør gjøre er å skru av NIS/YP på maskinen. NIS fungerer fint når man er på UiO-nett, men utenfor UiO-nettet vil det ta uforholdsmessig lang tid å boote ettersom ypbind bruker prøver i lang tid (20min?) før den timer ut. Slå av ypbind permanent slik:

maskin.uio.no# chkconfig ypbind off

Operativsystemet må også konfigureres slik at det vet at NIS ikke brukes. Det gjøres ved å endre på filen /etc/nsswitch.conf med din favoritteditor. Denne filen bør se slik ut:

#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
#	nisplus or nis+		Use NIS+ (NIS version 3)
#	nis or yp		Use NIS (NIS version 2), also called YP
#	dns			Use DNS (Domain Name Service)
#	files			Use the local files
#	[NOTFOUND=return]	Stop searching if not found so far
#

passwd:     files
shadow:     files
group:      files

hosts:      files dns
netgroup:   nis

services:   files
networks:   nis [NOTFOUND=continue] files
protocols:  nis [NOTFOUND=continue] files
rpc:        nis [NOTFOUND=continue] files
ethers:     nis [NOTFOUND=continue] files
netmasks:   nis [NOTFOUND=continue] files     
bootparams: nis [NOTFOUND=continue] files
publickey:  nis [NOTFOUND=continue] files

automount:  files
aliases:    files

Stort sett går det altså ut på å fjerne alt som har med NIS å gjøre.

Siden NIS er skrudd av og ikke skal brukes må du også endre i filen /etc/passwd. Vanligvis bruker vi en syntaks som betyr at maskinen skal slå opp i NIS for å autentisere brukere, f.eks.

+@uio-system

Det kan istedenfor stå +@unix-core eller +@unix-drift. Dette må endres til å inneholde fullstendige linjer for hver enkelt bruker. Linjen med +@uio-system (eller tilsvarende) kan du fjerne, og erstatte den med følgende:

exim:*locked:7411:7411:Mister Exim:/local/share/exim:/bin/sh
store:*locked:44187:15520:GECOS NOT SET:/local/store/Adm:/local/gnu/bin/bash

I tillegg må gruppene til exim og store være kjent. Sørg derfor for at filen /etc/group inneholder følgende:

exim:*:7411:
store:*:15520:

(Linjene kan være lenger enn ovenfor, dvs. de kan inneholde brukere som er medlem i gruppen. Det gjør ingenting).

17.3. Konfigurasjon av brukere

Normalt vil vi ikke tillate lokale brukere på maskiner. Dette er imidlertid vanskelig å komme fra på bærbare maskiner, ettersom disse av og til vil være helt uten nett og må fungere likevel.

Lag derfor en lokal bruker. Siden maskinen av og til vil befinnes seg på UiO-nettet er det viktig at brukernavn og UID ikke kolliderer med eksisterende brukere. Derfor gjelder følgende regler for lokale brukere på bærbare maskiner:

  1. Brukernavnet må være på mer enn 8 tegn og/eller inneholde bindestrek "-" eller understrek "_". F.eks. er trond ikke godkjent navn på lokal bruker, mens trond-local er OK.

  2. UID-en til brukeren skal være mellom 501 og 530. Dette er UID-er som ikke er i bruk ved UiO av historiske årsaker, som som ikke kommer til å bli tatt i bruk.

  3. Primærgruppen til brukeren skal ha samme navn som brukeren og ha en GID mellom 150 og 199.

Velg så et skikkelig passord for brukeren. Det beste er å bruke bofh til dette, med bofh-kommandoen misc checkpassw. Se Q: for et eksempel på bruk av misc checkpassw.

Neste steg er å lage et lokalt hjemmeområde for den lokale brukeren. Det gjøres på følgende måte:

Eksempel 24. Lage hjemmeområde til lokal bruker

På et passende sted, dvs. en partisjon/filsystem med mye plass og som ikke er root-partisjonen /, lag en katalog med samme navn som brukeren. I eksemplet under antar vi at katalogen /home er en egen partisjon.

Først lage selve katalogen:

maskin.uio.no# mkdir /home/trond-local

Kopier inn diverse standardfiler inn i katalogen:

maskin.uio.no# cp /local/lib/setupfiles/new/.* /home/trond-local

Deretter endre eier og gruppe på katalogen og filene i den. Her har vi valgt UID=501 og GID=150 (primærgruppe):

maskin.uio.no# chown -R 501:150 /home/trond-local

Da er hjemmeområdet laget.


Det neste steget er å lage innslag i passordfilen /etc/passwd og gruppefilen /etc/group, samt passord i /etc/shadow. Her er et eksempel:

Eksempel 25. Innslag i /etc/passwd o.l. for lokal bruker

Vi har fra før valgt at brukeren skal ha UID=501 og GID=150. Hjemmeområdet er /home/trond-local. Vi legger derfør følgende linje inn i /etc/passwd:

trond-local:x:501:150:Mitt Fulle Navn:/home/trond-local:/local/gnu/bin/bash

Neste steg er å legge passordet du genererte med misc checkpassw i bofh inn i /etc/shadow. Legg følgende linje inn i /etc/shadow:

trond-local:md5-passord:12905:0:99999:7:::

Bytt ut md5-passord med MD5-passordet du fikk fra misc checkpassw.

Siste steg er å oppdatere gruppefila. Editer /etc/group og legg inn følgende:

trond-local:*:150:

Nå er brukeren trond-local kjent på maskinen med gyldig passord og gruppe.


Når alt dette er gjort skal du kunne logge inn på maskinen med den nye lokale brukeren.

17.4. Legge inn UiO-bruker

Noen vil sikkert kunne bruke UiO-brukeren sin på maskinen i tillegg til den lokale brukeren. Dette er f.eks. aktuelt hvis man bruker maskinen mye på UiO-nettet, i tillegg til eller som erstatning for en stasjonær arbeidsstasjon. Denne oppskriften forutsetter at maskinen har lov til å montere hjemmeområdet til UiO-brukeren din. Dersom den ikke har det er det like greit å kun bruke en lokal bruker.

For din egen bruker, her eksemplifisert av brukeren "trond", legg inn linjen du får ved å kjøre følgende kommando på en maskin som kjører NIS, f.eks. linux.uio.no:

klodrik ~$ ypmatch trond passwd
trond:.pOW.TofU91nw:13608:330:Trond Hasle Amundsen:/usit/saruman/bsd-u1/trond:/local/gnu/bin/bash

Filen /etc/passwd skal når du er ferdig ikke inneholde noen linjer som starter med "+", og skal ha fått tre nye linjer:

trond:.pOW.TofU91nw:13608:330:Trond Hasle Amundsen:/usit/saruman/bsd-u1/trond:/local/gnu/bin/bash
[Advarsel]Advarsel

Siden brukeren 'trond' er lagt inn manuelt, og ikke via NIS, vil ikke passordet skiftes når man skifter det i bofh. Derfor må passordet også endres manuelt og bør endres når brukeren skifter passord globalt på UiO.

17.5. Montering av hjemmeområder via automount

Dersom maskinen din har lov til å montere hjemmeområdet ditt via NFS, lønner det seg å bruke automounter framfor å hardkode monteringen i /etc/fstab, bl.a. fordi montering av NFS-filsystemer også tar tid til å time ut dersom de ikke er tilgjengelige i det maskinen booter. Hvis du f.eks. har følgende i din /etc/fstab:

saruman:/usit/saruman/bsd-u1 /usit/saruman/bsd-u1 nfs rw,bg,hard,intr 0 0

Da skal linjen over i /etc/fstab fjernes, og følgende legges inn i /etc/usit/automount.conf:

# Include the following hosts, even if no valid users exists with
# homedir on these:
<include>
    /usit/saruman
</include>

# Set to 'yes' if you want to include all homedir hosts
# for all valid users
UseGetpwent no

Kjør så /local/sbin/automapgenerate for å generere automounter-maps på maskinen:

maskin.uio.no# /local/sbin/automapgenerate

Etterpå er det bare å avmontere NFS-disken, starte automounteren og sørge for at den alltid kjører:

maskin.uio.no# umount /usit/saruman/bsd-u1
maskin.uio.no# service autofs start
maskin.uio.no# chkconfig autofs on

Du kan/bør ikke være innlogget som bruker når du kjører kommandoene over.

For mer informasjon om automapgenerate, se Seksjon 8, “Bruk av automounter med automapgenerate”.

17.6. Ymse tips og råd

18. Erfaringer med maskinvare

[Obs]Obs

Gjelder kun RHEL4!

USIT har avtale med ulike leverandører om kjøp av maskinvare. Dette gjelder bl.a. maskinvare som skal kjøre Linux, som vi kan dele opp i tre kategorier: Arbeidsstasjoner, servere og bærbare maskiner. Det som står her gjelder "standardmodellene" som USIT har avtale med leverandørene om.

Det forutsettes at man installerer Red Hat Enterprise Linux 4 (RHEL4), ikke RHEL3.

18.1. Personlige arbeidsstasjoner

18.1.1. Dell OptiPlex gx620

Denne fungerer stort sett bra, men det kan være problemer med skjermkortet. Ingen av skjermkortene man kan få med fungerer p.t. tilfredsstillende med Red Hat Enterprise Linux. På hovedkortet er det et Intel i945, og man kan velge et ATI Radeon X600 istedenfor. Jeg anbefaler å velge ATI-kortet, og bruke ATIs proprietære driver for X.org. Dette fordi denne driveren av erfaring fungerer langt bedre enn Intels proprietære driver for i945.

Alternativene til de proprietære driverne er i810 for Intel-kortet og radeon for ATI-kortet. Desverre er versjonen av driverne som følger med RHEL4 ikke nye nok, så man må bruke de alternative proprietære driverne.

Se ATI-driver for hvordan man bruker ATIs proprietære driver.

Til denne maskinen anbefales en Dell 2405FPW Monitor, som er en 24-tommers widescreen som tar 1920x1200 i oppløsning. Se Q: for hvordan man konfigurerer denne monitoren i X.org.

Her er et eksempel på en konfigurasjonsfil for X11 for denne kombinasjonen: xorg.conf

18.1.2. Dell OptiPlex gx745

Dette er en maskin som vi har god erfaring med. Det kan være problemer med skjermkortet, og vi anbefaler å kjøpe det alternative ATI-kortet (Radeon X1300), og bruke ATIs driver som beskrevet i Linux-FAQ'en. Se Seksjon 18.1.1, “Dell OptiPlex gx620” for mer informasjon om dette.

Linux har problemer med disken på denne maskinen. For at Linux skal kunne finne disken, dvs. før man installerer, må man inn i BIOS og sette SATA til "Legacy mode".

18.1.3. HP dx5750

Denne modellen er OK, men man må angi en parameter til Linux ved boot for at den skal finne disken sin. Når man booter fra CD, USB-penn eller lignende for installasjon, legg til følgende på boot-linja:

all-generic-ide

For eksempel, hvis man skal installere via kickstart (anbefalt), skriv

boot: linux ks=whatever all-generic-ide

Man må også sørge for at denne parameteren blir lagt til i /boot/grub/grub.conf. Det kan gjøres ved å legge den til i selve kickstart-fila før man installerer: Finn linjen med "bootloader" og endre denne fra

bootloader --location=mbr

til følgende:

bootloader --location=mbr --append all-generic-ide

Dersom maskinen installeres manuelt, må man klikke på Advanced Bootloader Options når installasjonsprogrammet skal konfigurere bootloader, og legge til "all-generic-ide" i feltet for kjerneparametre.

19. FAQ om Linux på UiO

[Viktig]Viktig

Denne FAQ-en er under stadig utvikling. Dersom du finner noe som er feil, uklart eller mangler, vennligst ta kontakt med unix-drift slik at vi kan rette det opp.

19.1. Generelt
Q: Hvor kan jeg finne mer info om Linux på UiO?
Q: Hvilke Linux-distribusjoner kan jeg bruke?
Q: Kommer USIT til å støtte Debian™, SuSE™, Fedora™ etc.?
Q: Hvordan sjekke hvilken versjon av Red Hat maskinen kjører?
Q: Hvordan endre navn på maskinen?
Q: Hvordan endre IP-nummeret på maskinen?
Q: Hvordan bytte root-passord?
Q: Hvordan legge til en skriver i programmer?
Q: Hvordan aksesserer jeg en diskett?
Q: Hva med bærbare maskiner?
Q: Kan jeg kjøre dualboot på maskinen?
Q: Hvordan bruke USB-penn, CD-ROM o.l. på RHEL4?
Q: Hvordan bruke USB-penn, CD-ROM o.l. på RHEL5?
19.2. Programvare
Q: Hvilken programvare er tilgjengelig?
Q: Firefox/Thunderbird virker ikke på 64-bits Linux?
Q: Hvor kan jeg installere egne programmer?
Q: Kan jeg installere tredjeparts RPM-filer?
19.3. Server-tjenester
Q: Kan jeg kjøre Web-server på maskinen?
Q: Kan jeg kjøre Samba på maskinen?
Q: Kan jeg kjøre FTP-server på maskinen?
Q: Er Linux støttet som filtjener ved UiO?
19.4. X-Windows
Q: Hva er X-Windows?
Q: Kan jeg kjøre Red Hat sitt X-opplegg?
Q: Hvordan konfigurere X-Windows
Q: X-Windows vil ikke starte, hva gjør jeg?
Q: Er mitt skjermkort støttet?
Q: Hvordan får jeg X-Windows til å virke med mitt nVidia-kort?
Q: Hvordan kan jeg utnytte nVidia-kortet fullt ut?
Q: Hvordan får jeg X-Windows til å virke med mitt ATI-kort?
Q: Hvordan får jeg X-Windows til å virke med mitt Intel-kort?
Q: Dell 1900FP virker ikke med 1280x1024 på RHEL4?
Q: X-Windows virker ikke etter kjerneoppgradering/reboot!?
Q: Dell 2001FP virker ikke med 1600x1200 på RHEL4?
Q: Hvordan få 24-tommers Dell-skjerm til å virke på RHEL4?
Q: Kan jeg få Firefox, Thunderbird m.m. til å forstå Emacs-tastekombinasjoner?
Q: Hvor finner jeg mer informasjon om X-Windows?
Q: Hvordan kan jeg endre UiOs X-oppsett?
Q: X-oppsettet deres stinker, kommer dere til å lage et nytt?
Q: Støtter USIT Gnome eller KDE?
Q: Jeg vil kjøre en annen Window Manager, men hvordan?
Q: Jeg vil kjøre GNOME eller KDE på RHEL4, men hvordan?
19.5. Kjernen og moduler
Q: Hvordan kan jeg sjekke hvilken kjerne maskinen kjører?
Q: Hvordan oppgradere kjernen på RHEL3 og RHEL4?
Q: Hvordan oppgradere kjernen på RHEL5?
Q: Hvordan kan jeg sjekke hvilke moduler som er lastet inn?
Q: Hvordan kan jeg laste inn en spesifikk modul?
Q: Hvordan kan jeg laste ut en spesifikk modul?
19.6. Brukere og hjemmeområder
Q: Kan jeg ha lokale brukere på maskinen?
Q: Hvordan legger jeg inn brukere på maskinen?
Q: Hvordan lager jeg lokale hjemmeområder?
Q: Hvordan kan jeg få montert hjemmeområdet mitt på maskinen?
19.7. RPM -- Redhat Package Manager
Q: Hva er RPM?
Q: Hvordan installere/oppgradere en pakke?
Q: Hvordan avinstallere pakker?
Q: Hvordan finne ut hva som er installert?
Q: Hvordan finne ut hvilket program en pakke inneholder?
Q: Hvordan løse avhengigheter?
Q: Hvilke filer inneholder denne pakken?
Q: Hvilken pakke inneholder denne filen?
Q: Jeg har to versjoner av samme pakke installert, hva gjør jeg?
19.8. Network File System (NFS)
Q: Hvordan eksportere noe via NFS?
Q: Hvordan sjekke hvilke filsystemer en maskin eksporterer?
Q: Hvordan øke ytelsen på en NFS-server?
Q: Hvor finner jeg mer informasjon om NFS i Linux?
19.9. Utskrift
Q: Hvordan bruke CUPS til utskrift?
Q: Hvordan printe fra Maple?

19.1. Generelt

Q: Hvor kan jeg finne mer info om Linux på UiO?
Q: Hvilke Linux-distribusjoner kan jeg bruke?
Q: Kommer USIT til å støtte Debian™, SuSE™, Fedora™ etc.?
Q: Hvordan sjekke hvilken versjon av Red Hat maskinen kjører?
Q: Hvordan endre navn på maskinen?
Q: Hvordan endre IP-nummeret på maskinen?
Q: Hvordan bytte root-passord?
Q: Hvordan legge til en skriver i programmer?
Q: Hvordan aksesserer jeg en diskett?
Q: Hva med bærbare maskiner?
Q: Kan jeg kjøre dualboot på maskinen?
Q: Hvordan bruke USB-penn, CD-ROM o.l. på RHEL4?
Q: Hvordan bruke USB-penn, CD-ROM o.l. på RHEL5?

Q:

Hvor kan jeg finne mer info om Linux på UiO?

A:

Følgende web-side er autorativ for Linux på UiO:

http://www.usit.uio.no/it/unix/linux/

Q:

Hvilke Linux-distribusjoner kan jeg bruke?

A:

USIT støtter kun Red Hat™ Enterprise Linux® (RHEL). Det er ikke tillatt å kjøre andre distribusjoner av Linux på UiOs nettverk. Følgende RedHat-versjoner støttes per 13.april 2007:

  • Red Hat Enterprise Linux 2.1 AS (under utfasing)

  • Red Hat Enterprise Linux 3 WS/AS

  • Red Hat Enterprise Linux 4 WS/AS

  • Red Hat Enterprise Linux 5 Client/Server

Q:

Kommer USIT til å støtte Debian™, SuSE™, Fedora™ etc.?

A:

Nei. Ikke i overskuelig framtid.

Q:

Hvordan sjekke hvilken versjon av Red Hat maskinen kjører?

A:

Se i filen /etc/redhat-release, f.eks.:

Eksempel 26. Finne versjon av Red Hat

maskin ~$ cat /etc/redhat-release
Red Hat Enterprise Linux Client release 5 (Tikanga)

Q:

Hvordan endre navn på maskinen?

A:

Først må navnet endres i DNS, kontakt unix-drift@usit.uio.no for dette. Deretter må navnet endres lokalt på maskinen. Dette gjøres ved å endre navnet i følgende filer:

/etc/sysconfig/network
/etc/hosts

Etterpå må man endre navn de stedene der det brukes i filsystemet, f.eks. /fak/maskinnavn/local. Det gjøres på følgende måte:

(Eksemplet under gjelder for /local. Sjekk om du har andre slike filsystemer med kommandoen df -l. I tilfelle må de endres på samme måte.)

  1. Endre hostnavn på maskinen. Dette må gjøres av hensyn til Store:

    maskin.uio.no# hostname nyttnavn.uio.no
    

    Sjekk at navnet nå er riktig med:

    maskin.uio.no# hostname
    nyttnavn.uio.no
    

    Da er navnet endret for Linux' vedkommende.

  2. Editer /etc/fstab og endre linjen /fak/maskinnavn/local til /fak/nyttnavn/local

  3. Lag nytt monteringspunkt, slik:

    maskin.uio.no# mkdir -p /fak/nyttnavn/local
    
  4. Hvis maskinen bruker Store, endre navn på maskinens lokale Store-tre og lag en symlink til det gamle navnet, slik:

    maskin.uio.no# cd /local/store
    maskin.uio.no# mv gammeltnavn nyttnavn
    maskin.uio.no# ln -s nyttnavn gammeltnavn
    

    Store må rekonfigureres, og det gjøres ved å endre alle forekomster av det gamle navnet med det nye i konfigurasjonsfilen til Store:

    maskin.uio.no# perl -p -i.bak -e 's/gammeltnavn/nyttnavn/g' /local/store/Adm/etc/config
    

    Kjør deretter store.nightly på nytt slik at linkene peker riktig sted:

    maskin.uio.no# /local/etc/config/store.nightly
    

    Etterpå kan den ekstra symlinken fjernes:

    maskin.uio.no# rm /local/store/gammeltnavn
    
  5. Sørg for at symlinken /local peker på riktig sted:

    maskin.uio.no# rm /local
    maskin.uio.no# ln -s /fak/nyttnavn/local /local
    
  6. Reboot maskinen.

  7. Fjern det gamle monteringspunktet:

    maskin.uio.no# rmdir /fak/gammeltnavn/local
    maskin.uio.no# rmdir /fak/gammeltnavn
    

Endre tilsvarende monteringspunkter for andre filsystemer, f.eks. /fak/maskinnavn/site.

[Obs]Obs

Hvis maskinen er NFS-server, bør du sjekke at filsystemnavnene i /etc/exports stemmer med den nye virkeligheten.

Q:

Hvordan endre IP-nummeret på maskinen?

A:

De fleste Linux-maskiner har kun ett nettverkskort, og for å endre IP-nummeret dette nettkortet bruker må man endre følgende filer:

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/hosts

Hvis det nye IP-nummeret er på et annet subnett, må man i tillegg endre GATEWAY i filen

/etc/sysconfig/network

Deretter kan man restarte nettverket på maskinen med følgende kommando:

maskin.uio.no# /etc/rc.d/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]

Endel tjenester vil sannsynligvis fremdeles bruke det gamle IP-nummeret. Disse tjenestene må derfor restartes, men det enkleste er å reboote maskinen.

[Notat]Notat

Dersom maskinen kun skal endre IP-nummer, men beholde det gamle navnet, må endringen også gjøres i DNS. Kontakt for å få utført dette.

Q:

Hvordan bytte root-passord?

A:

Det finnes flere måter å skifte root-passord, men her er USITs anbefalte metode:

  1. Start bofh:

    maskin: ~$ bofh
    

    Kjør så misc check_password. Hvis passordet er godkjent ta vare på den krypterte strengen:

    jbofh> misc check_password
    Enter password>
    OK.  crypt3-DES: o8zfzNEAszmC6   MD5-crypt: $1$ZUWBPcKN$EnoXCrFG2yfEid49kWqSF.
    
  2. Legg denne strengen inn som felt nr.2 i linjen til root i fila /etc/shadow. (pico, vi eller emacs er editorer du kan bruke)

    Åpne filen /etc/shadow med en editor. Erstatt det gamle passordet til root (felt nummer 2 i strengen, som er separert med kolon) med "$1$ZUWBPcKN$EnoXCrFG2yfEid49kWqSF.", slik:

    root:$1$ZUWBPcKN$EnoXCrFG2yfEid49kWqSF.:12178:0:99999:7:::
    

    Du kan også bruke den DES-krypterte strengen, slik normalen er på andre UNIX-varianter som ikke støtter MD5-kryptering, men DES-kryptering er langt svakere enn MD5-kryptering.

[Tips]Sjekk av passordet virker

Du er lurt å sjekke at passordet virker før du avslutter sesjonen din. Det kan f.eks. gjøres på denne måten:

maskin.uio.no# ssh root@maskin.uio.no
root@maskin's password: <skriv inn passordet>

Hvis du kom inn så er alt vel, hvis ikke sjekk at den krypterte strengen er lik det du fikk av bofh og misc checkpassw!

Q:

Hvordan legge til en skriver i programmer?

A:

Under Linux på UiO legger du ikke til en skriver slik det gjøres på f.eks. Windows. Det du vil er å endre konfigurasjonen til et gitt program slik at Print i menyen File eller tilsvarende bruker riktig kommando for å printe til riktig skriver.

De fleste programmer husker hva du sist skrev inn, så det er vanligvis kun nødvendig å gjøre dette en gang. Spesifiser kommando for printing slik:

/local/bin/ppr -Pprinter [OPTIONS...]

Du bruker altså ppr for å skrive ut. Dersom du skal bruke skriveren "rh_nasse" uten ekstra opsjoner til ppr, blir det altså slik:

/local/bin/ppr -Prh_nasse

Du kan sette en skriver som "fast", dvs. gjøre en skriver default for ppr ved å sette SHELL-variabelen PRINTER. Det gjøres slik for bash:

maskin ~$ export PRINTER=rh_nasse

Eller slik for tcsh:

maskin ~$ setenv PRINTER rh_nasse

For å gjøre dette permanent, legg kommandoen over inn i ~/.bashrc eller ~/.cshrc, avhengig av om du bruker bash eller tcsh, henholdsvis.

Når variabelen PRINTER er satt vil ppr bruke denne dersom skriver ikke er angitt med opsjonen -P.

Se også http://www.usit.uio.no/it/utskrift/unix.html

Q:

Hvordan aksesserer jeg en diskett?

A:

Først sørg for at du har RPM-pakken mtools installert. Se seksjon om RPM-kommandoer senere i FAQ-en for en beskrivelse av hvordan det gjøres, og hvordan du evt. kan installere den.

Hvis du er vant til MS-DOS, er dette lett som en lek. Pakken mtools gir deg en rekke kommandoer som er kopier av vanlige kommandoer fra MS-DOS. Alle kommandoene fra mtools starter med bokstaven 'm'.

Noen eksempler:

Eksempel 27. Liste innholdet på disketten:

maskin: ~$ mdir a:
 Volume in drive A has no label
 Volume Serial Number is 113D-D3AD
Directory for A:/

DOKUME~1    DOC     16732 01-19-2003  17:59  Dokumentet.doc
        1 file               16 732 bytes
                          1 440 768 bytes free

Eksempel 28. Kopiere en fil fra diskett:

maskin: ~$ mcopy a:\Dokumentet.doc .

Eksempel 29. Kopiere en fil til diskett:

maskin: ~$ mcopy Dokumentet.doc a:

For å si det enkelt kan du bruke alle vanlige kommandoer du er vant med fra MS-DOS.

Q:

Hva med bærbare maskiner?

A:

Dette er en hard nøtt for USIT å knekke. Inntil nylig var UNIX på bærbare maskiner utenkelig, men med Linux blir dette mer og mer vanlig. Ulempen er at USITs opplegg med USITifisering slik vi gjør det i dag ikke er egnet for bærbare maskiner. Opplegget er laget for maskiner som er på nett hele tiden. Inntil videre gjelder de samme regler for bærbare Linux-maskiner som for alle Linux- og UNIX-maskiner på UiOs nett.

Maskinen trenger ikke stå på om natten, ettersom maskinen selv henter ny software fra Store når den starter opp. Merk at dette ikke gjelder når maskinen våkner fra dvale, den vil kun hente oppdateringer ved boot (oppstart) eller om natten.

Sikkerhetsoppdateringer fra Red Hat legges ikke automatisk inn så lenge maskinen ikke befinner seg på UiO-nett. Sørg for å kjøre up2date en gang i blant for å oppgradere programvare fra Red Hat.

Hvis du har problemer, spørsmål e.l. om bærbare Linux-maskiner er rett sted å henvende seg.

Se for øvrig Seksjon 17, “Spesielt for bærbare maskiner”.

Q:

Kan jeg kjøre dualboot på maskinen?

A:

Det kan du, forutsatt at hvert OS har forskjellig IP-adresse. Dette for å unngå forvirring. Alarmen går hos USIT hvis en maskin svarer på ping, men ikke har kjørt daglige oppdateringsscript en uke eller mer.

Q:

Hvordan bruke USB-penn, CD-ROM o.l. på RHEL4?

A:

På RHEL4 blir flyktige medier som USB-penner, CD-ROM og denslags automatisk konfigurert. Brukeren må likevel ta ansvar for montering og avmontering av disse etter bruk. Det RHEL4 gjør er

  • Lager passende innslag i /etc/fstab

  • Lager monteringspunktet

Dette betyr at det brukeren trenger å gjøre er å montere området (eksempel for en vanlig USB-penn):

maskin ~$ mount /media/usbdisk

Etter bruk bør området avmonteres (før man trekker ut USB-pennen):

maskin ~$ umount /media/usbdisk

Merk at navnet usbdisk er standard for USB-penner, men hvis dingsen som skal monteres har navn, blir gjerne navnet benyttet istedenfor. For eksempel har nyere Dell-skjermer kortleser for minnekort innebygd. Dersom kortet er formattert på et kamera kan monteringspunktet være f.eks. /media/EOS_DIGITAL istedenfor det vanlige /media/usbdisk.

[Tips]Tips

Dersom du ikke vet navnet på monteringspunktet, prøv deg frem. Det er alltid en av katalogene under /media. Kjør ls /media for å se hva som er tilgjengelig.

Montering av CD-ROM fungerer på samme måten. Navnet på monteringspunktet blir da /media/cdrom eller /media/cdrecorder hvis det er en CD-brenner.

Q:

Hvordan bruke USB-penn, CD-ROM o.l. på RHEL5?

A:

På RHEL5 blir flyktige medier som USB-penner, CD-ROM og denslags automatisk konfigurert og montert i det brukeren setter dem inn i maskinen. Mediet dukker opp med ikon på skriveborte i GNOME og KDE.

Etter bruk bør mediet avmonteres (før man trekker ut USB-pennen eller tar ut CD-en). Det kan gjøres ved å høyreklikke på ikonet på skrivebordet (GNOME eller KDE) og velge eject, men det kan også gjøres på kommandolinjen:

maskin ~$ umount /media/usbdisk

Merk at navnet usbdisk er standard for USB-penner, men hvis dingsen som skal monteres har navn, blir gjerne navnet benyttet istedenfor. For eksempel har nyere Dell-skjermer kortleser for minnekort innebygd. Dersom kortet er formattert på et kamera kan monteringspunktet være f.eks. /media/EOS_DIGITAL istedenfor det vanlige /media/usbdisk.

[Tips]Tips

Dersom du ikke vet navnet på monteringspunktet, prøv deg frem. Det er alltid en av katalogene under /media. Kjør ls /media for å se hva som er tilgjengelig.

Montering av CD-ROM fungerer på samme måten. Navnet på monteringspunktet blir da /media/cdrom eller /media/cdrecorder hvis det er en CD-brenner.

19.2. Programvare

Q: Hvilken programvare er tilgjengelig?
Q: Firefox/Thunderbird virker ikke på 64-bits Linux?
Q: Hvor kan jeg installere egne programmer?
Q: Kan jeg installere tredjeparts RPM-filer?

Q:

Hvilken programvare er tilgjengelig?

A:

Foruten programvare fra OS-leverandøren (Red Hat) har USIT et eget system for distribusjon og vedlikehold av programvare for UNIX- og Linux-maskiner. Dette systemet kalles Store og du kan lese mer om det på denne web-siden.

En oversikt over programvare i Store finner du på denne web-siden.

Q:

Firefox/Thunderbird virker ikke på 64-bits Linux?

A:

Vi bruker 32-bitsversjonen av Firefox og Thunderbird på 64-bits Linux (AMD Opteron/Intel EM64T e.l.). For at Firefox of Thunderbird da skal virke må diverse biblioteker finnes i 32-bitversjon på maskinen. De fleste er på plass, men ett av dem pleier å mangle i 32-bitversjon. Installer dette slik (som root):

maskin.uio.no# up2date --arch=i386 xorg-x11-deprecated-libs

Fetching Obsoletes list for channel: rhel-x86_64-ws-4...

Fetching rpm headers...
########################################

Name                                    Version        Rel     
----------------------------------------------------------
xorg-x11-deprecated-libs                6.8.1          23.EL             i386  


Testing package set / solving RPM inter-dependencies...
########################################
xorg-x11-deprecated-libs-6. ########################## Done.                   
Preparing              ########################################### [100%]

Installing...
   1:xorg-x11-deprecated-lib########################################### [100%]

Hvis Firefox/Thunderbird fremdeles ikke vil starte, kontakt unix-drift.

Q:

Hvor kan jeg installere egne programmer?

A:

Egne programmer kan du installere hvor du vil, unntatt på partisjonene /local og /usr. Disse partisjonene er forbeholdt programvare tilhørende henholdsvis USITs distribusjonssystem for programvare (Store) og operativsystemet (Red Hat).

Hvis du legger programmer og filer overalt på maskinen vil du kunne få problemer når/hvis maskinen skal oppgraderes eller reinstalleres. Bruk derfor en egen partisjon, f.eks. /fak/maskinnavn/site til dette, slik at du har fullstendig kontroll med hvor dine egne programmer og filer ligger.

Hvis du vet hvor dine egne programmer er installert, og du holder deg unna partisjoner som er reservert for USIT eller operativsystemet, gjør du ting mye enklere for deg selv ifm. oppgradering, backup og generell drift av maskinen.

Q:

Kan jeg installere tredjeparts RPM-filer?

A:

Tja. Installasjon av tredjeparts RPM-filer kommer i konflikt med regelen om at du ikke skal installere ting under /usr som ikke kommer fra Red Hat. Beklageligvis er det slik at RPM-filer ikke lar deg spesifisere hvor du vil at den skal installere. Derfor kan du installere tredjeparts RPM-filer under følgende forutsetninger:

  1. RPM-pakken du installere skal ikke erstatte en RPM-pakke fra Red Hat

  2. RPM-pakken skal ikke være i konflikt med viktige RPM-pakker fra Red Hat. En viktig RPM-pakke er i denne sammenhengen en pakke som sannsynligvis trenger å være installert på maskinen for at den skal fungere, eller at andre allerede installert RPM-pakker er avhengig av den.

  3. Du må være forberedt på at USIT vil fjerne pakken dersom du bryter punktene over, eller at punktene over brytes ved endringer i RPM-pakkene fra Red Hat.

  4. Du må vedlikeholde pakken selv. Dette innebærer bl.a. å sørge for at pakken ikke er en sikkerhetsrisiko.

Årsaken til disse strenge reglene er at dersom det oppstår en konflikt eller en avhengighet i RPM-basen som programmet up2date ikke er i stand til å fikse selv, vil ikke up2date fungere. Dette medfører at maskinen ikke automatisk får sikkerhetsoppdateringer fra Red Hat, og at USIT må bruke tid og krefter på å rydde opp. I verste fall vil USIT kreve at maskinen reinstalleres eller tas av nett umiddelbart.

19.3. Server-tjenester

Q: Kan jeg kjøre Web-server på maskinen?
Q: Kan jeg kjøre Samba på maskinen?
Q: Kan jeg kjøre FTP-server på maskinen?
Q: Er Linux støttet som filtjener ved UiO?

Q:

Kan jeg kjøre Web-server på maskinen?

A:

Ja. Hvis du vil kjøre Web-server på maskinen, anbefaler vi på det sterkeste å bruke USITs dist av Apache, men det er ikke et absolutt krav.

Hvis du har spørsmål om USITs Apache-dist, kan du ta kontakt med ..

Q:

Kan jeg kjøre Samba på maskinen?

A:

Ja, men du må bruke USITs Samba-dist. Dette er et ufravikelig krav. Mer om Samba på UiO finner du her:

http://www.usit.uio.no/it/unix/store/samba.html

Q:

Kan jeg kjøre FTP-server på maskinen?

A:

Ikke med mindre du har en svært god grunn, og tillatelse fra din lokale IT-ansvarlige. I STORE ligger pakken ProFTPd, som er en utmerket FTP-server. Den benyttes blant annet i UiOs FTP-server.

[Viktig]Viktig

Hvis du har planer om å kjøre en anonym FTP-server, dvs. en FTP-server der hvem som helst kan logge seg inn (uten passord), må dette godkjennes både av unix-drift og av lokal IT-ansvarlig.

Q:

Er Linux støttet som filtjener ved UiO?

A:

Kort svar: Ja

Langt svar: Det er ikke mange som bruker Linux som filtjener for hjemmeområder, slik at USIT ikke har mye erfaring med dette, men de som bruker det rapporterer om få problemer.

[Viktig]Viktig

Hvis du skal bruke Linux som filtjener, ta kontakt med unix-drift før du kjøper maskin og/eller disk til formålet!

19.4. X-Windows

Q: Hva er X-Windows?
Q: Kan jeg kjøre Red Hat sitt X-opplegg?
Q: Hvordan konfigurere X-Windows
Q: X-Windows vil ikke starte, hva gjør jeg?
Q: Er mitt skjermkort støttet?
Q: Hvordan får jeg X-Windows til å virke med mitt nVidia-kort?
Q: Hvordan kan jeg utnytte nVidia-kortet fullt ut?
Q: Hvordan får jeg X-Windows til å virke med mitt ATI-kort?
Q: Hvordan får jeg X-Windows til å virke med mitt Intel-kort?
Q: Dell 1900FP virker ikke med 1280x1024 på RHEL4?
Q: X-Windows virker ikke etter kjerneoppgradering/reboot!?
Q: Dell 2001FP virker ikke med 1600x1200 på RHEL4?
Q: Hvordan få 24-tommers Dell-skjerm til å virke på RHEL4?
Q: Kan jeg få Firefox, Thunderbird m.m. til å forstå Emacs-tastekombinasjoner?
Q: Hvor finner jeg mer informasjon om X-Windows?
Q: Hvordan kan jeg endre UiOs X-oppsett?
Q: X-oppsettet deres stinker, kommer dere til å lage et nytt?
Q: Støtter USIT Gnome eller KDE?
Q: Jeg vil kjøre en annen Window Manager, men hvordan?
Q: Jeg vil kjøre GNOME eller KDE på RHEL4, men hvordan?

Q:

Hva er X-Windows?

A:

X-Windows™, eller bare X, er den delen av GNU/Linux som gir deg grafikk. X-Windows™ består i hovedsak av to deler, en server og en klient. Serveren har ansvaret for å kommunsere med maskinvaren, altså skjermkortet og skjermen, mens klienten snakker med serveren. Det er mulig å bruke mange klienter mot en enkelt X-server. Dette var vanlig i gamle dager da "brukbar" maskinvare var dyrere enn i dag, mens i disse dager er det mest vanlig å kjøre både server og klient på samme maskin. Det er dette du gjør hvis du bruker et grafisk grensesnitt på Linux-maskinen din.

Utenpå X kjører man vanligvis en Window Manager, gjerne kalt vindushåndterer eller glassmester på norsk. Det er glassmesteren som lager ting "fancy", som gir deg vinduer, muligheten til å kjøre programmer osv.

Q:

Kan jeg kjøre Red Hat sitt X-opplegg?

A:

[Notat]Gjelder ikke RHEL5

I RHEL5 har vi ikke XDM, slik at Red Hats standard X-opplegg med GDM er det som brukes automatisk. Dette avsnittet gjelder derfor ikke RHEL5.

Ja. USIT har tradisjonelt brukt XDM (X Display Manager) til innlogging. Red Hat bruker GDM (Gnome Display Manager), som i hovedsak gir samme funksjonalitet som XDM, men som er en god del penere og se på, og som gir brukeren litt flere valg ved innlogging. Ved å bruke GDM kan du bl.a. logge inn slik Red Hat hadde tenkt at det skulle gjøres, for de som ønsker det.

Fra og med Red Hat Enterprise Linux 4 er det nå standard med GDM, dersom maskinen er installert med kickstart og man har valgt "Workstation" i ks-generator. I tillegg installeres en RPM-fil fra USIT: gdm-uio. Denne legger til en UiO-session, dvs. at du kan logge inn og få UiOs standardoppsett på samme måte som ved å bruke XDM, men du kan også velge Red Hats opplegg ved innlogging. Ved installasjon av gdm-uio gjøres visse endringer i konfigurasjonen, slik at sesjonen "UiO Standardoppsett" er default.

Figur 2. Innlogging med XDM (X Display Manager)

Innlogging med XDM (X Display Manager)

Dette er normen på UiO. XDM er den gode gamle metoden, og virker helt fint, men noen liker nok GDM bedre.


Figur 3. Innlogging med GDM (GNOME Display Manager)

Innlogging med GDM (GNOME Display Manager)

Red Hat sitt opplegg (GDM) med RPM-pakken gdm-uio. Eneste synlige kjennetegn på at gdm-uio er installert er Apollo-logoen øverst i høyre hjørne.


For å endre fra USIT-opplegg (XDM) til Red Hat-opplegg (GDM) gjør du følgende.

  1. Sjekk først at maskinen kjører i runlevel 3. Det gjøres slik:

    maskin.uio.no# runlevel
    N 3
    
  2. Fjern filen /etc/usit/xdm. Dette er en magisk fil som forteller USITs oppstartsscript at programmet xdm skal startes.

  3. Sett runlevel 5 til default runlevel. Det gjøres ved å endre i filen /etc/inittab. Endre linjen

    id:3:initdefault:
    

    til følgende:

    id:5:initdefault:
    

(For å endre fra RedHat-opplegg til USIT-opplegg reverserer du ganske enkelt prosessen.)

I tillegg, dersom du kjører RHEL4 og ønsker muligheten til å velge "UiO Standardoppsett" som sesjon ved innlogging, må du installere følgende RPM-pakken "gdm-uio". Det gjøres slik:

maskin.uio.no# rpm -Uvh ftp://ftp.uio.no/usit/linux/redhat/rhel4/RPMS/gdm-uio-2.0-1.noarch.rpm

Etter endringen må X startes på nytt. Det gjøres enten ved å reboote maskinen, eller ved å kverke xdm og endre runlevel til 5:

maskin.uio.no# /local/etc/init.d/xdm stop
maskin.uio.no# telinit 5

Men det enkleste er å reboote maskinen.

Q:

Hvordan konfigurere X-Windows

A:

Man kan konfigurere X-Windows på flere måter. X-Windows har en konfigurasjonsfil som heter /etc/X11/XF86Config for RHEL3, og /etc/X11/xorg.conf for RHEL4 og RHEL5. Denne kan man godt redigere direkte på, og mange foretrekker det, men det kreves normalt endel kunnskap og litt øvelse for å unngå å skyte seg selv i foten.

USIT anbefaler isteden å bruke RedHats verktøy for å konfigurere X-Windows:

For RHEL3:

maskin: ~$ redhat-config-xfree86

redhat-config-xfree86

For RHEL4 og RHEL5:

maskin: ~$ system-config-display

system-config-display

Dette programmet er avhengig av X-Windows, men vil selv forsøke å starte X-Windows dersom X ikke allerede kjører. Dette programmet er lett å bruke og ganske selvforklarende.

[Notat]Notat

Du kan støte på problemer med dette programmet hvis X-serveren allerede er konfigurert med verdier som skjermkortet og/eller skjermen ikke takler. Se punktet om problemer med X-Windows i denne FAQ-en dersom du får slike problemer.

Programmet system-config-display er det som kjøres dersom i GNOME- eller KDE-menyen velger System -> Administration -> Display.

Q:

X-Windows vil ikke starte, hva gjør jeg?

A:

Det første du bør finne ut er hvorfor X ikke vil starte. Er dette en ny maskin som du aldri har kjørt X på tidligere? Sjekk i så fall om skjermkortet er støttet. Virket X tidligere på denne maskinen, men ikke lenger etter at du gjorde noen endringer i konfigurasjonen? Da finnes det flere måter å takle problemet på.

Dersom du kjørte redhat-config-xfree86 (RHEL3) eller system-config-display (RHEL4 og RHEL5)og valgte verdier for fargedybde og/eller oppløsning som skjermkortet ikke takler, vil ikke X kjøre, og du får svart skjerm. Det finnes to måter å fikse dette problemet på, som vist under. Jeg anbefaler å prøve metode 1 først, med mindre du er godt kjent med syntaks og innhold i /etc/X11/XF86Config (RHEL3) eller /etc/X11/xorg.conf (RHEL4 og RHEL5) fra før og vet hva du gjør.

  • Metode 1: Tast Ctrl-Alt-F1 for å komme til et tekstkonsoll, og logg inn der som root. Sjekk hvilken runlevel maskinen er i med kommandoen /sbin/runlevel. Hvis du får ut tallet 5, kjør kommandoen telinit 3 for å hoppe til runlevel 3. Hvis du bare får ut tallet 3, kjør kommandoen killall -9 xdm for å kverke X.

    Kjør så redhat-config-xfree86 (RHEL3) eller system-config-display (RHEL4 og RHEL5) med opsjonene --reconfig --output=/tmp/x.conf. Denne kommandoen tar ikke hensyn til eksisterende X-konfigurasjon, slik at du ikke får problemer når programmet skal starte X. I tillegg lagrer du ny konfigurasjon i /tmp/x.conf slik at du ikke overskriver eksisterende konfigurasjon.

    Når du så har rettet opp feilen, kjør disse kommandoene:

    For RHEL3:

    maskin.uio.no# mv /etc/X11/XF86Config /etc/X11/XF86Config.OLD
    maskin.uio.no# mv /tmp/x.conf /etc/X11/XF86Config
    

    For RHEL4 og RHEL5:

    maskin.uio.no# mv /etc/X11/xorg.conf /etc/X11/xorg.conf.OLD
    maskin.uio.no# mv /tmp/x.conf /etc/X11/xorg.conf
    

    Hvis du måtte skifte runlevel for å stoppe X-Windows, kjør kommandoen telinit 5 for å skifte tilbake til runlevel 5 igjen. Hvis du allerede var i runlevel 3, kjør /local/etc/config/init_xdm.sh for å starte X.

  • Metode 2: Stopp X, og rediger /etc/X11/XF86Config (RHEL3) eller /etc/X11/xorg.conf (RHEL4 og RHEL5) med en editor, f.eks. vi eller GNU Emacs. Endre innstillinger i seksjonen som heter screen. Start X igjen.

Q:

Er mitt skjermkort støttet?

A:

Støtte for skjermkort under Linux kommer normalt senere enn for Windows, siden leverandørene av skjermkort har den uvanen å levere drivere for Windows™ sammen med skjermkortet, mens de overlater til andre å lage driver for XFree86 (som Linux bruker).

[Viktig]Viktig

Det lønner seg å sjekke om et skjermkort er støttet før du kjøper det!

En fullstendig liste over støttede skjermkort finnes her: http://www.xfree86.org/ (RHEL3) eller http://www.x.org/ (RHEL4 og RHEL5).

Q:

Hvordan får jeg X-Windows til å virke med mitt nVidia-kort?

A:

For RHEL5 har USIT laget et opplegg med automatisk oppdatering og rekompilering av nVidia-driveren. For RHEL4 må gammel metode benyttes (nVidia-driver for RHEL4).

Installer RPM-pakken "nvidia-driver", slik:

maskin.uio.no# yum -y install nvidia-driver

Driveren blir automatisk installert og konfigurert. For å teste at den fungerer, kjør gdm-restart:

maskin.uio.no# gdm-restart

GDM vil dermed restarte og bruke nVidia-driveren. RPM-pakken "nvidia-driver" vil også sørge for at driveren blir kompilert ved boot, dersom maskinen booter med en ny kjerne.

[Notat]nVidia-driver for RHEL4

For RHEL4 må man bruke gammel metode for å installere og konfigurere nVidia-driveren:

  1. Hent ned siste Linux-driver fra www.nvidia.com og legg den under /root e.l. for å ta vare på den:

    maskin: ~$ su -
    maskin.uio.no# cp /hom/<brukernavn>/NVIDIA-Linux-x86-1.0-8178-pkg1.run /root
    
  2. Kildekoden til kjernen må være installert for at dette skal fungere. Installer kildekoden slik:

    • For RHEL4 med UP-kjerne:

      maskin.uio.no# up2date -f kernel-devel
      
    • For RHEL4 med SMP-kjerne:

      maskin.uio.no# up2date -f kernel-smp-devel
      
    • For RHEL3:

      maskin.uio.no# up2date -f kernel-source
      
  3. X-Windows kan ikke kjøre mens du installerer denne driveren. Skru av X-Windows ved å kjøre

    maskin.uio.no# /local/etc/init.d/xdm stop
    

    hvis du kjører X-Windows i runlevel 3, eller

    maskin.uio.no# telinit 3
    

    hvis du kjører X-Windows i runlevel 5, dvs. Red Hat sin X-Windows.

  4. Kjør installasjons-programmet:

    maskin.uio.no# cd /root
    maskin.uio.no# sh ./NVIDIA-Linux-x86-1.0-8178-pkg1.run
    

    Svar ja på det programmet spør om, så blir driveren installert.

    Installasjonsprogrammet vil advare om at Red Hat-kjernen er konfigurert til å kjøre en modul som nVidia-modulen er inkompatibel med. De færreste bruker denne modulen, så det er ikke noe problem, men om du er bekymret kan du sjekke hvilke moduler som er lastet inn med kommandoen lsmod.

  5. Åpne konfigurasjonsfilen til X-Windows (/etc/X11/XF86Config (RHEL3) eller /etc/X11/xorg.conf (RHEL4 og RHEL5)) med en editor.

    Dersom du fra før bruker nv-driveren er det bare å endre følgende linje:

    • I seksjonen "Device", endre linjen

      Driver   "nv"

      (Istedenfor "nv" kan det stå "svga" eller "vesa"). Endre til følgende:

      Driver   "nvidia"

      Legg så til følgende:

      Option   "NvAGP" "3"

      (Den forteller driveren at den skal bruke kernel AGP support som default, og falle tilbake på integrert AGP support dersom kjernedriveren ikke er tilgjengelig).

    • I seksjonen "Module", legg til hvis den ikke eksisterer:

      Load     "glx"

      Og fjern følgende linjer hvis de eksisterer:

      Load     "dri"
      Load     "GLcore"
  6. Start X-Windows, f.eks. ved å reboote maskinen.

Merk at nVidia-driveren består av både en driver for X-Windows og en kjernedriver. Når du oppgraderer kjernen må du derfor kompilere ny versjon av nvidia-driveren for den nye kjernen. Det gjøres ved å utføre punkt 3 og 4 i listen over.

Alternativt kan du kompilere ny driver for ny kjerne uten at den nye kjernen i bruk, hvis du ikke vil boote to ganger:

maskin.uio.no# sh NVIDIA-Linux-x86-1.0-8178-pkg1.run --kernel-name='2.6.9-34.ELsmp'

Se for øvrig dokumentasjonen som følger med driveren: /usr/share/doc/NVIDIA_GLX-1.0/README.txt

Q:

Hvordan kan jeg utnytte nVidia-kortet fullt ut?

A:

Endel informasjon om nVidia-driveren finnes i /proc-filsystemet. For å se informasjon om "Fast Writes", "SBA" og "AGP mode" kjør følgende:

maskin.uio.no# cat /proc/driver/nvidia/agp/card
Fast Writes:     Not Supported
SBA:             Not Supported
AGP Rates:       4x 2x 1x 
Registers:       0x1f000007:0x1f000104

og

maskin.uio.no# cat /proc/driver/nvidia/agp/host-bridge
Host Bridge:     Intel Corp. 82845G/GL [Brookdale-G] Chipset Host Bridge
Fast Writes:     Supported
SBA:             Supported
AGP Rates:       4x 2x 1x 
Registers:       0x1f000217:0x00000104

For at du skal kunne bruke Fast Writes eller SBA må det stå som "Supported" for både kort og host-bridge. "Not Supported" betyr at du ikke kan bruke disse funksjonene. "Disabled" betyr at du kan bruke dem, men forutsetningene er ikke tilstede. Selv om host-bridge støtter disse funksjonene, og de er enablet i BIOS, kan driveren likevel velge å ikke bruke dem av stabilitetshensyn.

For å skru på Fast Writes, SBA og support for AGP 8x, editer filen /etc/modprobe.conf (RHEL4) eller /etc/modules.conf (RHEL3). Legg til følgende linjer etter linjen med alias char-major-195 nvidia:

options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1 NVreg_ReqAGPRate=8

eller, for kun SBA og Fast Writes:

options nvidia NVreg_EnableAGPSBA=1 NVreg_EnableAGPFW=1

For ytterligere dokumentasjon, se filene som følger med driveren fra nVidia. Du finner dem sannsynligvis under /usr/doc eller /usr/share/doc.

Q:

Hvordan får jeg X-Windows til å virke med mitt ATI-kort?

A:

Den enkleste løsningen er å bruke standard-driveren som følger med operativsystemet (radeon), men avhengig av hvor nytt skjermkortet er, eller om du trenger 3D-funksjonalitet utover det radeon-driveren kan tilby, må du bruke ATI sin proprietære driver. Dette avsnittet beskriver hvordan du installerer og konfigurerer ATIs proprietære driver, fglrx.

Sjekk først om kortet fungerer med standard radeon-driver. Det kan du gjøre ved å lese manualsiden (dvs. kjør man radeon). Sammenlign oversikten over støttede chipset/kort med det du får fra PCI-bussen med kommandoen lspci. Hvis kortet støttes av radeon-driveren skal Red Hats konfigurasjonsverktøy for øvrig kunne sette opp X-Windows for deg uten problemer.

For RHEL5 har USIT laget et opplegg som for automatisk installasjon og konfigurasjon av ATIs proprietære driver. For RHEL4 må gammel metode benyttes (ATI-driver for RHEL4).

Finn ut om maskinen kjører 64bit eller 32bit Linux med kommandoen arch. Dersom du får svaret x86_64 er maskinen 64bit, hvis ikke er den 32bit (dvs. du får svaret i686, i585 eller lignende.

Eksempel 30. Kommandoen "arch"

maskin.uio.no# arch
x86_64

Her er det altså snakk om 64bit.


Installer RPM-pakken "fglrx64_7_1_0" for 64bit Linux, eller "fglrx_7_1_0" for 32bit Linux. I tillegg skal du installere RPM-pakken "initscripts-atidriver", som sørger for at ATI-driveren kompileres på nytt hvis maskinen booter med en ny kjerne:

For 64bit Linux:

maskin.uio.no# yum -y install fglrx64_7_1_0 initscripts-atidriver

For 32bit Linux:

maskin.uio.no# yum -y install fglrx_7_1_0 initscripts-atidriver

Driveren blir automatisk installert. Etterpå bør man kjøre aticonfig --initial for å konfigurere driveren og generere ny konfigurasjonsfil for X-Windows.

maskin.uio.no# aticonfig --initial

Dersom du skal konfigurere X-Windows for to skjermer må du bruke andre parametre til aticonfig, f.eks. --initial=dual-head --screen-layout=right.

For å teste at ATI-driveren fungerer, kjør gdm-restart:

maskin.uio.no# gdm-restart

GDM vil dermed restarte og bruke ATI-driveren. RPM-pakken "initscripts-atidriver" vil også sørge for at driveren blir kompilert ved boot, dersom maskinen booter med en ny kjerne.

[Notat]ATI-driver for RHEL4
  1. Hent ned siste versjon av ATI-driveren fra ATIs web-side.

    Klikk på linken som samsvarer med skjermkortet du har, og om du kjører 32- eller 64-bits Linux.

    Last ned den som heter "ATI Driver Installer".

  2. Su til root (kjør su - og skriv root-passordet.

  3. Plasser filen du hentet ned til et sted hvor den blir liggende, f.eks.

    maskin.uio.no# cp /hom/brukernavn/ati-driver-installer-8.20.8-x86_64.run /root
    
  4. Kjør scriptet:

    maskin.uio.no# sh /root/ati-driver-installer-8.20.8-x86_64.run
    
  5. I vindet som kommer opp, velg Install Driver ettellerannet on X.Org ettellerannet osv..

Etterpå kan man kjøre aticonfig --initial for å konfigurere driveren og generere ny konfigurasjonsfil for X-Windows.

Merk at ATI-driveren består av både en driver for X-Windows og en kjernedriver. Når du oppgraderer kjernen må du derfor kompilere ny versjon av ATI-driveren for den nye kjernen. Dette gjøres ved å følge oppskriften over.

Q:

Hvordan får jeg X-Windows til å virke med mitt Intel-kort?

A:

[Obs]Obs

Bare aktuelt på RHEL3. Man trenger ikke Intels driver på RHEL4 og RHEL5, ettersom disse inneholder en driver som støtter kortet.

Dersom du har en maskin med splitter nytt Intel-skjermkort, f.eks. en Dell Optiplex GX280, er kortet så nytt at det ikke er støttet av driveren som følger med RHEL3. For å få X-Windows til å virke må du derfor hente ned driver fra intel og installere den selv. Under følger en oppskrift.

  1. Hent ned siste Linux-driver i tar.gz-format fra www.intel.com og legg den under /root e.l. for å ta vare på den:

    maskin: ~$ su -
    maskin.uio.no# cp /hom/<brukernavn>/i915graphics.tar.gz /root
    
  2. Pakk ut tar.gz-filen, f.eks. under /tmp:

    maskin.uio.no# cd /tmp
    maskin.uio.no# tar xvfz /root/i915graphics.tar.gz
    
  3. Installer driveren:

    maskin.uio.no# cd dripkg
    maskin.uio.no# ./install.sh
    
  4. Åpne konfigurasjonsfilen til X-Windows (/etc/X11/XF86Config) med en editor og endre Device-seksjonen til følgende:

    Section "Device"
            Identifier  "Videocard0"
            Driver      "i810"
            VendorName  "Videocard vendor"
            BoardName   "Intel 915G"
            BusID       "PCI:0:02:0"
            VideoRAM    65536
    EndSection
    

    Merk at BusID kan være forskjellig. Eksemplet over er fra en Dell Optiplex GX280. Sjekk BusID for kortet ved å kjøre lspci.

  5. Start X-Windows eller reboot maskinen.

Merk at Intel-driveren har et navn som kolliderer med den som følger med RHEL3. Når du installerer RPM-filen over blir derfor filen overskrevet. Dette har den konsekvens at en oppgradering av X-Windows via up2date overskriver filen slik at du må installere driveren på nytt.

Q:

Dell 1900FP virker ikke med 1280x1024 på RHEL4?

A:

Ikke helt sikker på hvorfor, men det later til å virke hvis man legger inn en Modeline for denne skjermen.

Som root, åpne filen /etc/X11/xorg.conf med en editor.

I seksjonen "Monitor", legg inn følgende:

Modeline    "1280x1024"  108.00  1280 1328 1440 1688  1024 1025 1028 1066

Denne seksjonen skal da se slik ut:

Section "Monitor"
        Identifier   "Monitor1"
        VendorName   "Monitor Vendor"
        ModelName    "Dell 1900FP (Digital)"
        HorizSync    30.0 - 80.0
        VertRefresh  56.0 - 61.0
        Option      "dpms"
        Modeline    "1280x1024"  108.00  1280 1328 1440 1688  1024 1025 1028 1066
EndSection

Etter dette er det bare å restarte X-Windows, og det skal virke.

Q:

X-Windows virker ikke etter kjerneoppgradering/reboot!?

A:

Dersom X-Windows ikke virker etter kjerneoppgradering, skyldes dette sannsynligvis at maskinen bruker en proprietær driver fra nVidia eller ATI, som ikke finnes for den nye kjernen.

Både nVidia-driveren og ATI-driveren må kompileres/installeres for hver kjerne. Dette skyldes et design-valg i Linux-kjernen, som sier at Linux ikke er garantert binærkompatibel mellom versjoner, men er kildekode-kompatibel.

For å få X-Windows til å virke igjen, installer den aktuelle driveren (nVidia eller ATI) som beskrevet her: nVidia-driver eller ATI-driver.

Q:

Dell 2001FP virker ikke med 1600x1200 på RHEL4?

A:

Ikke helt sikker, men jeg tror dette skyldes en bug i skjermen, ved at den rapporterer via DDC at maks frekvens er 160MHz, mens den trenger 162MHz for å kjøre i oppløsning 1600x1200. Løsningen er å skru av DDC.

Som root, åpne filen /etc/X11/xorg.conf med en editor.

I seksjonen "Device", legg inn følgende:

Option      "DDC" "false"

Denne seksjonen skal da se slik ut (eksempel fra en Dell Optiplex GX280):

Section "Device"
        Identifier  "Videocard0"
        Driver      "i810"
        VendorName  "Videocard vendor"
        BoardName   "Intel 915"
        Option      "DDC" "false"
EndSection

Etter dette er det bare å restarte X-Windows, og det skal virke.

Q:

Hvordan få 24-tommers Dell-skjerm til å virke på RHEL4?

A:

[Notat]Notat

Dette gjelder modellene 2405FPW og 2407FPW

X-Windows i RHEL4 klarer ikke detektere denne skjermen, så man må sette inn en Modeline i konfigurasjonsfilen til X-Windows for å håndtere dette. Dette er noe avansert, men her er en oppskrift:

Som root, åpne filen /etc/X11/xorg.conf med en editor.

Før seksjonen "Monitor", legg inn følgende:

Section "Modes"
        Identifier "2405FPW"
        Modeline "1920x1200"  154.128 1920 1968 2000 2080  1200 1203 1209 1235 -hsync -vsync
EndSection

Endre seksjonen "Monitor" så den ser slik ut:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Dell"
        ModelName    "2405FPW"
        HorizSync    30.0 - 81.0
        VertRefresh  56.0 - 76.0
        UseModes     "2405FPW"
        Option       "dpms"
EndSection

I seksjonen "Screen", legg inn "1920x1200" som oppløsning, som er optimalt for denne skjermen. Denne seksjonen kan da se f.eks. slik ut:

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1920x1200" "1600x1200" "800x600" "640x480"
        EndSubSection
EndSection

Etter dette er det bare å restarte X-Windows, og det skal virke.

Q:

Kan jeg få Firefox, Thunderbird m.m. til å forstå Emacs-tastekombinasjoner?

A:

Ja, det konfigureres i filen ~/.gtkrc-2.0, ettersom disse programmene bruker gtk+ versjon 2 til grafikkbibliotek. Hvis ikke ~/.gtkrc-2.0 finnes, opprett den. For å få Emacs-tastekombinasjoner legger du inn følgende i fila:

gtk-key-theme-name = "Emacs"

Merk at denne endringen gjelder samtlige programmer som bruker versjon 2 av gtk+!

Q:

Hvor finner jeg mer informasjon om X-Windows?

A:

Det beste utgangspunktet for informasjon om X-Windows er på X-distributørene sine hjemmesider:

Q:

Hvordan kan jeg endre UiOs X-oppsett?

A:

Se web-siden http://www.usit.uio.no/it/unix/oppsett/.

Q:

X-oppsettet deres stinker, kommer dere til å lage et nytt?

A:

Nei, vi har fra og med RHEL5 gått over til å bruke Red Hats standard, GNOME, som vårt standard X-oppsett. Det er noen få tilpasninger til UiO, men stort sett er det helt som levert fra Red Hat. I RHEL5 heter det gamle standardoppsettet "Legacy UiO setup" eller tilsvarende.

Q:

Støtter USIT Gnome eller KDE?

A:

USIT støtter GNOME for RHEL5, med spesielle tilpasninger for UiO. Brukerstøtte på GNOME er begrenset, men hvis du spør skal du få svar. KDE støtter vi i den forstand at vi også gjør tilpasninger, men vi har ikke brukerstøtte.

Q:

Jeg vil kjøre en annen Window Manager, men hvordan?

A:

[Notat]Notat

Denne oppskriften forutsetter at du enten logger inn med XDM, eller med GDM med RPM-pakken gdm-uio installert og velger sesjonen "UiO Standardoppsett" for RHEL4 eller "Legacy UiO setup" for RHEL5. Se Bytte fra XDM til GDM.

Lag en fil med navnet ".xsession" rett på hjemmeområdet ditt, som i grunn er et shellscript som inneholder hva som skal startes av programmer, window manager etc. ved innlogging. Her er et noenlunde avansert eksempel:

# map the [<---] key to the [BackSpace] keysym.
xmodmap -e "keycode 22 = BackSpace"
# map the [Delete] key to the [Delete] keysym.
xmodmap -e "keycode 107 = Delete"
# map the [windows menu] key to <compose>
xmodmap -e "keycode 117 = Multi_key" 1

# Monitor power saving (1800 = 30 min)
xset dpms 1800 2

# Programs to start up 3
xsetroot -solid black
/usr/bin/esd -as 2 -nobeeps -unix -trust &
/local/bin/xscreensaver -no-splash &
/local/bin/emacs --geometry 80x83+0+0 -f gnus &
xterm &

# Finally start the window manager
exec fvwm2 4

1

Man vil gjerne definere eller redefinere taster på tastaturet. Da er xmodmap programmet som brukes.

2

xset er et annet nyttig program som følger med XFree86. I dette tilfellet bruker vi xset til å konfigurere X til å gå i power save etter 30 min.

3

Man vil gjerne starte endel programmer. Disse startes i så fall før man starter en window manager.

4

Til slutt startes en window manager, i dette tilfellet FVWM. Ved å bruke exec sparer vi litt minne, men det er sånt som henger igjen fra gamle dager..

Q:

Jeg vil kjøre GNOME eller KDE på RHEL4, men hvordan?

A:

Dette kan gjøres på to måter:

Du kan bruke RedHat-opplegg for å starte XWindows (dvs. bruke GDM istedenfor XDM). Se Bytte fra XDM til GDM for mer informasjon. Velg så GNOME eller KDE i session-menyen før du logger inn.

Et annet alternativ er å lage en fil .xsession som beskrevet i Bruk av .xsession, men den trenger ikke inneholde annet enn dette:

  • For GNOME:

    exec gnome-session
    
  • For KDE:

    exec startkde
    

19.5. Kjernen og moduler

Q: Hvordan kan jeg sjekke hvilken kjerne maskinen kjører?
Q: Hvordan oppgradere kjernen på RHEL3 og RHEL4?
Q: Hvordan oppgradere kjernen på RHEL5?
Q: Hvordan kan jeg sjekke hvilke moduler som er lastet inn?
Q: Hvordan kan jeg laste inn en spesifikk modul?
Q: Hvordan kan jeg laste ut en spesifikk modul?

Q:

Hvordan kan jeg sjekke hvilken kjerne maskinen kjører?

A:

Bruk kommandoen uname -r:

Eksempel 31. Kommandoen uname

maskin: ~$ uname -r
2.6.18-8.1.4.el5

Q:

Hvordan oppgradere kjernen på RHEL3 og RHEL4?

A:

For å oppgradere kjernen kjører du følgende:

maskin.uio.no# up2date -uf

Opsjonen -u sørger for oppgradering, mens opsjonen -f betyr "force". Da vil alle pakker som ifølge konfigurasjonen ikke skal oppgraderes automatisk bli oppgradert.

[Notat]Notat

Kjernen blir ikke oppgradert i vanlig forstand, dvs. at den gamle erstattes med den nye. Det som skjer er at nyeste versjon legges inn og settes som default ved reboot (i filen /etc/grub.conf). Den gamle kjernen er fremdeles tilstede, og må slettes manuelt hvis du vil bli kvitt den.

Sjekk at filen /etc/grub.conf har satt den nye kjernen som default.

Eksempel 32. /etc/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/sda1
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=1 1
timeout=10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Enterprise Linux WS (2.6.9-5.0.3.EL) 2
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-5.0.3.EL ro root=LABEL=/ 
        initrd /boot/initrd-2.6.9-5.0.3.EL.img
title Red Hat Enterprise Linux WS (2.6.9-5.EL) 3
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-5.EL ro root=LABEL=/ 
        initrd /boot/initrd-2.6.9-5.EL.img

1

Linjen med "default" forteller hvilken av kjernene (som er ramset opp under) som bootes som default, dersom ikke brukeren velger kjerne manuelt ved boot.

2

Dette er den nye kjernen, som nylig ble installert med up2date -uf. Hver kjerne som er konfigurert i boot-loaderen (GRUB) har en linje som starter med "title". Dette er nummer 0.

3

Dette er den kjørende kjernen.


I eksemplet er feil kjerne (den gamle/kjørende) konfigurert som standard. I dette tilfellet skal linjen med "default" endres fra

default=1

til å spesifisere den nye kjernen istedenfor:

default=0

Etter at ny kjerne er installert og /etc/grub.conf er sjekket og funnet i orden, må maskinen naturligvis rebootes for at den nye kjernen skal tas i bruk.

Q:

Hvordan oppgradere kjernen på RHEL5?

A:

På RHEL5 blir kjernen oppdatert automatisk med mindre du selv sørger for å konfigurere noe annet. Det eneste du derfor normalt trenger å gjøre er å reboote maskinen for at ny kjerne skal tas i bruk.

Dersom du likevel skulle ønske å installere ny kjerne selv, evt. bare sjekke om det er en kjerne å oppgradere, kjører du følgende:

maskin.uio.no# yum update

Q:

Hvordan kan jeg sjekke hvilke moduler som er lastet inn?

A:

Bruk kommandoen lsmod.

Eksempel 33. Kommandoen lsmod

maskin: ~$ lsmod
Module                  Size  Used by
vfat                   46401  0 
fat                    85105  1 vfat
ppdev                  42441  0 
nfs                   286093  4 
lockd                  96209  2 nfs
fscache                52385  1 nfs
nfs_acl                36673  1 nfs
autofs4                56393  9 
hidp                   83649  2 
rfcomm                104809  0 
l2cap                  89281  10 hidp,rfcomm
bluetooth             118725  5 hidp,rfcomm,l2cap
sunrpc                195977  4 nfs,lockd,nfs_acl
ipv6                  410913  24 
video                  51273  0 
sbs                    49921  0 
i2c_ec                 38593  1 sbs
button                 40545  0 
battery                43849  0 
...


lsmod er et trivielt program som formatterer innholdet i filen /proc/modules og lister det opp.

Q:

Hvordan kan jeg laste inn en spesifikk modul?

A:

Bruk kommandoen modprobe.

Eksempel 34. Innlasting av kjernemodul

maskin.uio.no# modprobe joydev

Du kan også bruke kommandoen insmod, dersom du skal laste inn en modul som ikke ligger i listen over moduler som følger med, og angi den med full PATH:

maskin.uio.no# insmod /lib/modules/2.6.9-5.0.3.EL/kernel/drivers/input/joydev.ko

Q:

Hvordan kan jeg laste ut en spesifikk modul?

A:

Bruk kommandoen modprobe -r.

Eksempel 35. Utlasting av kjernemodul

maskin.uio.no# modprobe -r joydev

19.6. Brukere og hjemmeområder

Q: Kan jeg ha lokale brukere på maskinen?
Q: Hvordan legger jeg inn brukere på maskinen?
Q: Hvordan lager jeg lokale hjemmeområder?
Q: Hvordan kan jeg få montert hjemmeområdet mitt på maskinen?

Q:

Kan jeg ha lokale brukere på maskinen?

A:

Med unntak av bærbare maskiner, nei. Alle brukere skal være UiO-brukere og ligge i vår brukerdatabase (Cerebrum). Det er flere grunner til dette:

  1. USIT har ikke mulighet til automatisk verifisere at brukerens passord er godt nok, og at passordet blir oppdatert jevnlig.

  2. Den lokale brukerens UID (identifikasjonsnummer) kan (og vil sannsynligvis) kollidere med en ekte UiO-bruker, og dette kan føre til misforståelser om rettigheter til filer o.l.

  3. å gi utenforstående personer adgang til UiOs nettverk er et brudd på IT-reglementet.

Dersom maskinen er en laptop er man nødt til å ha en lokal bruker, ettersom maskinen også skal fungere uten nett og på andre nett enn UiO-nett. Det finnes regler og retningslinjer for bærbare maskiner, les mer i Seksjon 17, “Spesielt for bærbare maskiner”.

Q:

Hvordan legger jeg inn brukere på maskinen?

A:

Innlegging av brukere på maskinen betyr enkel redigering av filen /etc/passwd:

Legg inn enkeltbrukere eller nettgrupper i filen /etc/passwd, f.eks. slik:

+trondham
+@unix-drift

Her er enkeltbrukeren "trondham" og nettgruppen "unix-drift" lagt inn.

For at brukere skal kunne logge inn og gjøre noe på maskinen, må de ha et hjemmeområde tilgjengelig. I eksemplet over forutsetter vi at brukerne har sitt hjemmeområde montert på maskinen via NFS, siden vi ikke har spesifisert et annet hjemmeområde. Hvis du vil spesifisere hvilket hjemmeområde brukerne skal ha på maskinen, kan du f.eks. legge inn følgende i /etc/passwd:

+trondham:::::/home/trondham:
+staalej:::::/home/staalej:

I dette eksemplet har vi spesifisert hjemmeområdet til brukerne "trondham" og "staalej". Disse katalogene (hjemmeområdene) må selvsagt eksistere, og være eiet av brukeren.

Q:

Hvordan lager jeg lokale hjemmeområder?

A:

På et passende sted, dvs. en partisjon/filsystem med mye plass og som ikke er root-partisjonen /, lag en katalog med samme navn som brukeren. I oppskriften under antar vi at katalogen /home er en egen partisjon. Avsnittet Seksjon 11.4, “Lage et logisk volum” forklarer hvordan man lager en partisjon. Videre antar vi at man skal lage et hjemmeområde for UiO-brukeren kjetilk.

Først må man lage selve katalogen:

maskin.uio.no# mkdir /home/kjetilk

Kopier inn diverse standardfiler inn i katalogen:

maskin.uio.no# cp /local/lib/setupfiles/new/.* /home/kjetilk

Deretter endre eier og gruppe på katalogen. Eier er gitt på forhånd, men gruppen skal være brukerens primærgruppe. Primærgruppen til kjetilk finner vi f.eks. ved å bruke kommandoen groups på denne måten:

maskin.uio.no# groups kjetilk
kjetilk : usit ucore usitsjef usitadm houston palconf w3usit00 ureg2000 palantir

Primærgruppen er den som står først, i dette tilfellet er primærgruppen usit. Nå kan vi endre eier og gruppe på hjemmeområdet:

maskin.uio.no# chown -R kjetilk:usit /home/kjetilk

Da er hjemmeområdet laget og kan brukes som et lokalt hjemmeområde av UiO-brukeren kjetilk på denne maskinen.

Q:

Hvordan kan jeg få montert hjemmeområdet mitt på maskinen?

A:

For å kunne montere hjemmeområder via NFS, må den aktuelle NFS-serveren som deler ut ditt hjemmeområde ha gitt tillatelse til din maskin om dette. Dette gjøres av USIT ved å melde maskinen inn i en nettgruppe av bestående av maskiner med rettighet til å montere hjemmeområder. Din lokale IT-ansvarlige må gi tillatelse til dette, og sende mail til og be om at maskinen blir lagt inn i den riktige nettgruppen.

Etter at de nødvendige tillatelser er i orden, og unix-drift har meldt maskinen inn i de nettgruppene den skal være medlem av, må du vente noen timer til endringen er spredd til alle NIS/YP-serverne på UiO. Deretter kan du sette i gang å montere.

Den enkleste og mest praktiske metoden for montering av hjemmeområder på Linux-maskiner er med automount. Dette her beskrevet her i avsnittet Seksjon 8, “Bruk av automounter med automapgenerate”.

Etter at automapgenerate er kjørt (og evt. konfigurert), må man restarte autofs-tjenesten, slik:

maskin.uio.no# service autofs reload

Nå skal du kunne logge inn med ditt eget brukernavn/passord og ha tilgang til ditt eget hjemmeområde.

19.7. RPM -- Redhat Package Manager

Q: Hva er RPM?
Q: Hvordan installere/oppgradere en pakke?
Q: Hvordan avinstallere pakker?
Q: Hvordan finne ut hva som er installert?
Q: Hvordan finne ut hvilket program en pakke inneholder?
Q: Hvordan løse avhengigheter?
Q: Hvilke filer inneholder denne pakken?
Q: Hvilken pakke inneholder denne filen?
Q: Jeg har to versjoner av samme pakke installert, hva gjør jeg?

Q:

Hva er RPM?

A:

RPM er Red Hat sitt pakkesystem. All programvare som Red Hat leverer med sine distribusjoner foreligger i form av RPM-pakker. En RPM-pakke inneholder, i tillegg til selve programvaren (filene), massevis av metadata med informasjon om hvilke filer den inneholder, en beskrivelse av hvilket program det er, eventuelle script som skal kjøres ved installering og avinstallering osv. I Red Hat Linux har man til enhver tid en database over hvilke programmer som er installert i form av RPM-pakker.

En RPM-pakke, før den er installert, er bare en vanlig fil. Den kan for eksempel se slik ut:

pidentd-3.17-6.i386.rpm

Navnet på filen forteller oss en god del. Hvis vi deler opp filnavnet, og ser på det fra start til slutt, finner vi dette:

  • Navnet på programmet som pakken inneholder er pidentd.

  • Det er versjon 3.17 av programmet (pidentd).

  • Det er versjon 6 av RPM-pakken. Hver gang Redhat lager en ny versjon av pakken, endres denne versjonen. Man kan altså ha flere RPM-versjoner av samme program-versjon.

  • Pakken er laget for arkitekturen i386, dvs. vanlig PC.

  • Det er en RPM-fil (ender på .rpm).

Alle kommandoer ifm. RPM starter med rpm. For å vite mer om hvilke muligheter du har til manupulasjon og informasjon om RPM-pakker, kjør kommandoen rpm --help eller les manualen med man rpm.

Q:

Hvordan installere/oppgradere en pakke?

A:

Dette avsnittet omhandler manuell installasjon og oppgradering av RPM-pakker direkte fra RPM-filer.

[Viktig]Viktig

Informasjonen under gjelder RPM-pakker som ikke kommer fra Red Hat og som dermed ikke er mulig å gå tak i via up2date eller yum. For informasjon om up2date, se Seksjon 10, “Installasjon, oppgradering og fjerning av RPM-pakker i RHEL3 og RHEL4”.

Angående installasjon av tredjeparts RPM-pakker, se Installasjon av tredjeparts RPM-pakker.

Installasjon og oppgradering av RPM-pakker er egentlig to sider av samme sak. For å installere eller oppgradere en pakke gir du kommandoen

maskin.uio.no# rpm -Uvh pakkefil

Du kan også angi flere pakker etter hverandre på samme linje, f.eks. slik:

maskin.uio.no# rpm -Uvh glib-2.0.4-1.i386.rpm gtk+-2.0.7-1.i386.rpm
[Notat]Notat

Opsjonen -Uvh er egentlig tre opsjoner, der U er "oppgradere", men kan også brukes til installasjon fordi pakken blir installert dersom den ikke er installert fra før. Opsjonene v og h forteller rpm at den skal gi mer informasjon om hva som skjer.

Q:

Hvordan avinstallere pakker?

A:

RPM-pakker avinstalleres med rpm -e pakkenavn. I likhet med installasjon kan du angi flere pakker på samme linje. Dette er nyttig hvis pakkene er avhengige av hverandre, og du vil ikke vil fjerne bare den ene pakken, men også alle pakker som er avhengige av den.

Q:

Hvordan finne ut hva som er installert?

A:

For å finne ut hva som er installert på maskinen, dvs. samtlige pakker, gir du kommandoen rpm -qa. For å finne ut hvilken versjon av en pakke som er installert, gir du kommandoen rpm -q pakkenavn. Eksempel:

maskin.uio.no# rpm -q glibc
glibc-2.3.2-95.6

Q:

Hvordan finne ut hvilket program en pakke inneholder?

A:

Ved å gi kommandoen rpm -qi pakkenavn vil du få en hel del informasjon om pakken. (Dette gjelder kun installerte pakker.)

For å finne ut informasjon om en uinstallert pakke, må du også ha med opsjonen p, slik: rpm -qpi pakkefil

Q:

Hvordan løse avhengigheter?

A:

Blant metainformasjonen i en RPM-pakke er en liste over hvilke pakker en pakke er avhengig av. Siden ganske mange pakker er avhengige av hverandre vil man ofte støte på problemer rundt dette ved installasjon eller avinstallasjon.

Hvis det gjelder avinstallasjon har du to muligheter:

  1. Fjerne alle pakker den er avhengig av. Legg da alle pakker som skal fjernes etter hverandre på samme linje.

  2. Gi blaffen i avhengigheter, men da bør du også vite hva du gjør. Kanskje noe brekker hvis du fjerner den aktuelle pakken? Hvis du er sikker i din sak, ta med opsjonen --nodeps, slik: rpm -e --nodeps pakkenavn.

Hvis problemet gjelder installasjon, kan du også bruke opsjonen --nodeps, men det kan tenkes at pakken ikke virker uten at alle forutsetninger er tilstede. Det beste alternativet er som regel å installere de pakkene den aktuelle pakken trenger. Legg alle pakker sammen på en linje når du installerer.

[Tips]Tips

Av og til er det desverre slik at avhengighetene gjelder filer, og ikke andre pakker. Da kan det være en utfordring å finne ut hvilke(n) pakke(r) som inneholder de filene som trengs. Et tips i så måte er å bruke en maskin som allerede har installert den pakken du vil installere. Denne maskinen har sikkert den filen som trengs, og du kan finne ut hvilken fil en pakke inneholder med rpm -qf filnavn. Det er ingen andre enkle måter å løse dette problemet.

Q:

Hvilke filer inneholder denne pakken?

A:

List opp hvilke filer en RPM-pakke inneholder med kommandoen rpm -ql pakkenavn. For uinstallerte pakker er kommandoen rpm -qpl pakkenavn.

Q:

Hvilken pakke inneholder denne filen?

A:

Hvis du vil finne ut hvilken pakke som inneholder en gitt fil, kan det gjøres enkelt med kommandoen rpm -qf filnavn.

For eksempel, hvis vi vil finne ut hvilken RPM-pakke som inneholder filen /lib/libtermcap.so.2:

maskin ~$ rpm -qf /lib/libtermcap.so.2
libtermcap-2.0.8-35

Q:

Jeg har to versjoner av samme pakke installert, hva gjør jeg?

A:

Det er faktisk fra RPMs synspunkt fullstendig legitimt å ha to versjoner av samme pakke installert, men det kan skape problemer når du prøver å oppgradere eller fjerne pakker. Noen få pakker kan man godt ha installert flere versjoner av (eksempel er "kernel"), men for de alle fleste pakker er dette å bektrakte som en feil.

Den enkleste måten å fikse dette problemet er å først fjerne alle versjoner for så å installere den versjonen du vil ha. Bruk gjerne opsjonen --nodeps for å unngå mas om avhengigheter når du skal fjerne de installerte versjonene, siden du vet at dette ikke er et problem.

19.8. Network File System (NFS)

Q: Hvordan eksportere noe via NFS?
Q: Hvordan sjekke hvilke filsystemer en maskin eksporterer?
Q: Hvordan øke ytelsen på en NFS-server?
Q: Hvor finner jeg mer informasjon om NFS i Linux?

Q:

Hvordan eksportere noe via NFS?

A:

For å kunne NFS-eksportere en disk/partisjon/katalog må følgende forutsetninger være oppfylt:

  • Locking-dæmonen for NFS må kjøre. Denne er nødvendig å kjøre for montering av NFS, ikke bare eksport, så sannsynligvis kjører den allerede. Om denne tjenesten er satt opp til å starte ved boot kan du sjekke med følgende kommando:

    maskin.uio.no# chkconfig --list | grep -w nfslock
    nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
    

    Det skal stå "on" for runlevel 3 og 5, som i eksemplet over. Hvis det ikke gjør det, konfigurer den til å starte ved boot slik:

    maskin.uio.no# chkconfig nfs on
    

    Start så tjenesten manuelt, slik:

    maskin.uio.no# service nfslock start
    Starting NFS statd:                                        [  OK  ]
    
  • NFS-dæmonen må kjøre. Om NFS-tjenesten er satt opp til å starte ved boot kan du sjekke med følgende kommando:

    maskin.uio.no# chkconfig --list | grep -w nfs
    nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
    

    Det skal stå "on" for runlevel 3 og 5, som i eksemplet over. Hvis det ikke gjør det, konfigurer den til å starte ved boot slik:

    maskin.uio.no# chkconfig nfs on
    

    Start så tjenesten manuelt, slik:

    maskin.uio.no# service nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    
  • Det som skal eksporteres må være korrekt konfigurert i /etc/exports. Følgende er et eksempel på en korrekt konfigurert exports-fil:

    /fak/maskin/site/felles  @foo-linux-hosts(rw,sync) trusted(rw,no_root_squash,sync)1
    /fak/maskin/foo-u1       @foo-linux-hosts(rw,sync)2
    /fak/maskin/site/pub     129.240.200.0/23(ro,all_squash,sync)3
    

    1

    Her deles /fak/maskin/site/felles ut med skrivetilgang til medlemmer av nettgruppen "foo-linux-hosts", og root-tilgang til maskinen trusted.uio.no.

    2

    Her deles brukerområdet /fak/maskin/foo-u1 ut med skrivetilgang til nettgruppen "foo-linux-hosts".

    3

    Her deles katalogen /fak/maskin/site/pub ut til alle maskiner på 200-nettet (23-bits nettmaske). Det er tatt med opsjoner slik at det kun gis lesetilgang, og alle UID-er mappes om til "nobody".

    Etter at man har redigert på /etc/exports, må man fortelle NFS-dæmonen om endringene. Det gjør man på denne måten:

    maskin.uio.no# exportfs -ua
    maskin.uio.no# exportfs -a
    

    Sjekk hvilke filsystemer som eksporteres av maskinen med følgende kommando:

    maskin.uio.no# showmount -e
    Export list for maskin.uio.no:
    /fak/maskin/site/felles      foo-linux-hosts,trusted
    /fak/maskin/foo-u1           foo-linux-hosts
    /fak/maskin/site/pub         129.240.200.0/23
    

Det finnes myriader av opsjoner for eksportering av disker via NFS. For mer informasjon, se manualsiden til /etc/exports, slik: man exports.

Q:

Hvordan sjekke hvilke filsystemer en maskin eksporterer?

A:

Bruk kommandoen showmount. Eksempel for aqualene.uio.no:

Eksempel 36. Kommandoen showmount

maskin.uio.no# showmount -e aqualene
Export list for aqualene:
/usit/condor/work     129.240.0.0/255.255.0.0
/usit/aqualene/film   129.240.0.0./16
/usit/aqualene/texutv @usit-servers,friskbris.uio.no

Q:

Hvordan øke ytelsen på en NFS-server?

A:

Det er mange måter å øke ytelsen på en NFS-server, avhengig av hvilken bruksmønster man har. Dersom man har mange klienter bør man øke antall nfsd-tråder. Det gjøres ved å opprette en fil /etc/sysconfig/nfs og sette variabelen RPCNFSDCOUNT. Eksempel for en maskin som skal ha 64 nfsd-tråder:

RPCNFSDCOUNT=64

En annen enkel konfigurasjon man kan gjøre for å bedre ytelsen på serveren, er å sette opsjonen no_subtree_check i /etc/exports, for filsystemer der hele filsystemet er eksportert, ikke bare et sub-tre av filsystemet.

For mer informasjon om NFS og ytelsesoptimalisering se egen seksjon i NFS-howto.

Q:

Hvor finner jeg mer informasjon om NFS i Linux?

A:

Mer informasjon om NFS og Linux finner du i NFS-howto.

19.9. Utskrift

Q: Hvordan bruke CUPS til utskrift?
Q: Hvordan printe fra Maple?

Q:

Hvordan bruke CUPS til utskrift?

A:

CUPS står for "Common UNIX Printing System", og er ment å være et slags standard utskriftssystem for Unix-bokser. CUPS er en daemon (cupsd) som går på maskinen, som kan ta imot utskrifter og skrive dem ut.

USIT distribuerer ikke selve CUPS med Store eller på annet vis, men CUPS er med i Red Hat Enterprise Linux. For å bruke CUPS må man i første omgang sørge for at den er installert på maskinen og kjører:

maskin.uio.no# rpm -q cups || up2date cups

Dersom CUPS ikke kjører, må den startes, og man bør også sørge for at den starter ved boot:

maskin.uio.no# service cups start
maskin.uio.no# chkconfig cups on

USIT har laget et script cups2priss, som er et system for å sende utskriftsjobber via CUPS over til PRISS, slik at det kommer inn i USITs vanlige utskriftssystem. Cups2priss er tilgjengelig på alle Linux-maskiner via Store.

For å komme i gang og kjøre cups2priss, kjør følgende:

maskin.uio.no# /local/sbin/cups2priss_init

Du vil få et spørsmål om hvilke PRISS-skrivere du vil skal være synlig i CUPS (det er ca. 1000 skrivere i PRISS -- du vil antagelig bare se et utvalg), og hvilken skriver som skal være "default".

Når scriptet er ferdig skal du ha CUPS-køer tilgjengelig på maskinen, som sender jobben videre til PRISS-køen med samme navn. Du kan prøvekjøre (som deg selv, ikke root) med kommandoen:

maskin ~$ lpr.cups -Pskriver fil.ps

For mer informasjon om cups2priss, se info om cup2priss på utskriftssidene.

Q:

Hvordan printe fra Maple?

A:

Maple støtter ingen andre former for utskrift enn CUPS. For å skrive ut fra Maple, må man sette opp CUPS og bruke cups2priss. Se Utskrift via CUPS.

[Obs]Obs

Maple sier "printer not accepting job" eller noe slikt, men det ser ut til å virke likevel.