LPIC-1 - Kaku konspekt 2011, 2. osa
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!
- insmod /lib/modules/2.6.26/kernel/drivers/block/floppy.ko
NB! Täisnimi koos kataloogiteega!
modprobe - laeb mooduli koos sõltuvustega
- 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!)
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
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:
- poweron, BIOS
- BIOS kontrollib riistvara, otsib buutsektori
- alglaadur
- käivitub kernel
- /sbin/init
- 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 3