Günther Obermaiers Webseite



Allgemeines zu Debian 10.0 Buster

Debian 10.0 Buster, benötige Perl- und PHPModule

dazu die Pakete, die aptitude automatisch ausgewählt. Grau hinterlegte sind optional!
+ perlmodule  (unter nicht-installiert -> perl)
	libarchive-zip-perl
	libclass-dbi-mysql-perl
	libclass-dbi-perl
	libconvert-ber
	libcrypt-unixcrypt-perl
	libdbd-mariadb-perl
	libimage-exif-perl
	libimage-exiftool-perl
	libimage-size-perl
	libmime-lite-perl
	libmime-tools-perl
	libmp3-info-perl
	libmp3-tag-perl
	libnet-ssh-perl
	libsys-cpuload-perl
	libtext-csv-perl
	liburi-find-perl
	php7.3
	php-cli
	php-curl
	php-dev
	php-gd
	php-imagick
	php-imap
	php-intl
	php-ldap
	php-mbstring
	php-mysql (default)
	php-pspell
	libphp-phpmailer

Rechner umbenennen oder IP Adresse ändern

bei Namensänderungen oder Domainänderungen müssen folgende Dateien angepasst werden:
/etc/hosts
/etc/hostname
/etc/mailname
/etc/exim4/update-exim4.conf.conf
/etc/resolv.conf
/etc/cups/printer.conf
/etc/network/interfaces
Falls ein Proxy verwendet werden soll, auch in den Browser Einstellungen und in
/etc/apt/apt.conf
Will man eine Platte in einem anderen Rechner verwenden, die ohne daß sich die Netzwerkinterfaces ändern, muss man die entsprechende Zeile aus der /etc/udev/rules.d/70-persistent-net.rules löschen.
Thats it!

Konfiguration von Grub 2 aktualisieren

# update-grub2
# grub-mkconfig 

Platte > 2 TB partitionieren

das von mir bisher verwendete fdisk kann nur Platten bis 2 Terabyte partitionieren. Für größere Platten verwende ich parted. Z.B. zum Einrichten einer einzigen großen Partition auf /dev/sdf
# parted /dev/sdf
(parted) mklabel gpt                                                      
(parted) mkpart primary ext4 0% 100%                                      
(parted) name 1 '/backupMonthly2'                 
(parted) quit                                                             
Anhand des mit name PARTNUMMER gesetzten Partitionslabels orientiert sich mein selbstgebautes automount Skript, welches normale oder verschüsselte Partitionen zum Beispiel zur Datensicherung einhängt.

Pfad in xterm ändern

während bis stretch nach su im xterm der Pfad des Superusers verwendet wird, bleibt der Pfad bei buster nach su bestehen, so das Kommandos wie mount oder fdisk nicht ohne /usr/sbin davor verwendet werden können. Ich habe dazu den Pfad des Users erweitert. Auf einem System funktionierte das über die /etc/profile, auf einem andern nur über die /home/USERNAME/.bashrc durch einfügen oder Anpassen einer Zeile:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/games:/usr/games"

System klonen / Grub nachträglich installieren

