FreeBSD - Upgrade

RELEASE-Upgrade
/root/bin/FreeBSD_-_Update.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_1.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_2.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_3.sh
reboot
/root/bin/FreeBSD_-_Update.sh
/root/bin/FreeBSD_-_update_Ports-Tree.sh
#!/bin/sh
#!/usr/bin/env bash
 
#------------------------------------------------------------------------------#
#
# Seit FreeBSD 14.0 wird der Ports-Tree per GIT verwaltet.
#
#------------------------------------------------------------------------------#
 
VERSION="v2024021300"		# initiale Erstellung
 
#------------------------------------------------------------------------------#
#
# Installing the Ports Collection
# https://docs.freebsd.org/en/books/handbook/ports/#ports-using-installation-methods
#
#------------------------------------------------------------------------------#
 
### GIT installieren
pkg install devel/git www/links ports-mgmt/portupgrade
echo "### 0"
 
### den Ports-Tree aktuallisieren
git -C /usr/ports pull
echo "### 1"
 
#------------------------------------------------------------------------------#
zweig_update()
{
### Zweig verlassen
git -C /usr/ports branch
git switch -d
git -C /usr/ports branch
echo "### 2"
 
### zum neuesten vierteljährlichen Zweig wechseln
ZWEIG="$(links -source https://github.com/freebsd/freebsd-ports/branches | tr -s ',' '\n' | grep -F '"name":"2' | awk -F'"' '{print $(NF-1)}' | sort -nr | head -n1)"
# git -C /usr/ports switch 2024Q1
echo "### 3"
git -C /usr/ports switch ${ZWEIG}
git -C /usr/ports branch -l
echo "### 4"
}
 
### ein- und ausschalten
zweig_update
#------------------------------------------------------------------------------#
 
### den Ports-Tree aktuallisieren
portsclean -CDL				# entfernt alle workdirs und veralteten Distfiles
git -C /usr/ports pull
git -C /usr/ports branch -l
echo "### 5"
 
set -x
 
### INDEX erstellen
cd /usr/ports/ && make index
ls -lha /usr/ports/INDEX-*.db
echo "### 6"
/root/bin/FreeBSD_-_Update.sh
#!/bin/sh
#!/usr/bin/env bash
 
VERSION="v2025011800"		# initiale Erstellung
 
#==============================================================================#
#
# /root/bin/FreeBSD_-_Update.sh
#
#==============================================================================#
#
# siehe auch
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#------------------------------------------------------------------------------#
 
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
 
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
 
# aktuelle Version vom Kernel anzeigen
uname -a
 
#------------------------------------------------------------------------------#
### Betriebssystem updaten
 
freebsd-update fetch
freebsd-update install
 
#------------------------------------------------------------------------------#
### Ports-Tree updaten
 
git -C /usr/ports pull
git -C /usr/ports status
 
#------------------------------------------------------------------------------#
### veraltete Pakete entfernen + Upgrade aller Pakete
 
#pkg install ports-mgmt/portupgrade
#pkg autoremove
#portupgrade -a
#portupgrade -N
#pkg autoremove
 
#------------------------------------------------------------------------------#
### erst alles aus dem Repositorie updaten
### dann die beiden MM-Pakete aus dem Ports-Tree updaten
 
pkg autoremove
pkg update
ASSUME_ALWAYS_YES=yes
pkg upgrade
pkg autoremove
unset ASSUME_ALWAYS_YES
 
for A in multimedia/ffmpeg multimedia/libdvdread
do
	cd /usr/ports/${A} && make clean && make && make deinstall install
done
/root/MYKERNEL (für FreeBSD 14.2)
#
# https://docs.freebsd.org/de/books/handbook/kernelconfig/
#
# cat /root/MYKERNEL > /usr/src/sys/amd64/conf/MYKERNEL
#
### die zu bauenden Kernel festlegen in /etc/src.conf
# KERNCONF=MYKERNEL GENERIC
 
