LPIC-1 - Kaku konspekt 2011, 2. osa

From EIK wiki

JÄTKUU... LPIC-1 - Kaku konspekt 2011, 1. osa


Riistvara

BIOS - EEPROM ehk taaskasutatav püsimälu (flash memory)

POST - power-on self test

POST => riistvaratest => alglaaduri laadimine andmekandjalt => alglaaduri käivitus => OS käivitus

Apple'il on BIOSi asemel OpenFirmware (PowerPC) või EFI (Intel Macs)

BIOS setup - F1, F2, F10, Esc, Del vmm klahv

Arvuti käivitus ilma klaverita - kbd check BIOSist välja lülitada!


Katkestused (IRQ)

i386 puhul 0-15, x86_64 jt puhul on neid veel

0 Süsteemikell Reserveeritud sisemiseks kasutuseks
1 Klaviatuur Reserveeritud klaviatuurile
2 Katkestused 8–15 Algselt suutis x86 hallata vaid 8 katkestust, see oli ülemiste katkestuste jaoks
3 Teine RS-232 jadaliides (Windowsis COM2) Võib ka olla jagatud neljanda jadaliidesega (kui see olemas on)
4 Esimene RS-232 jadaliides (Windowsis COM1) Võib ka olla jagatud kolmanda jadaliidesega (kui see olemas on)
5 Helikaart või teine rööpliides (Windowsis LPT2)
6 Disketiseade Reserveeritud esimesele disketiseadmele
7 Esimene rööpliides (Windowsis LPT1)
8 Reaalajakell Reserveeritud süsteemikellale
9 Vaba
10 Vaba
11 Vaba
12 PS/2 hiir
13 Kaasprotsessor Reserveeritud süsteemile
14 Esimene ATA liides ATA seadmete (kõvakettad - Linuxis enamasti /dev/hda ja /dev/hdb) kontroller
15 Teine ATA liides ATA seadmete (kõvakettad - Linuxis enamasti /dev/hdc ja /dev/hdd) kontroller


Põhiline konfliktiallikas on 5 - helikaardid ja teine paralleelport!

Linuxis näitab cat /proc/interrupts


/proc - virtuaalne failisüsteem: mitte päris failid, vaid failisüsteemina esitatav kerneli info (riistvara, protsessid jne). Paljud utiliidid kasutavad seda, kuid cat'iga vmm moel saab ka otse vaadata.


I/O aadressid

Linuxis Windows Tüüpiline IRQ I/O Aadress
/dev/ttyS0 COM1 4 0x03f8
/dev/ttyS1 COM2 3 0x02f8
/dev/ttyS2 COM3 4 0x03e8
/dev/ttyS3 COM4 3 0x02e8
/dev/lp0 LPT1 7 0x0378-0x037f /dev/lp1 LPT2 5 0x0278-0x027f
/dev/fd0 A: 6 0x03f0-0x03f7 /dev/fd1 B: 6 0x0370-0x0377

Vahel kasutatakse vananenud tähistust /dev/cuax - seega /dev/cua0 = /dev/ttyS0

cat /proc/ioports


Igasugust

DMA (Direct Memory Addressing) cat /proc/dma


CHS geomeetria vs dünaamiline

cold vs hot plug

Hotplug-seadmed => /sys (sysfs)


HAL (Hardware Abstraction Layer) daemon - jooksev info saadaolevate välisseadmete kohta

D-Bus (Desktop Bus) daemon - ditto

udev - virtuaalne failisüsteem /dev all, mõeldud hotplug-seadmetele

NB! RS-232 (COM) ja paralleelpordi (LPT) seadmed on tegelikult coldplugged - tegelikult peaks reboodi tegema!


PCI konfiks: lspci ja setpci

  • -v - detailsem info (-vv ja -vvv "lobiseb" veel enam!)
  • -n - info esitatakse arvkoodina (ei tõlgita tootjanimedeks)
  • -nn - näitab nii arvkoode kui nimesid
  • -x - kuvab 16-ndkoodis seadmeinfo (hirmus abrakadabra). Eriti kreisid inimesed panevad -xxx või -xxxx ...
  • -b - kuvab andmeid seadmete, mitte kerneli vaates
  • -t - kuvab seadmete suhtepuu
  • -s - kuvab etteantud spetsifikatsiooniga seadmed
  • -i file - kasutab etteantud faili seamenimede jaoks (vaikimisi võetakse /usr/share/misc/pci.ids.)
  • -m - masinloetavas vormingus andmed skriptide jaoks. -m on vanem, -mm uuem vorming.
  • -D - näitab PCI domeeninumbreid
  • -M - skaneerib seadmeid siinirežiimis, võib aidata leida möödakonfitud ja seetõttu nähtamatuid seadmeid
  • --version - versiooniinfo