die Zielplatte via USB anhängen oder in den 2.Wechselrahmen einstecken.
Bei den Workstations: 256GB SSD mit 80GB/20GB/156GB partitionieren, bei 128GB 64GB/16GB/38GB. Die erste Partition wird /, die zweite SWAP und die dritte /local Bei den Servern: 16GB SSD mit 15GB/1GB ohne /local partitionieren. Der Swapspace muss wegen dem S4 Ruhezustand (hibernation) auf den Workstations mindestens so gross wie der installierte Arbeitsspeicher sein. Typ der 2.Partition auf 83h ändern. Sei die neue Platte /dev/sdb, dann folgendende Dateisysteme anlegen:
# mkfs.ext4 /dev/sdb1
# mkswap /dev/sdb2
# mkfs.ext4 /dev/sdb3
Platte mounten und das gerade in Betrieb befindliche System kopieren. Ich verwende als Mountpoint meistens das (eventuell anzulegende) Verzeichnis /dest. Dadurch ist mir klar, dass es sich um das Zielverzeichnis handelt:
# mount /dev/sdb1 /dest
# cd /
# rsync -avtHAX --exclude /dest --exclude /proc --exclude /sys --exclude /dev --exclude /home --exclude /local --exclude /homeserv / /dest
Das Verzeichnis /local ist eine Spezialität von mir und /home wird bei mir vom Server gemountet. /homeserv ist das Verzeichnis, wo die Laptops das vom Server exportierte /home hin mounten und sollte ebenfalls nicht kopiert werden (wenn vorhanden). /local wird anschliessend genauso kopiert
Die kopierte /boot/grub/grub.cfg und /etc/fstab müssen vor der grub Installation angepasst werden. Notfalls kann man aber auch die UUID der neuen Platte aufschreiben und beim Booten im Grub als "root" bei UUID=... eingeben. Falls man das auch vergessen hat, bekommt man die UUID raus, indem man die Platte in einen anderen Rechner einbaut und
# blkid -o value /dev/PARTITION
aufruft.
Dann die alte UUID in /etc/fstab mit der richtigen UUID ersetzen. Ich habe dazu ein Skript namens mvUUIDforBaseByDev gebaut, welches z.B. mit
# mvUUIDforBaseByDev /dest /dev/sda1 /dev/sdb1
# mvUUIDforBaseByDev /dest /dev/sda2 /dev/sdb2
die UUID der Platte /dev/sda1(Quelle) durch die der /dev/sdb1(Ziel) in den angegebenen Dateien ersetzt, wenn diese Platte nach /dest gemountet ist, passt das. Da auch die UUID des Swapspace in einigen Dateien steckt, ist auch die zweite Zeile (/dev/sda1 => /dev/sdb1) nötig.
Sonst am einfachsten im vi:
# vi /dest/etc/fstab
:
%s/UUIDOLD/UUIDNEW/g
:wq!
so wird das Vorkommen der alten UUID durch die neue ersetzt. Ziel ist dann etwa:
UUID=UUIDNEW / ext4 defaults,errors=remount-ro 0 1
Ebenso muss die UUID in den Dateien /etc/uswsusp.conf und /etc/initramfs-tools/conf.d/resume angepasst werden, wenn man "Suspend to Disk" verwenden will. Ist die Platte noch am Quellrechner unter /dest gemounten, setzt man anschliessend das Kommando
# update-initramfs -u -k all -t -b /dest/boot
ab. Falls die Platte schon als Bootplatte im Zielrechner ist, reicht:
# update-initramfs -u -k all
Andernfalls oder falls man den Schritt vergessen hat, kein Beinbruch, man muss beim Booten der Platte als Systemplatte nur ca 5 Minuten warten, bis der Fehler "Could not stat the resume device file '/dev/disk...'" kommt und das system mit <ENTER> bootet.
Langer Rede, kurzer Sinn, am Zielsystem sind 4 Dateien anzupassen:
/MOUNTPOINT/etc/fstab
/MOUNTPOINT/boot/grub/grub.cfg
/MOUNTPOINT/etc/uswsusp.conf
/MOUNTPOINT/etc/initramfs-tools/conf.d/resume
Achtung #1: Beliebter Fehler vi /etc/fstab statt vi /mnt/etc/fstab, man zerschiesst das Quellsystem!!!
Achtung #2: Auch SWAP oder andere Partitionen in der /mnt/etc/fstab ersetzen.
Ebenso wird jedes Vorkommen der alten UUID in der /mnt/boot/grub/grub.cfg ersetzt.
Dann kann man den GRUB neu intallieren:
 
# grub-install --root-directory=MOUNTPOINT DEVICE
Beispiel: zu installierende Platte: /dev/sdb, das root-Filessytem (/dev/sdb1) mit /boot/grub wurde gemountet nach /mnt
 
# grub-install --root-directory=/mnt /dev/sdb
Der Device bezeichnet dabei das Ziel der Grub Installation, also KEINE Partition, sondern die Platte selbst.

Update von stretch auf buster

Dieser Text basiert auf der Anleitung bei linuxconfig.org . Ich habe das nur für die Server (Ohne X, Office, Browser ec) durchgeführt, die Workstations wurden neu installiert bzw aus der Neuinstallation geklont.

