Leider lässt sich FreeBSD auf dem Rasperry Pi nicht mit freebsd-update aktualisieren, da dort leider die Unterstützung für arm-Architekturen fehlt. In Anlehnung an einen Post im FreeBSD-Forum [1] habe ich nun FreeBSD auf dem Rasperry Pi 3 wie folgt aktualisiert, um den langwierigen build-Prozess zu umgehen.
- Clone-Version installieren
mkdir -p /usr/local/etc/pkg/repos/ vi /usr/local/etc/pkg/repos/FreeBSD.conf
Dann dort folgenden Inhalt eintragen:
FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", }
und mit
pkg install clone
die richtige Version von clone installieren.
- Backup des aktuellen OS (SD-Karte auf externe USB-Festplatte)
In meinem Fall das Backup-Drive mounten:zfs mount remote_backup
Wechseln ins Backup-Verzeichnis:
cd /remote_backup/backup_haning
Über
geom disk list
herausfinden, welches das Systemvolume ist (hier SD-Karte mmcsd0) und dann den Parameter if im folgenden Befehl anpassen, um die Backup-Datei zu erzeugen:
dd if=/dev/mmcsd0 of=haning_2020-07-12.img bs=1M status=progress
Backup dann wie folgt testen:
mdconfig -a -u 0 -t vnode -f /remote_backup/backup_haning/haning_2020-07-12.img mount -o noatime /dev/md0s1 /media ls /media umount /media mdconfig -d -u 0
- FreeBSD aktualisieren auf den neusten Stand
Unter FreeBSD Releases [2], die aktuellste Version herausfinden und dann unter https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/ [3] die entsprechende Version suchencd /remote_backup/backup_haning/images fetch https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-arm64-aarch64-RPI3.img.xz xz -d FreeBSD-12.1-RELEASE-arm64-aarch64-RPI3.img.xz mdconfig -a -u 0 -t vnode -f /remote_backup/backup_haning/images/FreeBSD-12.1-RELEASE-arm64-aarch64-RPI3.img mount -o noatime,ro /dev/md0s2a /media clone -c rwoff -s -x /usr/home:/usr/local:/usr/ports:/usr/obj:/usr/src /media/usr /usr & clone -c rwoff -s /media/sbin /sbin & clone -c rwoff -s /media/rescue /rescue & clone -c rwoff -s -x crontab:exports:fstab:group:hosts:shells:localtime:master.passwd:motd:ntp.conf:passwd:pwd.db:rc.conf:rc.local:resolv.conf:spwd.db:ssh:ssl:unbound:aliases:dma:mailer/mailer.conf /media/etc /etc & clone -c rwoff -s -x /boot/loader.conf:/boot:modules:/boot/msdos /media/boot /boot & clone -c rwoff -s /media/bin /bin & clone -c rwoff -s /media/libexec /libexec & clone -c rwoff -s /media/lib /lib &
Dann mit dem Befehl
jobs
prüfen, bis alle Befehle im Hintergrund fertiggestellt wurden.
umount /media mdconfig -d -u 0 zfs umount remote_backup
Dann neu starten mit
shutdown -r now
- Bitte überspringen – nur als Erinnerung für mich: verschlüsselte USB-Festplatte einbinden mit
geli attach -k /root/remote_backup_wd_elements_10tb.key /dev/da0p2 zpool import -N remote_backup zfs mount remote_backup
- Boot-Partition aktualisieren und Pakete installieren wie z.B. dma
mdconfig -a -u 0 -t vnode -f /remote_backup/backup_haning/images/FreeBSD-12.1-RELEASE-arm64-aarch64-RPI3.img mount_msdosfs -o noatime /dev/md0s1 /media clone -c rwoff -s /media /boot/msdos umount /media mdconfig -d -u 0 pkg install dma shutdown -r now
- Pakete installieren
Paketquelle wieder richtig setzen mitrm /usr/local/etc/pkg/repos/FreeBSD.conf
Jetzt fehlen eventuell die aus der Vergangenheit vorhandenen Pakete. Diese lassen sich installieren mit
pkg update pkg upgrade