Kerneli moodulid

lsmod - kuvab ainult moodulite info, mitte aga draivereid, mis on otse kernelisse kompileeritud!

  1. insmod /lib/modules/2.6.26/kernel/drivers/block/floppy.ko

NB! Täisnimi koos kataloogiteega!


modprobe - laeb mooduli koos sõltuvustega

  1. modprobe floppy

Põhivalikud:

  • -v, --verbose - kuvab lisainfot
  • -C failinimi - kohandatud konfifail (vaikimisi /etc/modprobe.conf)
  • -n, --dry-run - simuleeritud moodulilisamine (reaalselt ei lisa)
  • -r, --remove - eemaldab mooduli koos sõltuvustega (v.a. juhul, kui sõltuvused on teiste poolt kasutuses)
  • -f, --force - jõuga lisamine
  • --show-depends - näitab mooduli sõltuvusi
  • -l, --list - näitab saadaolevaid mooduleid

rmmod - mooduli eemaldamine

Põhivalikud:

  • -v, --verbose - kuvab lisainfot
  • -f, --force - jõuga eemaldamine
  • -w, --wait - kui moodul on kasutuses, ei anna veateadet, vaid ootab kasutuse lõppemist


USB

  • USB 1.0 ja 1.1 - kuni 127 seadet, 12Mbps
  • USB 2.0 - kuni 480Mbps

lsusb

Uuemal ajal on USB seadmed ühendatud /proc/bus/usb/001, 002, 003 jne


Kõvakettad

  • (P)ATA - paralleelkaabel, 40 või 80 juhet
  • SATA - jadakaabel, 7 juhet?

ATA puhul hda on 1. kontrolleri master, hdb 1. kontrolleri slave, hdc 2. kontrolleri master ja hdd 2. kontrolleri slave (vahepealt võib mõni puududa)

Uuemal ajal võidakse ka ATA kettaid tähistada nagu SCSI omi (sda)

Välised USB- ja Firewire (IEEE1394) kettad - nagu SCSI


Kettamajandus

Kettajaotised (partitsioonid)

NB! Enamikku andmekandjaid käsitletakse võrdväärselt kõvaketastega (USB ja ZIP kettad). Ei partitsioneerita plaate, MO-kettaid ja flopisid!

fdisk -l /dev/hdx (vastav nr) näitab reeglina, kas on partitsioneeritav või ei

Enamik PC-sid kasutab x86 partitsioneerimist, osa AMD64 ja Inteli Macid aga GUID GPT (Globally Unique Identifier Partition Table) süsteemi


GPT partitsioone on kindlam töödelda GNU Parted'iga, mitte fdiskiga

LVM - ei kuulu otseselt programmi. Aga konkreetne soovitus: kui kasutada, tuleb jätta /boot (või / koos buudiga) väljapoole LVM-i (nagu Kakupesas!)


Jaotisteskeem
Saaleala (ei haagita) 1,5–2 korda põhimälu "Mälupikendus"
/home 200MB–1000GB Kasutajate failid, eraldi jaotis võimaldab süsteemi uuendada ilma kasutajaandmeid ringi tõstmata
/boot 20–200MB Käivitusfailid. Eraldi hoidmine eriti arukas vanematel masinatel
/usr 500MB–10GB Põhiline tarkvara
/usr/local 100MB–3GB Unikaalne (enamasti isekompileeritud) tarkvara
/opt 100MB–5GB Distroväline (kolmanda osapoole) tarkvara
/var 100MB–500GB Logid, e-post, veeb, andmebaasid
/tmp 100MB–20GB Ajutised failid
/mnt N/A Väliste andmekandjate haakepunkt
/media N/A Väliste andmekandjate haakepunkt


Failisüsteemi loomine kettale: # mkfs -t ext3 /dev/hda6

NB! mõnel juhul tasub reserveeritud ruum (žurnaali jaoks; ca 5% kettast) ära jätta - lisada -m 0 -võti.


Saaleala tegemine:

  • # mkswap /dev/hda7
  • # swapon /dev/hda7

Püsiva jaoks tuleb /etc/fstab'is ära kirjeldada!


Diagnostika

dumpe2fs -h <jaotis> N: dumpe2fs -h /dev/sda1

tune2fs

debugfs


fsck / e2fsck

Põhivalikud:

  • fsck -A - kõik /etc/fstab-is kirjas olevad failisüsteemid
  • fsck -C - progressinäidik
  • fsck -V - rohkem juttu
  • fsck -N - simulatsioon (ilma reaalse tegevuseta)

Tavaliselt võib jooksutada lihtsalt fsck <failisüsteem>


