Operatsioonisüsteemi Debian GNU/Linux kasutamine

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Debian GNU/Linux

Debian GNU/Linux ehk lühidalt Debian on vaba operatsioonisüsteem, mis kasutab Linux või FreeBSD tuuma ning töötab paljudel populaarsetel riistvaralistel platvormidel, sealhulgas 32 bit ja 64 bit x86 arvutid.

Debiani sobib kasutada nii serveritel kui ka töökohaarvutitel sh süleritel. Debianile on iseloomulik

  • korrektselt ilmuvad turvaparandused (teated ilmuvad ka bugtraqis)
  • eeskujulik paketihaldus, sh automaatne pakettide autentsuse valideerimine kontrollsummade abil (MD5sum, SHA1, SHA256)
  • rahulik stabiilsete versioonide ilmumise tsükkel, erinevalt närvilisest ja suhteliselt pikk tugi eelmisele stabiisele versioonile
  • väärikas kasutajaskond (ingl. k. community)
  • tarkvara jagatakse kompileeritud ja lähtetekstipakettide kujul

Debiani kodulehe http://www.debian.org/ tiitel ütleb, et tegemist on universaalse operatsioonisüsteemiga, mille tunnistuseks on ehk tõepoolest asjaolu, et Debiani on kasutatud mitmete teiste nn Linuxi distributsioonide aluseks.

Debian on loodud Ian Murdock'i poolt aastal 1993, kusjuures operatsioonisüsteemi nimi on tuletatud autori ja tema abikaasa Debra eesnimedest.

Operatsioonisüsteemi paigaldamise ettevalmistamine

Debiani kasutamiseks on vajalik sobiv riistvara, näiteks tõenäoliselt praktiliselt suvaline 32 bit või 64 bit x86 arvuti sobib, alatest 486 PC mudelitest kuni HP DL 585 G5 ja IBM x3250 taoliste serveriteni. Riistvara sobivuse määrab põhiliselt operatsioonisüsteemi tuum, 2013 aastal on stabiilsel Debiani versioonil 7.0 selleks Linux tuuma versioon 3.2.0.

Lisaks tuleks enne operatsioonisüsteemi paigaldamist otsutada, mida arvutiga teha soovitakse, sh võiks kujutada ette milline saab olema

  • arvuti nimi ja ip aadress
  • kõvaketaste kasutus
  • kas arvutit kasutatakse serveri või töökohana
  • kuhu arvuti füüsiliselt paigutatakse
  • kes vastutab arvuti haldamise eest (tarkvara uuendamine, süsteemi monitoorimine ja varundus/taaste)

Üks otsekohene moodus operatsioonisüsteemi paigladmiseks on kasutada Debiani peeglites (ingl. k. mirror) jagatavat CD tõmmisest valmistatud bootivat CD plaati, kuna kõige populaarsem platvorm on x86, siis märgime, et

  • 64 bit AMD ja Inteli arvutitel kasutamiseks sobib Debiani amd64 arhitektuur
  • 32 bit AMD ja Inteli arvutitel kasutamiseks sobib Debaini i386 arhitektuur

Kuivõrd reeglina AMD ja Inteli 64 bit arvutid on 32 bit-ühilduvad, siis kasutades 32 bit operatsioonisüsteemi tarkvara 64 bit riistvaral käitub arvuti nagu 32 bitine arvuti. Kuigi eelpool on mainitud nimeliselt AMD ja Intelit kehtib öeldu ka teiste tootjate x86 platvormide kohta. Järgnevas on näited toodud konkreetsuse huvides 64 bit keskkonna kohta, kuid põhimõtteliselt toimub tegevus samamoodi ka 32 bit keskkonnas toimetades. Lisaks saab valida mitmete nö eriotstarbeliste tuumade hulgast, nt i386 non-pae, tuuma nimes kasutatakse '486' sel juhul.

Niisiis, kui kasutada on 64 bit x86 riistvara tuleks kopeerida esimene amd64 arhitektuuri CD tõmmis, näiteks aadressilt http://cdimage.debian.org/debian-cd/7.0.0/amd64/iso-cd/debian-7.0.0-amd64-CD-1.iso ning kirjutada CD plaadile. Plaadi kirjutamisel peab jälgima, et tõmmist ei kirjutata plaadile mitte nagu suurt faili, vaid kirjutatakse tõmmisena, vastasel korral arvuti ei boodi sellelt plaadilt. Debian v. 7.0 on rangelt eristatud vabad ja suletud koodiga draiverid, kõige nähtavamalt mõjutab see tõenäoliselt operatsioonisüsteemi paigaldamise protseduur kui on tegemist vastava riistvaraga, http://www.debian.org/releases/stable/amd64/ch06s04.html.en.

USB pulgalt paigaldades tundub, et uuemal ajal on .iso tõmmised nii ettevalmistatud (isohybrid techniques), et need saab lihtsalt dd programmiga kopeerida pulgale ja töötab, https://wiki.debian.org/BootUsb

# dd if=/tmp/debian-7.0.0-amd64-CD-1.iso of=/dev/sdc bs=4M

Kui Debian paigaldatakse arvutile, kus juba on operatsioonisüsteem installeritud, nt Win7, siis tõenäoliselt õnnestub installeriga töötamise ajal Win7 failisüsteemide ja partitsioonide suurusi kahandada, tehes nii ruumi Debiani jaoks. Selleks tuleb kõvaketta seadistamise menüüvalikus öelda 'Manual' ja sealt edasi. Kirjanduse põhjal saab öelda, et vastvaid NTFS failisüsteeme ei ole tarvis eelnevalt defragmenteerida.

Windows operatsioonisüsteemi all sobib USB pulk tekitada UUI (Universal USB Installer) programmiga, mille kasutamise juhised leiab aadressilt http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.

Operatsioonisüsteemi paigaldamine

Tuleb arvestada, et operatsioonisüsteemi paigaldamisel hävivad eelnevalt kõvaketastel olnud andmed. Peale paigaldusmeedialt arvuti käivitamist käivitatakse automaatselt operatsioonisüsteemi installer, mis näeb tekstrežiimis välja selline (alternatiivina esineb installeri kasutajaliides ka graafilises vormis)

Fail:Debian-installer-v7.gif

Installeri kasutamine on intuatiivne, paigaldamise tulemusena tekib iseseisvalt bootiv arvuti. Paigaldamise käigus sooritatakse järgmised otsustused ja tegevused

  • kõvaketakste kasutamine
  • võrguseadistused
  • tarkvarakomplekti valik (standard, töökoht, server)
  • juurkasutaja parool
  • paigaldatakse alglaadur (ingl. k. bootloader) GRUB

