Raspberry Pi OS Bullseye -> Bookworm

3
321
idea, education, business
Photo by Mohamed_hassan on Pixabay

Da ich einiges an Zeit in meine auf dem Raspberry Pi 4 laufende Nextcloud investiert habe, wäre es schade, für das aktuelle Raspberry Pi OS 12, alles noch einmal aufsetzen und konfigurieren zu müssen. Obwohl die Entwickler des Betriebssystems von einem Upgrade generell abraten, habe ich mich auf die Suche nach einer guten und funktionierenden Anleitung gemacht und bin auf den vielversprechenden Artikel „Raspberry Pi OS – Update von Bullseye (11) auf Bookworm (12)“ von Sascha Syring gestoßen.

Um das Ganze ausgiebig zu testen, habe ich das Upgrade zuerst auf einem Raspberry Pi 4 durchgeführt, auf dem ein Mumble-Server läuft, den unsere Community produktiv zum Erfahrungsaustausch nutzt. Nachdem dies alles problemlos funktioniert hat, habe ich mich an meinen Nextcloud-RasPi gewagt. Was es weiter zu beachten gab, darauf gehe ich am Ende des Artikels noch ein.

Systemupgrade

Bevor es los geht muss das System auf den aktuellsten Stand unter Raspberry Pi OS 11 Bullseye gebracht werden. Hierzu führt man Folgendes aus:

Paketquellen

Danach werden die Paketquellen auf das neue System Bookworm angepasst. Hierzu öffnet man die /etc/apt/sources.list

und kommentiert alle aktiven Quellen, indem man vor jede aktive Zeile eine Raute „#“ setzt. Danach fügt man die drei Zeilen

am Anfang ein und speichert die Datei mit Ctr + o ab und verlässt dann den Editor mit Ctr + x.

Paketquellen
Paketquellen

Das Gleiche Spiel wiederholt man mit den zusätzlichen Paketquellen.

Hier wird nun folgende Zeile an den Anfang gesetzt:

Die Datei wird mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Ist dies geschehen, können die Paketquellen neu eingelesen werden.

Zusätzliche Paketquellen
Zusätzliche Paketquellen

Bootpartition

Nun kommt der kniffligste Teil. Die Bootpartition muss an die neuen Gegebenheiten angepasst werden. Dazu wird die alte Boot-Partition ausgehängt.

Dann wird das neue Verzeichnis /boot/firmware erstellt.

Jetzt bearbeitet man die Partitionstabelle:

Hier wird der Eintrag der Bootpartition entsprechend eingetragen. Bei mir sieht das so aus:

Datei zum Einbinden der Datenträger
Datei zum Einbinden der Datenträger

Die Datei wird wieder mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Damit die Änderungen wirksam werden, wird systemd neu geladen

und die neue Boot-Partition gemountet.

Bootloader und Kernel

Im Nachgang werden die aktuelle Firmware und der aktuelle Kernel für das Raspberry Pi OS 12 (Bookworm) installiert

und der alte Bootloader und Linux-Kernel entfernt.

Ist dies geschehen, müssen die Paketquellen nochmalig mit

eingelesen werden.

Upgrade

Nun kann das eigentlich Upgrade durchgeführt werden. Hierbei stoppt der Vorgang bei den wichtigsten Konfigurationsdateien. Diese werden in der Regel alle beibehalten.

System aufräumen

Nun wird das System noch aufgeräumt.

Neustart

Nach dem Neustart

sollte nun das aktuelle Raspberry Pi OS 12 laufen. Das installierte Betriebssystem lässt man sich mit

anzeigen.

Mit

kann man nun den aktuellen Kernel checken. Meine Ausgabe sieht wie folgt aus:

(„nextcloud“ in dieser Zeile ist der Hostname)

Noch zu erwähnen

Eingangs des Artikels hatte ich erwähnt, dass es Weiteres zu beachten gibt. Durch das Upgrade wurden die Einstellungen des Dienstes zu meinem Turn-Server zurück gesetzt. Ein funktionierender Turn-Server ist wichtig, um reibungslosen Verlauf in Videokonferenzen zu ermöglichen.

Wer also wie ich eine Nextcloud auf dem Raspberry Pi installiert hat und bisher meinen Anleitungen gefolgt ist, muss den zeitverzögerten Start des Turnservers, wie im Artikel „coTurn zeitverzögert auf Raspberry Pi starten“ beschrieben, wieder neu konfigurieren. Dazu editiert man die Datei /lib/systemd/system/coturn.service:

Nun fügt man den folgenden Eintrag unter [Service] ein und speichert die Änderung mit Ctlr + o.

Den Editor verlässt man dann wieder mit Ctrl + x. Durch den Eintrag wird nun eine Verzögerung von 30 Sekunden erzwungen. Mit 

wird der Turnserver zeitverzögert neu gestartet. jetzt arbeitet coTURN nach dem nächsten Reboot des Raspberry Pi wie gewünscht.

Viel Erfolg!

3 Kommentare

  1. Hallo Frank und alle,

    die Anpassung des Startverhaltens von coturn mit „ExecStartPre=/bin/sleep 30“ kann auch so erfolgen, dass sie ein Paket-Update des Turn-Servers und selbst ein dist-upgrade übersteht, da die Anpassung in /etc vorgenommen wird.
    systemd hat dazu das Konzept der Drop-in Files entwickelt: eine Config-Datei wird im passenden Verzeichnis innerhalb /etc/systemd/ platziert und enthält nur die Direktiven, welche im ursprünglichen Unit-File ergänzt oder überschrieben werden sollen. Für deinen Anwendungsfall wäre das Vorgehen:

    sudo systemctl edit coturn.service

    Dann öffnet sich ein Editor-Fenster, welches im obersten Abschnitt ungefähr so aussieht:
    ——————————————————————————-
    ### Editing /etc/systemd/system/coturn.service.d/override.conf
    ### Anything between here and the comment below will become the new contents of the file

    [Service]
    ExecStartPre=/bin/sleep 30

    ### Lines below this comment will be discarded

    ### /lib/systemd/system/coturn.service
    ——————————————————————————-

    Ich habe die zusätzliche Zeile „ExecStartPre=/bin/sleep 30“ schon eingefügt.
    Die Datei im Editor wird wie üblich gespeichert und der Editor wird geschlossen.
    Das eigentlich notwendige Kommando „sudo systemctl daemon-reload“ wird bei dieser Vorgehensweise im Hintergrund ausgeführt.

    Beim nächsten Start von coturn.service wird nun die Pause von 30 Sekunden eingelegt.

    • Hallo Matthias,

      danke für den wertvollen Hinweis. Das ist natürlich die perfekte Lösung, um coTURN zeitversetzt so zu starten, dass der Turn-Server die Konfiguration auch nach einem Upgrade noch behält.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein