| |||
|
Allgemeines zu Debian 12.0 BookwormUpgrade von bullseye auf bookwormDieser Text basiert auf der Anleitung bei linuxconfig.org und meinem eigenem Upgrade von Stretch auf Buster und Upgrade von Buster auf BullseyeVeraltete Pakete oder solche ausserhalb der Paketverwaltung suchen (das Zeichen vor "o" ist eine Tilde!): # aptitude search '~o'Dies ergab bei mir "zoom", zwei Scanapplikationen von Epson zum ET5800 und einen Haufen Libraries. Muss aber nicht sein, auf dem zweiten Rechner, meinem Laptop sirius fehlten wahrscheinlich zoom und der Scanner, war gar kein Treffer. Aber auf polaris entfernte ich alles mit dem Kommando:
# aptitude purge '~o'Jetzt das vorhandene Bullseye-System aktualisieren mit # apt-get update # apt-get upgrade # apt-get dist-upgradezurückgehaltene Pakete kontrollieren. # dpkg -C # apt-mark showholdDann in der /etc/apt/sources.list bullseye durch bookworm ersetzen,
am einfachsten mit sed. Vorsichtige Admins kontrollieren, ob das bullseye-Repository
auch auf der bevorzugten Quelle vorhanden ist.
Eigentlich löst das der sed
# cp /etc/apt/sources.list /etc/apt/sources.list_backup # sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list # apt-get updateso, jetzt kann man simulieren, was beim Upgrade passiert: # apt list --upgradableauf polaris , dem Lenovo T450s, das ich diesmal als Versuchskaninchen wählte, war alles grün! Dann geht der eigentliche Upgrade los, beide Teile
dauern in Summe etwa eine halbe Stunde (DSL 100)
# apt-get upgrade # apt-get dist-upgradeBeim Upgrade behielt ich immer meine lokal veränderten Konfigurationstateien, antwortete also immer mit "N ". Bei Debian 12 bookworm wurde in der /etc/apt/sources.list der Komponenten Wert non-free in non-free non-free-firmware
aufgeteilt. Das sollte anschliessend angepasst werden, so dass /etc/apt/sources.list jetzt etwa so aussieht:
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware # security-updates deb http://security.debian.org/debian-security bookworm-security/updates main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security bookworm-security/updates main contrib non-free non-free-firmware # bookworm-updates deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware # signal desktop deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial mainSo, neu Booten, alles ok!. Mit # aptitude purge '~o'werden die überflüssigen Libraries und nicht mehr benötigten Pakete gelöscht. Eine Liste aller installierten Pakete erhält man mit # dpkg --get-selections | grep -v deinstall | awk ' { print $1 } ' Upgrade von bullseye auf bookworm auf firewall und webserver rigelmeine eigene lokale Seite unterhttps://ulm-goitservice.dyndns.org/index.php
https://ulm-goitservice.dyndns.org/index.php warf einen http 503-er Fehler mit
[Tue Dec 26 00:00:00.782878 2023] [proxy:error] [pid 9816] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php7.0-fpm.sock (*:80) failed [Tue Dec 26 00:00:00.782904 2023] [proxy_fcgi:error] [pid 9816] [client 62.156.151.4:15438] AH01079: failed to make connection to backend: httpd-UDS, referer: https://ulm-goitservice.dyndns.org/index.php?pos=/liveAlso löschte ich im aptitude alle php7.x (7.3 und 7.4 von buster und bullseye) Referenzen und libapache2-mod-php. Als Ersatz wurde php8.2-fpm vorgeschlagen, was ich akzeptierte. Nach Aktivierung der neuen PHP 8.2 Konfiguration mit # a2enmod proxy_fcgi setenvif # a2enconf php8.2-fpmLief PHP wieder, aber noch traten Probleme mit dem HTML-Purifier auf, der nur in einer alten, nicht php 8.2 kompatiblen Version installiert war. Schliesslich deinstallierte ich den auch und die lokale Seite war wieder erreichbar. System klonen / Grub nachträglich installierenDa schon beim die Kopieraktion mit UEFI und einer gpt partitionierten Platte schon beim Versuch vor zwei Jahren nicht funktionierte und ich immer noch keine modernere Hardware als i7-6700 habe, bin auch diesmal beim klassischen DOS Partitionsschema und BIOS-Boot geblieben fü die Systemplatten geblieben.die Zielplatte via USB anhängen oder in den 2.Wechselrahmen einstecken. Da die SSDs der Workstations inzwischen 256 GB bis 1TB haben, verwende ich für das System 120GB und fuer den Swap 20GB. # fdisk /dev/sdb 120,0 GB sdb1 83 Bootflag (ergibt /) 20,0 GB sdb2 82 swap 360,0 GB sdb3 83 (/homelocal)statt dem harten /home verwende ich inzwischen /homeserv und /homelocal, mounte die Serverplatte immer via NFS nach /homeserv und linke /home entweder nach /homeserv oder /homelocal. So kann ich mit einem kleinen Skript jederzeit auf mobilen/lokalen Betrieb umschalten. Bei den Workstations stört das auch nicht. Dateisysteme anlegen # mkfs.ext4 /dev/sdb1 # mkswap /dev/sdb2 # mkfs.ext4 /dev/sdb3Platte 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 /destAnschliessend kopiert man die Systemplatte, ich verwende dazu mein eigenes Kommando cpHOST / /dest ALL , was im Wesentlichen ein rsync mit diversen excludes (proc ec)
ist. Anschliessend werden die kopierten BlockIDs der Installation auf der Zielplatte mit den echten BlockIDs der Zielplatte ueberschrieben. Ich habe dazu ein ebenfalls
ein Skript namens mvUUIDforBaseByDev gebaut, welches z.B. mit
# mvUUIDforBaseByDev /dest /dev/sda1 /dev/sdb1 # mvUUIDforBaseByDev /dest /dev/sda2 /dev/sdb2die 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.
Ohne Verwendung von cpHost und mvUUIDforBaseByDev muss man mehr Hand anlegen,
siehe Abschnittsende.Da auch die UUID des Swapspace in einigen Dateien steckt, ist auch die zweite Zeile ( /dev/sda2 => /dev/sdb2 ) nötig.Ist die Platte noch am Quellrechner unter /dest
gemounten, setzt man anschliessend das Kommando
# update-initramfs -u -k all -t -b /dest/bootab. Falls die Platte schon als Bootplatte im Zielrechner ist, reicht: # update-initramfs -u -k allBIOS Boot anschalten, (bei Platten mit DOS-Dateilabel setzt man das Boot-Flag vorher beim Partitionieren) # parted -s /dev/sdb set 1 bios_grub onDann kann man den GRUB neu intallieren: # grub-install --root-directory=/dest /dev/sdbDer Device bezeichnet dabei das Ziel der Grub Installation, also KEINE Partition, sondern die Platte selbst. Allgemein also grub-install --root-directory=MOUNTPOINT DEVICE
Falls man update-initramfs -u -k all vergessen hat oder das aus irgendeinem Grund nich korrekt funktionierte, 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.Kopieren ohne cpHost # cd / # rsync -avtHAX --exclude /dest --exclude /proc --exclude /sys --exclude /dev --exclude /home --exclude /homeserv --exclude /homelocal / /destZuhause wird Server: /home nach /homeserv der Rechner gemountet. /home ist nur ein symbolischer Link darauf.
Auf den Laptops sind die Userdaten im (verschlüsselten) /homelocal . So kann ich durch einfaches Löschen und umlinken den
Rechner vom Betrieb am Server mit dort lagerndem Home-Verzeichnis als Link /home auf /homeserv schnell auf mobilen
Betrieb mit /home als Link auf /homelocal umstellen.
Kopieren ohne mvUUIDforBaseByDev
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/PARTITIONaufruft. Dann die alte UUID in /etc/fstab mit der richtigen UUID ersetzen.
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 1Ebenso 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.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.Eclipse für einen User einrichtenEtwas frei nach geeksforgeeks.org:www.eclipse.org/downloads/packages/ passende Installationspaket auswählen, war in meinem Fall "Eclipse IDE for PHP Developers" und zwar die "Linux x86_64" Variante. Nach dem Download auspacken (als normaler User!) $ cd /home/common/software/debian/ $ tar xvfz eclipse-php-2022-12-R-linux-gtk-x86_64.tar.gz $ mv /home/common/software/debian/eclipse /home/USERNAME/eclipse $ cd /home/USERNAME/eclipseStarter in der Fensterleiste anlegen, fertig! |