Peale paigaldamist saab arvutisse konsoolilt sisse logida ja teatatakse midagi sellist

 Linux loomaaed 2.6.26-2-xen-686 #1 SMP Wed May 16 23:50:09 UTC 2009 i686
 
 The programs included with the Debian GNU/Linux system are free software;
 the exact distribution terms for each program are described in the
 individual files in /usr/share/doc/*/copyright.
 
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 Last login: Sun Mar 29 23:06:53 2009 from aix.auul
 mart@loomaaed:~$

Oluline on tähale panna, et muu hulgas räägib Debian oma kasutustingimustest

  • Debian GNU/Linux süsteemis sisalduv tarkvara on vaba tarkvara
  • Debian GNU/Linux süsteemil kasutamisega ei kaasne garantiid

Paigaldamise lõpus küsitakse, kas on soov osaleda nn populaarsus-võistluses, kord nädalas hakkab arvuti saatma paigaldatud pakettide nimekirja arendajatele, tulemused avaldadakse aadressil http://popcon.debian.org/.

Operatsioonisüsteemi paigaldamine üle serial konsooli

Serial konsooli eksitab splash, sellest saab lahti vajutades Esc. Seejärel tuleb sisestada

boot: install console=ttyS0,9600

Community

Debian GNU/Linux osas suhtlemiseks või niisama tutvumiseks saab kasutada selliseid ressursse

Operatsioonisüsteemi varundamine ja taaste

Operatsioonisüsteemi varundamiseks sobib kasutada programmi rsync kopeerides kogu failisüsteemi va kataloogid

  • /tmp
  • /proc
  • /sys

teisele arvutile.

Süsteemi taastamiseks tuleb arvuti bootida nt RIP-Linuxi CD plaadilt, seadistada võrk, kopeerida varundatud süsteem ja paigaldada bootloader.

IP aadress

Staatilise IP aadressi saab Debianile seadistada failist

/etc/network/interfaces

Tüüpiliselt võiks see välja näna järgnev

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0

iface eth0 inet static
       address 192.168.1.10
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255
       gateway 192.168.1.1

Arvuti nimi ja resolver

Arvutil peab oleme korrektselt seadistatud nimi ning nimesüsteemi kasutamine. Arvuti nimi on kirjas failis /etc/hostname, näiteks

 bassein

ning failis /etc/hosts on kirjas nö staatiline nimelahendus, mis töötab päri-ja pöördteisenduse jaoks, lihtsal juhul on seal sellised read (kusjuures esimest rida tuleb kasutada sõna-sõnalt)

 127.0.0.1 localhost.localdomain localhost
 192.168.1.20 bassein.loomaaed.tartu.ee bassein

Peale nende failide sisu muutmist tuleb muudatuste kehtestamiseks öelda

  bash# hostname bassein

Õnnestunud muudatuse kinnituseks ütleb arvuti nii

 bash# hostname
 bassein
 bash# hostname -f
 bassein.loomaaed.tartu.ee

Selleks, et arvuti lahendaks muid nimesid, peab olema kirjas nimeserveri aadress failis /etc/resolv.conf

 nameserver 192.168.1.254

Kusjuures, kui failis /etc/resolv.conf kasutada mitut sellist rida erinevate nimeserverite aadressidega, siis proovitakse igal nimelahendusel neid järjest läbi kuni jõutakse esimese töötavani. Vaikimisi oodatakse vastust 5 sekundit. Täiendavat infot saab resolveri manuaalist öeldes

 # man resolver

Tihtipeale kasutatakse keskkonnamuutujat PS1 prompti kujundamiseks ja mille väärtuse moodustamisel kasutatakse omakorda käsku hostname. Seetõttu muutub promptis oleva arvuti nime väärtus peale välja ja uuesti sisselogimist.

resolvconf

Lenny sisaldab lisaks nö staatilisele resolverile dünaamilist resolvconf tarkvara, asjakohane allikas on aadressil http://wiki.debian.org/NetworkConfiguration

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install resolvconf

Osa olulisi faile asub kataloogis

 /etc/resolvconf

resolvconf oskab /etc/network/interfaces failist kasutada dns-nameservers parameetrit, nt selliselt

 ...
 auto eth0
 iface eth0 inet static
  address 192.168.10.199
  gateway 192.168.10.254
  netmask 255.255.255.0
  broadcast 192.168.10.255
  dns-nameservers 192.168.10.254

Kellaaeg

Arvuti kellaaeg on korrektselt juhul kohalik aeg. See sõltub ajavööndi seadistusest, mis võiks Eestis olla

 # ls -l /etc/localtime
 lrwxrwxrwx 1 root root 34 Jul 15 21:40 /etc/localtime -> /usr/share/zoneinfo/Europe/Tallinn

Vajadusel tuleks eemaldada /etc/locatime ja öelda

 # ln -s /usr/share/zoneinfo/Europe/Tallinn /etc/localtime

Seadistamiseks sobib kusjuures kasutada pigem ehk utiliiti dpkg-reconfigure öeldes

 # dpkg-reconfigure tzdata

Kellaaja esitamine ja seadistamine programmiga date

Töötava süsteemi käest saab küsida aega öeldes

$ date
Sat Jan  8 14:07:25 EET 2011

Lisaks saab küsida nt nö kaks nädalat tagasi, sellest on vahel kasu nt varundamisega seotud skriptides

$ date -d "2 weeks ago"
Sat Dec 25 14:07:25 EET 2010

Kellaaja esitamine ja seadistamine programmiga rdate

Openrdate http://sourceforge.net/apps/mediawiki/openrdate on OpenBSD projekti rdate tarkvara port Linuxile. Tarkvara paigaldamiseks tuleb öelda

 # apt-get install rdate

Kellaja ühekordne seadmine toimub öeldes

 # rdate ajaserver.loomaaed.tartu.ee

rdate võimaldab suhelda kahte tüüpi ajaserveritega

rdate võtmetega saab juhtida, millist režiimi klient parasjagu kasutab, nt

$  rdate -4 -p -n ntp.ut.ee
Sat Jan  8 14:09:44 EET 2011

kus

  • -4 - IPv4 protokoll
  • -p - ainult küsida aega ja mitte seadistada
  • -n kasutada rfc2030 ajaserverit

Vaikimisi pöördub rdate ajaserveri poole kasutades rfc686 protokolli ja 37/tcp porti.

Kellaaja esitamine ja seadistamine programmiga ntpdate

Tarkvara paigaldamiseks tuleb öelda

# apt-get install ntpdate

ntpdate sobib kellaaja küsimiseks rfc2060 protokolli toetavalt serverilt (kasutades 123/udp porti) ning kohaliku süsteemi kellaaja seadmiseks. Ainult kellaaja küsimiseks sobib kasutada võtit -q

$ ntpdate -p 2 -q ntp.ut.ee ntp.aso.ee
server 2001:bb8:2002:500:211:25ff:fe8f:7d64, stratum 2, offset 0.011371, delay 0.10133
server 193.40.5.113, stratum 2, offset 0.000782, delay 0.03786
server 195.80.105.226, stratum 1, offset 0.000217, delay 0.03523
 8 Jan 15:35:55 ntpdate[20870]: adjust time server 195.80.105.226 offset 0.000217 sec

kus

  • -p 2 - igalt toodud ajaserverilt küsitakse aega kaks korda
  • -q - aega ainult küsitakse ja ei seadistata
  • vastust küsitakse kolmelt ajaserverilt kuna ntp.ut.ee nimel on A ja AAAA kirjed

Algupärane ntpdate programm ise ei kasuta ühtegi seadistusfaili, kuid Debian keskkonnas on lisaks programm ntpdate-debian, mida juhib seadistusfail /etc/default/ntpdate mille abil saab juhtida, milliseid ajaservereid kasutatakse. Vaikimisi on seadistatud rida

NTPDATE_USE_NTP_CONF=yes

mis tähendab, et kasutatakse ajaservereid ntp paketi tarkvara seadistusfailist /etc/ntp.conf. Kui ntpd programm töötab, siis ntpdate keeldub aega seadmast.

Kellaaja esitamine ja seadistamine tarkvaraga ntp

Kellaaja sünkronisseerimiseks sobib kasutada paketti ntp

 # apt-get install ntp

NTP tarkvara juhivad kaks seadistusfaili

  • /etc/default/ntp - milles sisaldub vaikimisi rida ja mis tähendab, et ntpd programmi käivitamisel seadistatakse kellaaeg nö kiiresti
NTPD_OPTS='-g'
  • /etc/ntp.conf - seadistusfail, kus näidatakse ajaserverid jms parameetrid

Seadistusfailist /etc/ntp.conf tuleb leida read

 server 0.debian.pool.ntp.org
 server 1.debian.pool.ntp.org
 server 2.debian.pool.ntp.org
 server 3.debian.pool.ntp.org

ning soovi korral asendada need oma teenese pakkuja nime kasutava ühe reaga, nt

 server ajaserver.loomaaed.tartu.ee

Kulub mõni aega, nt 10 minutit kuni ntp töötamine stabiliseerub, sellest annab tunnistust, et ntptrace vastab kus arvuti asub ntp hierarhias, nt midagi sellist

 # ntptrace -n
 127.0.0.1: stratum 3, offset -0.001927, synch distance 0.038145
 192.168.30.8: stratum 2, offset -0.000066, synch distance 0.020106
 192.168.30.15: stratum 1, offset 0.000010, synch distance 0.002270, refid 'GPS'

võib ka küsida sarnaselt (see väljund ei ole eelmisega näitega kooskõlas)

# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.192.0.53     193.40.5.113     3 u   47   64   37    0.646  -22.260  73.828

Kellaaja esitamine ja seadistamine tarkvaraga openntpd

ntp tarkvarale on populaarne alternatiiv openntpd, üks praktiline erinevus on nt selles, et ntp sisaldab ntptrace utiliiti. OpenNTPD ei sisaldu Debian Squeeze paketihalduses.

Märkused

Selleks, et Xen domU kellaaega mõjutaks domU sees töötav ntp server tuleb öelda

 bash# sysctl -w xen.independent_wallclock=1

või lisada faili /etc/sysctl.conf rida

 xen.independent_wallclock=1

Leap sekundite käsitlemine toimub tavaliselt kahel võimalikul viisil

  • lisatakse äkki sekund ära
# dmesg
..
[14255112.244045] Clock: inserting leap second 23:59:60 UTC
  • määritakse sekundi lisandumine pikema perioodi peale

Võrgu seadistamine seadistusfailidega

Võrguseadmete seadistamine toimub faili /etc/networks/interfaces abil. Selle faili sisu alusel kehtestatakse võrguseadistused arvuti alglaadimisel või öeldes arvuti töötamisel

 # /etc/init.d/networking restart

Failis saab kasutada sellised sektsioone

lo ja eth võrguseadme seadistamine

 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
  address 192.168.10.10
  gateway 192.168.10.254
  netmask 255.255.255.0

dummy võrguseadme seadistamine

 auto dummy0
 iface dummy0 inet static
       address 192.168.13.251
       netmask 255.255.255.0
       network 192.168.13.0
       broadcast 192.168.13.255

Kui on soov kasutada enam kui ühte dummy seadet, tuleb laadida dummy moodul sarnaselt

 # modprobe dummy numdummies=5

VLAN kasutamist tutvustatakse punktis http://kuutorvaja.eenet.ee/wiki/VLAN_kasutamine#Linux.27i_kasutamine_mode_trunk_re.C5.BEiimis

Silla kasutamine

Silla (ingl. k. bridge) kasutamine toimub paketis bridge-utils utiliitidega, paigaldamiseks tuleb öelda

# apt-get install bridge-utils

Nt tekitame silla eth1 ja tap0 seadmetega

# brctl addbr br0
# brctl addif br0 eth1
# brctl addif br0 eth2

Silla omadusi saab küsida öeldes

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00064f320035       yes             eth1
                                                        eth2

Silla kasutamiseks peavad olema seadmed üleval, nt silla üles tõstmiseks tuleb öelda

# brctl br0 up

Silla saab eemaldamiseks tuleb sild alla lasta, eemaldada seadmed ning lõpuks sild

# brctl br0 down
# brctl delif br0 eth1
# brctl delif br0 eth2
# brctl delbr br0

Sillale saab seadistada ka ip aadressi, nii nagu paljudele muudele võrguseadmetele

# ifconfig br0 192.168.1.200 netmask 255.255.255.0

Tulemusena paistab

# ifconfig br0
br0      Link encap:Ethernet  HWaddr 00:17:42:02:0b:8a  
         inet addr:192.168.1.250  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::5c63:deff:fe92:e125/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:38 errors:0 dropped:0 overruns:0 frame:0
         TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:2008 (1.9 KiB)  TX bytes:3101 (3.0 KiB)

kusjuures bridge mac aadressina kasutatakse vaikimisi kõige väiksemat mac aadressi bridge külge ühendatud seadmetest, st see aadress võib muutuda bridge töötamise käigus. mac aadressi saab ka muuta, nt

# ifconfig br0 hw ether 70:01:68:00:12:50

STP (Spanning Tree Protocol) sisselülitamiseks tuleb öelda

# brctl stp br0 on

ja silla STP info esitamiseks

# brctl showstp br0
br0
 bridge id              8000.00064f320035
 designated root        8000.00064f320035
 root port                 0                    path cost                  0
 max age                  20.00                 bridge max age            20.00
 hello time                2.00                 bridge hello time          2.00
 forward delay            15.00                 bridge forward delay      15.00
 ageing time             300.01
 hello timer               1.49                 tcn timer                  0.00
 topology change timer     0.00                 gc timer                   5.49
 flags

eth1 (1)
 port id                8001                    state                  disabled
 designated root        8000.00064f320035       path cost                  4
 designated bridge      8000.00064f320035       message age timer          0.00
 designated port        8001                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.00
 flags

eth2 (2)
 port id                8002                    state                forwarding
 designated root        8000.00064f320035       path cost                  4
 designated bridge      8000.00064f320035       message age timer          0.00
 designated port        8002                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.48
 flags

kust on näha, et

  • antud juhtumil on silla üks komponent välja lülitatud

Sillaga seotud mac aadresside esitamiseks tuleb öelda

# brctl showmacs br0
port no mac addr                is local?       ageing timer
  2     00:06:4f:32:00:35       yes                0.00
  1     00:06:4f:63:e3:d7       yes                0.00
  2     00:0c:42:07:1a:45       no                 0.04
  2     00:16:3e:00:00:01       no                83.98
  2     00:1c:c0:38:89:07       no                22.58
  2     70:01:68:00:11:45       no               227.43
  2     70:01:68:01:02:49       no                33.48

Kasulikud lisamaterjalid

Võrgu seadistamine programmiga ip

Programm ip võimaldab Linuxi kaasaegsetes 2.4 ja 2.6 tuumades sisalduva võrguliideste toega oluliselt paindlikumalt ümber käia kui ifconfig. Näited käsudest, mida on ohutu anda töötavas masinas.

Seadmed

# ip link show
1: lo:  mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:07:e9:0b:d3:26 brd ff:ff:ff:ff:ff:ff

Seadme aadressid

Aadresside esitamine

# ip address show eth1
  3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000
     link/ether 00:07:e9:0b:d3:d3 brd ff:ff:ff:ff:ff:ff
     inet 10.0.6.5/24 brd 10.0.6.255 scope global eth1
     inet 10.0.6.6/24 brd 10.0.6.255 scope global secondary eth1:1 

Ruuting

Ruutingute esitamine

# ip route show
 10.0.5.0/24 dev eth3  proto kernel  scope link  src 10.0.5.1 
 10.0.6.0/24 dev eth0  proto kernel  scope link  src 10.0.6.1 
 ...

Ruutingu lisamine

# ip route add 192.168.10/24 dev eth0

Ruutingu eemaldamine

# ip route del default via 10.0.14.1 dev eth0

Misc

Näited kästudest, mida on ehk ohutu anda töötava masina kasutuses mitte olema võrguseadme suhtes

# ip addr add 100.100.100.4/16 dev eth4
# ip addr del 100.100.100.4/16 dev eth4

nn ifconfig'i aliased

Osade teadlaste arvates on see tänapäeval täiesti igand rääkida ethx:x aliastest. Et lihtsalt saab seadmele omistada mitu aadressi ja kogu lugu. Kui aga on juhtunud selline õnnetu lugu, et seadmel on nt eth0:1 aadress, siis saab seda eemaldada lihtsalt sedasi

# ip addr del 195.80.96.214 dev eth0

Java kasutamine

Java ehk JVM (Java Virtual Machine) tarkvara kasutamiseks on Debianis mitmeid võimalusi. Kui on kavatsus jääda paketihaldusest paigaldatud tarkvara kasutamise juurde, siis tõenäoliselt on otstarbekas lasta paketihaldusel töötada ja kasutada Debiani Java pakette. Kui aga kasutatakse mingit eraldiseisvat tarkvara, nt Tomcat, GlassFish vms Java rakendusserverit, siis on ehk otstarbekas kasutada http://java.sun.com/ veebikohast kopeeritud Javat.

Java kasutamine paketihaldusest

Debiani Lenny paketihalduses on olemas sellised Java kompilaatorit sisaldavad Java implementatsioonid

 $ aptitude search "?provides(java-compiler)"
 p   gcj             - The GNU Java compiler                                                   
 p   gcj-4.2         - The GNU compiler for Java(TM)                                           
 p   gcj-4.3         - The GNU compiler for Java(TM)                                           
 p   jikes-classpath - clean room standard Java libraries - wrapper for jikes                  
 p   jikes-kaffe     - Wrapper for jikes using Kaffe classes                                   
 p   kaffe-jthreads  - A green threads enabled version of the Kaffe VM                         
 p   kaffe-pthreads  - A POSIX threads enabled version of the Kaffe VM                         
 p   sun-java5-jdk   - Sun Java(TM) Development Kit (JDK) 5.0                                  
 p   sun-java6-jdk   - Sun Java(TM) Development Kit (JDK) 6

Tarkvara paigaldatakse nagu ikka Debiani pakett ning kasutatakse nagu ikka Javat.

Sun Java kasutamine

Sun on Java autor ja üks oluline edasiarendaja, kuid on ka teisi Java implementatsioone. Sun Java saab kasutaja kopeerida aadressilt http://java.sun.com/ kus saab tutvuda ka Java kasutustingimustega.

Sun jagab Javat üsna erinevates pakendustes, kusjuures erinevus on kolmel nö teljel

  • millisele funktsionaalsusele on orieteeritud - SE (Standard Edition), EE (Enterprise Edition), ME (Micro Edition)
  • kas tegu on arendusvahendi või nö kasutusvahendiga - nt SDK (Software development kit) vs JRE (Java Runtime Environment), viimane sisaldub esimeses
  • versiooninumber

Erinevad versioonid 2009 suve seisuga

  • 1.3 - vana versioon, mida kasutavad ehk vaid mõned nö riistvaras javat sisaldavad seadmed
  • 1.4 - mõned nö legacy rakendustega Tomcat rakendusserverid võiksid seda veel kasutada
  • 5 (vahel nimetatakse 1.5) - täiesti veel kasutuses, mõnda rakendust soovitatakse kasutada sellel versioonil
  • 6 (vahel nimetatakse 1.6) - viimane stabiilne versioon

Tundub, et juhtumil kui ei ole teada millist Javat kasutada, siis on sobiv valida SE SDK versioon 1.6, mille saab kopeerida http://java.sun.com/ veebikohast liikudes

 Downloads -> Java SE -> Java SE Development Kit (JDK 6 Update 16) -> Download

ning täpsustada platvorm, nt

  • Linux64 - 64 bit Linux
  • Linux - 32 bit Linux

Seejärel valida nimekirjast .bin

 File Description              Name                            Size
 Java SE Development Kit 6u16  jdk-6u16-linux-x64-rpm.bin 	74.04 MB
 Java SE Development Kit 6u16  jdk-6u16-linux-x64.bin          78.08 MB

Kasutamiseks tuleb otsustada, millises kataloogis JVM asuma hakkab, olgu see nt /usr/local/java6, selleks tuleb minna juurkasutajana kataloogi /usr/local

 # cd /usr/local
 # sh jdk-6u16-linux-x64.bin
 vastata küsimustele jaatavalt
 # ln -s /usr/local/tekkinud-katalooginimi /usr/local/java6

Java kasutamiseks tuleb seada ja kui peetakse vajalikuks, lisada teele

 $ export JAVA_HOME=/usr/local/java6
 $ export PATH=/usr/local/java6/bin:$PATH

Seejärel saab nt küsida Java versiooni öeldes

 $ /usr/local/java6/bin/java -version
 java version "1.6.0_16"
 Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
 Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)

Iceweaseli Java lisa

Iceweaseli ehk Firefox 3.x versiooniga java kasutamiseks on i386 keskkonnas olemas plugin

 # apt-get install sun-java5-plugin

või

 # apt-get install sun-java6-plugin

Lokaat

Lokaatide kasutamiseks tuleb paigalda pakett locales

 # apt-get install locales

ning edasiseks seadistamiseks saab öelda, asjakohased seadistusfailid on iseenesest /etc/environment ning /etc/default/locale

 # dpkg-reconfigure locales

Süsteemi vaikelokaat võiks olla ehk C serverite puhul, aga see on kasutaja otsustada kuidas ta paremaks peab.

Lokaatide nimekirja esitamiseks tuleb öelda, nt selline võiks olla üsna tüüpiline tulemus

 # locale -a
 C
 POSIX
 et_EE.utf8

Kui seadistada lisaks nt ru_RU.utf8 ja fr_FR.utf8, siis saab lugeda vene ja prantsuse keelseid manuaale. Nt öeldes nö tavalises xtermis

$ export LANG=fr_FR.utf8
$ uxterm

mis paistab selline

Fail:Os-debian-kasutamine-1.gif

Lisaks töötab nt w3m ja lynx uxterm aknas vene keeles.

CD plaadi kirjutamine

Niisama plaadile kirjutamiseks tuleb esmalt moodustada failidest tõmmis öeldes näiteks

 # genisoimage -o ../tommis.iso .

ning seejärel kopeerida tõmmis plaadile öeldes

 # cdrecord -v speed=10 dev=/dev/cdrom tommis.iso

Kui tegu on RW plaadiga, siis ennem järgmist kirjutamist tuleb plaat puhastada käsuga

 # cdrecord -v dev=/dev/cdrom blank=fast

Squeeze puhul

# apt-get install wodim
# wodim -v speed=8 dev=/dev/sr0 tommis.iso

korduvkirjutatava plaadi kustutamiseks

# wodim -v dev=/dev/cdrom blank=fast

Klaviatuuriasetus konsoolil

Klaviatuuriasetuse muutmiseks tuleb öelda

 # dpkg-reconfigure console-data

ning valida sobiv asetus. NB! Ka mac'i asetus on olemas.

OpenSSL probleem

2008 aasta kevadel ilmnes, et Debiani arendajad olid OpenSSL tarkvara pakendamisel tekitanud avalike võtmete genereerimist puudutavas osas vea, mille tõttu osa varasemalt Debian Etch abil tekitatud võtmeid ja sertifikaate on ärakasutatavad. Kas konkreetne sertifikaat on haavatav saab kontrollida programmiga openssl-vulnkey. Esmalt tuleb paigaldada Backportsidest pakett openssl-blacklist ning öelda

 # cat sertifikaat.pem | openssl-vulnkey -
 COMPROMISED: b3409bf40c63d0d8fc3e1625e9cac2076e20d1e7 -

Helikaardi kastumine

Kui helikaart on arvutisse füüsiliselt paigaldatud, siis vajadusel saab SoX tarkvara utiliitide abil kontrollida, kas heli salvestamine mikrofoni abil ja heli taasesitamine töötavad.

Sox tarkvara paigaldamiseks tuleb öelda

 # apt-get install sox

Salvestamiseks sobib öelda

 # rec -t .wav /tmp/failinimi.wav

Taasesitamiseks sobib öelda

 # play /tmp/failinimi.wav

Lisaks on asjakohane kasutada mikserit, nt aumix või alsamixer, just mikrofoni sisselülitamiseks, käivitades xtermi aknas võiks paista selline pilt, vajadusel käivitamisel näidata seadme number, nt

# alsamixer -c 1

Fail:Alsamixer-1.gif

kus

  • F6 abil saab valida helikaarti, sh virtuaalset (PulseAudio)

Digifotokaamera kasutamine

Tänapäeval on levinud nn digitaalsed fotokaamerad, mida saab ühendada arvutiga USB liidese abil selleks, et kopeerida arvutisse fotoaparaadi flash diskile salvestatud pildid. Üks populaarne tarkvara, mis võimaldab suhelda fotokaameraga on gphoto2 http://gphoto.sourceforge.net/.

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install gphoto2

Graafiline nö pealisehitus gphoto2 tarkvarale on gtkam, mille paigaldamiseks tuleb öelda

 # apt-get install gtkam

Piltide kopeerimiseks tuleb kaamera ühendada arvutiga ning lülitada piltide kopeerimise režiimile, operatsioonisüsteem peaks seejärel USB seadme ära tundma

 # lsusb
 ...
 Bus 001 Device 006: ID 04a9:309a Canon, Inc. PowerShot A80
 Bus 001 Device 001: ID 0000:0000

Peale gtkam programmi käivitamist peaks gtkam suutma avastada kaamera ning esitama sarnase kasutajaliidese

Fail:Gtkam-1.gif

gphoto2 programmi abil saab kaamerat otsekohesemalt juhtida, aga eeldusel, et gtkam või mõni muu programm seda ei kasuta. Nt saab küsida kaamera kohta kokkuvõtet öeldes

 # gphoto2 --summary
 Camera summary:                                                                
 Model: Canon PowerShot A80
   device version: 01.0001
   serial number:  (null)
 Vendor extension ID: 0x0000000b
 Vendor extension description: (null)
 ...

või kopeerida kõik failid kaamerast failisüsteemi käesolevasse kataloogi

 # gphoto2 --get-all-files
 Downloading 'IMG_3601.JPG' from folder '/store_00010001/DCIM/236CANON'...
 Saving file as IMG_3601.JPG
 Downloading 'IMG_3602.JPG' from folder '/store_00010001/DCIM/236CANON'...
 Saving file as IMG_3602.JPG      
 ..

Android telefonist vms seadmest kopeerimisel on praktiline näidata kataloog, nt Google Nexus 5 nutitelefon puhul

$ gphoto2 --get-all-files -f /store_00010001/DCIM/Camera

Sony Xperia tahvelarvutiga

$ gphoto2 --get-all-files -f /store_00010001/DCIM/100ANDRO

Kui seadme ühendamise ta nö mountitakse, siis võib olla vajalik ta File Manager programmis vms kohal lahti lasta.

SSH kasutamine

Kui Debian on juhtumisi paigaldatud Networkless siis puudub vaikimisi openssh-server, selle paigaldamiseks tuleb öelda käsk

# apt-get install openssh-server

Mille järel starditakse server ka automaatselt, kasutaja mureks on vaid sisse logida.

Kui Debian Lenny ssh kliendiga sisselogimine teistesse süsteemidesse on muutunud rahulikuks (nt vana RedHat 4 ES või Solaris 10 ssh serverid oma default väärtustega) ning -v võtmega käivitatud klient ütleb muu seas

 debug1: Authentications that can continue: gssapi-keyex,\
   gssapi-with-mic,publickey,password,keyboard-interactive
 debug1: Next authentication method: gssapi-keyex
 debug1: No valid Key exchange context
 debug1: Next authentication method: gssapi-with-mic
 debug1: Unspecified GSS failure.  Minor code may provide more information
 No credentials cache found
 
 debug1: Unspecified GSS failure.  Minor code may provide more information
 No credentials cache found

siis aitab kliendi seadistusfailis, nt /etc/ssh/ssh_config kasutada selliselt seadistatud parameetrit

 GSSAPIAuthentication no

Veebikaamera kasutamine

Veebikaamera on väike videokaamera, mis tavaliselt ühendatakse arvutiga USB abil ning teda sobib kasutada nt Skype programmi juures enda visuaalseks reaalajas esitlemiseks.

Veebikaamera kasutamise ettevalmistamisel peab peale kaamera arvutiga ühendamist ilmuma USB seadmete nimekirja uus seade, midagi sellist

 # lsusb
 ..
 Bus 001 Device 003: ID 046d:092e Logitech, Inc. QuickCam Chat

Selle spca5xx chipsetiga Logitechi QuickCam Chat veebikaamera kasutamiseks tuleb paigaldada Lennile vastav draiver valides sobiva, st oma tuuma platvormile sobiva tuumamooduli, nt

 # apt-get install gspca-modules-2.6-686

Lisaks peab see kasutaja, kelle alt Skype programm töötab kuuluma video gruppi, vajadusel tuleb redigeeerida /etc/group faili

 # grep video /etc/group
 video:x:44:kasutajanimi

Kui kasutaja määrati gruppi kuuluma, siis tuleb korraks süsteemist logida välja ja tagasi sisse, et gruppikuuluvus kehtestuks. Valides seejärel Skype programmi Options peaks olema kaamera kasutamise võimalus olemas

Fail:Veebikaamera-1.gif

Veebikaamerat oskavad kasutada lisaks mitmed muud programmid, nt Cheese (gnome komponent), Gqcam.

Mälukaartide kasutamine

Nn mälukäärte esineb külluses, need mis ühendatakse arvutile külge USB liidese kaudu, kas otse või nö lugeja abil paistavad operatsioonisüsteemile tavaliselt SCSI seadmena. Seega, kasutamiseks tavaliselt piisab teha kindlaks dmesg väljundi lõpust millise nimega /dev/sdx seade on juurde tekkinud ning monteerida seejärel ta külge, nt

 # mount /dev/sdc1 /mnt/malukaart

Squid v. 3 kasutamine

Lenny paketihaldusest saab paigaldada Squid v. 3 tarkvara öeldes

 # apt-get install squid3

Kasutamine kiirendina

Squid3 kiirendina kasutamiseks sobib kasutada sellist seadistusfaili

 cache_dir ufs /var/spool/squid3 768 16 256
 http_port 10.0.6.249:80 defaultsite=www.siseministeerium.ee vhost
 icp_port 0
 
 cache_peer 10.0.6.95 parent 80 0 no-query originserver name=www100695 login=PASS
 acl sites_www_100695 dstdomain src "/etc/squid3/sites_www100695.txt"
 cache_peer_access www100695 allow sites_www_100695
 
 cache_peer 10.0.6.96 parent 80 0 no-query originserver name=www100696 login=PASS
 acl sites_www_100696 dstdomain src "/etc/squid3/sites_www100696.txt"
 cache_peer_access www100696 allow sites_www_100696
 
 acl all src 0.0.0.0/0.0.0.0
 acl localhost src 127.0.0.1/255.255.255.255 10.0.0.0/255.255.255.0
 acl Safe_ports port 80          # http
 
 http_access deny !Safe_ports
 http_access allow all
 
 access_log /var/log/squid3/access.log squid
 emulate_httpd_log       on

locate andmebaas

Vaikimisi moodustab Debian updatedb programmi käivitamisel cron'ist nn locate andmebaasi, milles sisaduvad süsteemis leiduvate failid nimed. Seda andmebaasi saab kasutada nt selliselt

 # locate .bash_history
 /root/.bash_history
 /srv/backup/500g-vint/home/mart/.bash_history

locate andmebaas võib osutuda mitmel juhul ebasoovitavaks

  • andmebaasi salvestatakse andmed, mis seal ei peaks sisalduma; nt kui veebiserveri kasutajana saab käivitada programme, siis annab see baas ilmselt soovimatut lisainfot kasutajale ühe või teise faili olemasolust ja asukohast failisüsteemis
  • locale andmebaasi moodustatakse väga suure mahuga andmetest iga päev uuesti ning see raiskab ilmselt ressurssi

updatedb programm käivitatakse skripti

 /etc/cron.daily/mlocate

abil ning updatedb tööd saab kontrollida seadistusfaili abil, eriti, milliseid katalooge andmebaasi koostamisel kasutatakse

 /etc/updatedb.conf

Operatsioonisüsteemi paigaldamine võrgust

Operatsioonisüsteemi võrgust paigaldamine eeldab arusaadavalt paigaldamise ajal võrguühenduse olemasolu, soovitavalt nö hea ühenduse olemasolu. Debian Lenny operatsioonisüsteemi saab paigaldada võrgust kolmel viisil

  • business card CD tõmmis (ca 40 MB) - sisaldab tuuma ja installerit
  • minimaalse sisu CD tõmmis (ca 180 MB) - sisaldab tuuma, installerit ning minimaalset hulka pakette
  • TFTP serverilt paigaldamine - tuuma ja ramdisk booditakse TFTP serverilt

Vaatamata sellele kui palju kasutati kohalikku abi, st lokaalset meediat või TFTP serverit toimub süsteemi mahukama osa moodustava tarkvara kopeerimine paigaldamise ajal võrgust.

Võrgust paigaldamine võiks eriti sobida üle IBM IMM ja HP iLO liideste tarvkara paigaldamisel.

Paigaldamine TFTP serverilt

Üks võimalus Debiani paigaldada on täiesti ilma lokaalse meediate st võrgust, kuid eeldusel, et arvuti omab PXE võimelist võrgukaarti.

Selleks tuleb kopeerida aadressilt tftp serveris kasutamiseks ettevalmistatud kataloogi sisu

 # wget -np -r http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/

ning paigutada lokaalvõrgus asuvasse tftp serverisse, nt kataloogi /tftpbood

 # find /tftpboot
 /tftpboot 
 /tftpboot/debian-installer
 /tftpboot/debian-installer/i386
 /tftpboot/debian-installer/i386/boot-screens
 /tftpboot/debian-installer/i386/boot-screens/exithelp.cfg
 /tftpboot/debian-installer/i386/boot-screens/adtxt.cfg
 /tftpboot/debian-installer/i386/boot-screens/index.html
 /tftpboot/debian-installer/i386/boot-screens/f1.txt
 /tftpboot/debian-installer/i386/boot-screens/f10.txt
 /tftpboot/debian-installer/i386/boot-screens/f2.txt
 /tftpboot/debian-installer/i386/boot-screens/f3.txt
 /tftpboot/debian-installer/i386/boot-screens/f4.txt
 /tftpboot/debian-installer/i386/boot-screens/f5.txt
 /tftpboot/debian-installer/i386/boot-screens/f6.txt
 /tftpboot/debian-installer/i386/boot-screens/f7.txt
 /tftpboot/debian-installer/i386/boot-screens/f8.txt
 /tftpboot/debian-installer/i386/boot-screens/f9.txt
 /tftpboot/debian-installer/i386/boot-screens/syslinux.cfg
 /tftpboot/debian-installer/i386/boot-screens/menu.cfg
 /tftpboot/debian-installer/i386/boot-screens/prompt.cfg
 /tftpboot/debian-installer/i386/boot-screens/splash.png
 /tftpboot/debian-installer/i386/boot-screens/stdmenu.cfg
 /tftpboot/debian-installer/i386/boot-screens/vesamenu.c32
 /tftpboot/debian-installer/i386/boot-screens/txt.cfg
 /tftpboot/debian-installer/i386/index.html
 /tftpboot/debian-installer/i386/initrd.gz
 /tftpboot/debian-installer/i386/linux
 /tftpboot/pxelinux.0
 /tftpboot/pxelinux.cfg
 /tftpboot/pxelinux.cfg/index.html
 /tftpboot/pxelinux.cfg/default

Lisaks tuleb valmistada ette sobivalt dchp server, nt sellise host kirjeldusega, next-server 192.168.1.254 on tftpd server

 host fuji.auul {
   hardware ethernet 00:17:42:02:0b:8a;
   fixed-address 192.168.1.142;
   option broadcast-address 192.168.1.255;
   option routers 192.168.1.254;
   filename "pxelinux.0";
   next-server 192.168.1.254;
   option domain-name-servers 192.168.1.254;
 }

Tulemusena peab installeeritav arvuti saama dhcp serverilt omale võrguseaded, alglaadima tftp serverilt operatsioonisüsteemi ning käivitama installeri. Edasine paigaldamine toimub tavapärasel viisil, kusjuures installer küsib Debiani peegel-serveri asukohta, millelt kopeeritakse tarkvara.

CVS tarkvara kasutamine

CVS tarkvara saab kasutada mitmel moel, antud juhul on tegemist selliste asjaoludega

  • CVS töötab nn pserver rezhiimis, mis tähendab, et teenus kuulab 2401 pordil ja liiklus on krüptimata
  • CVS liiklust tuleb täiendavate CVS väliste vahenditega turvata, nt OpenVPN või Stunnel
  • CVS tarkvara tegeleb ise oma kasutajatega, st operatsioonisüsteemi kasutajatest eraldi
  • saab kasutada mitmeid hoidlaid (ingl. k. repository)
  • failisüsteemi kasutamine hoidla operatsioonisüsteemi seisukohalt toimub iga hoidla puhul hoidlale vastava kasutajaga (mitte hoidlat kasutava cvs kasutajana)

Antud juhul kasutatakse mitmeid Debiani haldajate poolt nn vanilla CVS tarkvarale juurde lisatud täiendusi, mille kasutamist on kirjeldatud failis /usr/share/doc/cvs/README.Debian.gz.

Paigaldamiseks tuleb öelda

 # apt-get install cvs

ning valida kas kasutatakse pserverit või mitte, antud juhul kasutatakse ja seejuures tuleb järgnevalt määrata, millistes kataloogides asuvad repositooriumid, nt

 /srv/cvs-loomaaed
 /srv/cvs-propaganda

CVS tarkvara juhivad serveri poolel sellised seadistusfaili

  • CVS p-serveri seadistusfailis /etc/cvs-pserver.conf sisalduvad muu seas repositooriumide asukohad failisüsteemis ning kasutate paroolifail
 CVS_PSERV_REPOS="/data/cvs-loomaaed:/data/cvs-propaganda"
 CVS_PSERV_LIMIT_MEM=hard
 CVS_PSERV_LIMIT_DATA=hard
 CVS_PSERV_LIMIT_CORE=0
 CVS_PSERV_LIMIT_CPU=hard
 CVS_EXT_PASSWD_FILE=/etc/cvs-passwd
  • inetd või xinetd kasutamisel vastavalt seadistusfailis /etc/inetd.conf peab sisalduma rida
 cvspserver      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver

või fail /etc/xinetd.d/cvs sisuga

 service cvspserver
 {
       disable         = no
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = root
       server          = /usr/sbin/cvs-pserver
 }
  • repostitooriumide failide omanikud ja efektiivsed kasutajad failis on kirjeldatud /etc/cvs-repouids
 /srv/cvs-loomaaed:cvs-loomaaed
 /srv/cvs-propaganda:cvs-propaganda

Repositooriumide initsialiseerimiseks tuleb öelda

 # su - cvs-loomaaed
 $ cvs -d /srv/cvs-loomaaed init
 # su - cvs-propaganda
 $ cvs -d /srv/cvs-propaganda init

Paroolifaili /etc/cvs-passwd formaat on selline

 /data/cvs-loomaaed
 mart:CHHLHZezIWZZQ
 priit:KbHgWDSglIOH.
 /data/cvs-propaganda
 mart:CHHLHZezIWZZQ
 priit:KbHgWDSglIOH.

Projektid tuleb alguses hoidlasse importida vastavate kasutajatega

 # su - cvs-loomaaed
 $ cd /data/tmp/portaal-arendus
 cvs-loomaaed$ cvs -d /data/cvs-loomaaed import -m "Loomaaia portaali arendus algab" portaal-arendus vt rt
 # su - cvs-propaganada
 $ cd /data/tmp/portaal-propaganda
 cvs-propaganda$ cvs -d /data/cvs-propaganda import -m "Loomaaia propaganda algab" propaganada vt rt

Moodulite kirjeldamine

CVS all olevast projektist saab kopeerida ka üksikuid katalooge öeldes

 $ cvs co projektinimi/katalooginimi

Kasutamine Linuxi CVS kliendiga

 $ export CVSROOT=:pserver:kasutajanimi@cvs.loomaaed.tartu.ee:/data/cvs-loomaaed
 $ cvs login
 $ cvs co portaal-arendus
 $ cvs logout

Kasutamine Windowsi TortoiseCVS kliendiga

Fail:Tortoisecvs-1.gif


Riistvara omadustega tegelevad utiliidid

  • lshw - esitab suhteliselt põhjaliku väljundi arvutisüsteemi riistvaralistest komponentidest, nt sellise
 # apt-get install lshw
  • ethtool
 # apt-get install ethtool

Debootstrap programmi kasutamine

debootstrap programmiga saab näidatud kataloogi moodustada operatsioonisteemi juurfailisüsteemi

 # debootstrap lenny /srv/lenny-chroot http://ftp.aso.ee/debian

Nt sobib seda kasutada töötava operatsioonisüsteemi sees olles multiboot arvuti moodustamiseks. Sel juhul tuleb Debian Lenny puhul lisaks tähele panna selliseid asjaolusid peale seda kui debootstrap on töö lõpetanud

  • moodustada /etc/fstab sisu
  • seadistada /etc/network/interfaces ja /etc/hosts
  • kopeerida /lib/modules alla tuuma moodulid
  • paigaldada udev, lvm2, vlan, firmware-bnx2, bridge-utils ja openssh-server tarkvara (ja muu oluline)
  • kirjutada /etc/shadow faili juurkasutajale parool (konsoolilt saab küll login: root järel enterit öeldes sisse ka ilma paroolita)
  • kopeerida tuum ja iniramfs /boot kataloogi
  • paigaldada alglaadur (nt grub-install abil)
  • seadistada ajavöönd, /etc/localtime link

Kui selliselt moodustatud keskkonda chrootida, siis üldiselt peaks olema eelnevalt ühendatud külge sellised failisüsteemid, eeldusel, et keskkond asub kataloogis /target

/dev/sda1 on /target/boot type ext3 (rw,noatime,errors=continue,data=ordered)
proc on /target/proc type proc (rw)
sysfs on /target/sys type sysfs (rw)
udev on /target/dev type tmpfs (rw,size=10240k,mode=755)
devpts on /target/dev/pts type devpts (rw,mode=600)

öeldes

# mount -t proc /proc /srv/lenny-32/proc
# mount -t devpts devpts /srv/lenny-32/dev/pts

debootstrap abil saab tekitada ka teisele arhitektuurile vastav failisüsteem, nt öeldes amd64 keskkonnas

# debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian

Uuemal ajal soovitatakse kasutada tarkvara multistrap.

Autofs

Selleks, et failisüsteem monteeritaks külge automaatselt vastava ühenduspunkti poole pöördumisel, sobib kasutada tarkvara autofs. Tarkvara paigaldamiseks tuleb öelda

 # apt-get install autofs

Tarkvara kasutamiseks tuleb näidata seadistusfailis /etc/auto.master nn map failide asukohad, nt

 # cat /etc/auto.master
 /var/autofs     /etc/auto.misc --timeout=60

kusjuures map failis /etc/auto.misc on kirjeldatud konkreetsed ressursid, nt

 # cat /etc/auto.misc   
 cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
 removable      -fstype=ext3,ro            :/dev/mapper/mpath3

Kui nüüd öelda muidu tühjas kataloogis /var/autofs 'ls -l', siis ühendatakse failisüsteem külge ning seejärel täidetakse ls käsk, nt

 # cd /var/autofs/removable
 drwx------ 2 root root 16384 Apr 11 14:13 lost+found

Ühendatud failisüsteemide parameetreid näeb nii

 # mount | grep autofs
 automount(pid7544) on /var/autofs type autofs (rw,fd=4,pgrp=7544,minproto=2,maxproto=4)
 /dev/mapper/mpath3 on /var/autofs/removable type ext3 (ro)

Autofs olekut näeb öeldes

 # /etc/init.d/autofs status
 Configured Mount Points:
 ------------------------
 /usr/sbin/automount --timeout=300 /home file /etc/auto.home 
 
 Active Mount Points:
 --------------------
 /usr/sbin/automount --pid-file=/var/run/autofs/_home.pid --timeout=300 /home file /etc/auto.home

NFS ressursi ühendamine

Nt kasutajate kodukataloogide üle NFS ühendamiseks tuleb kirjeldada nt selline /etc/auto.home fail

 # cat /etc/auto.home 
 kernel    -ro,soft,intr       192.168.10.249:/data/export

Süsteemi ressursikasutuse jälgimine

Pakett sysstat http://pagesperso-orange.fr/sebastien.godard/ sisaldab süsteemi ressurssikasutuse jälgimiseks vajalikke vahendeid, nii reaalajas kui taustal andmete kogumiseks

  • reaalajas - iostat, pidstat, mpstat
  • taustal - sa1, sa2, sar

Tarkvara käivitamist ja töötamist juhivad seadistusfailid

 /etc/cron.d/sysstat
 /etc/cron.daily/sysstat
 /etc/default/sysstat

Taustal töötava sysstat töö tulemusena kogutakse andmed ja salvestatakse binaarses formaadis kataloogi /var/log/sysstat. Kogutud andmeid saab esitada nt selliselt

 # sar -A -f /var/log/sysstat/sa22  | less

Eraldi mainimist vajab programm pidstat, mille abil saab jälgida üksiku protsessiga seotud ressursikasutust, nt plokkseadme IO'd

 $ pidstat -d -p 15585 2
 Linux 2.6.26-1-xen-amd64 (moraal.auul)  04/22/09        _x86_64_
 
 20:13:28          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 20:13:30        15585      0.00    236.82      0.00  wget
 20:13:32        15585      0.00    238.00      0.00  wget
 20:13:34        15585      0.00    236.82      0.00  wget
 20:13:36        15585      0.00    238.00      0.00  wget

Kõigi kasutaja postgres protsesside io'd saab uurida nt selliselt

 $ pidstat -d -p ALL 2 | grep postgres

Matrox P690 videokaardi kasutamine

Matrox http://www.matrox.com/ valmistab suhteliselt eeskujulikke videokaarte. P690 mudeli kasutamiseks sobib kasutada aadressil http://www.matrox.com/graphics/en/products/graphics_cards/p_series/p690pci/ kopeeritud draiverit. Lisaks asub nö community-forum aadressil http://forum.tuxx-home.at/ ning sealsed entusiastid avaldavad oma parandustega draivereid.

Paigaldamine

 # CC=/usr/bin/gcc-4.1 sh mtxdriver-installer-x86_32-cvs-20090511.run
 ..
 Please, enter the directory to extract the files [/root/] /usr/src/mtx
 Creating directory /usr/src/mtx/matroxdriver-x86_32-cvs-20090511
 Verifying archive integrity... All good.
 Uncompressing Matrox Parhelia Driver.
 ..
 ========================================
  Matrox Linux Driver Install Script   
 ========================================
 
 Installation package v1.4.7
 
 Refreshing ld database
 Installing mtx_drv.so ...
 Installing v4l_drv.so ...
 Messages are being logged in file /tmp/make.log,
 this might take some time.
 
 Compiling mtx.ko ... done
 
 Installing mtx.ko ...
 Backing up libGL
 Installing 32bits OpenGL library file to /usr/lib
 Installing libGL.so.1.3.0 ...
 Installing the GLX library file to /usr/lib/xorg/modules/extensions

 Installing libglx.so ...
 Installing the gl.h header file to /usr/include/GL 

 Installing gl.h ...
 Installing the glext.h header file to /usr/include/GL 
 
 Installing glext.h ...
 Installing the glx.h header file to /usr/include/GL

 Installing glx.h ...
 Updating library cache

 Installing documentation
 
 cp: cannot stat `v4l': No such file or directory
 Installing powerdesk
 
 Installing mtxcards ...
 Installing mtxwizard ...
 Installing matroxconfig ...
 Installing libmtxcfg.so ...

 Do you wish to let the installer setup your X config file  (y/n)? y 
 
 Trying to configure your X config file (/etc/X11/xorg.conf)
 
 Installation finished

Tulemusena on

  • moodustatud nö vaikimisi /etc/X11/xorg.conf seadistusfail
  • seadistusutiliit /usr/bin/matroxconfig
  • kataloogi /usr/share/matrox on paigutatud teeke ja tekste
  • kompileeritud ja paigaldatud tuuma moodul mtx.ko, mis on link /usr/share/matrox kataloogi failile
 # find /lib/modules/2.6.26-2-686 -name mtx.ko -ls
 721274    0 lrwxrwxrwx   1 root     root           32 Aug  8 17:44 \
   /lib/modules/2.6.26-2-686/kernel/drivers/video/mtx.ko -> /usr/share/matrox/current/mtx.ko

Süsteemi on lisatud/asendatud sellised failid

 /usr/bin
 /usr/bin/mtxwizard
 /usr/bin/matroxconfig
 /usr/share
 /usr/share/mtxwizard
 /usr/share/mtxwizard/mtxcards
 /usr/share/matrox
 /usr/share/matrox/samples
 /usr/share/matrox/samples/XF86Config.QID_Quad_Hybrid
 /usr/share/matrox/samples/XF86Config.QID_Quad_Merge
 /usr/share/matrox/samples/XF86Config.triple
 /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_1
 /usr/share/matrox/samples/XF86Config.T221-Merged
 /usr/share/matrox/samples/XF86Config.merged
 /usr/share/matrox/samples/XF86Config.dual
 /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_2
 /usr/share/matrox/samples/XF86Config.single
 /usr/share/matrox/samples/XF86Config.triple_merged
 /usr/share/matrox/samples/XF86Config.T221-Xinerama
 /usr/share/matrox/current
 /usr/share/matrox/current/gl.h
 /usr/share/matrox/current/libmtxcfg.so
 /usr/share/matrox/current/mtxcards
 /usr/share/matrox/current/mtx_drv.so
 /usr/share/matrox/current/glx.h
 /usr/share/matrox/current/glext.h
 /usr/share/matrox/current/mtx.ko
 /usr/share/matrox/current/v4l_drv.so
 /usr/share/matrox/current/mtxwizard
 /usr/share/matrox/current/libGL.so.1.3.0
 /usr/share/matrox/current/matroxconfig
 /usr/share/matrox/current/libglx.so
 /usr/share/matrox/backup
 /usr/share/matrox/docs
 /usr/share/matrox/docs/readme.txt
 /usr/share/matrox/docs/readme-advanced.txt
 /usr/lib
 /usr/lib/libGL.so.1.3.0
 /usr/lib/libGL.so
 /usr/lib/xorg/modules/extensions
 /usr/lib/xorg/modules/extensions/libmtxcfg.so
 /usr/lib/xorg/modules/extensions/libglx.so
 /usr/lib/xorg/modules/drivers
 /usr/lib/xorg/modules/drivers/mtx_drv.so
 /usr/lib/xorg/modules/drivers/v4l_drv.so
 /usr/lib/libGL.so.1
 /usr/src/mtx
 /usr/src/mtx/log
 /usr/include/GL
 /usr/include/GL/gl.h
 /usr/include/GL/glx.h
 /usr/include/GL/glext.h

Tuuma laadimisel öeldakse

 # modprobe mtx
 mtx: module license 'Copyright (c) 2002, 2004, Matrox Graphics Inc.' taints kernel.
 [mtx] MTX driver v1.4.7
 [mtx] Allocated a MTX agp driver structure
 ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 21 (level, low) -> IRQ 21
 [mtx] 0x2539(sub:0xffffffff) board found at 03:00.0

Seadistamine

Komplekt sisaldab ka graafilist haldusutiliiti matroxconfig, mille abil saab genereerida sobiva X serveri seadistusfaili /etc/X11/xorg.conf, nt sellise Fail:Xorg.conf.patch

Fail:Matroxconfig-1.gif

Käivitamisel öeldakse dmesg'i

 [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000
 [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES
 [mtx] Busmastering flags:
 [mtx]   Board type detected: PCI
 [mtx]   Chipset 0x2539:0x102b was detected
 [mtx]   AGP chipset was detected
 [mtx]   PCI transfers available for read write
 [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass 
 [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000
 [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES
 [mtx] Busmastering flags:
 [mtx]   Board type detected: PCI
 [mtx]   Chipset 0x2539:0x102b was detected
 [mtx]   AGP chipset was detected
 [mtx]   PCI transfers available for read write
 [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass

X log võiks olla nt selline http://kuutorvaja.eenet.ee/mw-1.9.3/images/e/e1/Xorg.mtx-p690.patch

Kui töökohaarvuti vahetada säilitades videokaardi ja monitorid, siis tõenäoliselt piisab xorg.conf failis asendada seadme sektsioonides PCI BusID väärtus sobivaga

 Section "Device"
         # generated by mtx wizard
         Identifier  "mtxwizard_device_1"
         Driver      "mtx"
         BusID       "PCI:3:0:0"
         Screen      1
 EndSection

kusjuures õige saab teha kindlaks lspci utiliidiga

 # lspci | grep Matrox
 03:00.0 VGA compatible controller: Matrox Graphics, Inc. Millennium P690 (rev 01)

lsattr ja chattr programmide kasutamine

chattr programmi abil saab ext2 ja ext3 failisüsteemis seadistada failidele täiendavad omadusi. Näiteks, märkida faili immutable'ks

# chattr +i failinimi

Tulemusena ei saa seda faili ka kustutada juurkasutaja

# rm failinimi
rm: cannot remove `failinimi': Operation not permitted

Atribuutide väärtusi saab küsida öeldes

# lsattr failinimi
----i-------------- failinimi

immutable biti saab eemaldada öeldes

# chattr -i failinimi

ucarp kasutamine

ucarp http://www.ucarp.org/project/ucarp tarkvara abil on võimalik korraldada kahe või enama arvuti nn aktiivset/passiiveset klustrit kasutades CARP protokolli. Klustri igal arvutil on oma individuaalne ip aadress ning lisaks on määratud üks teenuse virtuaalne ip aadress. Sõltuvalt sellest, kuidas parasjagu on klustri osalesid masteri osas kokku leppinud pakub master teenust, teised on nö kõrval-seisvas (ingl. k. standby) asendis.

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install ucarp

Ning seadistamiseks tuleb nt kahe komponendilise klustri ühe arvuti võrguliideste seadistusfailis /etc/network/interfaces kasutada

 auto eth0
 iface eth0 inet static
   address 192.168.10.51
   gateway 192.168.10.254
   netmask 255.255.255.0
  
   ucarp-vid 3
   ucarp-vip 192.168.10.48
   ucarp-password test1234
   ucarp-advskew 0
   ucarp-advbase 1
   ucarp-master yes
 
 iface eth0:ucarp inet static
   address 192.168.10.48
   netmask 255.255.255.255

ning teise arvuti puhul

 auto eth0
 iface eth0 inet static
   address 192.168.10.52
   gateway 192.168.10.254
   netmask 255.255.255.0
  
   ucarp-vid 3
   ucarp-vip 192.168.10.48
   ucarp-password test1234
   ucarp-advskew 10
   ucarp-advbase 1
   ucarp-master yes
 
 iface eth0:ucarp inet static
   address 192.168.10.48
   netmask 255.255.255.255

Tulemusena on kokkulepitud masteris lisaks tavalistele vürguseadetele seade eth0:ucarp

 eth0:ucarp Link encap:Ethernet  HWaddr 70:01:68:01:00:51  
         inet addr:192.168.10.48  Bcast:192.168.10.255  Mask:255.255.255.255
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

ucarp on võrreldes keepalived või heartbeat tarkvaraga tagasihoidlikemate omadustega, kuid mõnel juhul võib just see ollagi eeliseks.

FUSE

Kui tavaliselt toimub failisüsteemidega tegelemine, nt külgeühendamine, privilegeeritud kasujana ning nn kernel-space'is, siis FUSE (Filesystem in Userspace) http://fuse.sourceforge.net/ tehnika võimaldab seda teha tavakasutajana user-space'is. Linuxi tuum sisaldab FUSE tuge ning paketihalduses on rohkesti FUSE funktsionaalsust kasutavat tarkvara. Üldkasutatavad FUSE utiliidid on paketis fuse-utils.

curlftpfs

curlftpfs abil saab nö külge monteerida ftp serverist ressurssi, tarkvara paigaldamiseks tuleb öelda

 # apt-get install curlftpfs

Kasutmise peab kasutaja kuuluma gruppi fuse, ressursi külgeühendamine toimub öeldes

 $ curlftpfs ftp://ftp.ee.debian.ee /tmp/ftp.ee.debian.org

ja lahtiühendamiseks

 $ fusermount -u /tmp/ftp.ee.debian.org

Kasutamine toimub nii nagu tavalise kohaliku failisüsteemi kasutamine.

SSHFS

sshfs abil saab nö külge monteerida serverist, kuhu on ssh ligipääs, ressurssi, tarkvara paigaldamiseks tuleb öelda

 # apt-get install sshfs

Kasutamise peab kuuluma gruppi fuse, külgeühendamiseks sobib öelda

 $ sshfs mart@loomaaed.tartu.ee:/katalooginimi-ssh-serveris /katalooginimi-kohalikus-arvutis

Lahtiühendamiseks

 $ fusermount -u /katalooginimi-kohalikus-arvutis

SysRq

Kui Linuxi tuum hangub, siis enamikul juhtudel on ta võimeline aru saama talle nö otse saadetud signaalidest. Lenny paketihalduse tuumaga saab vaikimisi SysRq'd kasutada, väljalülitamiseks tuleb parameetrile kernel.sysrq omistada väärtus null

 # sysctl -w kernel.sysrq=0

Füüsiliselt konsoolilt

Füüsiliselt konsoolilt saab sisestada erinevaid kombinatsioone (kui SysRq klahv pole tähistatud, siis tavaliselt toimib sellena PrintScreen)

  1. failisüsteemide sünkroniseerimine - Alt-SysRq-s
  2. failisüsteemide read-only remountimine - Alt-SysRq-u
  3. arvuti reboot - Alt-SysRq-b

Iga tegevuse kohta antakse terminalile ka vastav teade.

Käsurealt

Kui aga arvutis ollakse eemal ning mingil põhjusel on siiski võimalik talle käske anda, kuigi ta käitub piisavalt juhtimatult, et selleks ettenähtud vahenditega rebooti teha, nt 'shutdown -r now', siis saab samasid tegevusi esile kutsuda selliselt

bash# echo s > /proc/sysrq-trigger
bash# echo u > /proc/sysrq-trigger
bash# echo b > /proc/sysrq-trigger

Ammendav loetelu võimalikest sisenditest on kirjas tuuma lähtetekstide kataloogis vist failis Documentation/kernel-parameters.txt.

Xen konsoolilt

Xeni konsoolilt saab saata SysRq signaale valides

 Ctrl+O ja täht

h väljastab nimekirja toetatud signaalidest

 SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK aLlcpus\
   showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks \
   Unmount shoW-blocked-tasks 

Serial konsoolilt

Serial konsoolilt saab tuumale SysRq signaali saata valides Break + täht.


RAM failisüsteemid

RAM failisüsteem võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina, nt sellised tehnikad

  • tmpfs - tundub, et 2016 aasta seisuga on see üldiselt soovitatav ram failisüsteem, mõnes kohas kirjandus väidab, et tmpfs ei võimalda failisüsteemi suurust piirata, paistab, et see siiski ei ole nii
  • ramfs - legacy ramfs, 2016 aasta seisuga üldiselt ei soovitata kasutada

tmpfs

tmpfs võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina. Kasutamine toimub selliselt

# mkdir /mnt/tmpfs
# mount -t tmpfs -o size=48g tmpfs /mnt/tmpfs

Kuna failisüsteem asub mälus, siis ta töötab kiiresti

# dd if=/dev/zero of=/mnt/tmpfs/1G bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.981817 s, 1.1 GB/s

Traditsiooniline tmpfs ühenduspunkt tmpfs jaoks on /dev/shm mis on ka vaikimisi Debian Lenny puhul kasutuses

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/system-root  4.0G  3.6G  236M  94% /
tmpfs                    3.9G     0  3.9G   0% /lib/init/rw
udev                      10M   60K   10M   1% /dev
tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm
/dev/sda1                107M   82M   20M  81% /boot

Süsteemi poolt vaikimisi kasutatavate tmpfs failisüsteemides on nt selline sisu

# find /dev/shm -ls
5812    0 drwxrwxrwt   3 root     root           60 Jul 19 08:25 /dev/shm/
5964    0 drwxr-xr-x   2 root     root           60 Jul 19 08:25 /dev/shm/network
6019    4 -rw-r--r--   1 root     root           16 Jul 19 08:25 /dev/shm/network/ifstate

ja

# find /lib/init/rw
/lib/init/rw
/lib/init/rw/sendsigs.omit.d
/lib/init/rw/sendsigs.omit.d/portmap
/lib/init/rw/.ramfs

Lisaks on /dev failisüsteem udev kasutamisel tmpfs peal, üldiselt sobib konkreetse süsteemi puhul küsida

# mount | grep tmpfs

ramfs

# mkdir /mnt/ramfs
# mount -t ramfs -o size=200m ramfs /mnt/ramfs

Kasulikud lisamaterjalid

makejail abil chroot keskkonna moodustamine

Makejail programm abil saab moodustada chroot keskkonda, paigaldamiseks sobib öelda

# apt-get install makejail

Programmi tööd juhib seadistusfail, nt /root/makejail-bash.py, kus on antud juhul näidatud

  • kuhu kataloogi moodustada chroot keskkond
  • lisada sinna /bin/bash shell ning vastavad teegid lisada (antud juhul kasutatakse AMD64 platvormi)
# cat /root/makejail-bash.py
chroot="/home/mart"
forceCopy=["/lib64/ld-linux-x86-64.so.2", "/bin/bash","/lib/ld-linux-x86-64.so.2"]

moodustame kataloogi /home/mart

bash# mkdir /home/mart

ning moodustame sinna alla chroot keskkonna

bash# makejail /root/makejail-bash.py
Loading configuration file /root/makejail.py
  Defining chroot = '/home/mart'
  Defining forceCopy = ['/bin/bash']
Chroot directory is /home/mart
Initializing list of running processes
  Executing : ps -e
Creating temp dir /tmp/makejail_logs
Adding files matching '/bin/bash'
  Checking path '/bin/bash'
     Dir '/home/mart/bin' missing
     Checking path '/bin'
        Making dir /home/mart/bin
 ..
  Creating 'lib/libncurses.so.5' as a symlink to 'libncurses.so.5.5' (pwd=/home/mart/lib)
  Executing : file /lib/libncurses.so.5
Sleeping for 2.00 seconds

Tulemusena tekib selline failistruktuur

bash# cd /home
bash# find mart -ls
507962    4 drwxr-xr-x   4 root     root         4096 Sep  9 15:12 mart
507963    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/lib
507968 1260 -rwxr-xr-x   1 root     root      1286104 May 15 13:19 mart/lib/libc-2.3.6.so
507972    0 lrwxrwxrwx   1 root     root           17 Sep  9 15:12 mart/lib/libncurses.so.5 -> libncurses.so.5.5
507973  100 -rwxr-xr-x   1 root     root        97928 May 15 13:19 mart/lib/ld-2.3.6.so
507967  368 -rw-r--r--   1 root     root       369728 Oct 19  2006 mart/lib/libncurses.so.5.5
507974    0 lrwxrwxrwx   1 root     root           11 Sep  9 15:12 mart/lib/ld-linux-x86-64.so.2 -> ld-2.3.6.so
507970   12 -rw-r--r--   1 root     root        10392 May 15 13:19 mart/lib/libdl-2.3.6.so
507971    0 lrwxrwxrwx   1 root     root           14 Sep  9 15:12 mart/lib/libdl.so.2 -> libdl-2.3.6.so
507969    0 lrwxrwxrwx   1 root     root           13 Sep  9 15:12 mart/lib/libc.so.6 -> libc-2.3.6.so
507964    0 lrwxrwxrwx   1 root     root            4 Sep  9 15:12 mart/lib64 -> /lib
507965    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/bin
507966  756 -rwxr-xr-x   1 root     root       769368 Dec 11  2006 mart/bin/bash

Selleks, et veenduda kas kasutaja chroot keskkonna tekitamine õnnestus tuleb öelda, mille vastuseks saab shelli (ja siis öelda exit)

bash# chroot /home/mart
bash# 

Nt sobib makejaili kasutada OpenSSH kasutajate chrootimisel.

Seda, kas protsess töötab chroot keskkonnas saab kontrollida nt küsides vastava pid kohta, kuis link on mitte / kataloogile, siis on protsess näidatud kataloogi chroot'itud

# ls -ld /proc/11091/root
lrwxrwxrwx 1 root root 0 Feb  2 22:39 /proc/11091/root -> /home/mart

Peale crashi Debiani käima-aitamine

Kui Debiani süsteem on crashinud, nt voolu kadumise tõttu, siis enamasti ext3 failisüsteem korrigeerib ennast ise, aga mõned rakendused on segaduses.

Skype

Skype teatab vahel, et 'Another Skype instance may exist', sel puhul ei pruugi aitada lock failide eemaldamine

 $ rm .Skype/shared.lck .Skype/martkask/config.lck

aga võib aitada selline järgnevus

  • käivitada Skype -dhpath võtmega ja logida korra sisse ning sulgeda programm (Quit), st nii, et protsess skype kaob
 $ skype --dbpath=/home/mart/skype-tmp
  • selleks, et chat history jms säiliks, kopeerida vana sisuga üle kontole vastava kastaloogi sisu
 $ rsync -avH /home/mart/.Skype/martkask/ /home/mart/skype-tmp/martkask
 $ mv /home/mart/.Skype /home/mart/.Skype-20090811-mittetootav
 $ mv /home/mart/skype-tmp /home/mart/.Skype
  • katsuda kasutada Skype'i edasi tavapärasel moel

Icedove

Programm ütleb käivitamisel, et '...', aitab kustutada failid

 $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/.parentlock
 $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/lock

ja proovida tavalisel moel edasi kasutada. Kontod jms seadistused peaksid nõnda säilima.

Iceweasel

Kui Iceweaseli kataloog .mozilla on ühendatud üle NFS'i siis on peale süsteemi crashi Iceweasel üsna katki. St *\lock\* failide eemaldamine näib mitte aitavat jne, väidetavalt on asi NFS ja Iceweaseli koostöös, tundub, et aitab korra .mozilla kataloog kokku ja lahti pakkida

 $ tar cf .mozilla.tar .mozilla
 $ rm -rf .mozilla
 $ tar xf .morilla.tar
 $ rm .mozilla.tar

Stunnel4 kasutamine

Stunnel http://www.stunnel.org/ tarkvara võimaldab ühendada kokku krüptimist iseenesest mitte toetavat klienti ja krüptitud teenust, või vastupidi. Või korraldada krüptimist mitte toetava kliendi ja serveri vahel siiski krüptitud andmevahetust.

Paigaldamiseks tuleb öelda

 # apt-get install stunnel4

Stunnel4 kliendi kasutamine krüptitud teenuse poole pöördumisel

Seadistusfaili /etc/stunnel/stunnel.conf sobib kirjutada

 sslVersion = SSLv3
 chroot = /var/lib/stunnel4/
 setuid = stunnel4
 setgid = stunnel4
 pid = /stunnel4.pid
 
 socket = l:TCP_NODELAY=1
 socket = r:TCP_NODELAY=1
 
 output = /var/log/stunnel4/stunnel.log
 
 client = yes
 
 [smtps]
 accept  = 127.0.0.1:46525
 connect = smtps.loomaaed.tartu.ee:465

tulemusena saab pöörduda smtp kliendiga krüptimata localhost:46525 porti, mida vahendatakse smtps.loomaaed.tartu.ee 465 krüptitud pordiga.

Terminalihaldusprogrammi Screen kasutamine

screen tarkvara peab olema paigaldatud kaughallatavasse arvutisse

 # apt-get install screen
  • screen käivitamiseks logida eemal olevasse arvutisse sisse ja öelda
$ screen
  • Ctrl-a, c - tekita uus aken
  • Ctrl-a, n - liigu järgmisse aknasse
  • Ctrl-a, d - lase screenist lahti
  • esita nimekiri arvutis olevatest kasutaja screenidest
$ screen -ls
There is a screen on:
        2807.pts-5.pg2a     (Detached)
1 Socket in /var/run/screen/S-postgres.
  • ühendu näidatud screeniga
$ screen -r 2807.pts-5.pg2a

Süsteemis töötavate screenidele vastavaid protsesse näeb öeldes

# ps aux | grep SCREEN

Mitmekasutajarežiimis screen kasutamiseks saavad järgmised kasutajad ühenduda külge öeldes

$ screen -x

Screen logimiseks on -L võti, logi kirjutatakse faili screenlogN.log, või ^a-H.

Kui screen on attached olekus, aga vastav terminaliaken on nö kadunud, siis resumemiseks tuleb enne force'ida detach

$ screen -D

IEEE 802.1X kasutamine

TODO

Bittorrent

Bittorrent on levinud P2P (peer-to-peer, ingl. k. osaliselt-osalisele) andmevahetusprotokoll, millele on iseloomulik, et suhtlemine leiab olulises osas aset otse osaliste endi vahel. Andmevahetusprotokoll on orienteeritud pigem suuremamahulisema andmevahetuse jaoks ning kopeeritud andmeid reeglina ei saa kasutada nö reaalajas kopeerimise käigus, vaid peale kopeerimise lõppu sobiva rakendusega. Nt kui tegu on video-materjaliga, siis saab seda videot asuda vaatama peale kopeerimise lõppu, mitte aga kopeerimise ajal.

Bittorrenti kliendi kasutamine andmete kopeerimiseks

Andmete kopeerimiseks võrgust kohalikku arvutisse on vaja teada huvipakkuva ressursi nö aadressi, mis esineb .torrent faili kujul. Nt jagatakse aadressilt http://www.debian.org/CD/torrent-cd/ edasi liikudes Debian operatsioonisüsteemi .torrent faile

 http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent

Debian Linux sisaldab mitmeid bittorrent kliente (nt rtorrent, qbittorrent, bittorrent, bittornado jt), mis võivad erineda kõigi või mõne aspekti poolest järgnevatest

  • millises mahus on bittorrent protokoll toetatud
  • kas programmil on graafiline, pseudo-graafiline (nn curses) või käsurea kasutajaliides

Konkreetselt qbittorrent kasutajaliides näeb välja nt selline

Fail:Bittorrent-1.gif

kust on näha

  • kopeeritakse faili debian-503-amd64-CD-1.iso
  • DL Speed on allalaadimise kiirus ja UP Speed üleslaadimise kiirus
  • Seeds/Leechs näitab kui paljudelt osalistelt kasutaja kopeerib ja kui paljud temalt edasi kopeerivad
  • sakil Search saab vaikimisi qbittorrenti klienti seadistatud trackereid kasutada otsinguks ja otsingu tulemustena leitud .torrenteid kopeerida

Kopeerimise alustamiseks tuleb valida nupp BT ning kopeerida sinna .torrent faili aadress, nt

 http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent

Bittorrent kliendi kasutamine andmete jagamiseks

Bittorrentiga on algajal kasutajal oluliselt lihtsam kopeerida andmeid endale kui pakkuda välja oma andmeid teistele kasutajatele.

.torrenti moodustamiseks sobib öelda (programmid on paketist bittorrent) eeldusel, et on olemas fail andmed.iso

 $ btmakemetafile.bittorrent andmed.iso http://torrent.loomaaed.tartu.ee:80/announce

kus

Käsu tulemusena moodustatakse vastav .torrent fail

 andmed.iso.torrent

ning seejärel saab seda välja jagada nt nii

 $ btdownloadcurses.bittorrent andmed.iso.torrent

Kohaliku trackeri kasutamine

bittorrent pakett sisaldab bittorrent tracker programmi bttrack. Trackeri käivitamiseks sobib öelda lihtsamal juhul

 # bttrack --dfile dfail.log

mille tulemusena käivitub pordil 80 spetsiaalne http server, mis on valmis võtma vastu bittorrent klientide poolt infot andmete väljajagamise kohta ja teenindama bittorrenti kliente, kes soovivad andmeid endale kopeerida.

Selliselt käivitatud trackerit saab kasutada nt organisatsiooni siseselt, iseasi kas sellisel kasutusel erilist praktilist väärtust on.

Transmission

Transmission tarkvaral on mitmed kasutajaliidesed, muu hulgas käsurealt kasutamise võimalus. Tarkvara paigaldamiseks sobib öelda

# apt-get install transmission-cli

Seejärel tuleb tekitada seadistusfail nt sellise sisuga ning moodustada näidatud kataloogid

$ cat ~/.config/transmission/settings.json
{
  "download-dir": "/home/priit/transm", 
  "incomplete-dir": "/home/priit/transm-incomplete", 
  "incomplete-dir-enabled": true, 
  "open-dialog-dir": "/home/priit", 
  "recent-download-dir-1": "/home/priit/transm", 
}

kusjuures esimesel käivitamisel kirjutab sinna programm paljude muude seadistusparameetrite vaikeväärtused lisaks juurde. Käivitamiseks sobib öelda nt

$ /usr/bin/transmission-cli /tmp/proxmox-ve_3.1-93bf03d4-8.iso.torrent

Tulemusena tekib fail

transm/proxmox-ve_3.1-93bf03d4-8.iso

Amule

TODO

Debian Live

Debian Live projekt http://debian-live.alioth.debian.org/ tegeleb selliste vahendite ettevalmistamisega, millega kasutaja saab moodustada oma vajaduste rahuldamiseks sobivaid operatsioonisüsteemi tõmmiseid. Live keskkonnale on iseloomulik, et operatsioonisüsteem laaditakse mingilt nö mitte-kõvakettalt, vaid nt CD/DVD plaadilt, USB pulgalt või võrgust ning et sellise keskkonna kasutamine ei mõjuta arvuti lokaalse kõvaketta olekut.

live-helper

Tarkvara paigaldamiseks sobib öelda

 # apt-get install live-helper

Tarkvara kasutamist on kirjeldatud aadressil http://live.debian.net/manual/html/index.html.

Nt alglaadiva usb pulga tõmmise ettevalmistamiseks sobib kasutada

 # mkdir /usr/src/live
 # cd /usr/src/live
 # ld_config
 # ld_build -b usb-hdd

Tulemusena tekib fail binary.img mida saab kopeerida nt Windows Vista keskkonnas USB pulgale programmiga http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/.

Tulemuse katsetamiseks sobib qemu, sedasi

 # qemu -hda binary.img

live-magic

Tarkvara paigaldamiseks sobib öelda

 # apt-get install live-magic

Debian Live Magic programmi käivitamiseks tuleb öelda juurkasutajana

 # live-magic

ning avaneb järgnev pilt

Fail:Debian-live-1.gif

kus tuleb valida, millist Live keskkonda ettevalmistama asutakse.

Slack kasutamine

Slack https://slack.com/ paigaldamiseks sobib kopeerida .deb fail ning öelda

# apt-get install failinimi.deb

Paistab, et tarkvara paigaldamise käigus tekitatakse fail

# cat /mnt/kontdeb9/etc/apt/sources.list.d/slack.list 
deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie main

Signal kasutamine

Tarkvara kopeerimiseks https://signal.org/download/

# cat /etc/apt/sources.list.d/signal-xenial.list 
deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main

# curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -

ja paigaldamiseks

# apt-get update
# apt-get install signal-desktop

Skype kasutamine

Aadressil http://www.skype.com/ jagatakse Skype tarkvara mitmel erineval kujul

  • 32 bit
  • 64 bit
  • staatiliselt lingitud

2017 - Skype v. 5.0 kasutamine

Märkus: 2017 kevadel on v. 5.0 beta, mis praktiliselt tähendab, et muidu töötab, aga chat histori otsingut pole.

Lisada võti

# curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -

lisada fail /etc/apt/sources.list.d/skypeforlinux.list

# cat /etc/apt/sources.list.d/skypeforlinux.list
deb [arch=amd64] https://repo.skype.com/deb stable main

ja paigaldada

# apt-get update
# apt-get install skypeforlinux

Kasulikud lisamaterjalid

pre 2017 - Skype kasutamine 64 bit keskkonnas

Süsteemi etteavalmistamisel tuleb paigaldada paketid ia32-libs-gtk ja libqt4-dev

# apt-get install ia32-libs-gtk libqt4-dev

Seejärel skype 64 bit pakett, muus osas peaks töötama kuigi käivitamisel öeldakse

$ skype 
Gtk-Message: Failed to load module "canberra-gtk-module": \
  /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
(<unknown>:6901): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libglide.so: 
  wrong ELF class: ELFCLASS64

Skype kasutamine Debian Wheezy multiarch keskkonnas

# apt-get install skype:i386

Skype v. 8.x kasutamine

Kui järgmine v. 8.y versioon ei sobi, siis saab eelmise x. 8.x paigaldada nt selliselt

# apt-get install skypeforlinux=8.11.0.4

Nimekiri variantidest on näha aadressil https://repo.skype.com/deb/pool/main/s/skypeforlinux/

Skyperious

Head inimesed on programmeerinud Python keeles tarkvara Skyperious http://suurjaak.github.io/Skyperious/index.html, mille abil saab Skype andmebaaside sisu, st praktiliselt jutuajamist ajalugu, uurida ilma Skype programmi enda, võrguühenduse jms olemasoluta. Tundub, et programm kasutab asjaolu, et vastav andmebaas on praktiliselt SQLite andmebaas. Praktiliselt võib see olla abiks kui Skype versiooni uuendamisel ei õnnestu chat history sisu uude versiooni kaasa võtta, nt v. 4.2 -> 4.3 uuendamisel Linux all. Skyperiuos kasutajaliides paistab selline

Fail:Skyperious-1.gif

Tarkvara paigaldamist kirjeldatakse aadressil https://github.com/suurjaak/Skyperious. Lühidalt tuleb Debian Jessie all öelda

# apt-get install wx2.8-i18n libwxgtk2.8-dev libgtk2.0-dev
# apt-get install python-wxgtk2.8 python-wxtools
# apt-get install python-pip

Seejärel lähtetekst lahti pakkida ja öelda

# pip install --allow-all-external --allow-unverified -r requirements

Kasutajana käivitamisel öeldakse alustuseks

$ skyperious.sh
-su: skyperious.sh: /bin/sh^M: bad interpreter: No such file or directory

millest saab üle nn dos reavahetuste eemaldamisega

# fromdos skyperious.sh

Misc

Skype vestlusaknas saab teksti parandada nn Sed süntaksit kasutades

 mart: priiti, ei ole võimalik
 
 ,-------------------------------,
 | s/priiti/Priit/               |
 |_______________________________|

http://share.skype.com/sites/linux/2009/09/some_explanations.html

PulseAudio kasutamine

http://pulseaudio.org/

Huawei netipulga kasutamine

2010 aastal on populaarne kasutada mobiilse internetiühenduse teenust Huawei USB netipulga abil. Sellist tüüpi netipulgad on sisuliselt GSM modemid, mis ühendatakse arvutiga USB kaudu ning mille kasutamiseks peab seadmesse olema paigaldatud mobiilside operaatori kehtiv SIM-kaart (Subscriber Identity Module). Selline netipulk ei ole kuidagi seotud wifiga ning seda saab kasutada asudes mobiilside operaatori levialas. Netipulga kasutamiseks peab olema arvutisse paigaldatud PPP kliendi tarkvara, nt wvdial ja arvuti oskama kasutada USB-serial seadmeid.

Kasulikud lisamaterjalid

Riistvara

Näiteks olgu kasutada Huawei E620 USB Modem seade ning teenusepakkuja EMT andmesideteenus.

# lsusb
...
Bus 002 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

Tarkvara

Netipulga kasutamiseks piisab Debian Lenny paketihalduse tarkvarast, st vajalikest tuuma moodulitest ning wvdial programmist, mille paigaldamiseks sobib öelda

# apt-get install wvdial

Seadistamine ja käivitamine

Esmalt tuleb laadida maha usb-storage, option ja usbserial tuuma moodulid

# rmmmod usb-storage
# rmmod option
# rmmod usbserial

ning laadida usbserial sobivate parameetritega, vastavalt käesolevale lsusb väljundile, nt

# modprobe usbserial vendor=0x12d1 product=0x1001

Tulemusena on kasutada USB-serial seadmed

# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Apr 27 23:46 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Apr 27 23:15 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Apr 27 23:15 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Apr 27 23:15 /dev/ttyUSB3

wvdial tarkvara tööd juhib seadistusfail /etc/wvdial.conf

# cat /etc/wvdial.conf
[Dialer Defaults]
Phone = *99***1#
Username = username
Password = password
Stupid Mode = 1
Dial Command = ATDT

[Dialer hsdpa]
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem

kus

  • Phone - väärtus sõltub teenusepakkujast

Käivitamiseks sobib öelda juurkasutajana

# wvdial hsdpa
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Tue Apr 27 23:41:55 2010
--> Pid of pppd: 7879
--> Using interface ppp0
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> local  IP address 192.168.3.91
--> pppd: @« @« x« 
--> remote IP address 10.64.64.64
--> pppd: @« @« x« 
--> primary   DNS address 192.168.32.116
--> pppd: @« @« x« 
--> secondary DNS address 192.168.32.115
--> pppd: @« @« x« 

Tulemusena tekib süsteemi juurde PPP seade, nt

# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:192.168.3.91  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:3 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:118 (118.0 B)  TX bytes:157 (157.0 B)

Netipulga kasutamine

Peale PPP lingi tekkimist piisab liiklus ruutida üle selle lingi ning saab kasutada võrku, nt

# route add -net 172.23.0.0 netmask 255.255.0.0 gw 192.168.3.91

Lisaks nö sihipärasele mobiilsele töökohale andmeside tekitamisele on võimalikud nt sellised kasutusalad

  • ühendada võrku arvuteid, mida muul viisil võib olla tülikas ühendada
  • ühendada arvutile külge alternatiivne andmesidekanal (nt monitooringuarvutist teadete saatmiseks)

Kasutamisel tuleb arvestada, et läbi lisandunud seadme on võimalik lisaks välja pöördumisele ka sisse pöörduda, seepärast tasub kaaluda seoses netipulgaga paketifiltri kasutamist.

ffmpeg kasutamine

ffmpeg tarkvara abil saab ekraanil toimuvat nö videona salvestada

$ ffmpeg -f x11grab -s 720x480 -r 23.976 -i :0.0 /tmp/file.mpg

QuickTime andmete teisendamine

$ ffmpeg -i video-in.mov -vcodec mpeg4 video-out.avi

QuickTime teisendamine Digital Video formaati

$ ffmpeg -i fail.mov -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 fail.dv

Taasesitamine nö ressursisäästlikult

$ mplayer -vo xv -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=1 video-out.avi

Kasulikud lisamaterjalid

Märkused

  • Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda
# sysctl -w net.ipv4.ip_no_pmtu_disc=1
  • arvuti viimaseid reboote näitab käsk
# last reboot -f /var/log/wtmp.1 
reboot   system boot  3.16.0-4-amd64   Fri Aug  7 00:35 - 02:03 (38+01:27)  
reboot   system boot  3.16.0-4-amd64   Wed Aug  5 00:14 - 00:35 (2+00:20)   
reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:57 - 23:51  (00:53)    
reboot   system boot  3.16.0-4-amd64   Tue Aug  4 22:56 - 22:57  (00:01)

kus esimese rea teine kellaaeg on käesolev aeg (ja liigub), sulgudes on praktiliselt arvuti käesolev uptime; teiste ridade sulgudes on vastavad uptime ajad

  • Failide-alamkataloogide-jms arv kataloogis
# for i in `ls -d /*` ; do echo -n "$i: "; find $i | wc -l; done

PCMCIA seadmete kasutamine

# apt-get install pcmciautils

ExpressCard seadmete kasutamine

Reeglina paistavad ExpressCard http://en.wikipedia.org/wiki/ExpressCard seadmed operatsioonisüsteemile USB seadmetena.

syslog-ng kasutamine logiserverina

syslog-ng http://www.balabit.com/network-security/syslog-ng/ sobib kasutada logiserveris ja tal on sellised omadused

  • TODO

Debian Lenny sisaldab syslog-ng versioon 2.0, paigaldamiseks tuleb öelda

# apt-get install syslog-ng

Tarkvara tööd juhib seadistusfail /etc/syslog-ng/syslog-ng.conf

Failisüsteem

Debiani failisüsteemiga on seotud operatsioonisüsteemi seisukohalt sellised üldised asjaolud

  • /proc ja /sys kataloogid on nö vaated töötavale linuxi tuumale

Named ja unnamed pipe

Pipe on FIFO ja selle instrumendi abil saavad programmid omavahel andmeid vahetada, nt named pipe puhul sobib ühes aknas öelda

$ mkfifo /tmp/fifonimi
$ cat < /tmp/fifonimi

ja teises aknas öelda

$ cal > /tmp/fifonimi

siis tulemusena esitatakse esimeses aknas cal käsu väljund.

Osutub, et pipe ei ole alati vajalik moodustada mkfifo käsu abil, sobib ka nii, sellisel juhul on tegu anonüümse pipe'iga

$ cal | cat

Pidgin

Pidgin (nö vana nimega Gaim) http://www.pidgin.im/ on mitmeid protokolle toetav instant messaging tarkvara. Kuna Debiani paketihalduse Pidgin tõrgub vahel, siis üks otsekohene alternatiiv on kasutada lähtetekstist kompileeritud Pidgini

# apt-get build-dep pidgin
$ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn
$ make
$ make install

Pidgin v. 2.10.0, tundub, et kui kasutada süsteemis mozilla.debian.net tarkvara, siis ebaõnnestub sõltuvuste tõttu

# apt-get build-dep pidgin

Sellisel juhul tuleb käsitsi paigaldada

# apt-get install intltool libglib2.0-dev libgtk2.0-dev
$ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn --disable-nm --disable-screensaver \
  --disable-gtkspell --disable-gstreamer --disable-meanwhile --disable-avahi --disable-dbus --disable-tk
...

lm-sensors

lm-sensors http://www.lm-sensors.org/ tarkvara paigaldamiseks sobib öelda

# apt-get install lm-sensors

Esmalt tuleb teha kindlaks olemasolev riistvara ning laadida vastavad moodulid

# sensors-detect

Kasutamiseks öelda nt

# sensors -A | grep  Core
Core 0:      +47.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 1:      +51.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 2:      +41.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 3:      +41.0 C  (high = +76.0 C, crit = +100.0 C)

kus

  • Core N - protsessori tuuma temperatuur

GPT kasutamine

GPT (GUID Partition Table) http://en.wikipedia.org/wiki/GUID_Partition_Table on seotud järgmiste probleemide lahendamisega

  • operatsioonisüsteemis soovitakse kasutada suuremat partitsiooni kui 2TB
  • arvuti riistvara ei kasuta nn PC-BIOS'i vaid nt UEFI't (Unified Extensible Firmware Interface)
  • kasutatakse 4096 B plokisuurusega kõvaketast
  • saab kasutada kuni 128 nn primary partitsiooni

GPT partitsioonide haldamine

GPT partitsioonide haldamiseks sobib 2010 aasta suvel kasutada nt programme parted ja gdisk, esmalt tuleb moodustada plokkseadmele label öeldes

# parted /dev/sdc
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes

TODO

Kui kasutada fdisk programmi GPT partitsioonitabelit kasutava plokkseadmega, siis paistab tulemus selline

# fdisk -uc /dev/sda -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
... 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1    10485759     5242879+  ee  GPT

GRUB2 alglaaduri kasutamine GPT ja PC-BIOS riistvaraga

Kui UEFI riistavara töötab GRUB2 alglaaduri ja GPT partitsioneeritud kõvakettaga nö otseselt, siis PC-BIOS arvuti puhul tuleb kasutada seejuures mõnda täiendavat võtet. Üldiselt toimub PC-BIOS riistvaral töötava süsteemi alglaadimine selliselt

  • kõvakettale on moodustatud kolm GPT partitsiooni
(parted) p                                                                

Number  Start     End          Size         File system  Name      Flags
 1      2048s     4095s        2048s                     biosboot  bios_grub
 2      4096s     1052671s     1048576s                  boot
 3      1052672s  3905974271s  3904921600s               system
  • alglaadimisel loetakse üks alglaaduri aste esimeselt partitsioonilt
  • järgmised astmed ning operatsioonisüsteemi tuum ja initramfs loetakse boot partitsioonilt
  • operatsioonisüsteemi juurfailisüsteem asub kolmandal partitsioonil või sellel paiknevalt loogiliselt seadmelt, nt LVM köitelt
GPT partitsioonide moodustamine
(parted) unit s
(parted) mkpart biosboot 2048 4095
(parted) set 1 bios_grub on                                               
(parted) mkpart boot 4096 1052671                                         
(parted) mkpart system 1052672 3907026943
(parted) set 3 lvm on

kus

  • tuleb jälgida, et partitsioonide suurused saavad sobivad, kaks esimest võiksid olla suhtliselt universaalselt sobivad
Failisüsteemide ettevalmistamine

GPT pealt töötava süsteemi saab ettevalmistada nt ühendades vastav plokkseade külge mõnele olemasolevale töötavale süsteemile. Seejärel moodustada seadmele GPT partitsioonitabel, failisüsteemid ning kopeerida sinna töötav süsteem üle, nt rsync abil.

GRUB2 seadistamine ja paigaldamine

GRUB2 seadistamiseks sobib kasutada nt sellist /etc/grub.d/40_custom faili

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

echo "Debian GPT" >&2
menuentry "Debian GPT" {
insmod part_gpt
insmod ext2
set root=(hd0,gpt2)
linux /vmlinuz-2.6.32-2-amd64 root=/dev/mapper/system-root ro
initrd /initrd.img-2.6.26-2-amd64
}

kus

  • insmod part_gpt - grub2 laadib omale GTP partitsioonitabeli tundmise tarkuse
  • (hd0,gpt2) - näitab millisel GPT partitsioonil asub /boot failisüsteem

Eeldusel, et failisüsteemid on monteeritud öelda

# grub-install --recheck --no-floppy --root-directory=/mnt/root /dev/sda
Installation finished. No error reported.

Tulemusena peaks arvuti käivituma.

4096 B plokisuurusega kõvaketaste kasutamine

2010 aasta suvel on 4k plokisuurusega kõvaketaste kasutamine pisut ebaselge, tundub, et üldiselt peaks utiliidid sellega automaatselt hiljem või varem hakkama saama. Hetkel näib ohutu nö käsitsi arvestada, et partitsiooni algus satuksid arvudega 8 ja 512 jaguvatele kohtadele, nt kasutades GPT partitsioonitabelit selliselt

(parted) unit s                                                           
(parted) mkpart system 2048 327679999
(parted) mkpart pgdata 327680000 164863999

kus

  • unit s - edasi esitatakse partitsiooni algus ja lõpp sektori numbrina
  • system - partitsiooni nimi kasutajale tähendust omaval kujul
  • 2048 - partitsiooni algussektor
  • 327679999 - partitsiooni lõpp sektor, arvestusega, et 327679999 + 1 jagub arvudega 8 ja 512

Paritsioonitüüpide näitamiseks öelda

(parted) set 1 lvm on
(parted) set 2 lvm on

Tulemuseks on

(parted) p                                                                
Model: ATA WDC WD2003FYYS-0 (scsi)
Disk /dev/sdc: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start       End         Size        File system  Name  Flags
 1      2048s       327679999s  327677952s               system   lvm
 2      327680000s  328703999s  1024000s                 pgdata   lvm

Kui selliselt ettevalmistatud plokkseadmel kasutada failisüsteemi või nt mdadm, lvm või cryptsetup lahendusi, siis väidetavalt neile sobib 4k plokisuuris hästi.

Kasulikud lisamaterjalid

atftpd kasutamine

atftpd on tftpd server ning atftp vastav klient.

Server

Serveri paigaldamiseks sobib öelda

# apt-get install atftpd

Seejuures küsitakse hulk küsimusi, vaikimisi käivitatakse paigaldamise lõpuks tftp teenus inetd superserverist ning kataloogiks on /srv/tftp.

Tööd juhitakse

  • /etc/default/atftpd failis
USE_INETD=true
  • /etc/inetd.conf failis sarnase reaga
tftp  dgram   udp4   wait   nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 \
  --retry-timeout 5 --no-multicast --maxthread 100 --verbose=5 --logfile /var/log/atftpd.log /srv/tftp

Klient

Kliendi paigaldamiseks sobib öelda

# apt-get install atftp

Kasutamiseks öelda nt

$ atftp 192.168.10.10
tftp> get /srv/tftp/sg200-18-20131217-mirror.conf

Tulemusena kopeeritakse fail kliendi käesolevasse kataloogi.

strace programmi kasutamine

Nö failisüsteemi tcpdump kasutamiseks sobib esmalt vaadata nt veebiseveri protsesside numbrid ja seejärel öelda

$ strace -p 19282 -p 19283 -p 19284 -p 19285 -p 19286 -p 19368 -p 20015 -p 29774 -p 29775 -f -e trace=open

kus

  • -f - järgib forkisid
  • -e määratleb, et jälgitakse failiavamisi

Märkused

  • kui kasutada mitu korda -e parameetrit, siis kehtestub ainult viimane kasutamine
  • kui kasutada -e järel mitut väärtust, nt '-e trace=read,write', siis väärtused OR-itakse kokku
  • kui on soov jälgida konkreetse file descriptori kasutusi, siis tuleb strace väljundi teksti töödelda grep vms üldiste vahenditega
  • shelli protsessi on huvitav strace'ida teisest aknast

Kasulikud lisamaterjalid

Debian Squeeze paigaldamine USB pulgalt

Debian Squeeze operatsiooniüsteemi USB pulgalt paigaldamise eeldusteks on

  • kasutada on olemasolev võrguühendusega Linux arvuti
  • installeeritav arvuti boodib USB pulgalt
  • installeeritava arvuti saab ühendada võrku

USB pulk tuleb Debian Squeeze paigaldamiseks ettevalmistada järgmiselt

  • vastaku USB pulgale seade /dev/sdf, pulk peab olema monteerimata olekus, st öelda
# umount /dev/sdf
# http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/hd-media/boot.img.gz
# http://cdimage.debian.org/cdimage/squeeze_di_rc1/amd64/iso-cd/debian-sq-di-rc1-amd64-netinst.iso
  • kopeerida boot.img.gz pulgale öeldes
# zcat boot.img.gz > /dev/sdf
  • monteerida pulk ning kopeerida netinst iso
# mkdir /mnt/sdf
# mount /dev/sdf /mnt/sdf
# cp debian-sq-di-rc1-amd64-netinst.iso /mnt/sdf
# wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz

ning pakkida lahti pulga juurikale kataloogi firmware

# mkdir /mnt/sdf/firmware
# tar -C /mnt/sdf/firmware -z -x -f firmware.tar.gz

Lõpuks tuleb pult lahti monteerida

# umount /mnt/sdf

Pulga kasutamiseks tuleb pult ühendada kõnealuse arvutiga, BIOS'ist seadistada käivituma USB pulgalt ning algab tarkvara paigaldus. Paigalduse käigus peaks olema kasutada internetiühendus.

SSL juur-sertifikaatide lisamine

Selleks, et süsteemi utiliidid, nt wget tunnustaksid veebiserveri sertifikaati peab olema vastav juur-sertifikaat ära kirjeldatud. Juur-sertifikaadi lisamiseks tuleb

  • paigaldada pakett ca-certificates
# apt-get install ca-certificates
  • kopeerida uus juur-sertifikaat kataloogi /usr/local/share/ca-certificates (failinimi peab lõppema .crt vastasel korral update-ca-certificates skript seda ei käsitle)
# cp Juur-LOOMAAED-cacert.pem /usr/local/share/ca-certificates/Juur-LOOMAAED.crt
  • öelda
# update-ca-certificates

Tulemusena genereeritakse uued c_rehashid kataloogi /etc/ssl/certs

# ls -l /etc/ssl/certs/ | grep Juur
lrwxrwxrwx 1 root root     44 Feb  3 14:18 Juur-LOOMAAED.pem -> /usr/local/share/ca-certificates/Juur-LOOMAAED.crt
lrwxrwxrwx 1 root root     11 Feb  3 14:18 a376ee62.0 -> Juur-LOOMAAED.pem

ning lisatakse ta suurfaili /etc/ssl/certs/ca-certificates.crt.

Debian v. 4 Etch -> v. 5 Lenny uuendamine

Kui sources.list failis lenny kasutamise järel apt-get update ütleb vea

 W: There is no public key available for the following key IDs:
 4D270D06F42584E6
 W: You may want to run apt-get update to correct these problems

siis aitab paigaldada debian-archive-keyring pakett

 # apt-get install debian-archive-keyring

Kui kasutusel on uuemad bnx2 draiveriga käivad võrgukaardid, siis tuleb jälgida, et oleks paigaldatud pakett firmware-bnx2

 # apt-get install firmware-bnx2

Debian v. 5 Lenny -> v. 6 Squeeze uuendamine

Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -> Squeeze (v. 5.0 -> v. 6.0) juhend asub aadresil http://www.debian.org/releases/squeeze/amd64/release-notes/ch-upgrading.en.html

Uuendamise on oluline tähele panna järgmisi asjaolusid

  • asutakse kasutama dash shelli nö süsteemse shellina, mh tähendab see, et /bin/sh -> bash asemel on
$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 Dec 26  2010 /bin/sh -> dash
  • asuda uuendama süsteemi, millele on kõik Lenny uuendused rakendatud
  • asendatakse legacy GRUB GRUB2 alglaaduriga, vajadusel anda pärast uuendust töötavas Squeeze süsteemis käsk upgrade-from-grub-legacy
  • veenduda enne uuendamise protseduuri, et failisüsteemis on piisavalt vaba ruumi
  • asutakse bootloaderis kasutama failisüsteemide plokkseadmetele vastavaid UUID väärtusi
  • eemdalda paketihaldusest mitte paigaldatud tarkvara (nt VMWare Tools)
  • eemaldada /etc/ alt nö käsitsi lisatud start-up skriptid, mis võivad segada automaatset süsteemi migreerimist kasutama insserv käivitusskripte

Uuendamise protseduur

  • veenduda, et on olemas süsteemist varukoopia
  • rakendada paketihaldusest uuendused vanale süsteemile
  • teha seadistusfailidest koopia, et oleks mugav võrrelda
# cp -a /etc /root/etc-20110522-tootanud-lenny
# cp -a /boot /root/boot-20110522-tootanud-lenny
  • eemaldada paketihaldusest mitte paigaldatud tarkvara, nt
# vmware-uninstall.pl
  • kasutada /etc/apt/sources.list faili sisuga, uuendamise ajal on security välja kommenteeritud
deb http://ftp.ee.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.ee.debian.org/debian/ squeeze main contrib non-free

# deb http://security.debian.org/ squeeze/updates main contrib non-free
# deb-src http://security.debian.org/ squeeze/updates main contrib non-free

ning öelda

# apt-get update
# apt-get dist-upgrade -d
  • kasutada script'i esitatud küsimuste-vastuste-teadete salvestamiseks, mis töötab üldiselt nii
# script -t 2>~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script
Script started, file is /root/upgrade-squeezestep.script
# date
...
# Ctrl-D
Script done, file is /root/upgrade-squeezestep.script

script tööga kaasneb kaks protsessi

# ps aux | grep scr
root      4960  0.0  0.0   5848   572 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script
root      4961  0.0  0.0   5852   460 pts/0    S+   10:36   0:00 script -t -a /root/upgrade-squeezestep.script
  • käivitada script abil salvestamine
# script -t 2>~/kernel-udev-upgrade-squeezestep.time -a ~/kernel-udev-upgrade-squeezestep.script
  • uuendada tuum ja udev
# apt-get install linux-image-2.6-amd64

Seejuures pakutakse ja võiks aktsepteerida plokkseadmete UUID väärtuste kasutamist.

# apt-get install udev
  • vajadusel paigaldada non-free firmware draiverid öeldes (nt bnx 10g seadme jaoks)
# apt-get install firmware-linux-nonfree
  • veenduda, et /boot/grub/menu.lst algaadib uue tuumaga, /etc/fstab ühendab külge sobivad failisüsteemid ja alglaadida süsteem
  • veenduda, et failisüsteemis on piisavalt ruumi, käivitada script ja paigaldada muud süsteemi uuendused
# script -t 2>~/dist-upgrade-squeezestep.time -a ~/dist-upgrade-squeezestep.script
# apt-get dist-upgrade
  • dash shelli kasutamiseks öeldakse
The system shell is the default command interpreter for shell scripts.

Using dash as the system shell will improve the system's overall performance. It does not alter the shell
presented to interactive users. Use dash as the default system shell (/bin/sh)? 
  • dist-upgrade käigus üritatakse migreerida dependecy-based insserv käivitusskriptidele
The boot system is prepared to migrate to dependency-based sequencing. This is an irreversible step, but one that is recommended:   
it allows the boot process to be optimized for speed and efficiency, and provides a more resilient framework for development.        

A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If you choose not to migrate now, you can do so later by
running "dpkg-reconfigure sysv-rc".

Migrate legacy boot sequencing to dependency-based sequencing?
  • Uuendamisel tuleb kasutaja poolt muudetud seadistusfailid lasta uute nn package maintainer versiooniga üle kirjutada ja pärast muudatused käsitsi kohendada, nimekirja muudetud failidest näeb nt nii
# grep "Configuration file" dist-upgrade-squeezestep.script
Configuration file `/etc/security/limits.conf'
Configuration file `/etc/nagios/nrpe.cfg'
Configuration file `/etc/sysctl.conf'
Configuration file `/etc/rsyslog.conf'
Configuration file `/etc/ssh/ssh_config'
Configuration file `/etc/apache2/apache2.conf'
Configuration file `/etc/apache2/ports.conf'
Configuration file `/etc/joe/joerc'
Configuration file `/etc/snmp/snmpd.conf'
Configuration file `/etc/default/snmpd'

kusjuures asendatud failst salvestatakse reeglina koopia nimele lisades lõppu .dpkg-old, nt

/etc/snmp/snmpd.conf.dpkg-old

st ülekirjutatud failid leiab nt nii

# find /etc/ -name \*-old
  • vmware tools kompileerimise asemel on alternatiiv kasutada paketti open-vm-tools, kasutaja peab ise otsustama mida eelistada
# apt-get install open-vm-tools
...
Loading open-vm-tools modules: vmhgfsFATAL: Module vmhgfs not found.
 vmmemctlFATAL: Module vmmemctl not found.
 vmsyncFATAL: Module vmsync not found.
  • vajadusel öelda
# dpkg-reconfigure sysv-rc
  • vajadusel öelda (kui uuendatavas süsteemis mingil põhjusel oli alglaadur paigaldamata paketihaldusest)
# apt-get install grub-pc
  • vajadusel öelda
# upgrade-from-grub-legacy
  • kasutuses mitte olevate pakettide eemaldamine
# apt-get autoremove
  • eemaldada /etc/apt/sources.list failid security eest kommentaarid ja rakendada uuendused
  • kohendada käsitsi paketihaldusest uuendamise käigus vaikeväärtustega asendatud seadistusfailid

Märkused

  • kui uuendamine peatub seetõttu, et mõne nö ebaolulise programmi käivitusskript ei tööta, siis sobib vastav pakett eemaldada, kui ka see ei õnnestu, siis võiks proovida käivitusskripti sisu asendada millegagi, mis formaalselt toimib, nt
# cat /etc/init.d/nagios3 
#! /bin/sh
exit 0;

Debian v. 6 Squeeze > v. 7 Wheezy uuendamine

Ametlik operatsioonisüsteem Debian GNU/Linux Lenny -> Squeeze (v. 6.0 -> v. 7.0) juhend asub aadresil http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html

Debian v. 7 Wheezy GRUB2 versiooni on number selline

GNU GRUB  version 1.99-27+deb7u1

Kui 2015 kevadel öelda

# apt-get update
Hit http://ftp.ee.debian.org wheezy Release.gpg
...
Reading package lists... Done                     
W: There is no public key available for the following key IDs:
7638D0442B90D010

siis aitab

# apt-get install debian-keyring debian-archive-keyring

Debian v. 8 Jessie -> v. 9 Stretch uuendamine

Operatsioonisüsteemi uuendus toimub nagu tavaliselt, kuid viimaks sobib öelda

# aptitude search ?obsolete
# aptitude purge ?obsolete

MySQL -> MariaDB uuendus toimub üldiselt automaatselt, aga sobib lõpus öelda (vt ligipääs failist /etc/mysql/debian.cnf)

# mysql_upgrade -h localhost -u debian-sys-maint -pparool

Kasulikud lisamaterjalid

insserv käivitussüsteemi kasutamine

Debian Squeeze v. 6.0 kasutab nn System-V-like käivitusskripte, kusjuures nende tööd saab seadistada insserv tarkvaraga

# cat /etc/init.d/nfsen 
#!/bin/sh
set -e

### BEGIN INIT INFO
# Provides:             nfsen
# Required-Start:       $local_fs $remote_fs $network $time
# Required-Stop:        $local_fs $remote_fs $network $time
# Should-Start:         $syslog
# Should-Stop:          $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    NfSen Server
### END INIT INFO

#!/bin/bash
case "$1" in
  start)
    echo "Starting NfSen server"
    /srv/nfsen/bin/nfsen start
    ;;
  stop)
    echo "Stopping NfSen server"
    /srv/nfsen/bin/nfsen stop
    ;;
  *)
     echo "Usage: /etc/init.d/nfsen {start|stop}"
  exit 1
esac
exit 0

/etc/rc3.d jt rc kataloogide alla tekivad lingid öeldes

# insserv nfsen

Käivitusskriptile linkide eemaldamiseks sobib öelda

# insserv -r nfsen

Lisaks -n võtme lisamine ainult näitab, mis toimuks

# insserv -n -d nfsen

Required-Start: rea lõppu lisades nt 'postgresql' tulemusena käivitatakse kõnealune programm peale PostgreSQL andmebaasi.

Lisamaterjalid:

Dhcpd serveri kasutamine

ISC DHCP tarkvara paigaldamiseks sobib öelda

# apt-get install dhcp3-server

DHCP serveri tööd juhib seadistusfail, nt

# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

shared-network auul {
  option domain-name "auul";
  option domain-name-servers 10.192.0.53;

  subnet 192.168.50.0 netmask 255.255.255.0 {
    range 192.168.50.200 192.168.50.224;
    option routers 192.168.50.10;
  }
}

Lisaks näidatakse failis /etc/default/isc-dhcp-server millistel võrguseadmetel teenust pakutakse

# cat /etc/default/isc-dhcp-server
...
INTERFACES="eth1"

DHCP serveri käivitab skript

# /etc/init.d/isc-dhcp-server stop|start

At tööd

Töö tekitamiseks sobib öelda

$ echo "date >> /tmp/test.log" | at -t 201509250950

Tööde nimekirja esitamiseks

$ atq
10      Fri Sep 25 09:50:00 2015 a imre

Tehtud tööd eemaldatakse automaatselt, tuleviku tööde eemaldamiseks

$ atrm 10

Töö sisu esitamiseks

$ at -c 10

Cron tööd

Debiani cron töid juhivad sellised seadistusfailid

  • /etc/crontab
  • /etc/cron.d - kataloogis sisalduvaid faile käsitletakse cron kirjeldusfailidena, /etc/crontab formaadis (st sisaldub user väli)
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly
  • /var/spool/cron/kasutajanimi

Kasulikud lisamaterjalid

  • man cron

Anacron

Anacron http://anacron.sourceforge.net/ ...

tcp wrapper teegi kasutamine

Paljud Debiani programmid on kompileeritud vastu libwrap teeki, mis tähendab, et nende tööd saab kontrollida /etc/hosts.allow ja /etc/hosts.deny failidest. Nt nrpe deemoni puhul selleks, et lubada ligipääsu võrgust 172.18.20.0/24 sobib kasutada

# cat /etc/hosts.allow
nrpe: 172.18.20.0/24
# cat /etc/hosts.deny
nrpe: ALL

Seadistustes tehtud muudatused kehtestuvad kohe, midagi ei ole vaja reloadida ega restartida. Seda kas programm on kompileeritud vastu librwap teeki saab küsida

# ldd /usr/sbin/nrpe | grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00007fd00518b000)

dump ja restore kasutamine

Dump faili moodustamiseks

# umount /mnt/lvmkoitenimi
# dump -0uf /tmp/failinimi.dump /dev/system/lvmkoitenimi
 DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011
 DUMP: Dumping /dev/system/lvmkoitenimi (an unlisted file system) to /tmp/failinimi.dump
 DUMP: Label: none
 DUMP: Writing 10 Kilobyte records
 DUMP: mapping (Pass I) [regular files]
 DUMP: mapping (Pass II) [directories]
 DUMP: estimated 66671 blocks.
 DUMP: Volume 1 started with block 1 at: Tue Jul 12 23:45:47 2011
 DUMP: dumping (Pass III) [directories]
 DUMP: dumping (Pass IV) [regular files]
 DUMP: Closing /tmp/failinimi.dump
 DUMP: Volume 1 completed at: Tue Jul 12 23:45:48 2011
 DUMP: Volume 1 66500 blocks (64.94MB)
 DUMP: Volume 1 took 0:00:01
 DUMP: Volume 1 transfer rate: 66500 kB/s
 DUMP: 66500 blocks (64.94MB) on 1 volume(s)
 DUMP: finished in 1 seconds, throughput 66500 kBytes/sec
 DUMP: Date of this level 0 dump: Tue Jul 12 23:45:46 2011
 DUMP: Date this dump completed:  Tue Jul 12 23:45:48 2011
 DUMP: Average transfer rate: 66500 kB/s
 DUMP: DUMP IS DONE

kus

  • -0 - tekitada full dump
  • -u - kirjutada tegevuse kohta jälg /var/lib/dumpdates faili
  • -f - salvestada dump näidatud faili

Dump failist taastamiseks

# mount /dev/system/lvmkoitenimi_2 /mnt/lvmkoitenimi_2
# cd /mnt/lvmkoitenimi_2
# restore -rf /tmp/failinimi.dump

kus

  • -r - taastada dumpis käesolevasse kataloogi, mis on kuhu on monteeritud tühi failisüsteem
  • -f - kasutatav dump fail

inetd

Debian Squeeze paketihaldusest saab valida erinevaid inetd servereid, openbsd-inetd paigaldamiseks sobib öelda

# apt-get install openbsd-inetd

2011. aasta keskel v. 1.3.5 sisaldab libexec/Lookup.pm teeki, kuhu on sisse kirjutatud whois.cyberabuse.org serveri nimi, kuid see server ei paku enam sobival viisil teenust ning tulemuseks on, et NfSen liideses ei saa enam ip aadressidel teha päringuid. Üheks alternatiiviks on seadistada käima lokaalne whois teenus, nt ühendades 43/tcp port ja sellise Perli skripti sisend ja väljund kokku inetd abil

# cat /srv/data/nfsen/libexec/whois.pl 
#!/usr/bin/perl
my $filename = <>;

foreach $rida($filename) {
  $vastus=`/usr/bin/whois $rida`;
  print $vastus;
  last;
};

ning kasutades /etc/inetd.conf seadisusfailis rida

43 stream tcp nowait nobody /srv/data/nfsen/libexec/whois.pl whois.pl

whois päringute esitamise kontrollimiseks sobib öelda

$ whois -h 127.0.0.1 127.0.0.1
.. 
NetRange:       127.0.0.0 - 127.255.255.255
CIDR:           127.0.0.0/8
OriginAS:       
NetName:        SPECIAL-IPV4-LOOPBACK-IANA-RESERVED
NetHandle:      NET-127-0-0-0-1
Parent:         
NetType:        IANA Special Use

Kasutaja peab ise otsustama, kas talle selline lahendus sobib.

Kasulikud lisamaterjalid

http://www.telecom.otago.ac.nz/tele301/student_html/inetd-tcpwrappers.html

RPC portmapper

Debain Squeeze paketihaldusest saab valida erinevaid RPC portmap lahendusi, portmap paigaldamiseks sobib öelda

# apt-get install portmap

Arvutis töötavate RPC teenuste nimekirja küsimiseks sobib öelda

# rpcinfo -p hostname

Tundub, et rpcbind toetab erinevalt portmap tarkvarast IPv6 protokolli.

Netlink socket

ip programm suhtleb tuumaga kasutades netlink socket'it, mis praktiliselt tähendab nt seda, et ip programmi saab kasutada chroot keskkonnast, kus pole /proc failisüsteemi külge monteeritud (erinevalt ifconfig programmist, mis kasutab /proc failisüsteemi).

Kasulikud lisamaterjalid

Process accounting

Operatsioonisüsteemi Debian Squeeze vaikimisi tuum võimaldab koguda process accountiga andmeid. Seda sobib teha nt acct paketi tarkvara abil, paigaldamiseks sobib öelda

# apt-get install acct

Tulemusena paigaldatakse muu hulgas sellised failid

  • /usr/bin/lastcomm
  • /usr/bin/ac
  • /usr/sbin/accton
  • /usr/sbin/sa
  • /usr/sbin/dump-utmp
  • /usr/sbin/dump-acct
  • /etc/cron.daily/acct
  • /etc/init.d/acct
  • /etc/default/acct
  • /etc/cron.monthly/acct

Selleks, et arvutis töötavate protsesside kohta andmed kogunema hakkaksid, vaikimisi faili /var/log/account/pacct, tuleb öelda

# accton on | off

Kogutud andmete esitamine toimub selliselt

# dump-acct /var/log/account/pacct | tail -n 5
tail            |v3|     0.00|     0.00|     0.00|     0|     0|  4088.00|     0.00|   19856    19253|Mon Sep 19 20:34:56 2011
cron            |v3|     0.00|     0.00|     1.00|     0|     0| 18832.00|     0.00|   19857     1138|Mon Sep 19 20:35:01 2011
ssh             |v3|     0.00|     1.00|    75.00|     0|     0| 43192.00|     0.00|   19860    19633|Mon Sep 19 20:35:06 2011
postgres        |v3|     0.00|     0.00|     2.00|   109|   113| 94272.00|     0.00|   19863     1395|Mon Sep 19 20:35:09 2011
telnet          |v3|     0.00|     0.00|     3.00|  1000|  1000| 22680.00|     0.00|   19870    19865|Mon Sep 19 20:35:19 2011

kus kuuendas tulbas on protsessi UID väärtus.

Passwords and encryption keys (Seahorse)

TODO

Mälu kasutamine

Arvuti mälu kasutamise kohta saab küsida selliselt

# free
             total       used       free     shared    buffers     cached
Mem:        509172     501192       7980          0       3784     200248
-/+ buffers/cache:     297160     212012
Swap:      1048568      92568     956000

kus

  • total (509172) - kogu RAM (miinus natuke kerneli tarvis)
  • used (501192) - kokku kasutusel
  • free (7980) - kokku vaba
  • buffers (3784) - kasutusel mälust on nii palju kasutusel buffers all
  • cached (200248) - kasutusel mälust on nii palju kasutusel failisüsteemi cache'ina
  • teisel real on toodud arvutatud used ja free, mis vastavad sellele, kui buffers + cached oleks vastavalt maha lahutatud või juurde liidetud; selline vaade on õigustatud, kuna Linux tuum vajadusel kasutab failisüsteemi cache'iks olevat mälu ressurssi muuks tarbeks
297160 = 501192 - 3784 - 200248
212012 = 7980 + 3784 + 200248

st kasutatud mälu on tegelikult vähem kui näib ja vaba mälu on vastavalt samapalju rohkem kui näib.

Jõudlus

Arvuteid on valmistatud kasutes erinevaid tehnoloogiaid ja lisaks muudele erinevustele erinevad nad ka mälu kasutamise kiiruse poolest. Üks võimalus mälu kasutamise jõudlust hinnata nö sünteetilise testiga (st spetsiaalselt selleks tarbeks valmistatud programmo abil), nt

Kasutamiseks tuleb viimaselt lingilt kopeerida tar.gz fail, pakkida arhiiv lahti ning öelda

$ ./stream-scaling

Tulemusena kompileeritakse programm, seejärel käivitatakse ning väljastatakse tulemus, nt

$ ./stream-scaling 
=== CPU cache information ===
CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Data)
CPU /sys/devices/system/cpu/cpu0 Level 1 Cache: 32K (Instruction)
CPU /sys/devices/system/cpu/cpu0 Level 2 Cache: 6144K (Unified)
... 
Total CPU system cache: 25296896 bytes
Suggested minimum array elements needed: 11498589
Array elements used: 11498589 

=== CPU Core Summary ===
processor       : 3
model name      : Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz
cpu MHz         : 1998.000
siblings        : 4

=== Testing up to 4 cores ===
...
-------------------------------------------------------------
Function      Rate (MB/s)   Avg time     Min time     Max time
Copy:        4101.0477       0.0453       0.0449       0.0456
Scale:       4121.7264       0.0451       0.0446       0.0458
Add:         4982.5056       0.0557       0.0554       0.0560
Triad:       5001.9268       0.0556       0.0552       0.0561
-------------------------------------------------------------
Solution Validates
-------------------------------------------------------------

Number of Threads requested = 2
Function      Rate (MB/s)   Avg time     Min time     Max time
Triad:       5002.6618       0.0566       0.0552       0.0610 

Number of Threads requested = 3
Function      Rate (MB/s)   Avg time     Min time     Max time
Triad:       4892.7425       0.0577       0.0564       0.0607

Number of Threads requested = 4
Function      Rate (MB/s)   Avg time     Min time     Max time
Triad:       4784.1065       0.0582       0.0577       0.0589

Mälu jõudlust on eriti mõtet hinnata selleks, et võrrelda olemasolevat süsteemi uuega, millega olemasolev kavatsetakse asendada.

Ressursikasutuse haldamine

  • IO
# ionice -c 3 -p 1919
  • CPU
# renice ...

Protsesside haldamine

Kasutaja postgres protsesside nimekirja nimekirja esitamine

# ps -a -f -u postgres

Kasutaja postgres protsesside ja vastavate lõimede nimekirja esitamine

# ps -aLf -u postgres

pdftk kasutamine

pdftk http://www.pdflabs.com/docs/install-pdftk/ paigaldamiseks sobib öelda

# apt-get install pdftk

tvtime kasutamine

# apt-get install tvtime

ning näidata

Please choose the TV standard to use -> PAL
Please choose the frequency table to use -> Custom (must run tvtime-scanner first)
Please choose the video4linux device which corresponds to your capture card -> /dev/video0
Please choose the device that will be used in NTSC areas for decoding closed captions and XDS channel information; Device to use for VBI decoding -> /dev/vbi0
Please choose whether tvtime should be "setuid root", therefore getting root privileges when running -> No

Esmalt tuleb laadida TV kaardile vastav draiver, nt selliselt

# rmmod saa7134
# modprobe saa7134 card=21 tuner=26

kus

  • card sobiv valik tagab pildi
  • tuner sobiv valik tagab heli

Seejärel skaneerida kanalid

$ tvtime-scanner 
Reading configuration from /etc/tvtime/tvtime.xml
Scanning using TV standard PAL.
Scanning from  44.00 MHz to 958.00 MHz.
Found a channel at 607.00 MHz (605.50 - 608.25 MHz), adding to channel list.
I/O warning : failed to load external entity "/home/imre/.tvtime/stationlist.xml"
station: No station file found, creating a new one.

ning käivitada tvtime programm

# tvtime

Kasulikud lisamaterjalid

PAM

TODO

Kasutaja autentimine pam_unix abil

/etc/shadow failis on üldiselt toetatud sellised räsid

  • $1$ - MD5
  • $2a$ - blowfish
  • $5$ - SHA-256
  • $6$ - SHA-512

Kui osutab, et /etc/shadow ei tööta, st nt peale süsteemi uuendamist kasutaja sisestab õige parooli kuid ei saa sisse logida, siis tõenäoliselt ei sobi kokku /etc/pam.d/* seadistusfailid /etc/shadow sisuga.

Kasulikud lisamaterjalid

Gnome-shell

Gnome shell http://en.wikipedia.org/wiki/GNOME_Shell on ... ja kasutamine eeldab

  • 3D toega videokaardi olemasolu, kusjuures kaart peab nö sobima (nt Radeon HD 3600 fglrx draiveriga annab vigu nö olulises kohas, GeForce 7600 GS nouveau draiveriga sobib)

Olulised asjad

  • extensions
  • gnome-tweak-tool

USB over IP

USB over IP tarkvara http://usbip.sourceforge.net/ abil saab teha ühe arvuti füüsilised USB seadme üle võrgu kasutatavaks teisest avutist.

Praktiliselt voib olla hada sellest, et user space ja kernel space tarkvara ei sobi kokku. Nt tundub, et Ubuntu (sh v. 14.04) paketihalduses on usbip v. 0.7, aga tuumas talle vajalikke mooduleid pole. Teine variant on, et kasutada saab usbip v. 1.1, millega tuuma moodulid naikse paremini kokku sobivat. Debian Jessie sisaldab 2014 aasta suvel v. 1.1 tarvkara ja see paistab töötavat.

Tööpõhimõte

TODO

Tarkvara paigaldamine

Tarkvara paigladamiseks sobib mõlemas arvuti öelda

# apt-get install usbip

Paigaldamise tulemusena tekib failisysteemi muu hulgas

  • usbip - utiliit serveri seadistamiseks ja kliendi juhtimiseks
  • usbipd - serveri poolel tootav deemon

Serveri poole ettevalmistamine ja käivitamine

Laadida moodulid

server:~# modprobe usbip_core
server:~# modprobe usbip_host

Käivitada usbipd deemon, kuulab vaikimisi 3240/tcp pordil

server:~# usbipd

USB seadmete serveris olevate USB seadmete nimekirja esitamiseks sobib öelda

server:~# usbip list --local
Local USB devices
=================
- busid 1-1 (8087:0024)
  Intel Corp. : Integrated Rate Matching Hub (8087:0024)
        1-1:1.0 -> hub

- busid 1-1.2 (0781:5530)
  SanDisk Corp. : Cruzer (0781:5530)
        1-1.2:1.0 -> usb-storage

- busid 1-1.4 (0424:2514)
  Standard Microsystems Corp. : USB 2.0 Hub (0424:2514)
        1-1.4:1.0 -> hub

- busid 1-1.4.3 (046d:c31d)
  Logitech, Inc. : Media Keyboard K200 (046d:c31d)
        1-1.4.3:1.0 -> usbhid
        1-1.4.3:1.1 -> usbhid

- busid 1-1.4.4 (046d:c05a)
  Logitech, Inc. : M90/M100 Optical Mouse (046d:c05a)
        1-1.4.4:1.0 -> usbhid

- busid 1-1.5 (04e6:e001)
  SCM Microsystems, Inc. : SCR331 SmartCard Reader (04e6:e001)
        1-1.5:1.0 -> usbfs

Seadme eksportimiseks sobib oelda, nt Cruizer USB pulk jaoks

server:~# usbip bind -b 1-1.2
bind device on busid 1-1.2: complete

Tulemusena on --list väljundis vastav seade

 - busid 1-1.2 (0781:5530)
   SanDisk Corp. : Cruzer (0781:5530)
         1-1.2:1.0 -> usbip-host

Kliendi poole ettevalmistamine ja käivitamine

Laadida moodul

klient:~# modprobe vhci_hcd

Eksporditud seadmete nimekirja küsimiseks sobib öelda kliendi arvutis

klient:~# usbip list -r 192.168.10.10
Exportable USB devices
======================
- 192.168.10.10
     1-1.2: SanDisk Corp. : Cruzer (0781:5530)
          : /sys/devices/pci0000:00/0000:00:07.0/usb1/1-1/1-1.2
          : (Defined at Interface level) (00/00/00)
          :  0 - Mass Storage / SCSI / Bulk-Only (08/06/50)

Seadme kasutamiseks

klient:~# usbip attach -r 192.168.10.10 -b 1-1.2

Seejärel on seade paistab nagu kohalik seade ja on valmis kasutamiseks, nt

klient:~# lsusb 
Bus 009 Device 004: ID 0781:5530 SanDisk Corp. Cruzer
..

ja usbip spetsiifilisemalt

klient:~# usbip port
Imported USB devices
====================
Port 00: <Port in Use> at High Speed(480Mbps)
      unknown vendor : unknown product (0781:5530)
      9-1 -> usbip://192.168.10.10:3240/1-1.2
          -> remote bus/dev 001/037

Kasutamise lõpetamiseks sobib öelda kasutades vhci_hcd pordi numbrit

klient:~# usbip detach --port=0

Serveri poolel kasutamise lõpetamine

Peale seda kui kliendi pool on seadme kasutamine lõpetatud, öelda

server:~# usbip unbind -b 1-1.2
unbind device on busid 1-1.2: complete

Kasulikud lisamaterjalid

Töötamine failisüsteemiga

Tavaliselt on häda miinus märgiga failidega töötamisel, -- võtme kasutamine aitab, nt '-failinimi' nimelise faili kustutamisel

$ rm -- -failinimi

USB netipulga kasutamine

USB netipulga kasutamine koosneb kahest osast

  • arvutis peavad olema /dev/ttyUSB* nimelised usb serial seadmed
  • ppp ühenduse loomiseks tuleb kasutada sobivat programmi, wvdial, Gnome desktopilt midagi vms

Tööpõhimõte

Kui netipulk ei tööta automaatselt, siis võib olla probleem selles, et süsteem tunneb ta ära storage seadmena ja mitte võrguseadmena

[11360165.312014] usb 1-4: new high-speed USB device number 10 using ehci-pci
[11360165.458578] usb 1-4: New USB device found, idVendor=12d1, idProduct=1505
[11360165.458734] usb 1-4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[11360165.458900] usb 1-4: Product: HUAWEI Mobile
[11360165.459001] usb 1-4: Manufacturer: Huawei Technologies
[11360165.460790] usb-storage 1-4:1.0: USB Mass Storage device detected
[11360165.461082] scsi10 : usb-storage 1-4:1.0
[11360166.461381] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 0
[11360166.478285] sr1: scsi-1 drive
[11360166.478582] sr 10:0:0:0: Attached scsi CD-ROM sr1
[11360166.478694] sr 10:0:0:0: Attached scsi generic sg5 type 5

usb-modeswitch paketi tarkvara teeb temast võrguseadme.

/dev/ttyUSB* seadmete tekitamine

E392 kirjaga netipulk paistab faili usb.ids tõttu

# grep 1505 /var/lib/usbutils/usb.ids
       1505  E398 LTE/UMTS/GSM Modem/Networkcard

lsusb väljundis E398

Bus 001 Device 041: ID 12d1:1505 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

Kusjuures /dev kataloogis pole usb serialile vastavaid faili, st /dev/ttyUSB* nimelisi.

Kasutamiseks sobib tekitada fail

# cat /etc/usb_modeswitch.d/12d1\:1505 
# Huawei E392

DefaultVendor=  0x12d1
DefaultProduct= 0x1505

TargetVendor=  0x12d1
TargetProductList=0x1506

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

ning lisada faili /lib/udev/rules.d/40-usb_modeswitch.rules lõpupoole rida

# Huawei E392
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1505", RUN+="usb_modeswitch '%b/%k'"

Seejärel võtta pulk usb pesast välja ja uuesti sisse panna, lsusb väljundis peaks nüüd olema, 1506 -> 1505 muutunud

Bus 001 Device 043: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

ning lisaks tekkinud seadmed

# ls -ld /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Dec 20 01:27 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Dec 20 01:16 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Dec 20 01:16 /dev/ttyUSB2

Tundub, et kui systemd millegipärast ei taha käivitada sobib öelda

# /usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1505 -J

wvdial kasutamine

# cat /etc/wvdial.conf 
[Dialer Defaults]
Phone = 
Username = 
Password = 
New PPPD = yes

Modem Type = Analog Modem
Phone = *99#
ISDN = 0
Baud = 460800
Username = " "
Password = " "
Modem = /dev/ttyUSB0
Init1 = ATZ
Init2 = at+cgdcont=1,"ip","internet.emt.ee"
Stupid Mode = 1

kus

  • TODO

käivitamiseks sobib öelda

# wvdial
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: at+cgdcont=1,"ip","internet.emt.ee"
at+cgdcont=1,"ip","internet.emt.ee"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Fri Dec 20 01:35:25 2013
--> Pid of pppd: 17139
--> Using interface ppp0
--> local  IP address 10.128.53.223
--> remote IP address 10.64.64.64
--> primary   DNS address 217.71.33.151
--> secondary DNS address 217.71.33.150

Tulemusena tekib ppp0 seade üle mille saab liiklust ruutida (teiste arvutite liiklust tuleb src nat'tida)

# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.128.77.124  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:70 (70.0 B)  TX bytes:157 (157.0 B)

Kasulikud lisamaterjalid

zip arhivaatori kasutamine

Parooliga kaitstud arhiivi moodustamiseks sobib öelda nt

$ zip -r --password parool katalooginimi.zip katalooginimi

Pipe viewer

Pipe viewer programmiga saab jälgida läbi toru mineva progressi. Paigaldamiseks sobib öelda

# apt-get install pv

Kasutamine paistab välja sedasi

# timeout 10 cat /dev/zero | pv > /dev/null
4GB 0:00:07 [1.91GB/s] [               <=>
..

AUFS

AUFS http://aufs.sourceforge.net/ võimaldab mitme kataloogi sisu esitada ühes nö virtuaalses kataloogis. Alternatiivne võimalus on seda saavutada UnionFS abil.

# mount -t aufs -o dirs=/tmp/kata1:/tmp/kata2:/root/kata3 none /tmp/dir

Network manager

Lisaks Network manager graafilisele kasutajaliidesele on olemas ka käsurea utiliit nmcli

# nmcli -p dev
================================================
               Status of devices
================================================
DEVICE      TYPE         STATE      CONNECTION 
------------------------------------------------
docker0     bridge       connected  docker0    
vetha88a    ethernet     connected  vetha88a   
br0         openvswitch  connected  br0        
br3         openvswitch  connected  br3        
tep0        openvswitch  connected  tep0       
eth0        ethernet     unmanaged  --         
lo          loopback     unmanaged  --         
ovs-system  openvswitch  unmanaged  --         

Skänneri kasutamine

# apt-get install 

Kasulikud lisamaterjalid

Logrotate

Näitab, mis toimub, aga midagi failisüsteemis vms ei tee

# logrotate -d /etc/logrotate.conf

Teeb nö jõuga

# logrotate -f /etc/logrotate.conf

Roteeritud failide nimedes kuupäeva kasutamiseks sobib logrotate seadistusfailide vastavates sektsioonides kasutada lisaks rida

dateext

Tulemuseks on nt

/var/log/apache2/access.log-20140922.gz

iPXE

Käesolevas tekstis mainitud dhcp serveri tarkvarana sobib kasutada paketti

# apt-get install isc-dhcp-server

ja tftpd serverina paketti

# apt-get install atftpd

iPXE tarkvara paketist

# apt-get install ipxe

Tööpõhimõte

Kui on kasutada nö tavalise PXE toega võrgukaardiga arvuti, siis üks viis iPXE tarkvara kasutamiseks on laadida see dhcp + tftp serverilt, nt sellise sektsiooniga

host hp.auul {
  hardware ethernet 64:31:50:6c:c0:b4;
  fixed-address 192.168.10.41;
  option broadcast-address 192.168.10.255;
  option routers 192.168.10.254;

  filename "undionly.kpxe";
  next-server 192.168.10.10;
  option domain-name-servers 10.192.0.53;
}

kus

  • undionly.kpxe - paketist 'apt-get install ipxe'

Tulemusena ilmub vastava arvuti ekraanile iPXE ja Ctrl-B abil saab siseneda iPXE keskkonda. Nt võrgust Debian Jessie installeri käivitamine toimub sedasi

chain http://ftp.imool.ee/pub/incoming/imre/dj-install.ipxe

kus pöördutaval aadressil on tekst sisuga

# cat dj-install.ipxe
#!ipxe
kernel http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
initrd http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
boot

Seejärel käivitab Debian installer. Paistab, et Jessie oskab iSCSI peale paigaldada.

'chain' ütlemist saab automatiseerida nt sellise DHCP serveri sektsiooniga

host hp.auul {
  hardware ethernet 64:31:50:6c:c0:b4;
  fixed-address 192.168.10.41;
  option broadcast-address 192.168.10.255;
  option routers 192.168.10.254;

  next-server 192.168.10.10;
  option domain-name-servers 10.192.0.53;
  if exists user-class and option user-class = "iPXE" {
    filename "http://ftp.imool.ee/pub/incoming/imre/ipxe";
  } else {
     filename "undionly.kpxe";
  }

}

Debian v. 8 Jessie kasutamine diskless iSCSI kliendina

Üks praktiline vajadus iPXE jaoks on iSCSI ressursi kautamine juurfailisüsteemina. Selleks sobib Debian v. 8 Jessie paigaldada eelmises punktis näidatud viisil ja failisüsteemid paigutada iSCSI peale. Paigaldatud arvuti käivitamiseks sobib kasutada sellist iPXE skripti

# cat scsi-boot.ipxe
#!ipxe

dhcp
set initiator-iqn iqn.1993-08.org.debian:01:6f3ac5994d50
sanboot iscsi:10.1.1.15::::iqn.2000-01.com.synology:syno-varundus-1.imretest.989d9f15bf

kus

  • TODO

mis laaditakse dchp serveri seadistusfailist reaga

..
filename "http://ftp.imool.ee/pub/incoming/imre/iscsi-boot.ipxe";
...

Kui Debian Jessie peaks bootimisel jääma initramfs prompti, siis võib aidata käsitsi sobivate argumentidega öelda

# iscsistart ...

või pärida iPXE käest

# iscsistart -b

kus

  • -t - ...

Kasulikud lisamaterjalid

D-Bus

D-Bus http://www.freedesktop.org/wiki/Software/dbus/ ...

D-Bus peal toimuva jälgimiseks sobib kasutada nt d-feet programmi

# apt-get install d-feet

Fail:D-feet-1.gif

PlayPause toggleb pausi ja jätkamise vahel, selle rakendamist võib klõpsida hiirega ja öelda Execute või käsurealt

$ dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return sender=:1.913 -> dest=:1.917 reply_serial=2

Samal ajal ütleb dbus-monitor filtreeridest välja töötavale vlc eksemplarile (:1.913) vastused

$ dbus-monitor "sender=:1.913"
...
method return sender=:1.913 -> dest=:1.978 reply_serial=2
signal sender=:1.913 -> dest=(null destination) serial=88 path=/org/mpris/MediaPlayer2; \
  interface=org.freedesktop.DBus.Properties;  member=PropertiesChanged
  string "org.mpris.MediaPlayer2.Player"
  array [
     dict entry(
        string "PlaybackStatus"
        variant             string "Paused"
     )
  ]
  array [
  ]

Kasulikud lisamaterjalid

Debian paigaldamine UEFI arvutisse

Olgu eesmärk paigadada UEFI firmwarega arvutisse Debian v. 8 Jessie, kusjuures kasutatakse kahe füüsilise kõvakettaga mdadm RAID1 lülitust. System setup keskkonnnas näidata moel või teisel, et arvuti töötab UEFI (mitte BIOS emulatsiooni vms) režiimis. Esimeseks boot valikuks valida UEFI shell. Shellis öelda

> fs0:\BOOT\EFI\BOOT...

Tulemusena käivitub Debian Installer (DI), kus tuleb seadistada selline kõvaketaste kasutus

  • /dev/sda1 ja /dev/sdb1 - EFI System Partitionid, 512 MB
  • /dev/sda2 ja /dev/sdb2 - mdadm mirror, 2 GB, kus hakkab paiknema /boot failisüsteem
  • /dev/sda3 ja /dev/sdb3 - mdadm mirror, 24 GB, kus hakkab paiknema operatsioonisüsteem, LVM köidetel
  • /dev/system/swap ja /dev/system/root - asub mdadm peal
  • /dev/sda4 ja /dev/sdb4 jne - juurutatakse operatsioonisüsteemi keskkonnas

Tundub, et selliselt ettevalmistatud kõvakettakasutusest saab DI hästi aru ja tulemusena tekib selline süsteem

# df
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/dm-0       11403544 938660   9862568   9% /
udev               10240      0     10240   0% /dev
tmpfs            1631032   8724   1622308   1% /run
tmpfs            4077572      0   4077572   0% /dev/shm
tmpfs               5120      0      5120   0% /run/lock
tmpfs            4077572      0   4077572   0% /sys/fs/cgroup
/dev/md0         1888268  35564   1738736   3% /boot
/dev/sda1         497696    148    497548   1% /boot/efi

Partitsioonid sellised

# parted /dev/sda p
Model: ATA ST2000NM0033-9ZM (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name      Flags
 1      1049kB  512MB   511MB   fat32        efsname   boot, esp
 2      512MB   2511MB  2000MB               sda2part  raid
 3      2511MB  26.5GB  24.0GB               sda3part  raid

Lõpuks tuleb kopeerida /dev/sdb1 peale /dev/sda1 failisüsteemi sisu (EFI GRUB bootloader).

# efibootmgr 
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0009,000D,0000,0001,0002
Boot0000* ATEN Virtual CDROM YS0J
Boot0001* IBA GE Slot 0300 v1404
Boot0002* P0: ST2000NM0033-9ZM175       
Boot0003* debian
Boot0009* UEFI: Built-in EFI Shell 
Boot000D* UEFI: ATEN Virtual CDROM YS0J

Arvuti kloonimine

Arvuti kloonimise tulemusena moodustatakse olemasoleva arvuti tarkvaralisest seistust, st operatsioonisüsteem ja seal töötavad rakendused, töötav koopia. Sõltuvalt asjaoludest, nt kui koopia töötab samas võrgus ja samal ajal lähtepunktiks oleva arvutiga, peab talle seadistama erineva ip aadressi. Kloonimise põhjuseks võib olla nt soov taha arenduspartnerile kättesaadavaks täpselt samasugune seis arvutist nagu on juba kasutada, sel juhul jääb ära vähem või rohkem keerukas arvuti ettevalmistamise aeg, mis kuluks operatsioonisüsteemi ja rakendusprogrammide seaditamisele.

Kloonimine failisüsteemi kopeerimise teel

Kloonimiseks on rikkalikult võimalusi, käesolev juhtum kirjeldab kloonimist failisüsteemi kopeerimise teel

  • valida välja sobiv klooniks saav arvuti, piisava protsessori, kõvakette, mälu, võrgu jms ressursiga
  • käivitada puhas uus klooniks saav arvuti (füüsiline või virtuaalne) systemrescue cd plaadilt
  • moodustada fdisk partitsioonid
  • tekitada lvm
  • tekitada failisüsteemid ja swap
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/system/root
# mkswap -f /dev/system/swap
  • ühendada failisüsteemid külge
# mkdir /mnt/root
# mount /dev/system/root
# mkdir /mnt/root/boot
# mount /dev/sda1 /mnt/root/boot
  • seadistada võrk
  • veenduda, et lähtepunktiks olevas arvutis on klooni riistvara jaoks vajalikud draiverid ja muuud komponendid olemas (LVM, mdadm tugi jms)
  • kopeerida rsync abil üle failisüsteem, vajalike eranditega (nt /proc, /sys, /home)
orig# rsync -avHXA --exclude --exclude-deleted --numeric-ids --exclude-from=/root/ex / root@x.x.x.x:/mnt/root/
  • tekitada käsitsi excludetud kataloogid
# mkdir proc sys home tmp
# chmod 1777 tmp
  • kohendada seadistusfaile
/etc/fstab
/etc/network/interfaces
/etc/udev/rules.d/70-persistent-net.rules
  • ühendada külgeühendatud failisüsteemid lahti
  • rebootida valikuda 'Boot Linux from hard disk'
  • paigaldada bootloader
# install-grub --recheck --no-floppy /dev/sda
  • bootida paigaldatud bootloaderi promptist käsitsi
grub> linux /vmlinuz... root=/dev/mapper/system-root ro
grub> initrd /initrd...
grub> boot
  • genereerida /boot/grub/grub.conf
# update-grub

Kopeeritud süsteemi korrastamine

Kopeeritud süsteemi edasiandmisel võib olla asjakohane pöörata tähelepanu sellistele asjaoludele, st kas ei anta edasi soovimatult palju andmeid

  • kasutajate kodukataloogid (.ssh, .pgpass jt)
  • root, postgres jt süsteemsete ja muidu alles jäänud kasutajate .bash_history failid
# history -c
# rm .bash_history
...
  • cron tööd (/etc/cron.*/*, crontab -l. /var/spool/cron ...)
  • /var/backups (passwd.bak, shadow.pak jt)
  • varunduse tarkvara agent (nt backupninja)
  • monitooringu tarkvara agent (nt zabbix)
  • liidestus AD vms keskse kasutajahalduse süsteemiga
  • konfiguratsioooni halduse agent (nt puppet)
  • logiserverisse logimine
  • /tmp, /var/tmp kataloogide sisu
  • /var/mail
  • /usr/src

