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 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, die aktuellste Version herausfinden und dann unter https://download.freebsd.org/ftp/releases/arm64/aarch64/ISO-IMAGES/ 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
Alternativer Weg für ein Backup beginnt mit
um herausfinden, wie groß das Systemvolume ist (hier SD-Karte mmcsd0) ist. Dann den Parameter count im folgenden Befehl anpassen, um die Backup-Datei zu erzeugen:
Backup dann wie folgt erzeugen:
Funktionierte auch mit dem Update auf FreeBSD 13. Allerdings gab es Probleme mit dem Ausführen der letzten rclone-Befehlen, da dann die Libraries schon von einem zu neuen Stand waren. Das lies sich über ein chroot-Environment mit bind –nullfs umgehen.
Um die FreeBSD Installation mit Sicherheitspatches auf dem aktuellsten Stand zu halten, kann man wie folgt vorgehen:
freebsd-update fetch install
pkg update && pkg upgrade
reboot
Quelle