df - ketta täituvus

hea võti - -h näitab kordseid ühikuid:

kakk@aragorn:~$ df -h
Failisüsteem            Size  Used Avail Use% Haagitud
/dev/sda2              16G   12G  3,1G  80% /
none                  2,0G  288K  2,0G   1% /dev
none                  2,0G  172K  2,0G   1% /dev/shm 
none                  2,0G  308K  2,0G   1% /var/run
none                  2,0G     0  2,0G   0% /var/lock
/dev/sda3             212G  118G   84G  59% /home
//zerblat/kaido$/     347G  324G   23G  94% /media/itk_kodu
//zerblat/Avalik$/    347G  324G   23G  94% /media/itk_avalik
/home/kakk/.Private   212G  118G   84G  59% /home/kakk
kakk@aragorn:~$ 

-a näitab kõiki (ka /proc jt) -T kuvab failisüsteemi tüübi

Võib anda ette ka failisüsteemi või konkreetse kataloogi

du - kettakasutus

Võtmed:

  • -c - kogusumma


Failisüsteemide haakimine

mount

Võtmed:

  • -a - kõik fstab'is kirjas olevad
  • -r - ainult lugemiseks
  • -w (või -o rw) - lugemiseks-kirjutamiseks
  • -t tüüp - failisüsteemi tüüp


Lihtne kuju: # mount /dev/sdb7 /mnt/shared

Haakimise hetkeseis: /etc/mtab (erinevalt fstab'ist pole konfifail ja seda ei näpita!)

Parameetreid:

  • loop - lubab faili haakida kui partitsiooni: mount -t vfat -o loop image.img /mnt/image
  • auto vs noauto - kas haagitakse buudil või ei (eemaldatavaid kettaid ei tasu)
  • user vs nouser - kas kõik kasutajad või vaid root
  • ro vs rw - read-only vs read-write
  • umask väärtus - failisüsteemidele, mis muidu ei toeta Unixi õigustesüsteemi. N: umask 027 => vaikimisi õigused 750, 022 => 755 jne.

user vs users vs owner:

  • user - iga kasutaja võib külge haakida, lahti haakida võib vaid sama kasutaja
  • users - igaüks võib kinni-lahti haakida
  • owner - ainult omanik


umount

  • -a kõik NB!!! mitte fstab'i, vaid mtab'i järgi!
  • -f sunnib
  • -r kui ei õnnestu, haagib uuesti read-only'na


NB! Andmete reaalne kettale kirjutamine võib puhvri tõttu toimuda viivitusega - alati tuleb kettad enne eemaldamist lahti ühendada!


fstab

kaks viimast veergu:

  • dumpi lipp - tänapäeval pea alati 0 (dumpi enam ei kasutata, muidu oleks 1)
  • fsck kontroll buudi ajal - 0-ei kontrollita, 1-esmane kontroll (root part), 2-teised kontrollitavad

CIFS-faili õigused: fstab'is on parameeter credentials=/etc/creds (ja mitte otsene nimi/parool)!

/etc/creds sel juhul (root-readable only!): username=hschmidt password=yiW7t9Td


Failihaldus

Failiõigused: avabiti väärtused

  • - - tavafail
  • d - kataloog
  • l - sümlink
  • p - nimega toru
  • s - sokkel
  • b - blokiseade (ketas)
  • c - märgiseade (jada- või rööppordid)


loabitid (käivad kõige ees: ntx 0750; 4750; 6750 jne):

  • SUID - set user ID: programm jookseb mitte käivitaja, vaid omaniku õigustes. N: käivitan tavakasutajana fdiski, kui seal on SUID peale pandud

N: rwsr-xr-x (s-täht sees). Väärtus: 4

  • SGID - sama grupiga. N: wxr-sr-x. Väärtus: 2
  • sticky - faile saab kustutada vaid nende omanik, kataloogi omanik või root. Kirjutatakse x-i kohale: rwxr-xr-t. Väärtus: 1

SUID ja SGID on suured turvariskid!


Sümbolkuju:

  • ugoa - user, group, other, all
  • + - = - add, remove, set
  • rwxXstugo - read,write,execute,exec2,suid/sgid,sticky,user,group,other
Näide
Käsk Algseis Lõppseis
chmod a+x bigprogram rw-r--r-- rwxr-xr-x
chmod ug=rw report.tex r-------- rw-rw----
chmod o-rwx bigprogram rwxrwxr-x rwxrwx---
chmod g=u report.tex rw-r--r-- rw-rw-r--
chmod g-w,o-rw report.tex rw-rw-rw- rw-r-----


Umask

  • Kataloogid: 777 - mask = õigused (022 => 755)
  • Failid: 666 - mask = õigused (022 => 644)

Tegelikult bitikaupa lahutamine, mitte tavaline: kataloogi puhul 027 => 640 ja 277 => 400)

