Beknopte samenvatting van Linux cursus 1. Inleiding Linux is een multitasking operating systeem met vele mogelijkheden. Het is vergelijkbaar met Unix en op sommige gebieden met Windows. In tekstmode is het mogelijk meerdere “terminals” te gebruiken, schakelbaar met de ALT-F[x] toets. De stabiliteit van het systeem in tekstmode is uitermate goed, de grafische schil is minder ontwikkeld dan die van Windows. In de grafische schil kunnen diverse applicaties gestart worden, desgewenst met verschillende gebruikersnamen. 2. Systeem Het systeem is gebaseerd om een modulaire kernel, heel vrij vertaald is dit een “besturingsschil”. Modulair houdt in: opgebouwd in delen. Modulair maakt het dus mogelijk alleen die units te gebruiken die voor de werking van het systeem nodig zijn. Deze delen kunnen of rechtstreeks vanuit de meegeleverde kernel worden gebruikt of ze kunnen op verzoek vanuit modules geladen worden (insmod <module>). De modules vind je in /lib/modules/
3. Communicatie Communicatie met de buitenwereld verloopt vrijwel alleen met het TCP/IP protocol. Dit protocol kennen we van het internet. Voor oudere netware systemen kan gebruik gemaakt worden van het IPX protocol, echter dit werkt alleen op lokale netwerken. TCP/IP is eigenlijk een verzamelnaam: het staat feitelijk voor TCP over IP, zo kennen we ook UDP over IP en RPC over IP. IP is zogenaamd het transport en de andere drie: TCP/UDP/RPC het protocol. * TCP wordt gebruikt voor verbindingen die betrouwbaar moeten zijn, er is sprake van zenden van een pakketje en vervolgens het wachten op een bevestiging en dan pas een antwoord welk ook weer bevestigd moet worden. Dit laatste veroorzaakt vrij veel netwerkwerk verkeer. * UDP is minder betrouwbaar: het berust eigenlijk op “het schreeuwen in de ruimte”. Er wordt een packet het netwerk op gebroadcast en wellicht hoort de ontvanger het. Het verzendende systeem verwacht echter geen bevestiging van ontvangst. Wel zal de broadcast na enige tijd herhaald worden als er geen antwoord terugkomt. * RPC is een vereenvoudigd protocol waarmee processen communiceren. Het staat voor Remote Procedure Call, en roept bepaalde procedures op afstand aan. Binnen onze toepassingen zullen we dit nooit bewust versturen, maar er zal wel gebruik van gemaakt worden. 4. File systeem Linux maakt gebruikt van een andere file systeem en een andere wijze van benaderen van directories en bestanden. Het huidige bestandssysteem is EXT2, hetgeen staat voor extended 2. Met de komst van kernel versie 2.4 is ook het EXT3 bestandssysteem geïntroduceerd. Dit systeem schrijft veranderingen eerst naar een log en vervolgens in een tweede proces naar de 1
harddisk. Dit laatste voorziet in een betere controle op fouten doordat gegevens niet tijdens het uitvoeren van het proces worden weggeschreven, maar erna. Het Linux bestandssysteem maakt eigenlijk geen verschil tussen bestanden en directories, maar ziet het geheel meer als “containers”. Containers kunnen weer andere containers bevatten, maar containers kunnen ook alleen bitreeksen bevatten. De optie waarbij containers in andere geplaatst kunnen worden is erg handig als je op een bepaalde plaats schijfruimte te kort komt: je plaatst een nieuwe schijf met partitie en deze plaats je gewoon in de oude container (commando: mount). Containers welke containers bevatten worden in DOS directories genoemd, de containers met bitreeksen worden onder DOS files genoemd. Om de directories en files te onderscheiden gebruikt Linux attributen. Deze attributen omvatten tevens de gehele rechten structuur binnen Linux De attributen: d rwx rwx rwx 0 123 456 789
Attribuut 0 is of een d of een streepje: staat er een d dan is er sprake van een directory. In alle andere gevallen is het een file. De attributen rwx staan respectievelijk voor r(ead), w(rite) en (e)x(ecute). In het Nederlands: lees, schrijf en voer uit. Er bestaan 3 groepen rwx : de eerste groep is voor de eigenaar van het bestand, de tweede voor een groep waarin meerdere aangewezen gebruikers rechten kunnen hebben en de laatste voor alle overige gebruikers. Voorbeeld: een directory heeft de volgende attributen: d rwx r-x --De eigenaar van de directory kan de directory lezen, hij kan er schrijven en hij kan iets uitvoeren.. Wat dan? Change directory! (commando: cd). Heb je niet het recht x, dan kun je de opdracht cd naar die directory niet uitvoeren! De groep kan eveneens lezen en de directory ingaan (hij heeft het recht r-x) maar niet schrijven. Alle overigen kunnen NIETS. Bij deze attributen horen de commando’s: chown (change owner) en chmod (change modus). Bij een file betekent het x attribuut dat het uitvoerbaar is. Er zijn dus geen herkenbare extenties (in dos .exe, .com, .bat enz) nodig om een file uit te voeren. Door wie is een bestand met de attributen - rwx — — uitvoerbaar? Juist alleen door de eigenaar. Nog belangrijker is het te weten dat Linux (Unix) gebruik maakt van alle 255 ascii tekens. Een file met de naam pb0ale is een heel andere bestand dan Pb0ale. Voor Windows is dit gelijk. Linux is dus hoofdletter gevoelig! Je gaat hier vast fouten mee maken...
2
De indeling van directories bestanden binnen Linux verloopt iets anders dan Windows. Er zijn geen drive letters, maar schijf devices. De eerste IDE harddisk in Linux heet /dev/hda, de C: partititie van de Windows schijf heeft dan in Linux /dev/hda1. SCSI schijven krijgen in het algemeen de benaming /dev/sda 5. Praktijk: de installatie van Mandrake 8.1 Ik heb gekozen voor Mandrake omdat het erg veel op RedHat lijkt en de manuals op het internet hier het best bij aansluiten (http://www.linuxdoc.org). De bootloader van Linux maakt het mogelijk om ook andere besturingssystemen te starten. In de meeste gevallen zal dit Windows zijn. In geval er meerdere systemen geïnstalleerd moeten worden begin dan met Windows! Reserveer hier een deel van de harde schijf voor met fdisk en maak slechts 1 partititie. Na installatie van Windows kun je Linux installeren. Wil je systeem booten van cdrom, dan hoef je niets te doen, behalve dan booten vanaf CD1 van Mandrake. Zo niet dan moet je eerst een bootdisk maken. Dit kan eenvoudig met DOS, Windows of Linux. Op de eerste cd van Mandrake staat een directory images. Hierin bevinden zich een aantal bestanden, waaronder cdrom.img Met behulp van het in de directory dosutils staande programma rawrite.exe Type simpel in rawrite en het pakket vraagt om de image (d:\images\cdrom.img d: is de drive letter van de cdrom) en vervolgens om de drive (heel erg vaak A:) waar de image heen geschreven moet worden. Bij Windows is er winrawrite hetgeen identiek werkt, maar ook rawrite werkt hier. In Linux gaat het met dit commando: dd if=/mnt/cdrom/images/cdrom.img of=/dev/fd0 Vervolgens start je op met de cd of met de floppy, het resultaat is gelijk. Na enige tijd verschijnt er een tekst of grafisch scherm waarmee je Linux kunt installeren. Het tekst scherm verschijn meestal als je pc niet aan de minimum voorwaarden (32MB, muis, grafische kaart) voldoet. Er kan ook een probleem met de detectie optreden en dan wil de zogenaamde X-server niet starten. Indien het laatste het geval is, kun je Linux installeren en later de grafische omgeving starten. In het algemeen is het goed alle vragen te beantwoorden: je moet wel weten wat voor een hardware in je computer zit. Wil je het systeem multiboot maken, dus met Linux, kies dan voor een expert installatie. Het systeem mag in dat geval niet automatisch de partities aanmaken daar anders de Windows installatie geruisloos wordt verwijderd! Partities: Overigens kun je altijd handmatig partities aanmaken. Dit kan soms ruimte schelen. Heb je een oudere pc, welke niet meer dan 512 MB kan adresseren, dan is dit met Linux geen probleem, zolang je maar een boot partitie van 30 MB in de laagste sporen van het systeem aanmaakt. Voorbeeld van de partities: SWAP Swap grootte 128 MB (vergelijkbaar met Windows swapfile) 3
/boot /
Linux Native Linux native
grootte 30 MB grootte zo groot mogelijk, de rest van de schijf (> 1,2 GB).
Indien de partities op deze wijze worden aangemaakt zul je altijd de Mandrake distributie kunnen installeren. Op servers kun je ook voor de gebruikers een stukje ruimte reserveren in /usr en /home. De grootte is afhankelijk van het aantal gebruikers. Kies wat voor een systeem het wordt: Indien mogelijk probeer zoveel mogelijk zaken te installeren. Kies altijd voor de development zaken, want die ga je meer gebruiken. Voor de cursus heb je server, workstation en web/ftp services ook nodig. Users en Wachtwoorden: Bij het aanmaken van users dient er rekening mee gehouden te worden dat je minimaal 2 users moet aanmaken. Een daarvan heet standaard root en is de Super User van het systeem. Deze gebruiker heeft alle rechten en een foutje van deze gebruiker kan het systeem geheel slopen. Nu kan de standaard gebruiker van Windows 9x dit ook, dus .... De tweede gebruiker is de standaard gebruiker van het werkstation. Deze kan zelfs automatisch inloggen, maar kan behalve zijn eigen zaken weinig schade aan het systeem aanrichten. Deze gebruikers moeten allen een wachtwoord hebben: indien hier om gevraagd wordt gebruik dan altijd een local wachtwoord en laat je niet tot NIS en LDAP verleiden! Onthoud deze inlognamen en wachtwoorden goed, bijvoorbeeld op een papiertje! O ja, net zoals files... wachtwoorden zijn hoofdletter gevoelig! Gaat het fout dan kun je bij het opbootscherm met keuzes op de knop escape drukken, toets vervolgens in “linux single”. Na opstarten kun je het wachtwoord van root veranderen met het commando passwd. Ook van de gebruiker: passwd pe1fwd laat het wachtwoord van gebruiker pe1fwd veranderen. Als alles goed verloopt heb je na 15 tot 60 minuten een werkend systeem. Extra zaken: rpm installeren Als alles goed verlopen is heb je een werkend systeem. Wellicht is de uitermate handige tool Midnight Commander niet geïnstalleerd en dat vinden we toch wel handig. Mandrake en alle andere distributies maken gebruik van rpm bestanden. Dit zijn ingepakte programma’s welke een aantal interne procedures bevat. Deze procedures zijn install en upgrade. Let op: gebruik altijd rpm bestanden welke bij de distributie behoren anders kunnen er onverwachte fouten optreden. Een rpm (RedHat Package Manager) bestand is vergelijkbaar met een Microsoft MSI pakket. Microsoft vond het idee van rpm goed en heeft hierna zijn MSI ontwikkeld. Een msi bestand kan echter nog veel meer procedures bevatten. Om een rpm bestand te installeren heb je dus het programma rpm nodig (onder KDE grafische schil is dit rpmdrake). 4
Om de Midnight Commander te installeren open je een terminal binnen KDE en maak jezelf superuser. Dit laatste doe je door in de terminal het commando “su” in te toetsen en vervolgens op de vraag password? Het wachtwoord van root in te vullen. Plaats de cdrom in de cd speler en type: mount /mnt/cdrom Onder normale omstandigheden gaat dit goed, echter heb je een brander of twee cdrom spelers dan kan het zijn dat er iets verkeerd gaat. Kijk dan even in de directory /mnt (cd /mnt) met het commando ls. Ze ziet dan alle directories en files in /mnt. Heet er een directory cdrom2, dan moet je misschien die “mounten” (mount /mnt/cdrom2). Met ls kun je dus de directories lezen (in DOS was dit DIR). Met het commando “ls -la” zie je nog meer informatie. Probeer maar eens uit. Na het “mounten”van de cdrom gaan we hem bekijken: cd /mnt/cdrom/Mandrake/RPMS en vervolgens: ls -la mc* Ofwel we zoeken naar alle bestanden die met mc beginnen. Als het goed is zien we er 2. De Midnight Commander en de Midnight Commander server. Het gaat hier dus om de Midnight Commander. Om deze te installeren type je: rpm -i en vervolgens ENTER. De Midnight Commander zal gaan installeren. Bij het intypen kun je eens testen wat je met de tab toets kunt doen. Linux geeft je na het intoetsen van mc twee mogelijkheiden, type nog een letter en vervolgens weer . Zodra je een unieke reeks hebt getypt zal de TAB toets het volledige woord aanvullen. Controle van een rpm bestand gaat met: rpm -V Een geforceerde installatie (als hij weigert) rpm -i - -force Wil je weten welke rpm bestanden op je computer geïnstalleerd zijn type dan: rpm -qa
5
6. Diverse Mandrake utilities Binnen Mandrake’s grafische schil heb je de beschikking over een aantal leuke utilities waarmee je het systeem kunt configureren. De belangrijkste is “drakconf”. Start dit maar eens op vanuit je desktop. Je zult zien dat als je niet als root bent ingelogd het systeem je vanzelf om het root wachtwoord vraagt. Met drakconf kun je je systeem configureren, je service aan en uit zetten enz. Specifiek voor hardware installatie bschik je over de utility “harddrake”. Een tweede belangrijke is “Xdrakres”. Deze werkt zowel vanuit de grafische schil als vanuit de tekst mode. Deze utility gebruik je om je beeldscherm binnen x windows te configureren. Rpm installeren gaat met “rpmdrake”. Alleen in de grafische schil, in tekstmode gebruik je rpm op de commando regel of vanuit de Midnight Commander. 8. Devices, bestanden en configuratie Als alles goed gegaan is heeft een ieder de beschikking over een werkend systeem. We maken gebruik van twee gebruikers: root en de standaard gebruiker. Normaal loggen we in als standaard gebruiker, wil je wat configureren log dan in als root of doe in een terminal: su en vervolgens geeft je het root wachtwoord. In die terminal ben je dan root gebruiker en kun je systeem configureren (dan wel onklaar maken). Je kunt zelfs automatisch een terminal op je desktop aanmaken die om het root wachtwoord vraagt. Type in een gebruikers terminal het commando ifconfig in (allemaal kleine letters). Je ziet niets, doe het nu nog eens, maar dan in een root terminal: je krijgt netwerk info over je netwerkkaart en de localhost. (Localhost is een interne netwerk device welke binnen het tcp/ip protocol gebruikt wordt voor interne communicatie. Dit device mag dus niet worden verwijderd.) Dit commando ifconfig toont al aan wat je als gebruiker en wat je als root kunt doen. Zoals al eerder vermeld: Linux werkt met devices, je vindt dan ook een directory /dev in de Linux boom. /bin /dev /etc /lib /proc /sbin/ /usr /var Een device is een apparaat, of een logisch deel van een apparaat. Een ide harddisk is een device: /dev/hda, een parititie op die schijf ook: /dev/hda1. Een communicatie poort is ook een device: /dev/ttyS0. Linux onderscheidt een communicatie poort echter in twee delen: het ingaande en het uitgaande deel. Dus ook /dev/ptyS0 is hetzelfde device. 6
Kortom devices zijn eigenlijk objecten waarop in en uitvoer van gegevens kan plaatsvinden. Hieronder vallen dus ook netwerkkaarten, bestandssystemen, poorten, een beeldscherm enz. Binnen Linux moet je bijna alle devices instellen of installeren. De bestanden structuur Alle root commando’s vind je binnen /bin en /sbin (zie boom hierboven). Deze kunnen niet door standaard gebruikers worden uitgevoerd. Bibliotheken, in Windows runtime dll genaamd, bevinden zich voor root in /lib. Normale gebruikers kunnen ook niets in /etc veranderen: hier bevinden zich de configuratie bestanden. Ze kunnen wel gelezen worden. Voor de gebruikers bevinden de uitvoerbare bestanden zich in /usr/bin en /usr/sbin. Gaat het om externe programma’s dan vindt je ook nog wat in /usr/local/bin en /usr/local/sbin. Dit laatste is het geval bij ax25 packet commando’s. De bibliotheken voor gebruikers bevinden zich dus in /usr/lib en /usr/local/lib. Een bibliotheek (library) is een gemeenschappelijk bestand welke aan te roepen procedures bevat. Bibliotheken zijn vaak door meerdere programma’s in gebruik. Symlink Als laatste kennen we de symlink - symbolic link. Dit bestand is te vergelijken met een shortcut in Windows: het verwijst naar of een ander bestand of een andere directory. We zullen voor het packet gebeuren een symbolic link aanmaken voor de etc/ax25 directory. Er zijn nieuwe ontwikkelingen waardoor de configuratie bestanden vanuit /etc/ax25 verplaatst zijn naar /usr/local/etc/ax25. Omdat we dit niet allemaal zeker weten, koppelen we de twee directories zodat het voor de buitenwereld één directory is: ln -s
/etc/ax25
/usr/local/etc
ln -s creëert deze symbolic link. cp wordt normaal voor het kopiëren gebruikt (DOS copy).
Manipuleren van bestanden. Net als met DOS kun je binnen de Linux tekst omgeving allerhande commando’s geven. Dit is vooral handig als je over een minder snelle (lees packet) lijn iets met een Linux server wilt gaan doen.
touch
maak een leeg bestand aan
touch
rm
verwijder een bestand
rm /usr/local/etc/ax25/axports
pwd
toon de huidige directory
pwd
ls
geef de bestanden weer
ls <-laF>
7
cp
kopieer een bestand
cp /etc/ax25/axports /usr/local/etc/ax25
mv
verplaats een bestand
mv /etc/ax25/axports /usr/local/etc/ax25
cat
geeft de inhoud weer van een bestand
cat
more
geef een bestand in gedeelten weer
more
mkdir
maak een directory aan
mkdir
rmdir
verwijder een directory
rmdir
man
geef een manual pagina weer
man cat, man more, man
Bestandstypen Zoals al eerder aangehaald heeft Linux geen extensies nodig om een bestand te kunnen uitvoeren, hiervoor was het x-attribuut bedoeld. Er worden wel extensies gebruikt zoals je al zag bij de rpm installatie bestanden. Net als in DOS worden extensies gebruikt om een bestand te herkennen. .text is een text bestand en .conf een configuratie bestand, het kan ook .txt of .cnf zijn, het maakt voor Linux niet zoveel uit. Echter: het aanroepende programma (als het om configuratie bestanden gaat) zoekt of naar een .conf of een .cnf bestand, maar afhankelijk van het programma zal hij hierop reageren. .gz
Een gecomprimeerd bestand (gzip lijkt op pkzip)
.tar
Een gecomprimeerd bestand in Unix formaat (tape archive)
.tgz
Een tar bestand dat ingepakt is met gzip (dubbele compressie)
.tar.gz
identiek aan .tgz
.tmp
tijdelijk bestand
.lck
een lock bestand van een applicatie (afblijven tenzij je weet..)
.pl
perl script
9. Bootproces Als Linux start heb je de keuze uit een aantal mogelijkheden, deze worden afgebeeld door lilo (latere distributies kennen ook grub). Zodra het systeem start zie je een melding “uncompressing linux.....”. Het eerste boot bestand staat gecomprimeerd in de /boot partitie. Bij het starten wordt het gedecomprimeerd en moet minimaal de drivers bevatten om de harddisk met de root (/) partitie te kunnen benaderen. Kan hij dit niet, dan zie je onmiddellijk een kernel panic. Niet zo leuk als je slechts 1 opstartbestand hebt.
8
Runlevel Linux kan starten in tekst en in grafische modus. Dit gedrag wordt bepaald door een bestand /etc/inittab. # # # # # # # #
Default runlevel. The runlevels used by RHS are: 0 - halt (Do NOT set initdefault to this) 1 - Single user mode 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 3 - Full multiuser mode 4 - unused 5 - X11 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc
0 1 2 3 4 5 6
# Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Het runlevel bepaald het gedrag van het systeem. In het eerste deel hebben we linux in single mode gestart. (linux single intypen bij het booten). Dit is gelijk aan runlevel 1. Runlevel 2 en 3 zijn multi user tekst modus, respectievelijk zonder en met netwerk ondersteuning. Runlevel 5 tenslotte zorgt ervoor dat Linux in grafische modus opstart. De regel: id:3:initdefault: bepaald het runlevel: dit systeem wordt in runlevel 3 gestart, de systemen op de cursus vaak in 5. Vraag: is het handig om runlevel 6 te definiëren? # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/bin/su root -c "cd 2>&1
/apps/digi_ned/; ./digi_ned -p aprs -p ether -v >/dev/tty4 /apps/linuxnet/; ./linuxnet >/dev/tty5 2>&1 /dev/tty6 2>&1 /dev/tty7 2>&1
Deze laatste regels zorgen er voor dat op de diverse terminals in tekstmodus een programma starten. Op terminals 1 tm 3 een standaard terminal (tty1 tm 3), 4 tm 7 starten een programma. Mocht een programma afsluiten door een crash, dan zorgen deze regels ervoor dat het onmiddellijk herstart wordt. Welke services worden gestart: In /etc kom je een aantal directories tegen: rc[x].d, waar x een nummer van 0 tm 6 is. Deze nummers staan voor de runlevels en de bestanden in de directory welke overeenkomt met het
9
runlevel worden gestart. In dit geval worden de services in runlevel drie gestart, dus alle bestanden in rc3.d worden afgewerkt. De uiteindelijke controle van de daadwerkelijk gestarte services komt uit /etc/rc.d Hier staan rc.sysinit, rc en rc.local. Aan rc.local kunnen we onze eigen services toevoegen. Mounten van partities Een partitie wordt “gemount” op een plaats in de directory tree van Linux. De plaats waar wordt bij het booten bepaald met behulp van gegevens in het bestandje /etc/fstab. Het onderstaande is een voorbeeld vanuit RedHat Linux, Mandrake gebruikt de labels niet. LABEL=/ LABEL=/boot /dev/cdrom /dev/fd0 none none /dev/sda6
/ /boot /mnt/cdrom /mnt/floppy /proc /dev/pts swap
ext2 ext2 iso9660 auto proc devpts swap
defaults defaults noauto,owner,ro noauto,owner defaults gid=5,mode=620 defaults
1 1 0 0 0 0 0
1 2 0 0 0 0 0
In bovenstaand voorbeeld zie je de twee mountpoints / en /boot aangegeven. Het bestandssysteem dat hierop wordt gemount is van het type extended 2, hetgeen standaard is voor Linux. Overigens zal in de nabije toekomst meer en meer het ext3 bestandssysteem worden gebruikt, dit moet nog stabieler worden. Standaard worden de bestandssystemen van de cdrom en floppy niet gemount, dit kan later met het commando: “mount /mnt/cdrom” of “mount /mnt/floppy”. Automatisch wordt gekeken bij het “mounten” naar het /etc/fstab bestand, komt de entry niet voor, dan zul je de regel helemaal zelf moeten bedenken. mount -t /dev/xxx /mnt/xxx Het type is het type file systeem: msdos, ext2, iso9660 enz. Het device is het bedoelde apparaat dat gemount moet worden (cdrom = /dev/cdrom<x>) en waar in de directory tree, het mountpoint /mnt/cdrom Bij het booten zal dus altijd het root en boot filesysteem in fstab moeten staan: zonder zal het systeem niet starten! Alle regels met de startoptie “defaults” worden bij het starten van het systeem gemount. Op soortgelijke wijze kun je ook een smb device (Microsoft Windows share) mounten. Linux kan Windows shares emuleren in het pakket SAMBA. Kijk eerst met smbclient -L //Servernaam welke shares beschikbaar zijn en vervolgens kun je met het commando smbmount //Server/share /mnt/mountpoint de betreffende share aan je eigen bestandssysteem koppelen. Voor linux is het dus een deel geworden van het lokale bestands systeem, het zal afhankelijk van de verbinding sneller of langzamer werken. In plaats van smbmount kun je ook gebruiken: mount -t smbfs //Mandrake/public /mnt/server. Instellen bootproces De meeste linux distributies ondersteunen lilo als bootmanager. Lilo maakt het mogelijk om van diverse partities op te starten. Je kunt het vergelijken met partition magic voor Windows. 10
Het bootgedrag wordt bepaald - net zoals zo vele zaken - door een tekstbestandje: /etc/lilo.conf. boot=/dev/sda map=/boot/map install=/boot/boot.b prompt timeout=50 linear vga=4 default=linux-2.4.18 message=/boot/message # image=/boot/vmlinuz-2.2.18 label=linux-2.2.18 read-only root=/dev/sda5 # image=/boot/vmlinuz-2.4.13 label=linux-2.4.13 read-only root=/dev/sda5 # image=/boot/vmlinuz-2.4.18 label=linux-2.4.18 read-only root=/dev/sda5
Bovenstaand voorbeeld laat zien dat er drie opstartmogelijkheden zijn voor deze configuratie. De optie boot=/dev/sda geeft aan dat de bootloader geïnstalleerd wordt op de mbr (master boot record) van SCSI schijf nummer 1 (/dev/sda). Het systeem wordt geïnstalleerd vanuit de /boot directory, waar nog een aantal bestanden staan die uiteindelijk worden gelezen tijdens het bootproces. image=/boot/vmlinuz-2.2.18 label=linux-2.2.18 read-only root=/dev/sda5
de naam van de kernel versie de weergave van het bootlabel Alleen lezen bij opstarten mountpoint voor opstart gegevens (zie /etc/fstab)
De image geeft aan welke kernel geladen moet worden, het label is slechts iets om het systeem te identificeren. Uiteindelijk wordt het root device aangewezen /dev/sda5. Dit is een partititie, welke ook wel kan verschillen. Je zou meerdere van bovenstaande blokken kunnen opnemen, die bijvoorbeeld naar een DOS, WINDOWS of OS2 partitie kunnen wijzen. Zorg er ook voor dat je altijd je oude goed werkende systeem ook in het rijtje houdt, dit om bij problemen met nieuwe configuraties toch een werkend systeem te houden. Je hebt deze informatie nodig als een eigen kernel compileert, dit wordt verderop in dit stuk besproken. LET OP: Na veranderingen in /etc/lilo.conf dient altijd het commando “lilo” te worden uitgevoerd en gecontroleerd te worden op een correcte uitvoering. Mislukt de uitvoering van lilo, dan houd je een onbruikbaar systeem over!
11
10. Compileren van AX25 libraries. De AX25 zaken heb je nodig als je packet wil bedrijven met je Linux machine. We zullen de noodzakelijke stappen hieronder doornemen. Vanaf de les server kun je het bestand libax25-0.0.9.tgz downloaden. Dit bestand pak je vervolgens uit naar /usr/scr/libax25-0.0.9 Dit gaat het handigst met de Midnight Commander, let er wel op dat als je met mc een bestand wil uitpakken dat het executable attribuut niet meer bij deze file aanwezig is. (chmod -x filenaam). Uitpakken kan ook met de commandoregel: tar -xvzf libax25-0.0.9.tar.gz vanuit de root van het filesysteem. Na het decomprimeren ga je de directory /usr/scr/libax25-0.0.9 binnen. Daar vind je een aantal bestanden waaronder configure. Dit bestand is uitvoerbaar en is bedoeld om de configuratie van het systeem te bekijken en een Makefile bestand voor de C++ compiler aan te maken. Start configure met de Midnight Commander of start het met het commando ./configure. Let op type je in configure, dan werkt het niet... Bestanden uit de huidige directory start je altijd met ./ ervoor. Volg het verloop van het configureren van Makefile, je krijgt dan een heel klein beetje een idee hoe de C++ compiler uiteindelijk werkt. Als alles goed verloopt kun je na enige tijd het commando “make” intypen. Met dit commando instrueer je de C++ compiler om de bron bestanden aan de hand van de gecreëerde Makefile te compileren en uiteindelijk te linken. Op een rijtje: bronbestanden eindigen op .c header bestanden eindigen op .h gecompileerde bestanden eindigen op .o
Header bestanden bevatten voor gedefinieerde procedures binnen het programma of binnen Linux. Deze .h headerfiles bevinden zich meestal in de rpm’s welke ergens in zich het woord “devel” hebben. De programmacode zelf bestaat uit een aantal .c bestanden welke na compilatie een .o bestand opleveren. Uiteindelijk worden deze .o bestanden met elkaar en de aanwezige programma bibliotheken gelinkt en vormen samen het uiteindelijke bestand, in dit geval de ax25 libraries. Compileer je dus een set van bronbestanden zorg er dan voor dat je eerst de eventueel benodigde libraries op je systeem hebt staan. In dit geval waarbij we ook ax25tools en ax25apps gaan maken moeten dus eerst de libraries worden aangemaakt. Uiteindelijk nadat de compilatie goed verlopen is, dus er geen error 1 of error 2 voorkomt kunnen we de bestanden installeren: make install. Bibliotheken aan het systeem bekend maken. 12
Nadat ook make install succesvol is afgerond moet het systeem wel weten dat ze bestaan. Hiertoe nemen we het path op in het bestand: /etc/ld.so.conf /usr/lib /usr/kerberos/lib /usr/i486-linux-libc5/lib /usr/i386-glibc21-linux/lib
In het geval van de ax25 libraries, deze worden normaler wijze in /usr/local/lib geinstalleerd en we voegen onderstaande regel in in het bestand ld.so.conf. /usr/local/lib
Sla het nieuwe bestand op en compileer het: ldconfig -v (-v geeft het verloop van de compilatie weer). Er zal een nieuw bestand /etc/ld.so.cache worden aangemaakt. AX25 tools en applicaties Voer nu zelf bovenstaande procedure van configureren, compileren en installeren uit voor ax25-apps-0.0.5.tgz en ax25-tools-.0.08.tgz. Opname in ld.so.conf hoeft niet, want het zijn immers geen bibliotheken. Na make install zullen de AX25 tools en apps in /usr/local/bin en in /usr/local/sbin terug te vinden zijn. Indien er problemen zijn met de compilatie van AX25 apps, dan kan het zijn dat er nog een library bestand mist: ncurses-devel-xxx. Dit komt naar voren bij het compileren van het bestand call.c. Installeer de library vanaf de tweede Mandrake cd (rpm -i libncurs ). Herhaal het make proces en controleer of er geen fouten optreden. Let op: helaas is het niet zo dat packet met kernel versie 2.4.0 tm 2.4.9 bedreven kan worden er zit een hinderlijke fout in deze versies. Vanaf kernel versie 2.4.10 werkt ax25 goed. Tenslotte zal het path naar de apps en utils moeten worden toegevoegd aan het systeem: Bewerk hiervoor het bestand /etc/profile en voeg vlak boven de regel “umask 022" toe: export PATH=$PATH:/usr/local/bin:/usr/local/sbin
Let op de dubbele punten tussen de onderdelen van het PATH
11. De logfiles bekijken Het is interessant om bij het compileren en zeker bij het compileren van de kernel de log bestanden van linux eens goed te bekijken. De log bestanden vind je in /var/log. dmesg Een interessant log bestand is dmesg, dit log wordt aangemaakt tijdens het starten van Linux. Je vindt alles wat over je scherm liep ook weer terug in dit bestand. Ook bij het maken van een nieuwe kernel zul je hier wat gegevens uit kunnen putten over welke zaken er nu in je computer zitten aan hardware. messages
13
Na het opstarten van de machine zullen er nog een aantal deamons (achtergrond processen) starten en de resultaten hiervan vind je in het bestand messages (/var/log/messages). Logwatch Andere logs vind je hier ook of in subdirectories van /var/log. Met behulp van de tool logwatch kun je de actuele zaken uit het log dagelijks naar je toe laten sturen. De tool lochwatch is onderdeel van de RedHat 7.2 distributie en is op de lesserver te downloaden, of via internet op http://www.redhat.com. De configuratie van logwatch vindt plaats in /etc/log.d. De configuratie file logwatch.conf is op zich duidelijk in de configuratie. Het is ook mogelijk een scriptje te schrijven waarbij het rapport automatisch ergens geplaatst wordt, met kop en voetteksten. In een mailbox kun je dan het bestand automatisch aan jezelf mailen. 12. Het maken van een kernel Voor het maken van een kernel is een gedegen kennis nodig van wat zich nu in de machine bevindt aan hardware. Tevens is het van belang te weten wat voor een functie de machine krijgt. In punt 2. Werd al opgemerkt dat Linux gebruik maakt van een modulaire kernel. Je kunt modules vast in de kernel mee compileren, maar je kunt ze ook laden als losse modules. Let wel op dat alle belangrijke onderdelen benodigd voor het starten van de machine zijn opgenomen in de kernel! Vanaf de les server is kernel versie 2.4.18 te downloaden. Je kunt iedere andere willekeurig kernel van het internet downloaden (http://www.kernel.org/pub/kernel/2.4). Na uitpakken middels de Midnight Commander of via tar -xvfz kernelxxx.tar.gz krijg je een directory linux te zien. Kopieer die met de Midnight Commander (F5) naar /usr/src/linux-2.4.18 Eventueel kun je hem met de commando regel “mv linux linux-2.4.18" ook hernoemen. De volgende stap is een symbolische link aan te maken met de naam linux. Er kan er al een bestaan naar een andere kernel versie. Maak de symbolic link met : “ln -s /usr/src/linux-2.4.18 /usr/src/linux”, dit kan ook met de Midnight Commander : F9 - Bestand(file) - SymLink. Het systeem zoekt de kernel source altijd in /usr/src/linux. Met behulp van de symbolic link kun je dus meerdere kernel sources op je systeem hebben staan, dit is ook handig met bijvoorbeeld upgrades. Ga nu de directory /usr/src/linux binnen en type: “make menuconfig”. De compiler zal aan het werk gaan en er verschijnt een venster met als venster titel: Linux kernel v2.4.18 Configuration. Instellingen van de kernel Hierbinnen zijn allerhande zaken in te stellen, speciaal afgestemd op je systeem. Let vooral op de processor types en de drivers voor je harddisks. Dit mogen nooit modules zijn daar anders je systeem niet kan starten. 14
De regel is: kijk bij ieder item naar de help file die aanwezig is, geef op zaken die van belang lijken te zijn voor het bootproces altijd “Y”, alle andere zaken benoem je als module: “M”. Modules zijn altijd achteraf te laden (insmod modulenaam). Nadat je je instellingen gemaakt hebt, verlaat je menuconfig en het systeem vraagt automatisch of de configuratie opgeslagen moet worden, ja dus! De machine gaat compileren Nu is het moment aangebroken waarop je machine eens flink aan het werk moet. Allereerst moeten de afhankelijkheden tussen de kernel delen worden vastgesteld, dit gaat met het commando: “make dep”. Vervolgens worden de modules aangemaakt: “make modules”, Deze twee commando’s kunnen ook worden samengesteld: “make dep ; make modules”. De “;” geeft aan dat dit twee achter elkaar uit te voeren commando’s zijn. Wil je overigens zeker weten dat alle oude compiler bestanden (.o) opnieuw gemaakt worden, dan kun je ingeven: “make dep ; make clean ; make modules”. Make clean verwijderd dus oude compiler bestanden. Eindigt het compileren van de modules in een aantal foutmeldingen, dan dien je met make menuconfig je instellingen te compileren en herhaalt de hele cyclus zich. Indien make modules zonder foutmeldingen wordt afgesloten, dan kun je de modules gaan installeren: “make modules_install” en vervolgens de bootimage gaan compileren: “make bzImage”. Let op de hoofdletter I in bzImage. Alles nog eens op een rijtje: make make make make make make
menuconfig dep clean modules modules_install bzImage
Het Het Het Het Het Het
configuratie menu compileren van de afhankelijkheden in de kernel verwijderen van resten van vorige compilaties compileren van de modules (aangegeven in menuconfig) installeren van de net aangemaakte modules compileren van de vaste kernel
De machine zal afhankelijk van zijn capaciteiten 45 minuten tot 5 uur over dit proces doen. Nadat de modules en kernel zonder foutmeldingen zijn gecompileerd moeten we nog een aantal handelingen verrichten om de kernel daadwerkelijk te kunnen starten. Allereerst moeten we de bestanden System.map en bzImage naar de boot directory kopiëren. cp /usr/src/linux/System.map /boot/System.map-2.4.18 cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18 Bij het kopiëren is dus in beide gevallen een versie nummer toegevoegd hetgeen het makkelijk maakt in de toekomst mogelijke aanpassingen te doen. Voor het verder invoeren van deze gegevens in het lilo.conf bestand staan de gegevens hierboven afgebeeld onder het kopje bootproces. 13. Patchen van de kernel
15
Als je een nieuwe kernel wilt compileren kun je die natuurlijk ook thuis downloaden van het internet op http://www.kernel.org/pub/linux/kernel/2.4. Ook hoef je niet altijd de gehele kernel source te downloaden, maar kun je volstaan met een patch. Een patch bevat alle verschillen tussen de versies, met dien verstande dat je niet in een patch van kernel versie 2.4.10 naar 2.4.18 kunt upgraden, maar alle tussenliggende patches moet ophalen. Dus in dit geval patches 2.4.11, 2.4.12, 2.4.13 enz. Je kunt de patch in bz2 of in gz formaat downloaden en plaatst hem in /usr/src. Je installeert hem met: bzcat patch-2.4.xx.bz2 | patch -p0 voor een bz2 versie zcat patch-2.4.xx.gz | patch -p0 voor een gz versie. Er wordt voor de xx het versie nummer van de patch ingevuld. Dus bij een patch van 2.4.10 naar 2.4.11 wordt de patch: bzcat patch-2.4.11.bz2 | patch -p0. Moet je meerdere versie nummers upgraden, dan zul je ook meerdere patches moeten uitvoeren. Een tweede vereiste is dat er in /usr/src/~linux bestand is dat verwijst naar de actuele kernel welke gepatched moet worden. Het is dus verstandig eerst een kopie van de goed werkende kernel te maken en deze met een symbolic link naar linux te laten verwijzen. (voor voor het kopieren eerst “make clean” uit om eventuele resten van vorige compilaties te verwijderen). 14. Andere handige locaties Hieronder een lijstje met internet adressen waar geregeld leuke zaken zijn te downloaden. Http://www.kernel.org http://sourceforge.net http://www.linuxdoc.org http://radio.linux.org.au http://rpmfind.net
Kernel en library sources Projecten met een keur aan programma’s documentatie over linux amateur programma’s Diverse rpm bestanden met een goede zoek machine
en natuurlijk voor je bepaalde upgrades opzoekt kijk je eerst bij de leverancier van je systeem, hier vind je vaak voorbewerkte versies van je software. Bekende adressen zijn: http://www.redhat.com http://www.suse.com http://www.mandrake.org
16
15. AX25 verder configureren Indien de kernel goed gecompileerd en geïnstalleerd is kan er begonnen worden met het aanmaken van ax25 onderdelen. Let op: ook hier heb je bij de installatie weer “root” rechten nodig. Maak een directory /etc/ax25 en maak hiervandaan een symbolic link naar: /usr/local/etc/~ax25. De link is dus tussen directories. Maak vervolgens een directory /var/ax25 en een symbolic link moet verwijzen naar /usr/local/var/~ax25. Dit symbolic links zijn nodig om de oudere en nieuwere applicaties te laten samenwerken: de oude utils gebruiken /etc/ax25 (/var/ax25) en de nieuwe /usr/local/etc/ax25 (/usr/local/var/ax25). Met behulp van het commando “touch” worden drie bestanden aangemaakt in de directory /etc/ax25: axports, rsports en nrports. We zullen in de cursus alleen axports gebruiken, de andere zijn aangemaakt voor comptabiliteit. Het bestand axports is voor kale ax25 devices (flexnet), nrports is voor netrom en rsports voor het Franse node systeem ROSE. In de cursus maken we een tweetal poorten aan: een bpq ethernet poort welke je op je lokale netwerk kunt laten werken met bpq32, flexnet enzovoort en een baycom poort, daar dit een lastig te configureren poort is. Zelf kun je met behulp van de ax25 howto (http://www.linuxdoc.org) allerhande andere poorten maken (kiss, geluidskaart, hzp kaart). Axports Het bestand axports bevat informatie om het ax25 device te kunnen aanmaken. Configureren gebeurt bij het starten van het device. # /etc/ax25/axports # # The format of this file is: # # name callsign speed ether pe1fam-8 57600 aprs pe1fam-9 1200
paclen 254 254
window 7 2
description Link over ethernet APRS Digi
hierin zijn: name callsign speed packlen window description
naam waarmee naar de poort wordt verwezen roepnaam en tevens hardware adres van de poort (neem hiervoor je eigen) snelheid van de poort ethernet is 57600 (mag 10000000 zijn) lengte van 1 pakketje maximaal 255 aantal frames dat gelijk mag worden verzonden omschrijving
Indien de verbinding slecht is, zal het aantal bytes per pakketje omlaag moeten en ook het aantal tegelijk te verzenden pakketjes omlaag moeten. Op een baycom verbinding met 1k2 is het verstandig niet meer dan 2 frames te versturen, is de verbinding slecht dan kun je de packet lengte van 254 omlaag brengen naar 128 oid. 17
Opstarten van de ax25 poorten. Om de ax25 poorten en applicaties te starten zijn een aantal mogelijkheden aanwezig. Je kunt met wat programmeerwerk de standaard start routines maken, maar eenvoudiger is het een soort batch bestand (/etc/ax25/rc.ax25) te maken waarmee de ax25 zaken worden gestart. Later als alles goed werkt kan er naar dit bestand worden verwezen vanuit /etc/init.d/rc.local door in de laatste regel de verwijzing naar het batch bestand (/etc/ax25/rc.ax25) toe te voegen. We beginnen met het aanmaken van het bestand /etc/ax25/rc.ax25 middels het commando “touch”. Vervolgens wordt dit bestand uitvoerbaar gemaakt met het commando: “chmod +x /etc/ax25/rc.ax25". Uiteraard kan dit ook met de Midnight Commander. Vervolgens open je het bestand om dit te bewerken. Bovenin het bestand komt te staan met welke shell het bestand moet worden uitgevoerd: #!/bin/bash. Als de ax25 modules in de kernel gecompileerd zijn, zijn de insmod <module> commando’s niet nodig. Wil je geen foutmeldingen zien, dan gebruik je ipv “insmod” het commando “modprobe” Verder is er een afwijking t.o.v. de ax25 howto: je moet bij ax25 modules altijd een ip adres gebruiken! Dit wordt hier niet gemeld, daar dit sinds kernel versie 2.2.x is ingevoerd. Nadat het module geladen is, kan met commando “ifconfig” het device worden geactiveerd. Bekijk even een regel: ifconfig bpq0 44.137.55.7 kent een ip nummer toe aan het device (dat dus als een netwerk device wordt beschouwd). hw = hardware ax25 = soort poort pe1fam-8 = hardware adres (vergelijk mac adres) en is gedefinieerd in het bestand axports! up activeer het device Vervolgens wordt in een tweede regel nog het broadcast adres en het netmask ingegeven. Tenslotte wordt met bpqparms voorkomen dat het normale ip verkeer over deze poort gaat lopen. Bpqparms -d broadcast. #!/bin/bash # echo '### Starting AX25 support ###' insmod ax25 # # ethernet device starten echo "### Starting BPQ ethernet link ###" insmod bpqether ifconfig bpq0 44.137.55.7 hw ax25 pe1fam-8 up multicast ifconfig bpq0 broadcast 44.137.55.15 netmask 255.255.255.240 /usr/local/sbin/bpqparms bpq0 -d broadcast # # optioneel voor mogelijke interne koppelingen echo "### BPQ device omleiden naar een kiss device ###" /usr/local/sbin/net2kiss -i bpq0 /dev/ptya0 & # # # baycom device starten echo "### Starting MKISS device ###" insmod mkiss # echo "### APRS kanaal middels baycom device ###" # Een baycom device wil niet werken als de uart werkt, dus uitzetten en # wel de juiste com poort: /dev/ttyS0 is DOS com 1, /dev/ttyS1 is DOS com 2 setserial /dev/ttyS1 uart none
18
# insmod hdlcdrv insmod baycom_ser_hdx # # Hier wordt snelheid en poort ingesteld (0x2f8 en irq 3 zijn default toegewezen aan com 2) /usr/local/bin/sethdlc -p -i bcsh0 mode "ser12" io 0x2f8 irq 3 ifconfig bcsh0 44.137.55.7 hw ax25 pe1fam-9 up ifconfig bcsh0 broadcast 44.137.55.15 netmask 255.255.255.240 ifconfig bcsh0 -broadcast # # echo "### Starting AX25 Deamons ###" /usr/local/sbin/ax25d & # echo "### Starting MHeard Deamon ###" /usr/local/sbin/mheardd -f -l -n 50 # # # # # EOF
Als laatste wordt ax25d gestart (hiermee kunnen gebruikers programma’s gestart) en een luister deamon, zodat je kunt zien wie er binnen het bereik van je poorten zijn geweest. Testen Indien bovenstaande goed is ingevuld en de hardware aangesloten is kan getest worden of we de poorten tot leven kunnen krijgen. Start /etc/ax25/rc.ax25 en kijk of er gekke foutmeldingen verschijnen. Je moet dus de ax25 libraries, ax25 apps en ax25 tools allen hebben geinstalleerd! Type eerst het commando “ifconfig”. Als alles goed is gegaan zie je twee extra poorten verschijnen: bpq0 en bcsh0.
In het leslokaal kun je simpel testen met het commando “call”. Dit is een simpel ax25 terminal programma, waarmee je een node of een mailbox kunt benaderen. Type in: “call ether pe1fam”. Ether is de naam van de poort zoals je die in het bestand axports aan een hardware adres hebt gekoppeld (in dit geval pe1fam-8). Omdat in rc.ax25 het hardware adres weer aan het bpq0 device is gekoppeld zal een verbinding over “ether” dus via het netwerk lopen. Buiten het leslokaal kun je het baycom device testen. Let op dat je het baycom device niet voedt uit de computer maar met een externe voeding! “call aprs pi1cdr” zal via de in axports gedefinieerde poort (hw adres pe1fam-9) dus via het baycom device lopen. Op 1k2 zul je nu pi1cdr moeten kunnen connecten. Als je call niet vanuit elke positie kunt aanroepen betekent dit dat je het PATH niet hebt toegevoegd aan het systeem. Zie hiervoor het hoofdstuk AX25 compileren. Meekijken Meekijken kan met het commando listen. Dit is een soort monitor programma. Als je simpel intypt “listen” dan krijg je een opgave van al het verkeer op al je poorten. Wil je meer weten dan type je: listen -c -a -8 -t -p ether
Hiermee zie je al het verkeer op poort ether met opties: 19
-c -a -8 -t -p <poort>
kleur weergave ascii format met -a 8 bits weergave (ibm mode) tijd wordt toegevoegd bij ieder frame de te bekijken poort (weglaten geeft alle ax25 poorten)
Nu we dit klaar hebben kunnen we andere applicaties gebruik laten maken van deze ax25 tncs. Gebruik je een gewone TNC dan moet het programma dat je gaat gebruiken deze TNC kunnen aansturen. Een andere optie is een 6pack of kiss eprom te plaatsen en die met de ax25 utils aan te sturen. Xastir (aprs toepassing) kan zelf een tnc aansturen. LinKT een heel handig packet terminal programma maakt alleen gebruik van ax25 TNC’s.
Overige poorten Alle overige poorten staan beschreven in de ax25 howto. Je kunt deze naar behoefte aanmaken.
20
16. Gegevens veilig stellen. Nadat er veel zaken op de linux machine geconfigureerd zijn is het altijd handig bepaalde instellingen op te slaan. Zoals al eerder gesteld worden de meeste configuratie gegeven opgeslagen in de directory /etc, daarnaast ook wel in /usr/local/etc. Het is dus van belang dat deze configuratie gegevens op een andere media dan de huidige harddisk op te slaan, crasht een disk of formatteer je hem per ongeluk (of expres), dan moet je immers alles opnieuw configureren. Gaat het alleen om de directory /etc, dan wil dit vaak op 1 enkele 1,44 MB floppy disk passen, wil je meer veilig stellen, dan kan dit middels een tape streamer (bandje waarop de data wordt gezet) of een andere schijf ergens in een netwerk. Het meest voor de hand liggend is dus de floppy en in tweede plaats een tape drive, travan tapedrives zijn voor luttele guldens te bemachtigen, slaan tot 800 MB aan gegevens op en worden simpel op een floppy drive connector aangesloten. Voor het maken van een backup gaan we uit van een floppy disk waarop de inhoud /etc directory moet worden geplaatst. Linux beschikt standaard over een aantal programma’s waarmee een backup gemaakt kan worden. We behandelen hier “tar” wat staat voor “tape archive” en dit programma wordt in alle Linux distributies standaard mee geïnstalleerd (zo ook in diverse Unix varianten). Met behulp van het programma “gzip” kunnen de tar bestanden verder worden gecomprimeerd zodat ze minder ruimte op de floppy in beslag nemen. Je herkent een met tar ingepakt bestand door de extensie “.tar” achter de bestandsnaam. Is met behulp van gzip het bestand ook nog eens gecomprimeerd dan zie je “.tar.gz” of “.tgz” staan. LET OP: indien een bestand met behulp van gzip gecomprimeerd wordt weggeschreven, dan kun je dit alleen weer ophalen door het tevens de decomprimeren. Met de “Midnight Commander” kun je rechtstreeks in een bestand van het type .tar en .tar.gz (tgz) kijken. Indien gebruik gemaakt wordt van een floppy disk, dan is dit iets lastiger, want het ingepakte bestand wordt “raw” dus zonder tussenkomst van een mount opdracht hier naar toe geschreven. Hieronder volgen drie opties voor het maken van een backup, met het commando “man tar” vallen nog meer opties te achterhalen om de backup naar eigen inzicht samen te stellen. Voor het inpakken van een bestand typen we als gebruiker root (rechten!!) het volgende in: tar -czvf /dev/fd0 /etc (dir2 dir3) De diverse onderdelen (schakelopties) houden in: c = create (maak een archief) z = (g)zip comprimeren van het tar bestand v = verbose (laat de resultaten op het scherm zien) f = het betreffende device waarheen geschreven wordt. De f optie staat altijd achteraan! /dev/fd0 = floppy drive device /etc = directory en sub directories welke moeten worden opgeslagen, dit mogen er meerdere zijn: /etc /usr/local/etc maakt een backup van beide genoemde directories en hun respectievelijke sub directories. 21
Voor het controleren na de backup van type je het volgende in: tar -dzvf /dev/fd0 De schakeloptie d staat voor controle. Let wel op: de controle moet wel vanuit de root van het systeem worden uitgevoerd, daar anders alle bestanden afwijken. Tar laat de eerste / weg en zoekt naar etc, vanuit de directory /root zoekt hij dan naar bestanden in /root/etc. Dus, bij terugzetten of bij controle dien je eerst cd / in te geven en pas dan tar -d... Tenslotte het uitpakken... Net zoals bij de controle moet het terugzetten naar de oorspronkelijke plaats plaatsvinden vanuit de root van het systeem (zie hierboven). Wil je de bestanden elders terugzetten, ga dan eerst naar die directory: cd /home/pe1fwd en type: tar -xzvf /dev/fd0 Schakeloptie x staat voor extract. Je vindt nu alle bestanden in /home/pe1fwd/etc. Hierna kun je de bestanden handmatig terugzetten. Als extra’tje... je weet niet meer wat er op een floppy staat en wilt dus de bestanden op de floppy weergeven. Type dan: tar -tzf /dev/fd0 De v optie kan dan vervallen, of je hoeft hem in het geheel niet te gebruiken, want het schrijven naar het beeldscherm kost extra tijd en als je er toch niet in geïnteresseerd bent... De schakeloptie t staat dus voor weergave (list) van bestanden. Nogmaals let op: is een bestand aangemaakt met de schakeloptie z, dan dienen alle andere manipulaties met de backup eveneens gedaan te worden met schakeloptie z!
22
17. Xastir een APRS toepassing Xastir is voor beginners een lastig programma om te compileren en te installeren. De installatie vindt onder een grafische schil van x windows plaats. Omdat Xastir zowel grafische als geluidseffecten kent moeten er vermoedelijk een aantal extra zaken op je systeem worden geïnstalleerd. Veel dingen waarmee het mis kan gaan vallen onder de bibliotheken (development). Een aantal van deze libraries staan zelfs niet op de Mandrake cd’s en je vind ze dan ook op de lesserver. Let op: normaal zou je dit soort zaken van internet kunnen downloaden. Xastir is gebaseerd op Motif, dit is een niet gratis pakket, maar we kunnen van Lesstif gebruik maken als open source vervanger. We moeten dit pakket dus installeren en ook diverse “devel” zaken staan niet op de cd van Mandrake 8.1. Het compileren van Xastir is dus niet makkelijk en zorgt voor een behoorlijke zoekpartij. Dit kan binnen 10 minuten gebeurd zijn, maar kan ook uren kosten. Lees altijd de uitkomsten van .configure en make goed na, vaak vind je hier al aanwijzingen wat je zoekt. “Warning” is in de regel niet ernstig, “fatal” en “error 1" of “- 2" wel. In het algemeen kun je zoeken naar: Zijn er door het programma libraries geïnstalleerd op plaatsen welke niet in ld.so.config vermeld staan? Zo nee: locatie aan /etc/ld.so.conf toevoegen en het ommando “ldconfig -v” uitvoeren. Staan de path verwijzingen wel goed naar bijvoorbeeld /usr/local/bin en /usr/local/sbin. Zo nee: het path toevoegen aan het einde van het bestand /etc/profile (“PATH=$PATH:/usr/local/bin:/usr/local/sbin” en op de volgende regel “export PATH”). Vervolgens uitloggen, opnieuw inloggen en verder (lees opnieuw) alles uitvoeren.
23