USB data bridge kasutamine

USB data bridge on kahe otsaga ja keskel asuvad punniga USB kaabel, mille abil saab kaks arvutit omavahel ühendada andmevahetuseks. Üks populaarne kaabel paistab välja sedasi

# lsusb 
Bus 001 Device 005: ID 067b:2501 Prolific Technology, Inc. PL2501 USB-USB Bridge (USB 2.0)

Tundub, et Debiani tuumas on mitme sarnase kaabli tugi, aga mitte päris PL2501 oma. Toe tekitamist kirjeldatakse aadressil https://lkml.org/lkml/2012/7/23/106. Muudatuste tegemiseks sobib kasutada tekstis http://www.auul.pri.ee/wiki/Operatsioonis%C3%BCsteemi_Debian_GNU/Linux_paketihalduse_kasutamine#Tuuma_kompileerimine kirjeldatud protseduuri.

Peale mooduli laadimist tekib võrguseade

# ifconfig usb0
usb0      Link encap:Ethernet  HWaddr a2:68:73:e5:d6:6e  
         inet6 addr: fe80::a068:73ff:fee5:d66e/64 Scope:Link
...

Kasulikud lisamaterjalid

Single user ehk ühekasutaja režiim

Juhtumil, kui arvutisse ei saa root kasutajana sisse logida ja pole ka root parooli teada, et konsoolilt sisse logida, saab kasutada single user režiimi ja seal root parool muuta. Selleks tuleb

  • GRUB bootloaderis liikuda nooltega meelepärase boot valiku peale
  • vajutada e nagu edit (see on ekraani all kirjas)
  • liikuda kernel parameetri juurde ja lisada kõige lõppu juurde tühik ning seejärel