Veraltete Pakete oder solche ausserhalb der Paketverwaltung suchen (das Zeichen vor "o" ist eine Tilde!):
# aptitude search '~o'
und gegebenenfalls nach Kontrolle löschen mit
# aptitude purge '~o'
Vorhandenes Stretch-System aktuallisieren
# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
zurückgehaltene Pakete kontrollieren.
# dpkg -C
# apt-mark showhold
Dann in der /etc/apt/sources.list stretch durch buster ersetzen, am einfachsten mit sed. Vorsichtige Admins kontrollieren, ob das buster-Repository auch auf der bevorzigten Quelle vorhanden ist. Ausserdem habe ich die unter stretch verwendeten backports auskommentiert
# cp /etc/apt/sources.list /etc/apt/sources.list_backup
# sed -i 's/stretch/buster/g' /etc/apt/sources.list
# apt-get update
so, jetzt kann man simulieren, was beim Upgrade passiert:
# apt list --upgradable
auf spica war alles grün! Dann geht der eigentliche Upgrade los, beide Teile dauern in Summe etwa eine Stunde (DSL 25000)
# apt-get upgrade
# apt-get dist-upgrade
so, neu Booten, alles ok!. Im Gegensatz zum Update von jessie auf stretch werden die php7.0 Pakete von stretch automatisch durch die php7.3 Pakete von buster ersetzt. Auf wega musste ich noch die Rechte von /var/cache/bind auf 777 setzen.

Virtual Box
Während bis jessie Virtualbox im Repository ist, ist das bei buster (und stretch) nicht mehr dabei. Selbst ein Repository für buster gibt es nicht. Da Ubuntu 18.04 bionic beaver darauf basiert, kann man stattdessen dieses Repository verwenden. (Gefunden bei tecadmin.net ) Also virtualbox.list zur /etc/apt/sources.list fügen:
deb http://download.virtualbox.org/virtualbox/debian bionic contrib
Damit das funktioniert, muss auch dem public Key von Oracle vertraut werden:
# wget -q - https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -
# wget -q - https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add -
# apt-get update    
Und schliesslich wird die Virtual Box installiert
# apt-get install virtualbox-6.0
Optional (cut/paste ec) virtualbox-guest-x11, virtualbox-guest-additions-iso aber woher!

USB Platte an Fritzbox mounten

nachdem die Datenübertragung via jmtpfs vom Android-Handy nicht zuverlässig funktioniert, übertrage ich die Daten jetzt via GX-Explorer und WLAN auf meine Fritzbox 7490. Dort steckt ein 32 GB USB-Stick als Medium. Nun muss ich die Daten noch von der Fritzbox holen ( - oder den USB-Stick umstecken :-) ).
Die Freigabe der Box heisst "FB7490-GO-ULM". Den SMB/FTP-Benutzer "root" habe ich vorher an der Fritzbox eingerichtet da die Fritzbox kein NFS, sondern nur SMB spricht und am Server unter /root/.smbcredentials User und Passwort eingetragen:
username=root
password=PASSWORD
Nun benötige ich die samba-Tools und kann anschliessend die Freigabe einhängen. Am Firewall/Server also
# apt install samba cifs-utils
# mount -t cifs -o credentials=/root/.smbcredentials,vers=1.0 //192.168.70.1/FB7490-GO-ULM /mnt/
Funktioniert, aber leider sehr langsam ...

Beliebigen Kernel als Default booten

Falls ein neuer Kernel Schwierigkeiten macht und man lieber einen alten als Default booten will, kann man grub so einstellen, dass er immer den zuletzt gebooteten als Voreinstellung hernimmt (sonst ist es immer der neueste). In der Datei /etc/default/grub den Eintrag mit GRUB_DEFAULT=0 löschen und folgende Zeilen einfügen:
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
und das Kommando
 
# update-grub
ausführen.

Laptop beim Schliessen des Deckels nicht schlafen legen

Da ich X250 und T450s als Server verwende, sollen sich die nicht schlafen legen, wenn der Deckel geschlossen wird. In der /etc/systemd/logind.conf werden folgende Zeilen eingefügt bzw aus den auskommentierten angepasst:
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
Damit das sofort wirkt muss der systemd neu gestartet werden:
 
# service systemd-logind restart

Hints

xfce Desktop zeigt keine Icons und Defaulthintergrund
Tip aus dem Internet: in Terminal xfdesktop --reload, dann gings wieder! Nur neu booten hilft nicht!

### STAND ###

TEST: virtuelle Maschine installieren zu mdadm und Tastaturlayout siehe jessie