Änderungsstand: 2023-10-23
Warum sollte man Armbian verwenden? Diese Frage ist relativ einfach erklärt. Es ist Open Source.
Folgender Guide gilt für Armbian „Bookworm“ und sollte auch für Debian „Bookworm“ gültig sein. Weitere spezifische Informationen über Armbian „Bookworm“ bekommt man hier.
.
- Installation von Armbian (Bookworm) Server
- Login und Terminal
- Systemupdate
- Benutzerpasswort ändern
- Feste IP-Adresse vergeben
- Timezone, Language, Hostname (–> nur für Armbian gültig)
- SSH-Port ändern
- Docker Compose installieren
- Ext. Laufwerk einbinden
- Samba Freigabe erstellen
- Rechte des Benutzerverzeichnisses wiederherstellen
Zuerst lade ich mir hier die benötigte Version herunter. Ich muss Model B wählen und Archiv. Nun wähle ich die zweite Version von oben aus (Armbian_23.8.1_Rockpi-4b_bookworm_current_6.1.50.img.xz). Anschließend bringe ich das Image mittels BalenaEtcher auf eine mind. 32GB SSD. Wenn erledigt, die SD-Card in den RockPi 4 rein und diesen starten.
Zur Info:
- Armbian Jammy basiert auf Ubuntu 22.04 | | Armbian Bookworm basiert auf Debian12
Wenn gestartet, verlangt die Eingabeaufforderung auch gleich ein neues root-Passwort. Sehr schön. Da ich nicht weiß, welches Tastaturlayout benutzt wird, wählte ich für das Passwort nur Zahlen (nicht vom Ziffernblock). Im späteren Verlauf ändere ich das Passwort noch einmal. Nun:
- Benutzer erstellen inkl. Benutzerpasswort (ich wähle für meine folgenden Beispiele den Benutzernamen rock)
- Timezone wird nun automatisch erkannt (Wenn Internetverbindung besteht)
- Sprache einstellen nach Erkennung: Y (Z) (das Tastatur-Layout war doch amerikanisch)
- 1 für de_DE.UTF-8
ip aeingeben und IP-Adresse ablesen- Im Terminal anmelden (entweder mit root oder dem erstellten Benutzer)
Nun das erste Update:
sudo apt update && sudo apt upgrade -y
Hier merkt man schon die erste Abweichung von einem handelsüblichen Debian. Der sudo-Befehl ist implementiert.
Armbian wurde installiert und aktualisiert.
Benutzerpasswort ändern:
sudo passwd rock
- aktuelles PW eingeben (wenn verlangt)
- neues Passwort eingeben
- neues Passwort wiederholen
Rootpasswort ändern:
sudo passwd root
- aktuelles Passwort eingeben (wenn verlangt)
- neues Passwort eingeben
- neues Passwort wiederholen
Für folgende Schritte benötige ich ein Tool, welches in meiner gewählten „current“-Version schon vorhanden ist aber in der minimal-Ausführung von Armbian nicht installiert ist. Sollte armbian-config nicht installiert sein, kann ich das nachholen:
sudo apt install armbian-config -y
Feste IP-Adresse vergeben:
Ich werde sudo armbian-config direkt aufrufen (nicht über Terminal):
sudo armbian-config
- Network
- IP (Select dynamic or edit static IP address)
- Static
- Address: 192.168.1.234
- Netmask: 24
- Gateway: 192.168.1.1
- DNS: 8.8.8.8
- Static
- IP (Select dynamic or edit static IP address)
- OK
Falls eine andere IP-Adresse gewählt wurde, wird die Verbindung getrennt. In diesem Fall mit der neuen IP-Adresse einloggen.
Timezone, Language, Hostname:
sudo armbian-config
- Personal
- Keyboard (Rest selbsterklärend)
SSH-Port ändern:
sudo nano /etc/ssh/sshd_config
Ich suche nun folgenden Eintrag:
#Port 22
Diesen Eintrag ändere ich folgend:
Port 12345
Strg-x, y, Enter
Port 12345 ist ab nun der Port, der für den SSH-Zugang verwendet wird.
Dieser Port, so wie er in diesem Beispiel angegeben wurde, sollte natürlich nicht so verwendet werden! Bitte einen eigenen, freien Port verwenden!!!
sudo systemctl restart ssh
Im Terminal mit dem neuen Port anmelden – fertig.
(Die alte Terminalsession funktioniert noch bis zum Schließen dieser)
Docker Compose installieren (Scriptinstall):
sudo apt-get update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER
docker compose version
Meine Ausgabe zum Zeitpunkt:
Docker Compose version v2.21.0
Externes Laufwerk einbinden:
Ich verwende eine NVMe und binde diese nun im System ein:
lsblk
Meine Ausgabe:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 29,7G 0 disk
└─mmcblk0p1 179:1 0 29,4G 0 part /var/log.hdd
/
zram0 251:0 0 488,1M 0 disk [SWAP]
zram1 251:1 0 50M 0 disk /var/log
zram2 251:2 0 0B 0 disk
nvme0n1 259:0 0 465,8G 0 disk
Meine NVMe hat die Bezeichnung nvme0n1, welche ich nun neu partitioniere:
Alle vorhandenen Daten des Laufwerkes werden gelöscht!
sudo parted /dev/nvme0n1 "mklabel gpt"
- Yes
Formatieren als ext.4 Laufwerk:
sudo mkfs.ext4 /dev/nvme0n1
- y
Jetzt mounte ich das Laufwerk nach /mnt/nvme0n1:
(ssd ist meine dafür verwendete Bezeichnung)
sudo mkdir -p /mnt/nvme0n1
sudo mount /dev/nvme0n1 /mnt/nvme0n1
sudo chmod -R 777 /mnt/nvme0n1/
Zur Erklärung, da immer wieder Fragen aufkommen und die gängigsten Beispiele:
- 777: Jeder kann Lesen, Schreiben, Ausführen (rwx rwx rwx).
- 755: Der Besitzer, die Gruppe und andere Personen können Lesen –> Schreiben und Ausführen nur Besitzer (rwx rx rx).
- 600: Nur der Eigentümer kann Lesen und Schreiben (rw – -).
Auto-Mount:
sudo nano /etc/fstab
Folgendes trage ich am Ende ein:
/dev/sdb1 /home/user/disk ext4 defaults 0 0
# ext. nvme0n1 einhängen
/dev/nvme0n1 /mnt/nvme0n1 ext4 defaults 0 0
Strg-x, y, Enter
sudo systemctl daemon-reload
sudo mount -a
Zum Test, ein obligatorischer Reboot:
sudo reboot
Nach dem Start ist meine SSD unter dem erstellten Mountpoint verfügbar:
df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 412M 0 412M 0% /dev
tmpfs 98M 2,5M 96M 3% /run
/dev/mmcblk0p1 29G 2,1G 27G 8% /
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 489M 0 489M 0% /tmp
/dev/nvme0n1 458G 28K 435G 1% /mnt/nvme0n1
/dev/zram1 47M 4,8M 39M 11% /var/log
tmpfs 98M 0 98M 0% /run/user/1000
Wichtig für mich in diesem Moment ist die Zeile:
/dev/nvme0n1 458G 28K 435G 1% /mnt/nvme0n1
Alles i.O.
Samba-Freigabe:
Ich richte die SMB-Freigaben ein, damit ich meine Medien mittels Netzwerk auf meinem Server kopieren kann. Mein Benutzername ist rock.
sudo apt update && sudo apt upgrade -y
sudo apt install samba samba-common smbclient -y
Check, ob alles passt:
sudo service smbd status
Als wichtige Ausgabe erhalte ich:
Active: active (running)
Ggf. Strg-c drücken.
Samba ist nun installiert. Auf zur Konfiguration:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_old
sudo nano /etc/samba/smb.conf
Folgendes füge ich ein:
[global]
workgroup = WORKGROUP
security = user
client min protocol = SMB2
client max protocol = SMB3
Strg-x, y, Enter
SMB-Freigabeverzeichnis einrichten:
Ich habe eben meine SSD als Mount zu /mnt/nvme0n1 gesetzt. Dieses Verzeichnis verwende ich und setze die Freigabe meines Samba-Freigabeordners (sharedfolders) für den Benutzer rock:
sudo mkdir -p /mnt/nvme0n1/sharedfolders
sudo chown -R rock:rock /mnt/nvme0n1/sharedfolders
Achtung! Dieser Freigabeordner /mnt/nvme0n1/sharedfolders ist selbst nur noch mittels Benutzer rock und root verwendbar (Lesen und Schreiben)! Das trifft nicht für den Hauptordner /mnt/nvme0n1 zu. Dieser kann in meinem Beispiel mit jedem Benutzer verwendet werden, wenn dort 777 verwendet wurde..
sudo nano /etc/samba/smb.conf
Folgendes trage ich am Ende dieser Datei ein:
[shared]
comment = Samba-RockPi-Freigabe
path = /mnt/nvme0n1/sharedfolders
browseable = yes
read only = no
Strg-x, y, Enter
Achtung! –> Das Freigabeverzeichnis für den Ordner /mnt/nvme0n1/sharedfolders lautet nun shared. Soll das Freigabeverzeichnis sichtbar für andere Kuchen heißen, muss die Zeile [shared] in [Kuchen] geändert werden!
sudo service smbd restart
sudo service nmbd restart
SMB-Passwort erstellen:
sudo smbpasswd -a rock
Optional: Deaktivieren des rock-Users für Samba-Zugriffs:
sudo smbpasswd -d rock
Optional: Re-Aktivieren des rock-Users für Samba-Zugriffs:
sudo smbpasswd -e rock
Die SMB-Freigabe kann nun verwendet werden und ich kann mittels Windows-Rechner darauf zugreifen (Bsp.: \\192.168.1.200\shared).
Am Ende ein obligatorisches:
sudo reboot
.
Quelle(n):
https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script