init=/bin/bash
  • valida ctrl-x vms (see on ekraani all kirjas) ja arvuti bootida

Tulemusena jõuab arvuti välja nn single user prompti. Selles olekus töötab arvutis suhteliselt vähe protsesse, juurfailisüsteem on monteeritud read-only olekus, võrk on seadistamata jne. root kasutaja või mõni muu kasutaja parooli seadmiseks tuleb

  • monteerida juurfailisüsteem read-write olekusse
# mount -o rw,remount /
# passwd kasutajanimi
# sync
# mount -o ro,remount /
# sync
# oodata 30 sekundit
# reboot -f

Seejärel peaks saama seda uut parooli kasutada.

Ksplice kasutamine

Kasulikud lisamaterjalid

Arvuti ressursikasutuse kaardistamine

Protsessid

# ps auxef

Avatud failid

# lsof -n -p PID
# lsof -n -u USER

Võrgusoketid

# lsof -i TCP
# lsof -i UDP
# lsof -U - unix domain sockets

Semafoorid

# ipcs -u

------ Shared Memory Status --------
segments allocated 2
pages allocated 4309411
pages resident  4136103
pages swapped   169536
Swap performance: 0 attempts     0 successes

------ Semaphore Status --------
used arrays = 64
allocated semaphores = 1083

