Operatsioonisüsteemi Ubuntu kasutamine

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Alglaadimine

Selleks, et konsoolilt bootimise käigus esitatud teateid ära ei kustuks, sobib /etc/init/tty1.conf failis kasutada rida

exec /sbin/getty --noclear -8 38400 tty1

PPA repositooriumid

PPA (Personal Package Archive) ...

# apt-get install python-software-properties

Lisada repositoorium

# add-apt-repository ppa:cinelerra-ppa/ppa

kasutada

# apt-get update
# apt-get install cinerella-cv

PPA eemaldamiseks

# add-apt-repository --remove ppa:cinelerra-ppa/ppa

Locales

Tundub, et Ubuntu puhul ei toimib käsk nagu Debianis, st ei ava curses haldusliidest

# dpkg-reconfigure locales

Paistab, et lokaadid on kirjas kataloogis

/var/lib/locales/supported.d

Lokaadi lisamiseks sobib öelda

# locale-gen en_US

Lokaadi eemaldamiseks, õieti näidatud lokaatide juurutamiseks, sobib öelda

# locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
...
# locale-gen --purge en_US.UTF-8
Generating locales...
  en_US.UTF-8... done
Generation complete.
# locale -a
C
C.UTF-8
en_US.utf8
POSIX

Ubuntu v. 12.04 Apache2

RPAF kasutamisel peab arvestama, et õige on kasutada midagi sellist

<IfModule mod_rpaf-2.0.c>
  RPAFenable On
  RPAFsethostname On
  RPAFproxy_ips 127.0.0.1 ::1 10.0.6.51
  RPAFheader X-Forwarded-For
</IfModule>

Käivitusskriptide kasutamine

Esmalt peab olema /etc/init.d kataloogis nö tavaline käivitusskript. /etc/rc2.d jt linkide tekitamiseks sobib öelda nt

# update-rc.d pgqd defaults 91

Eemaldamiseks

# update-rc.d -f pgqd remove

Ubuntu versiooni uuendamine

Kui operatsioonisüsteemist on järgmine versioon kasutada, siis sisselogimisel öeldakse nt nii

Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-27-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

173 packages can be updated.
81 updates are security updates.

New release '13.10' available.
Run 'do-release-upgrade' to upgrade to it.

You have new mail.
Last login: Sun Oct 20 18:33:21 2013 from moraal.auul
# do-release-upgrade
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [198 B]                                                                                                       
Get:2 Upgrade tool [1,152 kB]                                                                                                              
Fetched 1,152 kB in 0s (0 B/s)                                                                                                             
authenticate 'trusty.tar.gz' against 'trusty.tar.gz.gpg' 
extracting 'trusty.tar.gz'

Reading cache

Checking package manager
 
Continue running under SSH? 

This session appears to be running under ssh. It is not recommended 
to perform a upgrade over ssh currently because in case of failure it 
is harder to recover. 

If you continue, an additional ssh daemon will be started at port 
'1022'. 
Do you want to continue? 

Continue [yN] y
Starting additional sshd 

To make recovery in case of failure easier, an additional sshd will 
be started on port '1022'. If anything goes wrong with the running 
ssh you can still connect to the additional one. 
If you run a firewall, you may need to temporarily open this port. As 
this is potentially dangerous it's not done automatically. You can 
open the port with e.g.: 
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 

To continue please press [ENTER]

Skype

Skype paigaldamiseks sobib oelda

# dpkg --add-architecture i386
# add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
# apt-get update && sudo apt-get install skype

Kasulikud lisamaterjalid

Ubuntu Live kasutamine teise arvuti võrgust paigaldamisel

Omistada ubuntu kasutajale parool, logida sisse ja minna ruuduks

$ sudo -i
#

Veenduda võrguühenduste olemasolus

# nmcli -p dev
===========================================
             Status of devices
===========================================
DEVICE     TYPE              STATE        
-------------------------------------------
eth0       802-3-ethernet    connected    
wlan0      802-11-wireless   connected  
# ifconfig 
eth0      Link encap:Ethernet  HWaddr 1c:75:08:ba:3d:1d  
          inet addr:192.168.105.254  Bcast:192.168.105.255  Mask:255.255.255.0

Paigaldada tarkvara

# apt-get install openssh-server
# apt-get install tftp-hpa tftpd-hpa isc-dhcp-server

Logida teisse arvutisse

# ssh priit@imool.ee -R 22221:127.0.0.1

ja sealt tagasi

# ssh ubuntu@127.0.0.1 -p 22221

Seadistada DHCPD server

# egrep -v "^$|^#" /etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
shared-network auul {
option domain-name "auul";
option domain-name-servers 8.8.8.8;

subnet 192.168.105.0 netmask 255.255.255.0 {
    range 192.168.105.200 192.168.105.224;
    option routers 192.168.105.254;
    default-lease-time 600;
    max-lease-time 7200;
    filename "pxelinux.0";
    next-server 192.168.105.254;
  }
}

Valmistada ette tftpd abil välja jagatavad andmed sarnaselt

