Μεταφορά από Raspberry Pi 4 στο Raspberry Pi 5 με αναβάθμιση σε Raspberry Pi OS Bookworm


Screenshot from 2024-01-14 13-04-57

Το άρθρο αυτό αποτελεί μέρος της σειράς Raspberry Pi Server, υποστηριζόμενο από την επίσημη αντιπροσωπία του Raspberry Pi στην Ελλάδα, το nettop.gr το οποίο με προμήθευσε με το Raspberry Pi 5 ώστε να δημιουργήσω περισσότερο περιεχόμενο για τις δυνατότητες και τα Project που μπορούν να τρέξουν self-hosted πάνω στο Raspberry Pi στα Ελληνικά. Ευχαριστώ πάρα πολύ το nettop.gr για την υποστήριξη!!!

Μεταφορά από Raspberry Pi 4 στο Raspberry Pi 5 με αναβάθμιση σε Raspberry Pi OS Bookworm

#Προσοχή: Αυτός ο οδηγός δεν προτείνεται επίσημα του Raspberry Pi Foundation.
Η επίσημη οδηγία είναι να πραγματοποιηθεί μια εκ νέου εγκατάσταση του νέου Raspberry Pi OS στο νέο Raspberry Pi 5. Δεν προτείνεται επίσημα καμία αναβάθμιση από το Raspberry Pi 4 στο Raspberry Pi 5.

Είναι εφικτό όμως;

Φυσικά :) … Για πειραματικούς σκοπούς αποφάσισα να δεκτώ τον ρίσκο, αφού έκανα full disk backup την MicroSD μου πρώτα από το Raspberry Pi 4.

Ποιός είναι ο στόχος;

Να μετακινήσουμε το setup μας από το Raspberry Pi 4 στο Raspberry Pi 5 χωρίς να χρειαστεί να τα στήσουμε όλα από την αρχή με format, κάνοντας απλά αναβάθμιση σε νέο Raspberry Pi OS συμβατό με το Raspberry Pi 5.

Ποιά είναι η διαδικασία οπού θα ακολουθήσουμε;

  1. Αναβάθμιση του Raspberry Pi OS από Bullseye σε Bookworm στο Raspberry Pi 4
  2. Eγκατάσταση και χρήση του νέου πυρήνα Linux συμβατό με Raspbeery Pi 5 στο Rasperry Pi OS Bookworm.
  3. Αφαίρεση της MicroSD από το Raspberry Pi 4 και σύνδεση της με το Raspberry Pi 5.

Τι δεν μου δούλεψε μετά από την αναβάθμιση;

  • WIFI Access Point με γέφυρα μεταξύ etherent && wifi οπού πριν την αναβάθμιση του πυρήνα λειτουργούσε. Δοκιμάστηκε τόσο με dchpcd και hostapd όσο και NetworkManager.

Τι δοκιμάστηκε και δούλευε κανονικά μετά από την αναβάθμιση;

  • PIVPN (Wireguard)
  • Pihole (με unbound ως recursive DNS)
  • Docker με όλα τα services που έτρεχαν από εκεί
  • Apache2
  • Διάφορα systemd services
  • Log2RAM

Αναβάθμιση του Raspberry Pi OS από Bullseye σε Bookworm στο Raspberry Pi 4

Αρχικά ελέγχουμε να έχουμε αρκετό χώρο ελεύθερο. (Θα πω τουλάχιστον 7gb και ας υπερβάλω, better safe than sorry).
Ανοίγουμε ένα τερματικό και εκτελούμε:

sudo apt update && sudo apt dist-upgrade

Mετά, αντικατεστούμε στα sources το bullseye με το bookworm :

sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/raspi.list

Και τώρα είμαστε έτοιμοι να κάνουμε την πλήρη αναβάθμιση:

sudo apt update
sudo apt full-upgrade
sudo apt clean
sudo apt autoremove
sudo reboot

Κατά την διάρκεια της αναβάθμισης, αν έχετε κάνει αλλαγές π.χ. στον Apache, το πρόγραμμα ενημέρωσης θα σας ρωτήσει αν θέλετε να κάνετε αντικατάσταση με το official του vendor.
Επιλέξτε, όποτε σας ρωτάει, “να διατηρηθούν από τις δικές σας ρυθμίσεις”, διαφορετικά θα γίνουν πολλά πράγματα default και ενδεχομένως να σας δημιουργήσουν προβλήματα.