------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

Nt sellise skript kasutamine cron tööna kord minutis võiks koguda midagi, lisaks sar andmestikule

# cat /opt/osres/bin/osres.sh 
#!/bin/bash

AEG=`date +%Y%m%d-%H%M%S`;
LOG="/var/log/osres";


if test -f /tmp/osres.lock; then
  echo "protsess kaib" >> /tmp/osres.log
#  echo "kaivitame crontabist osres" >> /tmp/osres.log
else

  touch /tmp/osres.lock
  echo "protsess kaivitatakse" >> /tmp/osres.log

  timeout 20 ps auxef >> ${LOG}/ps-auxef_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 lsof -n >> ${LOG}/lsof-n_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 ipcs -a >> ${LOG}/ipcs-a_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 ipcs -u >> ${LOG}/ipcs-u_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 netstat -anp >> ${LOG}/netstat-anp_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 conntrack -L >> ${LOG}/conntrack-L_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 touch /var/lib/postgresql/iocheck/io_${AEG}
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 ping -c 4 127.0.0.1 > ${LOG}/ping_127.0.0.1_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 ping -c 4 10.0.6.73 > ${LOG}/ping_10.0.6.73_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 ssh root@127.0.0.1 "date > ${LOG}/touch-over-ssh_${AEG}.log"
  AEG=`date +%Y%m%d-%H%M%S`;
  timeout 20 dig @10.0.9.4 auul.pri.ee soa >> ${LOG}/dig-10.0.9.4-auul.pri.ee-soa_${AEG}.log
  AEG=`date +%Y%m%d-%H%M%S`;
  export PGPASSWORD="xxx"
  timeout 20 psql -h 10.0.6.174 -U monitoring baas -c "select now();" >> ${LOG}/psql-10.0.6.174-monitoring-portaal_${AEG}.log
  
  rm /tmp/osres.lock

