Günther Obermaiers Webseite



Allgemeines zu Debian 9.0 Stretch

Debian 9.0 Stretch, 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-gpg-perl
	libcrypt-unixcrypt-perl
	libdbd-mysql-perl
	libimage-exif-perl
	libimage-exiftool-perl
	libimage-size-perl
	libio-string
	libio-stty-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.0			bei Stretch und PHP7 sind viele vorausgewählt
	php7.0-cli (default)
	php7.0-curl
	php7.0-dev
	php7.0-gd (default)
	php7.0-imagick
	php7.0-imap
	php7.0-ldap
	php7.0-mbstring
	php7.0-mcrypt (default)
	php7.0-mysql (default)
	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
/etc/network/NetworkManager/system-connections/Wired connection 1
Haben die es echt gewagt, Leerzeichen in Namen von Systemdateien zu verwenden! - Ketzer!
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) quit                                                             

Update von jessie auf stretch

Dieser Text basiert auf der Anleitung bei linuxconfig.org . 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 Jessie-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 jessie durch stretch ersetzen, am einfachsten mit sed. Vorsichtige Admins kontrollieren, ob das stretch-Repository auch auf der bevorzigten Quelle vorhanden ist.
# cp /etc/apt/sources.list /etc/apt/sources.list_backup
# sed -i 's/jessie/stretch/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!. Nun muss man noch das bei Jessie vorhandene PHP5 durch PHP7 ersetzen und apache2 neu starten:
# apt-get remove libapache2-mod-php5 php5
# apt-get install libapache2-mod-php7.0 php7.0-curl php7.0-gd php7.0-imap php7.0-ldap php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-imagick 
oder folgende Liste mittels aptidude aus bzw. abwählen:
- libapache-mod-php5
- php5
+ libapache-mod-php7.0
+ php7.0-curl
+ php7.0-dev
+ php7.0-gd
+ php7.0-imap
+ php7.0-ldap
+ php7.0-mbstring
+ php7.0-mcrypt
+ php7.0-mysql   
+ php7.0-imagick

Troubles

Libreoffice Writer
der Libreoffice Writer 5 stürzte nach dem Upgrade immer kurz nach dem Start ab, während Calc problemlos läuft, andere Komponenten habe ich nicht getestet. Unter wiki.debian.org ist die Lösung, die gtk2-Library verursachte bei mir diesen Fehler:
# apt purge libreoffice-gtk2
und der Libreoffice Writer läuft wieder.

mariaDB startet nicht mehr
Weiss leider die Fehlermeldung nicht mehr. In der /etc/mysql/mariadb.conf.d/50-server.cnf folgende Zeile einfügen
log_bin=ON
xfce Desktop zeigt keine Icons und Defaulthintergrund
Tip aus dem Internet: in Terminal xfdesktop --reload, dann gings wieder! Nur neu booten hilft nicht! aptitude
Fehler mit "hplip" und "statoverride" beim Installieren neuer Komponenten:
In der Datei /var/lib/dpkg/statoverride die Zeile mit hplip löschen.

Virtual Box
Während bei jessie Virtualbox im Repository ist, ist das bei stretch nicht mehr dabei. Also virtualbox.list zur /etc/apt/sources.list.d fügen:
deb http://download.virtualbox.org/virtualbox/debian stretch contrib
Damit das funktioniert, muss auch dem public Key von Oracle vertraut werden:
# wget -qO - https://www.virtualbox.org/download/oracle_vbox_2016.asc | apt-key add -
# apt-get update    
Und schliesslich wird die Virtual Box installiert
# apt-get install virtualbox-5.1
Optional (cut/paste ec) virtualbox-guest-x11, virtualbox-guest-additions-iso aber woher!

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/16GB/160GB 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:
# mount /dev/sdb1 /mnt
# cd /
# rsync -avtHAX --exclude /mnt --exclude /proc --exclude /sys --exclude /dev --exclude /home --exclude /local / /mnt
Das Verzeichnis /local ist eine Spezialität von mir und /home wird bei mir vom Server gemountet. /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. am einfachsten im vi:
# vi /mnt/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. anschliessend das Kommando
# update-initramfs -u -k all
ausführen, falls die Platte schon als Bootplatte im Rechner ist. 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.

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. zu mdadm, Tastaturlayout, rc.n und ttf-Fonts siehe jessie