# ls -ld /var/lib/tftpboot/*
drwxr-xr-x 3 root root       60 Aug 11 20:37 /var/lib/tftpboot/debian-installer
drwxr-xr-x 3 root root       60 Aug 11 20:37 /var/lib/tftpboot/ftp.nl.debian.org
-rw-r--r-- 1 root root     3656 Aug 11 20:38 /var/lib/tftpboot/index.html
-rw-r--r-- 1 root root 10461419 Aug 11 20:38 /var/lib/tftpboot/initrd.gz
-rw-r--r-- 1 root root  2512736 Aug 11 20:38 /var/lib/tftpboot/linux
-rw-r--r-- 1 root root    26474 Aug 11 20:38 /var/lib/tftpboot/pxelinux.0
drwxr-xr-x 2 root root       60 Aug 11 20:37 /var/lib/tftpboot/pxelinux.cfg

Seaditada ruuting ja maskeraad

# sysctl -w net.ipv4.ip_forward=1
# iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 172.16.1.100

Märkused

  • Ubuntu operatsioonisüsteemi jagatakse mitmel kujul, kas töötav arvuti on server või desktop saab nt hinnata faili /etc/motd sisu alusel, serveril on pikem jutt.
  • Graafilise liidese töötamise väljalülitamine, Ubuntu 14.04
# echo manual > /etc/init/ligthdm.override

Tuumadega töötamine

Ubuntu tuumaga seotud failid asuvad failisüsteemis kolmes kataloogis

  • /boot/vmlinuz-3.19.0-65-generic - tuum
  • /boot/initrd.img-3.19.0-65-generic - initramdisk
  • /lib/modules/3.19.0-65-generic - dünaamilised moodulid
  • /lib/firmware/3.19.0-65-generic - firmware

Kui tuuma uuendatakse ja soovitakse igaks juhuks säilitada eelmise tuuma kasutamise võimalus, siis peab olema lokaalse arvuti failisüsteemist nende kasutamise võimalus (sh kaks esimest peabvad olema grubile kättesaadavad, nt kataloogis /boot/backup).

Vanade versioonide failisüsteemist eemaldamine

Tundub, et Ubuntu puhul uuenevad üsna tihti tuumad ja vaikimisi võib /boot failisüsteem küllaltki kiirelt täis saada

# dpkg -l linux-image-3.2.0-\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                            Version                Description
+++-===============================-======================-=========================================================
ii  linux-image-3.2.0-23-generic    3.2.0-23.36            Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-52-generic    3.2.0-52.78            Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-55-generic    3.2.0-55.85            Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-61-generic    3.2.0-61.93            Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-65-generic    3.2.0-65.99            Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-67-generic    3.2.0-67.101           Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-69-generic    3.2.0-69.103           Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-70-generic    3.2.0-70.105           Linux kernel image for version 3.2.0 on 64 bit x86 SMP

Selle vastu aitab öelda

# apt-get autoremove

Või pigem, ja ilma -s abita lõpuks

# for i in 23 52 55 61 65 67; do apt-get purge linux-image-3.2.0-$i-generic -s; done

LTS ja non-LTS versioonide kasutamine

Aadressil https://wiki.ubuntu.com/Kernel/LTSEnablementStack kirjeldatakse erinevate tuumade kasutamise võimalusi. Lühidalt seisneb võimalus ja probleem selles, et teatud nn point reliiside puhul, nt 12.04.2, 3 ja 4 install meediat kasutades paigladatakse 9 kuu pikkuse support ajaga tuum. Et üldse nii tehakse, põhjuseks on pakkuda kasutajatele võimalus värskema kerneli võimalus.

Kui tuuma aeg saab täis, siis ütleb arvuti sisselogimisel

Your current Hardware Enablement Stack (HWE) is no longer supported
since 2014-08-07.  Security updates for critical parts (kernel
and graphics stack) of your system are no longer available.

For more information, please see:
http://wiki.ubuntu.com/1204_HWE_EOL

To upgrade to a supported (or longer supported) configuration:

* Upgrade from Ubuntu 12.04 LTS to Ubuntu 14.04 LTS by running:
sudo do-release-upgrade 

OR

* Install a newer HWE version by running:
sudo apt-get install linux-generic-lts-trusty linux-image-generic-lts-trusty

and reboot your system.

Tuuma uuendamine toimub nagu arvuti ütleb

# apt-get install linux-generic-lts-trusty linux-image-generic-lts-trusty

Kui lähtepunktiks oli nt tuum

# uname -a
Linux pia-pg3a 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:01:04 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

võib olla tulemusena tuum

# uname -a
Linux pia-pg3b 3.13.0-85-generic #129~precise1-Ubuntu SMP Fri Mar 18 17:38:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Analoogiliselt on Ubuntu v. 14.04 juures kasutada paketid

# apt-get install linux-image-generic-lts-xenial linux-generic-lts-xenial

Paistab, et Ubuntu 18.04 + hwe tuuma kasutamine toimub pisut erinevalt, https://www.omgubuntu.co.uk/2019/02/ubuntu-18-04-2-lts-released ja sobib öelda

# apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

18.04 HWE -> LTS

lts paigaldamine

# apt-get install linux-image-virtual  linux-headers-virtual  linux-virtual linux-headers-generic

HWE eemaldamine

# apt-get purge linux-generic-hwe-18.04 linux-headers-generic-hwe-18.04 linux-headers-5.0.0-32 linux-headers-5.0.0-32-generic linux-modules-extra-5.0.0-32-generic linux-modules-5.0.0-32-generic linux-image-5.0.0-32-generic linux-image-5.0.0-23-generic linux-headers-5.0.0-23 linux-headers-5.0.0-23-generic linux-image-5.0.0-23-generic linux-modules-5.0.0-23-generic  linux-modules-extra-5.0.0-23-generic

Ei tohiks midagi 5.0.x asjadest paista

# dpkg -l \*linux\* | grep ii

EDGE kasutamine

Tundub, et nn tuuma edge versioon on vahel kõige uuem, vahel sama mis HWE. EDGE ei ole iseseisev pakett, aga virtuaalne pakette, mis sõltuvusena paigaldab kõige uuema kättesaadava nn tavalise tuuma paketi, nt 20180313 linux-image-4.13.0-36-generic.

# apt-cache show linux-image-generic-hwe-16.04-edge
Package: linux-image-generic-hwe-16.04-edge
Architecture: amd64
Version: 4.13.0.36.37
Priority: optional
Section: kernel
Source: linux-meta-hwe-edge
Origin: Ubuntu
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 10
Depends: linux-image-4.13.0-36-generic, linux-image-extra-4.13.0-36-generic, linux-firmware
Recommends: thermald
Filename: pool/main/l/linux-meta-hwe-edge/linux-image-generic-hwe-16.04-edge_4.13.0.36.37_amd64.deb
Size: 2542
MD5sum: 8030baa345e98271eb83a7768071eaf2
SHA1: 6f42f7277228a12d67cbc1d6a98fffe51c17d2a7
SHA256: 2065c3fe3d38a95f61afe26c3b53426fd9870226291137a8a6ea43b7daae6de1
Description-en: Generic Linux kernel image
 This package will always depend on the latest generic kernel image
 available.
Description-md5: 6d632579c673704f44b290b16e7dbfd1
Supported: 5y

edge tuuma minor versiooninumber tavaliselt on iseseisev, ja nö tavaline tuum mis sõltuvusena paigaldatakse on iseseisev

# uname -a
Linux imre-laptop 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# dpkg -l linux-image-4.13.0-36-generic
ii  linux-image-4.13.0-36-generic   4.13.0-36.40~16.04.1   amd64     Linux kernel image for version 4.13.0 on 64 bit x86 SMP

UFW - Uncomplicated Firewall

UFW reeglid rakenduvad järjekorras, esimene paketti tabev reegel töötab. Vaikimisi on ufw tarkvara olemas aga mitte-aktiive

# ufw status
Status: inactive

Reegli lisamiseks sobib öelda

# ufw allow proto tcp from 10.80.102.35 to any port 22
Rule added

Reeglite aktiveerimiseks sobib öelda

# ufw enable

Reeglite nimekirja esitamiseks

# ufw status numbered

Lisatud reeglid asuvad failis

 /lib/ufw/user.rules

Reegli eemaldamiseks sobib öelda

# ufw delete allow proto tcp from 10.80.102.35 to any port 10050

Reegite järjekorraga otseselt ei saa tegeleda, st olemasolevate reelite järjekorda muuta, aga saab reegli lisada näidatud postitsioonile

# ufw insert 1 allow proto tcp from 192.168.78.20 to any port 22

Reeglit saab kustutada jrk numbri alusel (number 'ufw status numbered' käsu väljundist)

# ufw delete 2

Apport

Tundub, et Apport https://wiki.ubuntu.com/Apport on progressiivne Ubuntu rakendus, mis võimaldab tegeleda automaatselt crashidega. Selles mõttes peab tema kasutamisega olema ettevaatlik, et ta /var/crash alla kirjutades ei kirjutaks failisüsteemi täis. Apport toe sisselülitamine toimub seadistusfailist

# grep enabled /etc/default/apport 
enabled=1

Probleemid

  • mingil hetkel ei saa 12.04 peal lvm snapshotte eemaldada
# lvremove /dev/system/root_20150320_tootanud 
 Can't remove open logical volume "root_20150320_tootanud"
  • vaikimisi konfiga, st os prober tegemisel (nt apt-get dist-upgrade käigus) öeldakse vahel (vist siis kui on lvm snapshotid või nad on inactive olekus st täis saanud)
..
Found memtest86+ image: /memtest86+.bin
 /dev/dm-8: read failed after 0 of 4096 at 0: Input/output error