fi

Capabilities

Linuxi tuumas on üldotstarbeline capability süsteem, mille abil nt saab protsesside anda erinevaid privileege. Nt üks selline capabiliti on dac_override, mis seisneb selles, et root kasutajal on õigus sõita üle enamusest piirangutest, nt saab root töötada kasutajale kuuluvate failidega. Kui root kasutajale ei anna apparmor profiil erilisi privileege, siis root kasutaja on enam-vähem samaväärne tavakasutajaga, mille nimeks on 'root'. St tal ei ole õigust nt teiste kasutajate faile lugeda. Selleks, et root kasutajale kehtestatud apparmor profiili tingimustes see ülesõitmise privileeg tagasi tekiks sobib kasutada profiilis rida 'capability dac_override'. Capability süsteem on üldotstarbeline, ta ei ole LSM komponent, nt üks tema esinemise koht on selles, et uuemal ajal /bin/ping ei ole enam setuid

# ls -ld /bin/ping
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

# getcap /bin/ping
/bin/ping = cap_net_raw+ep

# getfattr -d -m "^security\\." /bin/ping
getfattr: Removing leading '/' from absolute path names
# file: bin/ping
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=

Kusjuures stat programm kasutab nn legacy syscall'i ja ei esita capabilities kohta infot (olevat olemas ka statx)

