SSH aktivieren
Um SSH in einem Image von Anfang an zu aktivieren, muss man vor dem ersten Booten des Images
unter dem Folder /boot/
eine leer Date mit Namen ssh
anlegen.
Dies kann man über das Kommando touch
erledigen:
sudo touch /pathToSDCard/boot/ssh
Wichtig unter Windows: Darauf achten, dass nicht .txt oder eine andere Endung dran pappt. Gitbash oder Total Commander sind Euer Freund.
Remote Folder vom Pi lokal sichern
Verzeichnisse vom Pi lassen sich von Windows aus bequem ins lokale Win Dateisystem unter Hilfe der gitbash kopieren.
scp -r pi@pisync:/mnt/usb/* ./$(date +%Y%m%d-%H%M%S)/
Dieser Bash Befehl kopiert alle Dateien und Verzeichnisse vom Pi die dort unter /mnt/usb liegen. Das könnten z.B. alle synchronisierten Resilio Sync Verzeichnisse sein. Allerdings dauert dies sehr lange, so dass ggf. ein Timeout zuschlägt und die Verbindung getrennt wird bevor alles kopiert wurde. Daher ist es sinnvoller ein Kommando zu verwenden, welches erst auf dem Pi alles packt und dann die eine Archivdatei am Stück überträgt. Verkleinert auch die Backupstände - ist also deutlich sinnvoller als diese Art des Kopierens hier.
Remote Backup vom Pi als Image ziehen
Den aktuellen Zustand des Pi kann man remote per ssh als Image ziehen. Dazu wieder eine Bash öffnen, unter Windows zum Beispiel die gitbash.
ssh pi@192.168.20.22 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=~/Desktop/backup20230906.gz
Der Restore eines Images auf den Pi geht nicht remote. Daher muss der Pi heruntergefahren werden, die SD Karte entnommen und das Image separat auf die SD Karte übertragen werden. |
Pi Image verkleinern
Beim Verkleinern soll keine Information verloren gehen. Es dient nur der Platzverringerung für die Lagerung der Images.
Wenn ein Image auf dem Pi aufgespielt wurde und der Pi läuft, kann das Image jederzeit wieder über die
Einstellung "Expand Filesystem" im folgenden Konfigurationsprogramm sudo rpi-config
auf das Maximum der SD Karte
vergrößert werden.
Zur Verkleinerung einer abgelegten Imagedatei
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
Basis Konfiguration ändern
Dieses Skript führt die grundlegende Konfiguration auf dem Pi aus. Hier werden sowas wie Sprache, Zeitzone, Tastaturlayout etc. festgelegt:
/usr/bin/raspi-config
Allgemeine Konfiguration auf dem PI
Zeitsynchronisationsfehler beheben
In seltenen Fällen stimmt die Uhzeit des Pi nicht. Folgendes Vorgehen habe ich dazu erprobt:
-
Prüfen ob nicht der Windows Client die falsche Uhrzeit anzeigt (kommt öfter vor wenn länger nicht am Netz). Meist genügt dann "Rechtsklick" auf die Zeitanzeige, "Zeit neu setzen" und dort "Jetzt synchronisieren". Sonst einfach mal hier lesen: https://answers.microsoft.com/en-us/windows/forum/all/how-to-force-windows-10-time-to-synch-with-a-time/20f3b546-af38-42fb-a2d0-d4df13cc8f43
-
Zeitsynchronisation lieber nochmal anschalten, sollte eigentlich per Default eingeschaltet sein:
sudo timedatectl set-ntp true
-
Einen Fallbackservice einrichten
nano ./etc/systemd/timesyncd.conf
[Time]
#NTP=
FallbackNTP=time.nist.gov
-
Zeitservice neu starten
sudo systemctl restart systemd-timesyncd
APT Lock entfernen
Falls die Remote ssh Verbindung während der Installation abbricht muss man das Lock entfernen und neu aufsetzen. Es sind genau 2 Lock Dateien zu löschen
sudo rm /var/cache/apt/archives/lock
Anschließend muss die Installation neu aufgesetzt werden mit:
sudo dpkg --configure -a
File Transfer
Mit diversen Tools (rcp,rsh,…) lassen sich Dateien vom Pi zu einem anderen Rechner und zurück transportieren. Am einfachsten
funktioniert es mit scp
. Dieses Werkzeug steht sowohl auf dem Pi als auch in der gitbash unter Windows zur Verfügung.
# Zum Pi kopieren
scp ./meineDatei.pdf pi@raspihostname:/home/pi/meineDatei.pdf
# Vom Pi kopieren, aktuelles Verzeichnis ist schreibbar für mich
scp pi@raspihostname:/home/pi/meineDatei.pdf .
WLAN einrichten
Die Eintragungen für das WLAN erfolgen in der Datei wpa_supplicant.conf während der Pi per Netzwerkkabel mit einem PC verbunden und gestartet ist:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Die wpa_supplicant.conf kann beispielsweise für Freifunk Franken so angepasst werden:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="franken.freifunk.net"
key_mgmt=NONE
priority=1
}
oder für ein eigenes WLAN nach diesem Beispiel:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="FRITZ!Box 7490"
psk="password"
key_mgmt=WPA-PSK
}
Anschließend kann die Konfiguration ausprobiert werden:
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
oder über:
ip l
wpa_cli status
WLAN ändern
Netzwerk Schnittstellen ermitteln
Als erstes schauen wir welche Netzwerkschnittstellen am Pi vorhanden sind. In der Standardkonfiguration wird uns nur wlan0 interessieren.
netstat -i
WLAN Liste
Jetzt scannen über die Netzwerkschnittstelle die empfangenen WLAN IDs um zu sehen ob das zu Konfigurierende nah genug ist um empfangen zu werden.
sudo iwlist wlan0 scan | grep ESSID
Zugangsdaten ändern
Nun sind die Zugangsdaten des WLANs im System zu hinterlegen. Dies können wir wie folgt tun:
sudo wpa_passphrase "Eure WLAN SSID" "Euer Netzwerkschlüssel" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
Configdatei prüfen
Dei WLAN Konfiguration unter /etc/wpa_supplicant/wpa_supplicant.conf
sollte nun Euren Netzwerkeintrag in folgender
Form mit enthalten:
network={
sssid="Eure WLAN SSID"
#psk="Euer Netzwerkschlüssel"
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
Unter psk
kann die Phasphrase des Netzwerkes im Klartext oder verschlüsselt abgelegt sein. Sinnvoll wäre natürlich
die Phasphrase verschlüsselt abzulegen. Für einen ersten Test kann man aber auch erstmal den Klartext nutzen.
In der Praxis hatte ich manchmal das Problem, dass die verschlüsselte Version nicht funktionierte, kann aber nicht sagen woran es lag. Ob es ein alter Pi oder eine alte OS Version war, die die Verschlüsselung nicht unterstützte oder ob beim Verschlüsseln auf der Konsole irgendwelche Sonderzeichen Probleme bereiteten - weiß ich noch nicht.
Manchmal half das Einfügen einer separaten Zeile direkt unter psk mit folgendem Inhalt:
key_mgmt=WPA-PSK
Damit wird angegeben welches Verschlüsslungsverfahren im WLAN genutzt wird.
Aktivieren der Konfiguration
Wir können die Konfiguration aktivieren mit:
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
oder über:
ip l
wpa_cli status
Wenn alles weiter funktioniert, sollten wir dann aber trotzdem noch einen sauberen Restart vornehmen mit:
sudo shutdown -r now
USB - Mobile Festplatten einrichten
Für NTFS Platten installieren wir das Paket ntfs-3g
- meist ist es aber jetzt schon vorhanden.
sudo apt install ntfs-3g
Dann schließen wir die Platte an, um mehr Infos zu bekommen und ermitteln die Infos wie folgt:
sudo fdisk -l
Jetzt den Filesystemtype und den Device Namen merken. Beispiele:
/dev/sda1 ntfs
Dabei ist /dev/sda1
der Device Name und ntfs
der Filesystemtyp.
Wir brauchen noch die uuid
vom Laufwerk, die finden wir so heraus:
sudo ls -l /dev/disk/by-uuid
Die UUID merken wir uns für später. Beispiele für UUIDs: 806203c46203BDC2
oder 37E2-62C3
Jetzt erstellen wir einen Mount Point z.B. /mnt/usb
Sollen später mehr Platten angeschlossen werden, hängen wir gleich eine Nummer dran z.B. /mnt/usb0
sudo mkdir /mnt/usb
Nun wollen wir die Platte noch automatisch mounten lassen. Dazu fügen wir einen Eintrag in die fstab
ein:
sudo nano /etc/fstab
Diese Zeile aufnehmen (Vorher UUID und FS Type anpassen)
UUID=806203C46203BDC2 /mnt/usb ntfs uid=pi,gid=pi 0 0
!!! Kein Reboot mit fehlerhafter Konfiguration !!! |
Jetzt prüfen wir die Konfiguration
sudo mount -a
Solange Fehler kommen, bitte keinen Reboot durchführen. Es kann sonst passieren oder es wird höchstwahrscheinlich passieren,
dass /
und /boot
nicht gemountet werden können und das System nicht mehr hochfährt.
Dann geht es für Euch zurück auf Anfang! Oder ihr kennt wen der sich auskennt.
Auf jeden Fall wird es schwierig wenn das automatische mounten kaputt ist.
Im Notfall Eure Zeile wieder entfernen und prüfen ob es jetzt wieder geht.
Samba Freigaben einrichten
-
Pakete installieren
sudo apt-get install samba samba-common smbclient (enter)
-
Reboot
sudo reboot
-
Status Samba Service prüfen
sudo service smbd status (enter)
-
Einen Share konfigurieren Einen neuen Bereich am Ende der Samba Konfigurationsdatei erstellen der wie das Share heißt (hier ablagen) und sich nicht mit bestehenden widersprechen darf.
sudo nano /etc/samba/smb.conf (enter) : [ablagen] comment = RW Share für Resilio Sync Zugriffe path = /mnt/usb/ read only = no browseable = yes create mask = 0777
-
Samba Service neu starten
sudo service smbd restart (enter) sudo service nmbd restart (enter)
-
Samba Nutzer anlegen
sudo smbpasswd -a pi (enter)
-
Das Share nutzen Unter Windows Rechtsklick auf "Mein PC" dann "Netzlaufwerk verbinden" und "Mit anderer Identität anmelden" auswählen. Das Share ablagen für den Host pisync würde so als Path eigegeben werden: \\pisync\ablagen
OS Upgrade (Stretch auf Buster)
OS Version ermitteln
cat /etc/os-release
Hier sieht man, welches die nächste Version ist auf die Upgraded wird: https://en.wikipedia.org/wiki/Raspberry_Pi_OS
Firmware des Pi aktualisieren
Dieser Schritt sollte nur bei Bedarf erfolgen (von 9 auf 10 besteht scheinbar Bedarf).
sudo rpi-update
Quellen aktualisieren
Jetzt stellen wir die Quellen auf die neuen Repositories der neuen Distribution ein. Bei uns stellen wir also Stretch auf Buster in den Quellen um. Später analog halt auf den Namen der neuen Distribution.
sudo nano /etc/apt/sources.list
Wir ersetzen in der Zeile stretch durch buster und speichern und verlassen die Datei.
Jetzt wiederholen wir den Schritt für eine weitere Quellenangabe
sudo nano /etc/apt/sources.list.d/raspi.list
Wieder ersetzen wir in der Datei die aktuelle Distribution durch die nachfolgenden Distribution, speichern ab und schließen den Editor.
APT List Changes löschen
Vor dem finalen Upgrade löschen wir noch die ListChanges.
sudo apt-get remove apt-listchanges
Aktualisieren der neuen Distribution
Jetzt aktualisieren wir die Distribution aus den neuen Quellen. Es ist damit zu rechnen, dass sehr viele interaktive Abfragen kommen. Also nicht weglaufen sondern dabei bleiben.
sudo apt update
sudo apt dist-upgrade
Unsupportete Pakete löschen
sudo apt purge timidity lxmusic gnome-disk-utility deluge-gtk evince wicd wicd-gtk clipit usermode gucharmap gnome-system-tools pavucontrol