rmdir: failed to remove `/var/lib/os-prober/mount': Device or resource busy
grub-probe: error: unknown filesystem.
done
...

kusjuures vedelema jääb selline mount

# df
...
grub-mount  14098792   7340152   6042456  55% /var/lib/os-prober/mount
# umount /var/lib/os-prober/mount
umount: /var/lib/os-prober/mount: not mounted

Vaatamata veateatele ei ole enam seda näha df väljundis. Üldiselt aitab selle vastu os probemine välja lülitada grub seadistusest

GRUB_DISABLE_OS_PROBER=true
  • lvm snapshot kasutamisel vahel bootimisel arvuti satub initramfs shelli; aitab lvm utiliidist vgchange -a y ütlemine ja edasi bootimine

Serial konsooli kasutamine

Moodustada seadistusfail

# cat /etc/init/ttyS0.conf
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[12345]
stop on runlevel [!12345]

respawn
exec /sbin/getty -L 115200 ttyS0 vt102

ning käivitada

# start ttyS0

Vajadusel sarnaselt ttyS1 jaoks.

Paketihaldus

Tundub, et Ubuntu vaikimisi kasutab erinevaid repository komponente erinevatel ridadel sources.list failis, nt

deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted
deb http://us.archive.ubuntu.com/ubuntu/ trusty universe
deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse

ja samaväärne oleks kasutada ühte rida

deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

Peale pakettide uuendamist saab sedasi teada, kas on vajadust arvutit rebootida

# cat /run/reboot-required.pkgs
libssl1.0.0
linux-image-3.13.0-79-generic
linux-base
linux-base

Samad failid on näha ka /var/run all kuna see on symlink /run kataloogile

# ls -ld /var/run
lrwxrwxrwx 1 root root 4 Dec 31  2014 /var/run -> /run
# ls -ld /var/run/reboot-required*
-rw-r--r-- 1 root root 32 Mar 18 00:36 /var/run/reboot-required
-rw-r--r-- 1 root root 64 Mar 18 00:36 /var/run/reboot-required.pkgs

Vanade repositooriumide kasutamiseks sobib kasutada sarnast rida /etc/apt/sources.list failis

# cat /etc/apt/sources.list
deb http://old-releases.ubuntu.com/ubuntu/ lucid main restricted universe multiverse

Ubuntu mirrori pidamine

Kõige olulisemad Ubuntu mirrorid, ja samuti on nad need mida peegeldatakse, on

  • release - praktiliselt CD/DVD tõmmised
  • archive - nn pool/dist/jt kataloogidega failisüsteem kust apt-get paigaldab tarkvara; tundub, et siin sisalduvad ka turvauuendused

Release mirrori esmaseks kopeerimiseks sobib öelda nt

# rsync --bwlimit=20000 -av se.releases.ubuntu.com::mirror/ubuntu-releases/ ubuntu-releases/

Archive mirror esmaseks kopeerimiseks sobib öelda nt

# rsync --bwlimit=20000 -av ftp.acc.umu.se::ubuntu/ ubuntu/

kus

  • 2016 kevadel on se.releases.ubuntu.com on ftp.acc.umu.se kanooniline nimi
  • serveril on 10 G link ja paistab, et haldajad ei ehmata kui sealt palju kopeerida

push mirrori käivitamiseks toimub selline tegevuste järgnevus

  • peale esimase kopeerimise saab freenode irc kanalilt #ubuntu-mirrors leida head inimesed, kes on nõus hakkama pushima
  • leppida kokku ssh võtme kasutamine ja testida pushi
  • käivitada push
  • mõne kuu möödudes, kui on tekkinud veendumise, et teenus on stabiilne, pöörduda mirrors@ubuntu.com isandate poole taotlusega, et nad teevad CNAME kirjed
xx.archive.ubuntu.com -> ftp.auul.pri.ee
xx.releases.ubuntu.com -> ftp.auul.pri.ee

Mirrordamine toimub paketis ubumirror sisalduvate skriptidega, mille tööd juhib seadistusfail /etc/ubumirror.conf.

vsftpd serveri kasutamine

Tavalise anonüümse ftp serveri seadistamiseks sobib kasutada nt sellist seadistusfaili

# egrep -v "^$|^#" /etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=YES
local_enable=NO
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=NO
xferlog_enable=NO
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=Tere tulemast ftp serverisse!
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
hide_ids=YES
anon_root=/srv/ftp
no_anon_password=yes
syslog_enable=YES
seccomp_sandbox=NO
log_ftp_protocol=NO

kus

  • dirmessage_enable=YES - esitatakse cd käsu juures kataloogis oleva .message faili sisu
  • seccomp_sandbox=NO - Ubuntu OS millegipärast ilma selleta alati ei toimi
  • use_localtime=NO - ftp kliendi listingus esitatakse failidega seotud aegu GMT
  • ei logita /var/log/vsftpd.log faili ja logitakse syslogi

Ksplice Uptrack kasutamine

Ksplice https://en.wikipedia.org/wiki/Ksplice tehnika võimaldab laadida töötava arvuti mällu tuumaga seotud parandusi ja need kehtestuvad ilma vajaduseta arvutit rebootida. Kui peale paranduste rakendamist arvuti rebootida, siis vaikimisi laadib ksplice lahendus samad parandused otse arvuti mällu uuesti. Jätkusuutlikum alternatiiv on arvuti rebootimise ajaks paigaldada uus kernel tavalisel viisil ning siis ksplice töötab edasi selle suhtes. Teoreetiliselt saab ksplice kasutamisel laadida ja maha laadida parandusi paranduse täpsusega. Ksplice eeldab, et kuskil netis on kasutada nn parandusete teenusepakkuja, tundub, et 2016 aasta kevadel on Ubuntu uuemate versioonide parandused tasuta kättesaadavad Oracle juurest (ning tasu eest pakub Oracle neid ka nt Debian v. 8 Jessie jaoks). Ksplice kasutamine koosneb kolmest komponendist

  • ksplice toega tuum (v. 4+ üldiselt sobib)
  • ksplice haldusutiliit (uptrack-upgrade jt)
  • ksplice jaoks sobivas formaadis parandused (nt Oracle)

Tarkvara paigaldamiseks tuleb aadressilt http://www.ksplice.com/try/desktop kopeerida meelepärane versioon (nt Ubuntu v. 15.10), juurutada lokaalne failisüsteemi põhine repo ning öelda

# apt-get install ksplice-uptrack

mille käigus küsitakse Oracle tingimuste aktsepteerimist

Fail:Ksplice-uptrack-1.gif

Tulemusena tekib failisüsteemi

  • ksplice-uptrack, ksplice-uname jt utiliidid
  • seadistusfail /etc/uptrack/uptrack.conf
# egrep -v "^$|^#" /etc/uptrack/uptrack.conf 
[Auth]
accesskey = 01f2917e1ecafa9de73cca714e77254daf6c47bb6a52dcf5678d25320040e9e6
[Network]
https_proxy =
gconf_proxy_lookup = no
[Settings]
install_on_reboot = yes
autoinstall = no

kus

  • https_proxy - kui otse internetti ei saa pöörduda, siis millise proxy kaudu pöördutakse
  • install_on_reboot - arvuti rebootimise käigus laaditakse mällu uuesti kõik parandused
  • autoinstall - isanda juurest kopeeritud parandused laaditakse mällu automaatselt

Paigaldamise käigus kopeeritakse Oracle isanda juurest parandused (ca 250 MBait), paranduste logi asub /var/log/uptrack.log

# tail -f /var/log/uptrack.log

2016-04-10 20:03:51,089 DEBUG    Client invoked as: /usr/sbin/uptrack-upgrade -q -n
2016-04-10 20:03:51,102 DEBUG    dbus: Action: START
2016-04-10 20:03:51,103 DEBUG    Verifying your access key is valid by requesting: https://updates.ksplice.com/update- repository/...
2016-04-10 20:03:53,288 DEBUG    Getting package list and signature from https://updates.ksplice.com/update-repository/...
2016-04-10 20:03:58,681 DEBUG    Verifying signature on /var/cache/uptrack/Linux/x86_64/4.2.0-16-generic/#19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015/packages.yml...
2016-04-10 20:03:58,875 DEBUG    gpgv: Signature made T 05 apr   2016 17:49:12 EEST using RSA key ID 7F8494A7
gpgv: Good signature from "Ksplice Uptrack Signing Key <uptrack@ksplice.com>"

2016-04-10 20:03:58,875 DEBUG    Trying to read package list at /var/cache/uptrack/Linux/x86_64/4.2.0-16-generic/#19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015/packages.yml
2016-04-10 20:03:59,057 DEBUG    Downloading packages.

..
2016-04-10 20:18:36,010 DEBUG    Downloading [9zydmsqh] Kernel BUG when running delayed references on Btrfs.
2016-04-10 20:19:07,388 DEBUG    Unpacking [9zydmsqh] Kernel BUG when running delayed references on Btrfs.
2016-04-10 20:19:07,432 DEBUG    Downloading [h6dukwgk] Use-after-free in Rados block device when queueing work.
2016-04-10 20:19:18,427 DEBUG    Unpacking [h6dukwgk] Use-after-free in Rados block device when queueing work.
...
2016-04-10 20:38:41,992 DEBUG    Writing status to file.
2016-04-10 20:38:42,089 DEBUG    Sending result to server.
2016-04-10 20:38:42,090 DEBUG    Exiting with success. Not writing new plans.
2016-04-10 20:38:42,090 DEBUG    Writing status to file.
2016-04-10 20:38:42,103 DEBUG    Sending result to server.
2016-04-10 20:38:43,782 DEBUG    dbus: Action: STOP

ja pigutatakse kataloogi /var/cache/uptrack

# du -sh /var/cache/uptrack/
244M    /var/cache/uptrack/

Uunenduste alguspunkt

# uptrack-show
Installed updates:
None

Effective kernel version is 4.2.0-17.21

Saadaval olevate paranduste nimekirja esitamiseks

#  uptrack-show --available
Available updates:
[g7x0a4zc] Clear garbage data on the kernel stack when handling signals.
[6aql8zfk] Provide an interface to freeze tasks.
[fawedlxt] CVE-2015-5307: KVM host denial-of-service in alignment check.
[chdym2fq] Out of bounds memory access when accessing perf constraints on Intel CPU.
[tc812itk] Kernel crash when applying alternative instructions.
...

Kõigi paranduste paigaldamiseks

# uptrack-upgrade -y

Lõpuks saab võrrelda paigaldatud ja paigatud tuumade versioone

# uname -a
Linux ubuntu1510 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# uptrack-uname -a
Linux ubuntu1510 4.2.0-35-generic #40-Ubuntu SMP Tue Mar 15 22:15:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Edaspidine paranduste allalaadimine toimub vaikimisi kaks korda tunnis cron tööga

# cat /etc/cron.d/uptrack
17,47 * * * * root export PATH=/usr/local/sbin ... && [ -x /usr/sbin/uptrack-upgrade ] && /usr/sbin/uptrack-upgrade --cron

Kasulikud lisamaterjalid

Automaatsed uuendused

Tundub, et automaatsete uunedustega on seotud sellised kohad

# cat /etc/apt/apt.conf.d/20auto-upgrades 
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

väljalülitamiseks viimasel real muuta

1 -> 0

Kasulikud lisamaterjalid

Probleemid

  • Ubuntu v. 16.04 paketiuuendus 20170628
Setting up grub-efi-amd64-signed (1.66.11+2.02~beta2-36ubuntu3.11) ...
Installing for x86_64-efi platform.
File descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 25556: grub-install
File descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 25556: grub-install
GUID Partition Table Header signature is wrong: be5608740128e852 != 5452415020494645
GUID Partition Table Header signature is wrong: 646e756f626e7520 != 5452415020494645
GUID Partition Table Header signature is wrong: be5608740128e852 != 5452415020494645
GUID Partition Table Header signature is wrong: 646e756f626e7520 != 5452415020494645
GUID Partition Table Header signature is wrong: be5608740128e852 != 5452415020494645
GUID Partition Table Header signature is wrong: 646e756f626e7520 != 5452415020494645
Installation finished. No error reported.
Setting up linux-signed-image-4.4.0-81-generic (4.4.0-81.104) ...
warning: file-aligned section .text extends beyond end of file
warning: checksum areas are greater than image size. Invalid section table?
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-98-generic
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22502: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22502: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22516: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22516: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22529: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22529: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22542: /usr/sbin/grub-probe
File descriptor 3 (pipe:[4822260]) leaked on vgs invocation. Parent PID 22542: /usr/sbin/grub-probe

Eesti ID kaardi kasutamine - Ubuntu 16.04

# apt-key add ria-key1.pem
# apt-key add ria-key2.pem
# cat /etc/apt/sources.list.d/ria-repository.list
deb http://installer.id.ee/media/ubuntu xenial main
# apt-get update
# apt-get install open-eid

Kui lähtepunktiks on nö tavaline töökohaarvuti, siis lisanduvad paketid

chrome-token-signing esteidfirefoxplugin esteidpkcs11loader libccid libdigidoc-common libdigidoc-tools libdigidoc2 libdigidocpp-common libdigidocpp-tools
libdigidocpp1 libminizip1 libnss3-tools libxerces-c3.1 libxml-security-c17v5 libzip4 open-eid opensc opensc-pkcs11 pcscd qdigidoc qdigidoc-tera qesteidutil

Kasulikud lisamaterjalid

Eesti ID kaardi kasutamine - Ubuntu 18.04

Sarnaselt eelmisele punktile, aga paistab, et 2019 aasta alguses tuleb lisaks kasutada skriptis

# cat /var/lib/dpkg/info/awp.postinst
#!/bin/bash

exit;
...

ning loksutada paketihaldust 'apt-get install -f' vms käskudega.

Seejärel kasutajana logida sisse desktop keskkonda (nt XFCE4) ja öelda

$ modutil  -dbdir sql:$HOME/.pki/nssdb -delete opensc-pkcs11
$ modutil  -dbdir sql:$HOME/.pki/nssdb -add opensc-pkcs11 -libfile onepin-opensc-pkcs11.so -mechanisms FRIENDLY

Seejärel Chrome brauseris peaks saama kasutada id kaarti autentimiseks ja allkirjastamiseks. Need kaks käsku võiks idee poolest automaatselt öeldada skripti /usr/bin/esteid-update-nssdb poolt, aga paistab, et millegipärast minul see nii ei ole

$ cat /etc/xdg/autostart/chrome-pkcs11.desktop 
[Desktop Entry]
Type=Application
Name=Configure Chrome PKCS11
Exec=/usr/bin/esteid-update-nssdb
NoDisplay=true
X-GNOME-AutoRestart=true
X-GNOME-Autostart-Phase=Initialization

Kui kasutada on uus eid kaart, siis tõenäoliselt on vajalik öelda awp.postinst skriptis sisalduvad sarnased käsud samuti.

Ubuntu 16.04 kopeerimine

  • küsida vanas arvutis partitsioonitabeli sisu
vana# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                           
(parted) p                                                                
Model: FTS PRAID EP400i (scsi)
Disk /dev/sda: 1757085696s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End          Size         File system  Name  Flags
 1      2048s    391167s      389120s      fat32              boot, esp
 2      391168s  1757083647s  1756692480s                     lvm

(parted)
  • moodustada uude arvutisse partitsioonitabel
root@sysresccd /root % parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                           
(parted) mklabel gpt
(parted) mkpart esp 2048 391167
(parted) set 1 boot on
(parted) set 1 esp on
(parted) quit

ning seejärel tekitada teine partitsioon kuni ketta lõpuni fdisk abil, määrata tüübiks lvm

# fdisk /dev/sda
...

öelda igaks juhuks, et kernelisse lugeda partitsioonitabeli muudatused

# partprobe /dev/sda

Kontrollida tulemust

# ls -ld /dev/sda*
  • moodustada lvm
# pvcreate /dev/sda2
# vgcreate system /dev/sda2
# lvcreate -L24G -n swap system
# lvcreate -L12G -n root system
  • moodustada failisüsteemid
# mkfs.vfat -F32 -n EFI /dev/sda1
# mkfs.ext4 /dev/system/root
# mkswap /dev/system/swap
  • monteerida failisüsteemid ajutiselt
# mkdir /mnt/root
# mount /dev/system/root /mnt/root
# mkdir /mnt/root/boot
# mount /dev/sda1 /mnt/root/boot
  • bootida vana arvuti systemrescuecd abil ja ühendatakse / ja /boot/efi failisüsteemid külge
# mkdir /mnt/root
# mount /dev/system/root /mnt/root
# mount /dev/sda1 /mnt/root/boot
  • seadistatakse systemrescuecd abil võrk mõlemale arvutile
# /etc/init.d/networkmanager stop
# ifconfig xxx x.x.x.x
  • määratakse root kautaja parool
# passwd root
  • kopeeritakse rsync abil andmed
# rsync -avHAX --exclude=var/log/lastlog --numeric-ids /mnt/root/ root@x.x.x.x:/mnt/root/
  • tehakse uues arvutis kopeeritud failisüsteemis vajalikud muudatused (ip aadress jne)
  • tekitatakse uue arvuti nvram'i efi boot valik 'refind'
# efibootmgr -c -L "refind" -l 'EFI\refind\refind_x64.efi'
  • TODO
  • ühendatakse vanas arvutis failisüsteemid lahti ja öeldakse 'poweroff'

netplan kasutamine

Ubuntu v. 18.04 vaikimisi töökohaarvuti install

# cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

Kehtestamiseks

# netplan generate
# netplan apply

nö brctl bridge kasutamiseks

network:
  version: 2
  renderer: networkd

  ethernets:
    enp0s31f6:
      dhcp4: false
      dhcp6: false

  bridges:
    br0:
      addresses: [ 192.168.10.219/24 ]
      dhcp4: false
      routes:
      - to: 0.0.0.0/0
        via: 192.168.10.254
        on-link: true
      nameservers:
          search: [moraal]
          addresses: [10.192.0.53]
      interfaces:
        - enp0s31f6

systemd-network jaoks töötab networkctl, nt

# networkctl status
●        State: routable
       Address: 192.168.100.1 on br1
                192.168.10.219 on br0
                fe80::785b:3eff:fe72:676 on br1
                fe80::a8ff:93ff:fe9d:dedc on br0
                fe80::fcff:ffff:feff:ffff on vif1.0
                fe80::fcff:ffff:feff:ffff on vif1.1
                fe80::fcff:ffff:feff:ffff on vif9.0
                fe80::fcff:ffff:feff:ffff on vif9.1
       Gateway: 192.168.10.254 (ICANN, IANA Department) on br0
           DNS: 10.192.0.53
Search Domains: moraal
  • nö tavalise ip aadressi seadistamine
network:
  version: 2
  renderer: networkd

  ethernets:
    ens18:
      dhcp4: false
      dhcp6: false
      addresses: [ 192.168.10.218/24 ]
      gateway4: 192.168.10.254
      nameservers:
          search: [moraal]
          addresses: [10.192.0.53]

Kasulikud lisamaterjalid

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 v. 16.04 ja v. 18.04 paketihalduses on usbip v. 2.0 mis toimib ja toimib ristirästi.

Tööpõhimõte

TODO

Tarkvara paigaldamine v. 18.04

Tarkvara paigaldamiseks ei sobi öelda

# apt-get install usbip

Tarkvara paigaldamisel peab jälgima, et usbipd programm ja tuuma moodulid omavahel sobivad, nt 2018 kevadel sobib öelda

# apt-get install linux-tools-generic

ja tekib

/usr/lib/linux-tools/4.15.0-20-generic/usbipd

ning kasutada tavalist tuuma, pakett

linux-image-generic

kontrolliks sobib öelda

# usbipd -v
usbipd (usbip-utils 2.0)

Paigaldamise tulemusena tekib failisysteemi muu hulgas

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

kus need failid on skriptid ja nad otsivad üles sobivad programmid linux-tools-generic paketist.

Tarkvara paigaldamine v. 16.04

Tarkvara paigaldamiseks ei sobi öelda

# apt-get install usbip

Tarkvara paigaldamisel peab jälgima, et usbipd programm ja tuuma moodulid omavahel sobivad, ja kui on tarvis, et nad sobivad ka teises arvutis töötava Ubuntu 18.04, nt 2018 kevadel sobib öelda

# apt-get install linux-tools-generic-hwe-16.04-edge

mis paigaldab nagu tavaliselt hwe tarkvara ühe sobiva versiooni, nt

linux-tools-4.15.0-15-generic

ja tekib

/usr/lib/linux-tools/4.15.0-15-generic/usbipd

ning kasutada juurde edge tuuma mis on reaalselt v. 4.15

linux-image-generic-hwe-16.04-edge

kontrolliks sobib öelda

# usbip version
usbipd (usbip-utils 2.0)

Paigaldamise tulemusena tekib failisysteemi muu hulgas

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

kus need failid on skriptid ja nad otsivad üles sobivad programmid linux-tools-generic paketist.

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

Kliendi poolel kasutamise lõpetamine

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

NVIDIA videokaart

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:10.0 ==
modalias : pci:v000010DEd00000FFAsv000010DEsd0000094Bbc03sc00i00
vendor   : NVIDIA Corporation
model    : GK107GL [Quadro K600]
driver   : nvidia-driver-390 - distro non-free recommended
driver   : nvidia-340 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

ning paigaldamiseks

# ubuntu-drivers autoinstall===Kasulikud lisamaterjalid===

TLS v. 1.3

Osutub, et 2019 aasta kevadel uueneb tavalise paketihalduse käigus OpenSSL v. 1.1.0 versioonile v. 1.1.1 ja muu hulgas selle tulemusena tekib TLS v. 1.3 tugi

# openssl ciphers -v TLSv1
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
...

Seejuures tekib automaatselt rakendusetele 1.3 tugi

  • nginx
  • postfix

ei teki

  • apache

Ubuntu 20.04 paigaldamine üle serial konsooli

Osutub, et teatud juhtumitel on Proxmox konsool installeri töötamise ajal kasutamatu. Sellest saab üle serial konsoolil paigaldamisega (virtuaalsele arvutile tuleb webgui abil lisada serial seade). Alguses bootloader töötab, tuleb valida 'Install Ubuntu Server' real edit (E klahviga) ning kohendada kerneli rida selliseks

linux /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed console=ttyS0,115200

ja kinnituda teises aknas proxmox virtuaalse arvuti serial konsooli külge

# qm terminal 141

Tulemusena on serial konsooli kaudu võimalik suhelda installeriga.

Kasulikud lisamaterjalid

Kernel lockdown

Paistab, et Ubuntu 20.04 sisaldab kernel lockdown tuge, kasutamiseks sobib lisada kernel reale juurde

linux ... lockdown=integrity

ning toime kontrollimiseks sobib öelda nt

root@ubu2020:~# kexec -l /boot/vmlinuz-5.4.0-37-generic --reuse-cmdline --initrd=/boot/initrd.img-5.4.0-37-generic
kexec_load failed: Operation not permitted
entry       = 0x7ffd1730 flags = 0x3e0000
nr_segments = 4
segment[0].buf   = 0x7fab3325a010
segment[0].bufsz = 0x4daedf8
segment[0].mem   = 0x78651000
segment[0].memsz = 0x4daf000
segment[1].buf   = 0x7fab3800d810
segment[1].bufsz = 0xb1ab00
segment[1].mem   = 0x7d400000
segment[1].memsz = 0x2b6d000
segment[2].buf   = 0x564838c191f0
segment[2].bufsz = 0x488c
segment[2].mem   = 0x7ffcc000
segment[2].memsz = 0x5000
segment[3].buf   = 0x564838c12100
segment[3].bufsz = 0x70e0
segment[3].mem   = 0x7ffd1000
segment[3].memsz = 0x9000

või

# apt-get install sysdig-dkms
# modprobe sysdig-probe
modprobe: ERROR: could not insert 'sysdig_probe': Operation not permitted

Kusjuures

# dmesg -T | tail -n 2
[Sat Jun 13 13:33:11 2020] Lockdown: kexec: kexec of unsigned images is restricted; see man kernel_lockdown.7
[Sat Jun 13 13:33:53 2020] Lockdown: modprobe: unsigned module loading is restricted; see man kernel_lockdown.7

Tundub, et millalgi sai seda lockdowni eemaldada töötavalt süsteemilt sedasi, aga 2020 kevade seisuga Ubuntu 20.04 puhul mitte

# echo 1 > /proc/sys/kernel/sysrq
# echo x > /proc/sysrq-trigger

aegunud non-lts uuendamine lts peale

Aegunud non-lts uundamiseks lts peale (nt v. 21.10 -> 22.04) sobib

  • /etc/apt/sources.list failis asendada ee.archive.ubuntu.com -> old-releases.ubuntu.com
  • öelda vajadusel 'apt-get install update-core-manager'
  • öelda do-release-upgrade
  • jne

Kasulikud lisamaterjalid