Failile cap seadistamiseks sobib öelda nt

# setcap cap_net_raw,cap_setuid,cap_setgid+ep /tmp/capable

kus

  • +ep - kehtestatud

Kasulikud lisamaterjalid

ConsoleKit

2017 seisuga paistab see olevat vananenud tehnoloogia, kasutatakse systemd-logind.

Kasulikud lisamaterjalid

  • TODO

Võrgukaart - CPU affinity

TODO

Järgneval viisil tegutsemiseks on vaja ircbalance deemoni töö lõpetada

# systemctl stop irqbalance

Võrgukaardi multi-queue omadused

# ethtool -l eth0
Channel parameters for eth0:
Pre-set maximums:
RX:		8
TX:		8
Other:		0
Combined:	0
Current hardware settings:
RX:		2
TX:		2
Other:		0
Combined:	0

Võrgukaardi ja cpu ja interrupt vahelised seosed

# cat /proc/interrupts | egrep "CPU|eth"
        CPU0      CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  48:      0         0          0         38          0    1339257     461106          0   PCI-MSI 2097152-edge      eth0-0
  49:      0         0          1         67    2071270          0          0     143901   PCI-MSI 2097153-edge      eth0-1
  57:      0         0    1738287          4          0          0          0          0   PCI-MSI 2099200-edge      eth1-0
  58:      0   3918708          0         38          0          0          0          0   PCI-MSI 2099201-edge      eth1-1