Π.χ. σε εμένα στην πρώτη απόπειρα, ο Apache άλλαξε μόνος του πόρτα και πήγε πίσω στην 443, κάνοντας μου τον caddy reverse proxy αδύνατο να ξεκινήσει, άρα δεν μου δούλευε καμία υπηρεσία που βασιζόταν στον reverse proxy μετά.

Eγκατάσταση και χρήση του νέου πυρήνα Linux συμβατό με Raspberry Pi 5 στο Rasperry Pi OS Bookworm

Μετά την επανεκκίνηση, θα ασχοληθούμε με αναβάθμιση firmware καθώς και εγκατάσταση νέου πυρήνα στο Raspberry Pi OS, συμβατό με το Raspberry Pi 5. Δίνουμε μία-μία τις παρακάτω εντολές

sudo dpkg --purge --force-depends raspberrypi-kernel raspberrypi-bootloader
sudo umount /boot
sudo fsck -y /boot
sudo mkdir /boot/firmware
sudo sed -i.bak -e "s#boot#boot/firmware#" /etc/fstab
sudo systemctl daemon-reload
sudo mount /boot/firmware
sudo apt install raspi-firmware

Ώρα εγκατάστασης του νέου πυρήνα:

sudo apt install linux-image-rpi-v8 linux-headers-rpi-v8 
sudo sed -i.bak '$ a\auto_initramfs=1' /boot/firmware/config.txt 
sudo reboot

Μετά την επανεκκίνηση, για να θεωρηθεί επιτυχημένη η αλλαγή το όνομα του πυρήνα του Linux πρέπει να είναι της δομής: 6.1.0-rpi4-rpi-v8 αντί για 6.1.21-v8+ οπού είναι ο προεπιλεγμένος στο Raspberry Pi 4.

Είμαστε έτοιμοι. Κάνουμε τερματισμό λειτουργίας στο Raspberry Pi 4 και μπορούμε να εισάγουμε την microSD/SSD/USB στο Raspberry Pi 5, το οποίο θα bootάρει κανονικά.
Το Raspberry Pi 5 μας είναι έτοιμο και λειτουργικό, ως ένας νέος server ως και 3 φορές πιο γρήγορος.

Αν αντιμετωπίσουμε οποιοδήποτε πρόβλημα, μην αγχώνεστε. Aπλά επαναφέroyme το backup που δημιουργήσαμε προηγουμένως, και θα έχουμε και πάλι λειτουργικό το Raspberry Pi 4 σας μέχρι να ξαναδοκιμάσουμε αυτόν τον οδηγό ή να κάνουμε νέα εγκατάσταση εκ νέου στο Raspberry Pi 5 μας.

(Optional) Αντικατάσταση του dhcpcd με NetworkManager

Η μεγάλη αλλαγή στο Raspberry Pi OS Booworm εκτός ότι πλέον παίρνει τα πακέτα του απευθείας από τα αποθετήρια του Debian GNU/Linux, είναι ότι αντικατέστησε τον dchpd με τον NetworkManager by default.

Προσωπικά αν εξαιρέσουμε το hostapd που δεν δούλεψε ποτέ μετά την αναβάθμιση σε Raspberry Pi OS Bookworm (Access Point - Wifi Hotspot για το ethernet μου), δεν αντιμετώπισα κανένα άλλο πρόβλημα. Ωστόσο, αυτό το πρόβλημα ξεπεράστηκε με χρήση ενός Docker Container όπου κάνει αυτή την δουλειά και δουλεύει ως WiFi Access Point με hostapd.

Ωστόσο, θεωρητικά θα πρέπει να ενεργοποιήσουμε τον NetworkManager και να απενεργοποιήσουμε τον dhcpcd για το full Raspberry Pi OS Bookworm experience, οπότε επιπλέον εκτελούμε:

sudo systemctl enable --now NetworkManager
sudo systemctl disable --now dhcpcd
5 «Μου αρέσει»

Kαι έτσι πλέον με την λύση του WiFi Access Point από Docker, ολοκλήρωσα το migration μου από Raspberry Pi 4 σε Raspberry Pi 5 :))).

Αναμένουμε Ubuntu 24.04 LTS καθώς και με τα immutable version του να είναι διαθέσιμα στο Raspberry Pi 5 τις επόμενες ημέρες, ενώ το επερχόμενο Fedora 40 δεν φαίνεται να ενσωμάτωσε ακόμη τους απαιτούμενους drivers για να δουλέψει στο Raspberry Pi 5… Αναμένουμε!

1 «Μου αρέσει»