include			GENERIC
 
ident			MYKERNEL
 
nooptions  		DDB			# Enable the ddb(4) kernel debugger
options 		NULLFS			# NULL filesystem
device			nvram			# Access to rtc cmos via /dev/nvram
#
device			speaker			# Play IBM BASIC-style noises out your speaker
envvar			hint.speaker.0.at="isa"
envvar			hint.speaker.0.port="0x61"
device			isa
#nodevice		isa			# Don't need to support an ISA bus
#
options 		ZFS			# NB: This depends on crypto, cryptodev and ZSTDIO
device			crypto			# core crypto support
device			cryptodev		# /dev/crypto for access to h/w
options 		ZSTDIO			# zstd-compressed kernel and user dumps
#
device			sg			# Linux SCSI passthrough
 
# PCI Ethernet NICs.
device			cxgb			# Chelsio T3 10 Gigabit Ethernet
device			cxgb_t3fw		# Chelsio T3 10 Gigabit Ethernet firmware
device			cxgbe			# Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet
device			cxgbev			# Chelsio T4-T6 Virtual Functions
device			mxge			# Myricom Myri-10G 10GbE NIC
device			oce			# Emulex 10 GbE (OneConnect Ethernet)
 
 
### oder in der /etc/src.conf mit der Variablen WITHOUT_MODULES abschalten
### WITHOUT_MODULES=    amr arcmsr ciss iir ips mly twa smartpqi tws aac aacraid ida mfi mlx mrsas twe agp cbb pccard cardbus wlan wlan_wep wlan_ccmp wlan_tkip wlan_amrr an ath ath_pci ath_hal bwi bwn ipw iwi iwn malo mwl ral wpi virtio hyperv
#
nooptions 		COMPAT_FREEBSD4		# Compatible with FreeBSD4
nooptions 		COMPAT_FREEBSD5		# Compatible with FreeBSD5
nooptions 		COMPAT_FREEBSD6		# Compatible with FreeBSD6
nooptions 		COMPAT_FREEBSD7		# Compatible with FreeBSD7
nooptions 		COMPAT_FREEBSD8		# Compatible with FreeBSD7
nooptions 		COMPAT_FREEBSD9		# Compatible with FreeBSD9
nooptions 		COMPAT_FREEBSD10	# Compatible with FreeBSD10
#nooptions		COMPAT_FREEBSD11	# Compatible with FreeBSD11 / lang/rust rust-1.83.0 => Sanity check failed: kernel is missing COMPAT_FREEBSD11
#nooptions		COMPAT_FREEBSD12	# Compatible with FreeBSD12
# ===>  Configuring for rust-1.75.0
# Bad system call
# => Sanity check failed: kernel is missing COMPAT_FREEBSD11
# => Aborting build
/root/bin/FreeBSD_-_Upgrade_Teil_1.sh
#!/bin/sh
#!/usr/bin/env bash
 
VERSION="v2024122300"		# initiale Erstellung
 
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
 
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
 
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
 
# aktuelle Version vom Kernel anzeigen
uname -a
 
#------------------------------------------------------------------------------#
 
### als erstes müssen alle Paches in das aktuelle System installiert werden
freebsd-update fetch
freebsd-update install
 
# Ein binäres Release-Upgrade von 14.1 auf 14.2:
# > freebsd-update -r 14.2-RELEASE upgrade
#
NEUESTES_RELEASE="$(curl -s https://download.freebsd.org/releases/amd64/ | awk '{print $3}' | grep -F RELEASE | tr -d '"' | tr -d '/' | cut -f2 -d'=' | sort | tail -n 1)"
echo "NEUESTES_RELEASE: ${NEUESTES_RELEASE}"
freebsd-update upgrade -r ${NEUESTES_RELEASE}
freebsd-update install
 
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
 
rm -f /var/tmp/FreeBSD_-_Upgrade_Teil_*.log
echo "
shutdown -r now
/root/bin/FreeBSD_-_Upgrade_Teil_2.sh
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_1.log
/root/bin/FreeBSD_-_Upgrade_Teil_2.sh
#!/bin/sh
#!/usr/bin/env bash
 
VERSION="v2024122300"		# initiale Erstellung
 
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
 
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
 
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
 
# aktuelle Version vom Kernel anzeigen
uname -a
 
#------------------------------------------------------------------------------#
### SRC Update
 
### GIT installieren
/root/bin/FreeBSD_-_update_Ports-Tree.sh
cd /usr/ports/devel/git && make clean && make config && make && make install && make clean
 
### die neuesten SRC saugen
cd /usr/src || exit 1
rm -fr /usr/src/* /usr/src/.*
time git clone https://git.freebsd.org/src.git .
#exit
 
### SRC auf die gewünschte Version umstellen
FB_GIT_VER="$(cd /usr/src && git branch -a | grep -F '/releng/' | sed 's|/releng/| |' | awk '{print $2}' | sort -nr | head -n1)"
echo "FB_GIT_VER: ${FB_GIT_VER}"
cd /usr/src && make cleanworld && make clean && git switch releng/${FB_GIT_VER} && git branch && time git pull && sh /usr/src/sys/conf/newvers.sh -v
echo "
FB_GIT_VER: ${FB_GIT_VER}
"
 
#exit
#------------------------------------------------------------------------------#
### den eigenen Kernel bauen
 
# less /usr/src/UPDATING
#vi /usr/src/sys/amd64/conf/MYKERNEL
vim /root/MYKERNEL /usr/src/sys/amd64/conf/GENERIC
cat /root/MYKERNEL > /usr/src/sys/amd64/conf/MYKERNEL
 
cd /usr/src && make cleanworld && make -j$(sysctl -n hw.ncpu) buildkernel KERNCONF=MYKERNEL && make installkernel KERNCONF=MYKERNEL
 
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
 
echo "
shutdown -r now
uname -v
ls -lha /dev/sg*
/root/bin/FreeBSD_-_Upgrade_Teil_3.sh
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_2.log
/root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#!/bin/sh
#!/usr/bin/env bash
 
VERSION="v2024122300"		# initiale Erstellung
 
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
 
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
 
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
 
# aktuelle Version vom Kernel anzeigen
uname -a
 
NEUESTES_RELEASE="$(curl -s https://download.freebsd.org/releases/amd64/ | awk '{print $3}' | grep -F RELEASE | tr -d '"' | tr -d '/' | cut -f2 -d'=' | sort | tail -n 1)"
echo "NEUESTES_RELEASE: ${NEUESTES_RELEASE}"
 
#------------------------------------------------------------------------------#
### Nach dem Neustart muss freebsd-update erneut ausgeführt werden, um die neuen Userland-Komponenten zu installieren
 
freebsd-update install
 
echo "
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
 
# Zu diesem Zeitpunkt werden Benutzer von Systemen, die von früheren FreeBSD-Versionen aktualisiert werden, von freebsd-update(8) aufgefordert, alle Anwendungen von Drittanbietern neu zu erstellen oder zu installieren (z. B. aus dem Ports-Baum installierte Ports oder von pkg(8) installierte Pakete). aufgrund von Aktualisierungen in Systembibliotheken.
 
# Nachdem Sie installierte Anwendungen von Drittanbietern aktualisiert haben (und wiederum nur, wenn freebsd-update(8) eine Meldung ausgegeben hat, die darauf hinweist, dass dies erforderlich ist), führen Sie freebsd-update(8) erneut aus, damit das alte (nicht mehr verwendete) System und seine Bibliotheken, gelöscht werden können:
 
freebsd-update install oder /root/bin/FreeBSD_-_Update.sh
 
shutdown -r now
fertig
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_3.log