kus

  • 48, 49 jnt on interrupt number
# cat /proc/irq/57/smp_affinity
04

kus

  • hex 04 vastav väärtus on bin 0000 0100
  • bin väärtuses olev paremalt kolmandal positsioonil olev '1' tähistab süsteemis olevat kolmandat protsessorit, st alates nullist lugedes CPU2

Affinity muutmiseks, st selle muutmiseks, milline cpu tegeleb millise võrgukaardiga (või võrgukaardi queue'ga) sobib öelda uus cpu number, nt seostamiseks CPU3 protsessoriga

# echo 08 > /proc/irq/57/smp_affinity

CPU numeratsioon

  • 0000 0001 (bin) ehk 01 (hex) - esimene (CPU0)
  • 0000 0010 (bin) ehk 02 (hex) - teine (CPU1)
  • 0000 0100 (bin) ehk 04 (hex) - kolmas (CPU2)
  • ...
  • 1000 0000 (bin) ehk 80 (hex) - kahesas (CPU7)

Tundub, et võrgukaardi queue'de arvu muutmiseks sobib öelda

# ethtool -L eth0 tx 2
# ethtool -L eth0 rx 2

Siin kirjeldatud viisil tehtud seadistused ei kehtestu peale rebooti.

Watchdog

TODO

Kasulikud lisamaterjalid

Softdog

TODO

Misc

  • Kopeerimise kiiruse kontrollimine pipe peal
# apt-get install pv
# ssh root@192.168.112.113 'cd /tmp && dd if=/dev/pve/vm-109-disk-1 bs=1M' | pv -L 15m | dd of=/dev/kvmvg/vm-1019-disk-1 bs=1M

Viber

Viber https://www.viber.com/ on suhtlemistarkvara, paigaldamiseks sobib öelda nt Debian v. 8 ja v. 9 keskkonnas

# apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0
# apt-get install libqt5gui5
# dpkg -i viber.com

ja käivitamiseks

$ /opt/viber/Viber

Kasulikud lisamaterjalid

KeePassX

MÄRKUS 20190126 - tundub, et õigem projekt on https://en.wikipedia.org/wiki/KeePassXC (C nagu community ja paketinimi keepassxc)

# apt-get intall keepassx

andmebaasi failinime lõpp on .kdbx

Password Gorilla

# apt-get install password-gorilla

andmebaasi failinime lõpp on .psafe3

2018 - Debian v. 9 Stretch paigaldamine

Installeris menüüde läbimise näide

  • Installeri keel - "English"
  • Select your location: Other > Europe > Estonia
  • Configure locales - United States - en_US.UTF-8
  • Keymap to use - Estonian
  • Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)
  • Domain name - sise.moraal.ee
  • Root password - parool
  • User name - nimi
  • User password - parool
  • partitsioonimine (nt efi + lvm)
  • Configure package manager - Estonia - ftp.ee.debian.org
  • HTTP proxy - tühi
  • Contest - no
  • Software selection - OpenSSH server ja standard system utilities
  • Reboot

2019 - Debian v. 10 Buster paigaldamine

Installeris menüüde läbimise näide

  • Installeri keel - "English"
  • Select your location: Other > Europe > Estonia
  • Configure locales - United States - en_US.UTF-8
  • Keymap to use - Estonian
  • Hostname - ühekohalinenimi (vist tulemus sõltub kas võrk eelnevalt just seadistati dhcp'ga, antud näites nii oli)
  • Domain name - sise.moraal.ee
  • Root password - parool
  • User name - nimi
  • User password - parool
  • partitsioonimine (nt efi + lvm)
  • Configure package manager - Estonia - ftp.ee.debian.org
  • HTTP proxy - tühi
  • Contest - no
  • Software selection - OpenSSH server ja standard system utilities
  • Reboot

linux-perf

Paigldamine

Paigaldamiseks sobib öeld

# apt-get install linux-perf

Kasutamine

perf.data faili salvestamine käesolevasse kataloogi

# /usr/bin/perf record -e sched:sched_process_exec -a

Salvestatud andmete loetaval kujul esitamine

# /usr/bin/perf script --header

Kasulikud lisamaterjalid

Wireguard

Debian v. 10 Buster

TODO

Lisada buster-backports repo

TODO

Paigaldada buster-backports repost wireguard

kus

  • paigaldatakse wireguard-dkms wireguard-tools wireguard
  • paigaldatakse hulka bui

Debian v. 11 Bullseye

# apt-get install wireguard

MBR -> GPT partitsioonitabeli teisendamine

Tööpõhimõte

  • MBR partitsioonitabel hõlvab tavalisel lihtsal juhul plokkseadme esimsesed 512 Baiti
  • GPT partitsioonitabel hõlvab tavaliselt plokkseadme esimsed ja viimased 34 * 512 Baiti
  • tundub, et seoses uuema ajal 1 MBait piirile asjade sättimisega algab nii MBR kui GPT puhul esimene partitsioon 2048'ndal sektoril; st plokkseadme alguses on rikkalikult vaba ruumi teisendatud gpt jaoks; probleemiks võib olla, plokkseadme lõpus pole piisavalt vaba ruumi backup gpt jaoks
  • sektori suurus on 512 Baiti
  • MBR partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 16 baiti, millest 4 baiti ehk 16 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^32*512/1024^3 | bc -> 2048 Gigabyte)
  • GPT partitsioonitabelis on ühte partitsiooni puudutava sissekande suurus 128 baiti, millest 8 baiti ehk 64 bitti on kasutusel partitsiooni moodustavate sektorite hulga tähistamiseks (# echo 2^64*512/1024^3 | bc -> väga palju)
  • muudatuse käigus partitsioone moodustavaid plokke plokkseadmel ümber ei paigutata
  • kui mbr partitsioonitabelis on kasutusel ainult primaarsed partitsioonid ning ilma nö aukudeta partitsioonide vahel, siis on tulemuseks samuti ilma aukudeta üksteisele järgnevad gpt partitsioonid
  • antud tekst ei kästile seda, aga boot kood asub mbr puhul esimeses 446 baidis
  • gpt puhul põhimõtteliselt boot koodi ei ole kasutusel uefi põhises süsteemis (kasutatakse efi partitsiooni)

Teisendamine

Olgu lähtepunktiks selline plokkseadme kasutus, mbr partitsioonitabel

# fdisk /dev/vdc -l

Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdaa60afa

Device     Boot Start      End  Sectors  Size Id Type
/dev/vdc1        2048 33097727 33095680 15.8G 83 Linux

ning partitsioonil üks ext4 failisüsteem, mis on monteeritud

# df -h -T /dev/vdc1
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vdc1      ext4   16G  1.7G   13G  12% /mnt/vdc1

Eesmärk on teisendada partitsioonitabel gpt kujule säilitades seejuures failisüsteemi sisu. Selleks sobib kasutada sellist protseduuri, esmalt monteerida failisüsteem lahti

# umount /dev/vdc1

seejärel teha mbr partitsioonitabelist varukoopia

# dd if=/dev/vdc of=backup.mbr bs=512 count=1

gdisk ehk 'gpt fdisk' programm sobib gpt partitsioonitabeli haldamiseks, sealhulgas vaikimisi ta püüab mbr partitsioonitabeli teisendada gpt kujule. See on tehniliselt tavaliselt võimalik kuna mbr asub plokkseadme alguses ja seal on nö kasutamata ruumi.

# gdisk /dev/vdc
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/vdc.
The operation has completed successfully.

kus

  • programm tuvastab esmalt, et plokkseadmel on kasutusel MBR partitsioonitabel
  • w abil tehakse muudatus
  • Y abil kirjutatakse muudatus üles

Kuna Linux operatsioonisüsteemi puhul eristatakse plokkseadmel ja mälus olevat seisu plokkseadme kasutusest, siis tuleks täielikuks muudatuse kehtestamiseks teha lihtsalt reboot arvutile või öelda

# partprobe /dev/vdc

Tulemusena kasutatakse plokkseadmel gpt partitsioonitabelit

# fdisk /dev/vdc -l

Disk /dev/vdc: 16 GiB, 17179869184 bytes, 33554432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 469E6D74-0022-4200-B0FD-2C5FAED7DCAD

Device     Start      End  Sectors  Size Type
/dev/vdc1   2048 33302527 33300480 15.9G Linux filesystem

Muudatuse tagasivõtmine

Muudatuse tagasivõtmiseks sobib öelda (kuigi nii jääb alles plokkseadme lõppu gpt backup; teatud bios'ide puhul võib see tekitada probleeme, bios on agar ja taastab selle alusel primaarse gpt partitsioonitabeli)

# umount /mnt/vdc1
# dd if=backup.mbr of=/dev/vdc bs=512 count=1
# partprobe /dev/vdc
# mount /dev/vdc1 /mnt/vdc1

Kasulikud lisamaterjalid

Kasutajakonto operatsioonid

Konto lukustamine kusjuures see takistab ainult parooliga autentimist, nt ssh võtmega saab sisse

# passwd -l kasutajanimi
# passwd -u kasutajanimi

Konto expire, see takistab igasuguseid kanaleid (eeldab, et pam vms on seadistatud expirega tegelema)

# usermod --expiredate 1 kasutajanimi

grep kasutamine

Perl regulaaravalidsega

TODO

Järjestikulised grep'id ei toimi vahel, aitab nt

# tail -f /var/log/pveproxy/access.log  | grep --line-buffered "PUT" | grep --line-buffered firewall | grep --line-buffered option

Debian v. 12 ext4 failisüsteem read-only olekus

Tundub, et kõige tavalisem Debian v. 12 paigaldus, mis kasutab ext4 failisüsteemi (lvm kihi peal) käitub read-only olekus selliselt, et avatud failidesse mingil määral näiliselt kirjutamised jätkuvad. Seejuures kirjutajale jääb mulje, et kirjutamine õnnestus lõpetada edukalt. (Samal ajal uusi faile ei saa tekitada, olemasolevate failide muutmisi ei saa alustada.) Nähtuse jälgimiseks-taaskordamiseks-esilekutsumiseks sobib selline protseduur

1. Proxmox PVE keskkonnas töötab lvm põhisel storage'l Debian v. 12 virtuaalne arvuti; arvutis on kasutusel lvm ja sellel ext4 failisüsteem (lvm ei ole oluline)

2. Alustatakse eemalt pv abil piiratud kiirusega faili kopeerimist (etteruttavalt on siin toodud ära ka kopeeriv cat programmi edukas exit code; fail.img-4 on 36 MB suur)

$ cat fail.img-4 | ssh root@192.168.110.246 'pv -q -L3500K | cat > /root/tere4; echo $?' 
0

3. umbes kolmveerandi kopeerimise pealt viiakse PVE host peal virtuaalsele arvutile vastav plokkseade read-only olekusse

# lvchange -pr vg_data/vm-615-disk-2

4. ootus on, et virtuaalne arvuti reageerib sellele oma juurfailisüsteemi read-only olekusse lülitamisega

5. ootus on, et kopeerimine lõpeb edukalt

6. ootus on, et vaatamata read only olekule Debian operatsioonisüsteemi saab veel natuke kasutada, ja küsida (tulemus klapib orig fail.img-4 failiga)

# sha256sum /root/tere4

7. virtuaalne arvuti stop'itakse PVE abil

8. viiakse plokkseade tagasi rw režiimi

# lvchange -prw vg_data/vm-615-disk-2 

9. käivitatakse virtuaalne arvuti

10. kõnealune fail, mis näiliselt õnnestus edukalt kopeerida, on väiksema suurusega (või suurusega null)

Märkused

  • analoogselt käitub Ubuntu v. 22.04
  • Ubuntu v. 22.04 (ja tõenäoliselt Debian v. 12) + ext3 failisüsteem nö hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu
  • Vanemad Ubuntu ja Debian versioonid hoiavad kinni read-only lubadusest ja sellist nähtust ei toimu
  • PVE host peal lvchange ütlemisele alternatiiviks on virtuaalse arvuti siseselt öelda
# echo u > /proc/sysrq-trigger
  • lisaks PVE keskkonnale toimub analoogiline nähtus vmware virtuaalse arvutiga

machine-id reset

# rm /etc/machine-id /var/lib/dbus/machine-id
# dbus-uuidgen | tee /etc/machine-id > /var/lib/dbus/machine-id
# chmod 0444 /etc/machine-id
# ls -ld /etc/machine-id /var/lib/dbus/machine-id
-r--r--r-- 1 root root 33 Apr  7 19:18 /etc/machine-id
-rw-r--r-- 1 root root 33 Apr  7 19:18 /var/lib/dbus/machine-id

Kasulikud lisamaterjalid