umask ja newgrp -käsud


chattr - ainult Linuxi failisüsteemides, täiendavad õigused:

  • -a - append, kirjutada saab ainult lisades (mitte üle)
  • -c - compress, automaatne jooksev kinni-lahtipakkimine
  • -i - immutable, ei saa muuta, ümber nimetada, kustutada, linkida (isegi root mitte - bitt tuleb enne maha võtta!)
  • -j - journal (kui failisüstemem toetab) - faili žurnaalimine (kergem taastada, ent aeglane)
  • -s - secure delete - püsikustutus (nullidega ülekirjutus)
  • -t - no tail-merging - faili ei ümardata üle blokkide
  • -A - no access time update - faili viimase vaatamise atribuuti ei uuendata


Kettakvoodid

  • 2.4 kernelid - v1
  • 2.6 - v2


fstab'i rida: /dev/hdc5 /home ext3 usrquota,grpquota 1 1

Sisselülitamine (RH): chkconfig quota on


Otsing

find

  • - name
  • - perm
  • - size
  • - gid
  • - uid

Peamiselt root-kasutaja tööriist - ei sõida üle failiõigustest!

locate

  • kasutab andmebaasi (vt updatedb!), kiirem ja lihtsam
  • slocate - turvalisem, ei näita tavakasutajale asju, mida ei peaks näitama


whereis

Ainult kindlad süsteemsed kohad, mõeldud käskude leidmiseks:

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.bz2


which

Väga nõrk otsing ainult kasutaja kataloogitee raames, tagastab leitud faili kogu kataloogitee:

$ which xterm
/usr/bin/xterm

type

kas sise- või väliskäsk, alias vmms:

$ type type
type is a shell builtin
$ type cat
cat is /bin/cat
$ type ls
ls is aliased to `ls --color’


tar - t-võti on --list!

kvootide nägemine: repquota -a


Arvuti käivitusprotsess

LILO: /etc/lilo.conf (NB! peale muudatusi tuleb lilo-käsk anda)

Nii LILO kui GRUBi puhul: kui kernel tehakse ise, tuleb see konfi ise sisse kirjutada! Alati tasub vana image alles jätta, kuni pole selge, kas uus töötab


Single-user mode: linux 1, linux s, linux S või linux single

GRUB: /boot/grub/menu.lst või /boot/grub/grub.conf


buuditeated: dmesg (vt ka /var/log/dmesg)

buudiprotsessi etapid:

  1. poweron, BIOS
  2. BIOS kontrollib riistvara, otsib buutsektori
  3. alglaadur
  4. käivitub kernel
  5. /sbin/init
  6. muud käivitusprogrammid


Käivitustasemed (runlevel):

  • 0 - üleminekutase (sisuliselt shutdown)
  • 1 - single user
  • 2 - Debianil (Ubuntul ka!) full multiuser w/ X, graph login. teistel defineerimata
  • 3 - enamasti full multi user text mode
  • 4 - enamasti defineerimata
  • 5 - enamasti 3 + graafiline keskkond
  • 6 - reboot

Muidu on default level /etc/inittab-is. Ubuntul vaikimisi pole!

Runleveli sättimise vahendid: chkconfig, ntsysv, rc-update ja update-rc.d (Ubuntul on viimane!)

Check: runlevel-käsk : N näitab, et level pole viimase buudiga muutunud


Vahetamine: init level (N: init 3)

telinit - kindlam ja suuremate võimalustega


Shutdown

  • # shutdown now - otsekohe level 1 peale
  • # shutdown -h +15 “system going down for maintenance” 15 minuti pärast (saab ka kellaaja panna: 06:00)

katkestus: # shutdown -c “never mind”

Parameetrid:

  • -h - halt - peatab, ei lülita välja
  • -H - Halt - peatab, enamasti lülitab välja
  • -r - reboot
  • -P - poweroff

reboot ja poweroff on tänapäeva halti sümlingid!


vi redaktor

Kolm režiimi:

  • käsurežiim: ühetähelised käsud (N: a, i ja R viivad kõik sisestusrežiimi - R on overwrite!)
  • failirežiim: koolon + kaks tähte
  • sisestusrežiim: Esc viib tagasi käsurežiimi

Kui ei tea, kus oled, viib Esc alati tagasi käsurežiimi!

  • Salvestus: :w
  • Salvesta ja välja: :wq
  • Välja ilma salvestuseta:  :q!


JÄTKUU... LPIC-1 - Kaku konspekt 2011, 3. osa