Skip to main content

4.13 Update-, Patch- und Paketverwaltungsfehler

Updates können in verschiedenen Phasen scheitern: bei der Erkennung, beim Herunterladen, bei der Signaturprüfung, während der Installation, beim Neustart oder erst nach der Aktivierung der neuen Komponenten.

Dabei muss zwischen Betriebssystemupdates, Sicherheitsupdates, Treibern, Firmware, Anwendungspaketen und verwalteten Unternehmensupdates unterschieden werden.

Typische Auswirkungen sind:

  • Updates werden nicht gefunden oder angeboten.
  • Der Download bleibt bei einem bestimmten Prozentwert stehen.
  • Pakete können wegen Abhängigkeitsfehlern nicht installiert werden.
  • Signaturen oder Zertifikate werden abgelehnt.
  • Ein Neustart wird wiederholt angefordert.
  • Ein Update wird nach dem Neustart zurückgerollt.
  • Dienste starten nach dem Update nicht mehr.
  • Paketdatenbanken oder Updatekomponenten sind beschädigt.
  • Ein WSUS-, Repository-, Proxy- oder MDM-Server ist nicht erreichbar.
  • Der Datenträger besitzt nicht genügend freien Speicherplatz.
  • Ein anderes Installationsprogramm blockiert die Paketverwaltung.
  • Das System verwendet eine nicht mehr unterstützte Version.
  • Ein Update ist für die verwendete Architektur oder Version ungeeignet.

Wichtig: Die Meldung „Update fehlgeschlagen“ bezeichnet nur das Ergebnis. Für die Diagnose müssen Updatequelle, Fehlerphase, Fehlercode, Systemzustand und Protokolle getrennt untersucht werden.

Kennzeichnung der Befehle

KennzeichnungBedeutung
[RO]Nur lesender Befehl
[TEST]Führt eine aktive Prüfung aus
[PRIV]Erhöhte Berechtigungen erforderlich
[FILE]Liest Dateien oder Verzeichnisse
[SENS]Ausgabe kann sensible Informationen enthalten
[CHANGE]Verändert Cache, Konfiguration oder Systemzustand
[DISRUPT]Kann Dienste unterbrechen oder einen Neustart erfordern

1. Updatefehler strukturiert aufnehmen

Vor einer Reparatur müssen die genaue Updateart und die Fehlerphase bestimmt werden.

Zu erfassende Informationen

  • Welches Betriebssystem und welche Version werden verwendet?
  • Welches konkrete Update oder Paket schlägt fehl?
  • Welche Paket-, KB-, Build- oder Versionsnummer ist betroffen?
  • Wird das Update direkt vom Hersteller oder intern bereitgestellt?
  • Tritt der Fehler bei Erkennung, Download, Prüfung, Installation oder Neustart auf?
  • Wird ein numerischer oder hexadezimaler Fehlercode angezeigt?
  • Sind alle Systeme oder nur einzelne Geräte betroffen?
  • Wurde das System kürzlich geklont, wiederhergestellt oder migriert?
  • Ist ein Neustart ausstehend?
  • Besteht ausreichend freier Speicherplatz?
  • Stimmen Datum und Uhrzeit?
  • Wird ein Proxy, VPN, WSUS, MDM oder internes Repository verwendet?
  • Wurden Sicherheitssoftware oder Firewallregeln verändert?
  • Ist die Betriebssystemversion noch unterstützt?
  • Funktionierte die Aktualisierung zuvor?
  • Welche Änderungen erfolgten unmittelbar vor dem Fehler?

Fehlerphasen

PhaseTypische Ursachen
ErkennungUpdatequelle, Richtlinie, MDM, Repository oder nicht unterstützte Version
DownloadNetzwerk, DNS, Proxy, Firewall, CDN oder Speicherplatz
SignaturprüfungFalsche Zeit, Zertifikat, Schlüsselbund oder beschädigter Download
VorbereitungSpeicherplatz, Abhängigkeiten, Paketdatenbank oder Systemdateien
InstallationGesperrte Dateien, laufende Dienste, Abhängigkeiten oder Berechtigungen
NeustartPending-Reboot-Zustand, Bootfehler, Treiber oder Firmware
AktivierungDienststart, Konfigurationsmigration oder inkompatible Anwendung
RollbackInstallationsfehler, Bootproblem oder nicht erfüllte Voraussetzung

Dokumentationsregel

Der originale Fehlercode muss vollständig übernommen werden. Beschreibungen wie „irgendein Updatefehler“ reichen für eine gezielte Analyse nicht aus.

2. Vorbedingungen auf allen Betriebssystemen prüfen

Viele Updatefehler entstehen nicht in der Paketverwaltung selbst.

PrüfbereichWarum er wichtig ist
Freier SpeicherplatzUpdates benötigen Platz für Download, Entpacken, Installation und Rückfall
Datum und UhrzeitSignaturen, Zertifikate und TLS-Verbindungen sind zeitabhängig
DNSUpdate- und Repositoryserver müssen aufgelöst werden
Internet beziehungsweise internes NetzwerkUpdatequelle muss erreichbar sein
ProxySystemdienste verwenden möglicherweise andere Proxyeinstellungen als Benutzer
NeustartstatusEine ältere Installation kann noch nicht abgeschlossen sein
SystemversionNicht mehr unterstützte Versionen erhalten möglicherweise keine Updates
ArchitekturPaket muss zu x64, ARM64 oder einer anderen Architektur passen
PaketquelleRepository, WSUS oder MDM muss gültige Metadaten bereitstellen
SignaturenPaket und Metadaten müssen vertrauenswürdig sein
BerechtigungenInstallation benötigt normalerweise administrative Rechte
SicherungFehlerhafte Updates können einen Rollback erforderlich machen

Schnellprüfung des Speicherplatzes

Windows:

[RO] Get-Volume |
    Select-Object DriveLetter, FileSystemLabel,
        HealthStatus, SizeRemaining, Size

Linux:

[RO] df -hT

macOS:

[RO] df -h

Zeit prüfen

Windows:

[RO] Get-Date -Format o

Linux:

[RO] timedatectl status

macOS:

[RO] date "+%Y-%m-%dT%H:%M:%S%z"
3. Betriebssystemversion und Architektur ermitteln

Ein Update kann nur installiert werden, wenn Version, Build, Edition und Architektur unterstützt werden.

Windows

[RO] Get-ComputerInfo |
    Select-Object WindowsProductName, WindowsEditionId,
        WindowsVersion, OsBuildNumber, OsArchitecture

Kompakter:

[RO] Get-CimInstance Win32_OperatingSystem |
    Select-Object Caption, Version, BuildNumber, OSArchitecture

Linux

[RO][FILE] cat /etc/os-release
[RO] uname -r
[RO] uname -m

macOS

[RO] sw_vers
[RO] uname -m

Typische Architekturbezeichnungen

BezeichnungBedeutung
x86_64 beziehungsweise AMD6464-Bit-x86
aarch64 beziehungsweise ARM6464-Bit-ARM
i386 oder i68632-Bit-x86
arm64 unter macOSApple Silicon
x86_64 unter macOSIntel-Mac oder gegebenenfalls übersetzter Prozess

Die Prozessorarchitektur des Hosts, die Architektur des Betriebssystems und die Architektur eines einzelnen Programms können unterschiedlich sein.

4. Windows-Updatequelle und Richtlinien prüfen

Windows-Geräte können Updates aus unterschiedlichen Quellen beziehen:

  • Windows Update
  • Microsoft Update
  • Windows Server Update Services, kurz WSUS
  • Microsoft Intune oder andere Geräteverwaltung
  • Windows Update for Business
  • Lokale oder zentrale Richtlinien
  • Manuell bereitgestellte Updatepakete

Windows-Update-Richtlinien anzeigen

[RO][SENS] Get-ItemProperty `
    -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate' `
    -ErrorAction SilentlyContinue

Richtlinien für automatische Updates anzeigen

[RO][SENS] Get-ItemProperty `
    -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' `
    -ErrorAction SilentlyContinue

Angewendete Gruppenrichtlinien dokumentieren

[RO][SENS] gpresult /scope computer /r

Ausführlichen HTML-Bericht erstellen:

[RO][FILE][SENS] gpresult /scope computer /h "<ZIELPFAD>\gpresult-computer.html"

Relevante Hinweise

BeobachtungMögliche Bedeutung
Interner Update-Server eingetragenGerät verwendet wahrscheinlich WSUS
WSUS-Server nicht erreichbarErkennung und Download können scheitern
Keine sichtbare lokale RichtlinieEinstellung kann über MDM oder andere Verwaltung kommen
Einstellung springt zurückZentrale Richtlinie überschreibt lokale Änderung
Update wird anderen Geräten angebotenZielgruppen-, Freigabe- oder Kompatibilitätsunterschied möglich
Gerät erhält nur bestimmte UpdateartenRichtlinie oder Updatekanal begrenzt das Angebot

Registrywerte dürfen nicht allein aufgrund einer Internetanleitung gelöscht oder verändert werden. Zuerst muss festgestellt werden, ob sie zentral verwaltet werden.

5. Windows-Update-Dienste untersuchen

Relevante Dienste anzeigen

[RO] Get-Service -Name wuauserv, bits, cryptsvc, trustedinstaller |
    Select-Object Name, DisplayName, Status, StartType

Bedeutung:

DienstAufgabe
wuauservWindows Update
BITSHintergrundübertragung von Dateien
CryptSvcKryptografische Dienste und Signaturprüfungen
TrustedInstallerWindows Modules Installer

Ausführliche Dienstinformationen

[RO] Get-CimInstance Win32_Service |
    Where-Object {
        $_.Name -in 'wuauserv','BITS','CryptSvc','TrustedInstaller'
    } |
    Select-Object Name, State, StartMode, StartName, ExitCode

Abhängigkeiten eines Dienstes anzeigen

[RO] Get-Service -Name wuauserv -RequiredServices

Wichtige Bewertung

  • Ein beendeter Dienst ist nicht automatisch fehlerhaft.
  • Einige Dienste werden bedarfsgesteuert gestartet.
  • Der Starttyp Manual kann vorgesehen sein.
  • Zentral verwaltete Systeme können abweichende Konfigurationen verwenden.
  • Ein Dienstneustart behebt nicht die Ursache einer defekten Richtlinie oder Updatequelle.
6. Installierte Windows-Updates und Verlauf prüfen

Ausgewählte installierte Updates anzeigen

[RO] Get-HotFix |
    Sort-Object InstalledOn -Descending |
    Select-Object HotFixID, Description, InstalledOn, InstalledBy

Get-HotFix zeigt nicht jede denkbare Update-, Treiber-, App- oder Servicing-Komponente an. Die Ausgabe darf deshalb nicht als vollständiges Inventar aller installierten Aktualisierungen interpretiert werden.

Installierte Windows-Pakete mit DISM anzeigen

[RO][PRIV] DISM.exe /Online /Get-Packages /Format:Table

Nach einem bestimmten KB-Paket suchen

[RO] Get-HotFix -Id <KB-NUMMER> -ErrorAction SilentlyContinue

Beispiel:

[RO] Get-HotFix -Id KB5030000 -ErrorAction SilentlyContinue

Die KB-Nummer im Beispiel ist durch die tatsächlich zu prüfende Nummer zu ersetzen.

Installationszeit und Paketstatus mit DISM prüfen

[RO][PRIV] DISM.exe /Online /Get-PackageInfo /PackageName:<PAKETNAME>

Den exakten Paketnamen erhält man zuvor über:

[RO][PRIV] DISM.exe /Online /Get-Packages /Format:Table
7. Windows-Updateprotokolle auswerten

Moderne Windows-Versionen speichern Windows-Update-Ereignisse überwiegend als ETL-Daten. Get-WindowsUpdateLog erzeugt daraus eine lesbare Protokolldatei.

Lesbares WindowsUpdate-Protokoll erzeugen

[RO][FILE][SENS] Get-WindowsUpdateLog -LogPath "<ZIELPFAD>\WindowsUpdate.log"

Der Befehl sammelt und konvertiert vorhandene Protokolldaten. Die erzeugte Datei kann Servernamen, URLs, Geräteinformationen und Fehlerdetails enthalten.

Windows-Update-Ereignisse anzeigen

[RO][SENS] Get-WinEvent -LogName `
    'Microsoft-Windows-WindowsUpdateClient/Operational' |
Select-Object -First 100 TimeCreated, LevelDisplayName, Id, Message

Nur Warnungen und Fehler der letzten 24 Stunden

[RO][SENS] Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-WindowsUpdateClient/Operational'
    StartTime = (Get-Date).AddHours(-24)
} |
Where-Object {
    $_.LevelDisplayName -in 'Warning','Error','Warnung','Fehler'
} |
Select-Object TimeCreated, LevelDisplayName, Id, Message

Servicing-Protokolle

[RO][FILE][SENS] %WINDIR%\Logs\CBS\CBS.log
[RO][FILE][SENS] %WINDIR%\Logs\DISM\dism.log

Setup- und Upgradeprotokolle können unter anderem hier liegen

[RO][FILE][SENS] %WINDIR%\Panther
[RO][FILE][SENS] %WINDIR%\Logs\MoSetup

Die tatsächlich vorhandenen Dateien hängen von Updateart, Betriebssystemversion und Fehlerphase ab.

Bei der Protokollanalyse suchen nach

  • Fehlercode
  • KB-Nummer
  • Paketname
  • Zeitpunkt des Installationsversuchs
  • Downloadfehler
  • Signaturfehler
  • Paketabhängigkeit
  • ausstehendem Neustart
  • beschädigten Komponenten
  • Rollback-Ursache
8. Ausstehenden Windows-Neustart erkennen

Ein ausstehender Neustart kann weitere Updates, Rolleninstallationen oder Paketänderungen blockieren.

Component-Based-Servicing prüfen

[RO] Test-Path `
    'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'

Windows-Update-Neustartstatus prüfen

[RO] Test-Path `
    'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'

Ausstehende Dateiumbenennungen prüfen

[RO][SENS] Get-ItemProperty `
    -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' `
    -Name PendingFileRenameOperations `
    -ErrorAction SilentlyContinue

Bewertung

  • Nicht jeder vorhandene Indikator bedeutet denselben Neustartgrund.
  • Ein Neustart muss mit den Protokollen und dem Änderungsverlauf abgeglichen werden.
  • Produktivserver dürfen nicht unkontrolliert neu gestartet werden.
  • Vor dem Neustart müssen Dienste, Benutzer, Clusterstatus und Wartungsfenster geprüft werden.
9. Windows-Komponentenspeicher prüfen

Beschädigungen im Windows-Komponentenspeicher können Updates und Rolleninstallationen verhindern.

Schnelle Prüfung

[TEST][PRIV] DISM.exe /Online /Cleanup-Image /CheckHealth

/CheckHealth prüft, ob bereits eine Beschädigung markiert wurde. Es führt keinen vollständigen Scan aus.

Ausführlichere Prüfung

[TEST][PRIV] DISM.exe /Online /Cleanup-Image /ScanHealth

Systemdateien prüfen

[TEST][PRIV] sfc /verifyonly

Reparatur des Komponentenspeichers

[CHANGE][PRIV] DISM.exe /Online /Cleanup-Image /RestoreHealth

Systemdateien prüfen und reparieren

[CHANGE][PRIV] sfc /scannow

Wichtige Hinweise

  • RestoreHealth kann Dateien von Windows Update beziehen.
  • In abgeschotteten Umgebungen kann eine passende Reparaturquelle erforderlich sein.
  • Eine Reparaturquelle muss zur Betriebssystemversion und zum Wartungsstand passen.
  • DISM und SFC können längere Zeit benötigen.
  • Ein Abbruch sollte nicht allein wegen eines länger unveränderten Prozentwerts erfolgen.
  • Protokolle befinden sich unter anderem in CBS.log und dism.log.

DISM und SFC sind keine pauschalen ersten Schritte für jeden Updatefehler. Zuerst müssen Fehlercode, Quelle, Speicherplatz und Updatephase geprüft werden.

10. Windows-Proxy und Netzwerkpfad prüfen

Windows-Systemdienste können andere Proxyeinstellungen verwenden als ein angemeldeter Benutzer.

WinHTTP-Proxy anzeigen

[RO] netsh winhttp show proxy

DNS-Auflösung prüfen

[RO] Resolve-DnsName "<UPDATE-ODER-WSUS-SERVER>"

HTTPS-Erreichbarkeit eines konkret bekannten Servers prüfen

[TEST] Test-NetConnection `
    -ComputerName "<SERVERNAME>" `
    -Port 443

Bei einem internen WSUS-Server muss der tatsächlich konfigurierte Port verwendet werden.

Route anzeigen

[RO] Test-NetConnection `
    -ComputerName "<SERVERNAME>" `
    -TraceRoute

Typische Ursachen

  • Proxy verlangt eine interaktive Anmeldung.
  • WinHTTP-Proxy ist veraltet.
  • PAC-Datei funktioniert nur im Benutzerkontext.
  • Firewall blockiert Updateendpunkte.
  • TLS-Inspection verändert Zertifikate.
  • DNS liefert eine falsche oder interne Adresse.
  • VPN verändert Route oder Namensauflösung.
  • WSUS ist erreichbar, aber dessen Datenbank oder Anwendungspool ist gestört.

Öffentliche Updateplattformen verwenden mehrere dynamische Endpunkte. Es sollten keine unbestätigten Einzeladressen dauerhaft freigeschaltet werden; maßgeblich ist die aktuelle Herstellerdokumentation.

11. Debian- und Ubuntu-Paketverwaltung prüfen

Debian und Ubuntu verwenden üblicherweise APT und dpkg.

Betriebssystemversion prüfen

[RO][FILE] cat /etc/os-release

Konfigurierte Paketquellen anzeigen

[RO][FILE][SENS] grep -RhsE '^[[:space:]]*deb ' \
    /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null

Neuere APT-Quellen können zusätzlich im Deb822-Format mit der Endung .sources gespeichert sein:

[RO][FILE][SENS] grep -RhsE \
    '^[[:space:]]*(Types|URIs|Suites|Components|Signed-By):' \
    /etc/apt/sources.list.d 2>/dev/null

Paketstatus auf Inkonsistenzen prüfen

[RO][PRIV] sudo dpkg --audit

Alternativ:

[RO][PRIV] sudo dpkg -C

Paketabhängigkeiten prüfen

[TEST][PRIV] sudo apt-get check

Installierte und verfügbare Version eines Pakets anzeigen

[RO] apt-cache policy "<PAKETNAME>"

Zurückgehaltene Pakete anzeigen

[RO] apt-mark showhold

Paketarchitektur anzeigen

[RO] dpkg --print-architecture

Zusätzlich konfigurierte Architekturen:

[RO] dpkg --print-foreign-architectures

Letzte dpkg-Aktionen anzeigen

[RO][FILE][SENS] tail -n 100 /var/log/dpkg.log

APT-Verlauf anzeigen, sofern vorhanden

[RO][FILE][SENS] ls -l /var/log/apt
[RO][FILE][SENS] tail -n 100 /var/log/apt/history.log
12. APT-Aktualisierung und Fehlerausgabe kontrolliert prüfen

Das Aktualisieren der Paketlisten ist bereits eine Veränderung des lokalen Paketcache.

[CHANGE][PRIV] sudo apt update

Dabei sind besonders folgende Meldungen zu beachten:

MeldungMögliche Ursache
Temporary failure resolvingDNS-Problem
Connection timed outNetzwerk, Proxy, Firewall oder Repository
404 Not FoundFalscher Distributionsname oder veraltete Quelle
NO_PUBKEYFehlender oder falsch eingebundener Signaturschlüssel
Release file is not valid yetSystemzeit möglicherweise falsch
does not have a Release fileQuelle unterstützt die Distribution nicht
Hash Sum mismatchSpiegelserver, Proxycache oder inkonsistente Metadaten
Could not get lockAndere Paketverwaltung ist aktiv
Unmet dependenciesAbhängigkeitskonflikt
held broken packagesZurückgehaltene oder nicht auflösbare Pakete
No space left on deviceSpeicherplatz oder Inodes ausgeschöpft

Simulation einer Installation

[TEST] apt-get --simulate install "<PAKETNAME>"

Die Simulation verändert keine Pakete, bildet aber nicht jede Nebenwirkung eines tatsächlichen Installationsskripts ab.

Paketinformationen anzeigen

[RO] apt-cache show "<PAKETNAME>"

Abhängigkeiten anzeigen

[RO] apt-cache depends "<PAKETNAME>"

Reverse-Abhängigkeiten anzeigen

[RO] apt-cache rdepends "<PAKETNAME>"
13. Paketmanager-Sperren unter Linux untersuchen

Eine Sperrdatei darf nicht allein aufgrund ihrer Existenz gelöscht werden. Zuerst muss geprüft werden, ob ein Paketmanager tatsächlich arbeitet.

APT- und dpkg-Prozesse anzeigen

[RO][SENS] ps -ef |
    grep -E '[a]pt|[d]pkg|[u]nattended-upgrade'

Prozesse mit geöffneten APT- oder dpkg-Sperren anzeigen

[RO][PRIV][SENS] sudo lsof \
    /var/lib/dpkg/lock \
    /var/lib/dpkg/lock-frontend \
    /var/lib/apt/lists/lock \
    /var/cache/apt/archives/lock 2>/dev/null

Automatische Updates prüfen

[RO] systemctl status apt-daily.service --no-pager
[RO] systemctl status apt-daily-upgrade.service --no-pager

Protokolle automatischer Updates

[RO][PRIV][SENS] sudo journalctl \
    -u apt-daily.service \
    -u apt-daily-upgrade.service \
    --since "-24 hours" --no-pager

Das Löschen einer Sperrdatei oder Beenden eines Paketmanagers während einer Installation kann die Paketdatenbank beschädigen. Erst muss geklärt werden, ob der Prozess noch arbeitet, wartet oder abgestürzt ist.

14. Unvollständige dpkg-Transaktionen behandeln

Ein abgebrochener Installationsprozess kann Pakete in einem nicht fertig konfigurierten Zustand hinterlassen.

Zustand zunächst prüfen

[RO][PRIV] sudo dpkg --audit

Paketstatus eines bestimmten Pakets anzeigen

[RO] dpkg-query -W \
    -f='${Package}\t${Status}\t${Version}\n' "<PAKETNAME>"

Noch nicht konfigurierte Pakete konfigurieren

[CHANGE][PRIV] sudo dpkg --configure -a

Abhängigkeiten reparieren

[CHANGE][PRIV] sudo apt-get --fix-broken install

Diese Befehle können:

  • Paketkonfigurationen ausführen
  • Dienste starten oder neu starten
  • Konfigurationsdateien verändern
  • zusätzliche Pakete installieren
  • Pakete entfernen
  • Administratorfragen anzeigen

Vorher sollten geprüft werden:

  • Sicherung oder Snapshot
  • freier Speicherplatz
  • aktueller Paketstatus
  • betroffene Produktivdienste
  • vorgeschlagene Paketänderungen
  • Wartungsfenster

Bei apt-get --fix-broken install muss die vorgeschlagene Paketliste vor der Bestätigung vollständig gelesen werden.

15. DNF- und RPM-Systeme untersuchen

Fedora, Red Hat Enterprise Linux und verwandte Distributionen verwenden häufig DNF und RPM.

Betriebssystemversion

[RO][FILE] cat /etc/os-release

Aktive Repositories anzeigen

[RO][SENS] dnf repolist

Alle bekannten Repositories anzeigen

[RO][SENS] dnf repolist --all

Paketdatenbank und Abhängigkeiten prüfen

[TEST][PRIV] sudo dnf check

Verfügbare Aktualisierungen prüfen

[TEST][PRIV] sudo dnf check-update

dnf check-update kann mit Rückgabecode 100 enden, wenn Updates verfügbar sind. Dieser Rückgabecode bedeutet dann nicht automatisch einen Fehler.

Paketinformationen anzeigen

[RO] dnf info "<PAKETNAME>"

Installierte Paketversion anzeigen

[RO] rpm -q "<PAKETNAME>"

Paketarchitektur anzeigen

[RO] rpm -q --queryformat \
    '%{NAME}\t%{VERSION}-%{RELEASE}\t%{ARCH}\n' "<PAKETNAME>"

Transaktionsverlauf anzeigen

[RO][SENS] dnf history

Details einer Transaktion

[RO][SENS] dnf history info <TRANSAKTIONS-ID>

Installierte Dateien gegen RPM-Metadaten prüfen

[TEST][PRIV][FILE][SENS] sudo rpm -Va

rpm -Va kann lange laufen und meldet auch absichtlich veränderte Konfigurationsdateien. Abweichungen sind nicht automatisch Beschädigungen.

16. Zypper- und RPM-Systeme untersuchen

SUSE Linux Enterprise und openSUSE verwenden typischerweise Zypper.

Repositories anzeigen

[RO][SENS] zypper repos

Ausführlicher:

[RO][SENS] zypper repos --details

Verfügbare Patches anzeigen

[TEST][PRIV] sudo zypper list-patches

Abhängigkeiten prüfen

[TEST][PRIV] sudo zypper verify

Paketinformationen anzeigen

[RO] zypper info "<PAKETNAME>"

Installierte Version prüfen

[RO] rpm -q "<PAKETNAME>"

Zypper-Protokoll lesen

[RO][FILE][SENS] tail -n 100 /var/log/zypper.log
17. macOS-Softwareupdates untersuchen

macOS-Version und Build anzeigen

[RO] sw_vers

Verfügbare Apple-Softwareupdates suchen

[TEST] softwareupdate --list

Der Befehl kontaktiert die konfigurierte Updateinfrastruktur und kann einige Zeit benötigen.

Verlauf installierter Apple-Updates anzeigen

[RO] softwareupdate --history

Ausführlicher Verlauf:

[RO] softwareupdate --history --all

Hilfe der installierten softwareupdate-Version anzeigen

[RO] softwareupdate --help

Die verfügbaren Optionen von softwareupdate können sich zwischen macOS-Versionen unterscheiden. Deshalb sollte die lokale Hilfe geprüft werden, bevor Installationsoptionen verwendet werden.

Freien Speicherplatz prüfen

[RO] df -h /

Datum und Uhrzeit prüfen

[RO] date "+%Y-%m-%dT%H:%M:%S%z"

Netzwerkzeitstatus prüfen

[RO][PRIV] sudo systemsetup -getusingnetworktime

Eingetragenen Zeitserver anzeigen

[RO][PRIV][SENS] sudo systemsetup -getnetworktimeserver

MDM-Registrierungsstatus anzeigen

[RO][PRIV][SENS] sudo profiles status -type enrollment

Ein verwalteter Mac kann Updates aufgrund von MDM-Vorgaben:

  • verzögert angeboten bekommen
  • zu einem Termin erzwungen installieren
  • nur über bestimmte Updatekanäle erhalten
  • mit anderen Neustartbedingungen installieren
  • nicht manuell verändern dürfen
18. macOS-Updateprotokolle auswerten

Softwareupdate-Protokolle der letzten Stunde

[RO][PRIV][SENS] sudo log show --last 1h \
    --predicate 'process == "softwareupdated"' \
    --style compact

Mehrere typische Updateprozesse berücksichtigen

[RO][PRIV][SENS] sudo log show --last 2h \
    --predicate 'process == "softwareupdated" OR process == "softwareupdate"' \
    --style compact

Nur Fehler und schwerwiegende Meldungen

[RO][PRIV][SENS] sudo log show --last 2h \
    --predicate '(process == "softwareupdated" OR process == "softwareupdate") AND messageType >= error' \
    --style compact

Die von macOS verwendeten Prozesse und Protokollfelder können sich zwischen Versionen unterscheiden. Wenn die Abfrage keine Ergebnisse liefert, bedeutet dies nicht automatisch, dass kein Updateversuch stattgefunden hat.

Typische Ursachen

  • Zu wenig Speicherplatz
  • Nicht unterstütztes Mac-Modell
  • Falsche Systemzeit
  • Netzwerk- oder CDN-Problem
  • MDM-Aufschub
  • Fehlende Benutzerbestätigung
  • FileVault- oder Bootstrap-Token-Anforderung in verwalteten Umgebungen
  • Beschädigter Download
  • Nicht abgeschlossener vorheriger Updateversuch
  • Firmware- oder Wiederherstellungsfehler
  • Update wird für den verwendeten Kanal noch nicht angeboten
19. Repository-, Signatur- und Zertifikatsfehler unterscheiden

Softwarepakete und Repositorymetadaten werden normalerweise kryptografisch geprüft.

Typische Fehlerursachen

UrsacheWirkung
Falsche SystemzeitZertifikat oder signierte Metadaten erscheinen ungültig
Abgelaufener SignaturschlüsselRepository wird nicht akzeptiert
Falscher SchlüsselSignatur kann nicht verifiziert werden
Manipulierender ProxyTLS- oder Zertifikatsprüfung schlägt fehl
Unvollständiger DownloadPrüfsumme stimmt nicht
Veraltete RepositorydefinitionRelease-Datei oder Paketpfad fehlt
Nicht unterstützte DistributionRepository stellt keine passenden Metadaten bereit
Falsche ArchitekturPaket kann nicht installiert werden
Internes Zertifikat fehltUnternehmensrepository wird nicht vertraut
Spiegelserver nicht synchronMetadaten und Paketdateien passen vorübergehend nicht zusammen

Sicherheitsregel

Signatur- und Zertifikatsprüfungen dürfen nicht dauerhaft deaktiviert werden, um eine Installation „zum Laufen zu bringen“.

Stattdessen müssen geprüft werden:

  1. Systemzeit
  2. Repositoryadresse
  3. Distributionsversion
  4. Paketarchitektur
  5. erwarteter Signaturschlüssel
  6. Zertifikatskette
  7. Proxy- oder TLS-Inspection
  8. Integrität des Downloads
  9. offizielle Installationsanleitung des Herstellers
20. Abhängigkeiten und Versionskonflikte analysieren

Paketmanager installieren selten nur eine einzelne Datei. Pakete besitzen Abhängigkeiten, Konflikte und Versionsanforderungen.

Typische Beziehungen

BeziehungBedeutung
AbhängigkeitZusätzlich benötigtes Paket
VersionsabhängigkeitNur bestimmte Versionen sind zulässig
KonfliktPakete dürfen nicht gleichzeitig installiert sein
ErsatzEin Paket ersetzt ein anderes
EmpfehlungZusätzliches Paket wird empfohlen
ArchitekturabhängigkeitPaket benötigt eine bestimmte Plattform
ModulschnittstelleAnwendung benötigt eine kompatible Bibliotheksversion

APT-Abhängigkeiten anzeigen

[RO] apt-cache depends "<PAKETNAME>"

APT-Reverse-Abhängigkeiten

[RO] apt-cache rdepends "<PAKETNAME>"

RPM-Abhängigkeiten anzeigen

[RO] rpm -qR "<PAKETNAME>"

Paket ermitteln, das eine Fähigkeit bereitstellt

DNF:

[RO] dnf provides "<DATEI-ODER-FÄHIGKEIT>"

APT:

[RO] apt-file search "<DATEINAME>"

apt-file ist nicht standardmäßig auf jedem System installiert und benötigt einen eigenen Suchindex.

Diagnosefragen

  • Ist das benötigte Repository aktiviert?
  • Ist ein Paket bewusst festgehalten worden?
  • Wurden Fremdquellen gemischt?
  • Wird ein Paket aus einer anderen Distributionsversion verwendet?
  • Verlangt die Anwendung eine ältere Bibliothek?
  • Wurde ein Teilupdate durchgeführt?
  • Passt die Architektur?
  • Ist ein Herstellerrepository noch unterstützt?
21. Paketcache und heruntergeladene Dateien richtig bewerten

Beschädigte oder unvollständige Downloads können wiederholte Fehler verursachen. Das pauschale Löschen aller Updatecaches ist dennoch kein sinnvoller erster Diagnoseschritt.

Vor einer Cachebereinigung prüfen

  • Ist der Fehler reproduzierbar?
  • Ist die Prüfsumme falsch?
  • Betrifft der Fehler immer dieselbe Datei?
  • Liegt ein Proxycache zwischen Client und Repository?
  • Ist genügend Speicherplatz vorhanden?
  • Gibt es noch einen aktiven Paketmanager?
  • Werden Dateien für einen Rollback benötigt?
  • Kann der Download aus einer vertrauenswürdigen Quelle erneut erfolgen?

APT-Downloadcache anzeigen

[RO][FILE] du -sh /var/cache/apt/archives

DNF-Cachebelegung anzeigen

[RO][FILE][PRIV] sudo du -sh /var/cache/dnf

Windows-Update-Downloadbereich

[RO][FILE][PRIV] %WINDIR%\SoftwareDistribution\Download

Der Ordner SoftwareDistribution darf nicht unkontrolliert umbenannt oder gelöscht werden. Ein Reset der Windows-Updatekomponenten verändert den Updatezustand und erschwert möglicherweise die ursprüngliche Ursachenanalyse.

22. Automatische Updates und Wartungsfenster prüfen

Automatische Aktualisierungen können parallel zu manuellen Arbeiten laufen oder durch Wartungsregeln eingeschränkt sein.

Windows

Zu prüfen sind:

  • Gruppenrichtlinien
  • Windows Update for Business
  • WSUS-Zielgruppen
  • aktive Nutzungszeit
  • Neustartrichtlinien
  • Intune-Update-Ringe
  • geplante Wartungsfenster

Debian und Ubuntu

[RO] systemctl status apt-daily.timer --no-pager
[RO] systemctl status apt-daily-upgrade.timer --no-pager
[RO][FILE] systemctl list-timers --all |
    grep -E 'apt|upgrade'

DNF-Systeme

[RO] systemctl list-timers --all |
    grep -E 'dnf|upgrade'

Je nach Distribution und Konfiguration kann beispielsweise dnf-automatic verwendet werden.

macOS

Zu prüfen sind:

  • Einstellungen für automatische Updates
  • MDM-Aufschübe
  • erzwungene Installationstermine
  • erforderliche Benutzeraktion
  • Neustartbedingungen
  • verfügbare Bootstrap- oder Secure Tokens

Automatische Updateprozesse dürfen nicht beendet werden, ohne ihren aktuellen Transaktionszustand zu prüfen.

23. Updatefehler nach dem Neustart analysieren

Ein Update kann zunächst erfolgreich erscheinen und erst beim Neustart scheitern.

Typische Symptome

  • Endlose Neustartschleife
  • „Änderungen werden rückgängig gemacht“
  • Dienst startet nicht
  • Treiber wird nicht geladen
  • Netzwerkverbindung fehlt
  • Anwendung ist inkompatibel
  • Kernel startet nicht
  • Dateisystem muss geprüft werden
  • Firmwareaktualisierung schlägt fehl
  • Verschlüsseltes Systemvolume wird nicht entsperrt

Prüfreihenfolge

  1. Exakte Meldung und Zeitpunkt dokumentieren.
  2. Prüfen, ob ein automatischer Rollback erfolgt ist.
  3. Update- und Bootprotokolle sichern.
  4. Zuletzt installierte Pakete ermitteln.
  5. Dienst- und Treiberstatus kontrollieren.
  6. Freien Speicherplatz prüfen.
  7. Abhängige Systeme und Clusterstatus berücksichtigen.
  8. Herstellerhinweise zum konkreten Update prüfen.
  9. Rücknahme nur nach Bewertung der Sicherheitsauswirkung durchführen.
  10. Vor erneuter Installation die ursprüngliche Ursache beheben.

Linux: vorherigen Boot untersuchen

[RO][PRIV][SENS] sudo journalctl -b -1 -p warning --no-pager

Windows: letzte Systemfehler

[RO][SENS] Get-WinEvent -FilterHashtable @{
    LogName   = 'System'
    StartTime = (Get-Date).AddHours(-24)
} |
Where-Object {
    $_.LevelDisplayName -in 'Warning','Error','Warnung','Fehler'
} |
Select-Object TimeCreated, ProviderName, Id, LevelDisplayName, Message
24. Updates in Clustern und hochverfügbaren Systemen

Bei Clustern, Replikationssystemen und redundanten Diensten reicht die Betrachtung eines einzelnen Servers nicht aus.

Vor einem Update prüfen

  • Ist der Cluster gesund?
  • Funktioniert die Replikation?
  • Ist ausreichend Redundanz vorhanden?
  • Welcher Knoten besitzt aktuell die produktiven Rollen?
  • Können Rollen kontrolliert verschoben werden?
  • Ist Quorum beziehungsweise Witness erreichbar?
  • Sind alle Knoten kompatibel?
  • Unterstützt der Hersteller gemischte Patchstände?
  • Existiert ein getesteter Rückfallplan?
  • Ist das Monitoring aktiv?
  • Wurde eine Sicherung geprüft?

Gefahren

  • Mehrere Knoten werden gleichzeitig neu gestartet.
  • Ein bereits gestörter Knoten wird als Ausweichknoten eingeplant.
  • Datenbankschema und Anwendungsversion passen nicht zusammen.
  • Quorum geht verloren.
  • Load Balancer leitet weiterhin auf einen gewarteten Knoten.
  • Replikation wird durch Versionsunterschiede unterbrochen.
  • Ein automatisches Update umgeht das Wartungsfenster.

Ein Snapshot eines einzelnen Clusterknotens ist kein vollständiger Rückfallplan für einen verteilten Dienst.

25. Sichere Reihenfolge der Updatefehleranalyse
  1. Betroffenes Update, Paket oder KB eindeutig bestimmen.
  2. Originalen Fehlercode und Fehlerzeitpunkt dokumentieren.
  3. Betriebssystemversion, Build und Architektur prüfen.
  4. Updatephase bestimmen.
  5. Freien Speicherplatz und Inodes kontrollieren.
  6. Datum, Uhrzeit und Zeitzone prüfen.
  7. Ausstehenden Neustart berücksichtigen.
  8. Updatequelle, Repository, WSUS oder MDM ermitteln.
  9. DNS, Proxy, Firewall und Erreichbarkeit prüfen.
  10. Paketmanager- beziehungsweise Updatedienste untersuchen.
  11. Protokolle zum Fehlerzeitpunkt auswerten.
  12. Paketabhängigkeiten und Signaturen prüfen.
  13. Aktive Installations- oder Sperrprozesse identifizieren.
  14. Systemdateien beziehungsweise Paketdatenbank kontrollieren.
  15. Erst danach Cachebereinigung oder Reparaturmaßnahmen planen.
  16. Änderung im Wartungsfenster durchführen.
  17. Neustartbedarf kontrolliert umsetzen.
  18. Update-, Dienst- und Anwendungsfunktion verifizieren.
  19. Ergebnis und verbleibende Risiken dokumentieren.
26. Typische Fehlinterpretationen vermeiden
FehlinterpretationRichtige Bewertung
„Der Download hängt bei 0 Prozent.“Verbindung, Metadatenprüfung oder Vorbereitung kann bereits laufen.
„Der Update-Dienst ist beendet.“Bedarfsgesteuerter Dienst kann regulär beendet sein.
„Ping funktioniert, also ist Windows Update erreichbar.“DNS, HTTPS, Proxy, CDN und Authentifizierung sind zusätzlich relevant.
„Ein Neustart ist immer harmlos.“Produktivdienste, Cluster und Benutzer müssen berücksichtigt werden.
„Cache löschen behebt jeden Updatefehler.“Es entfernt Symptome und erschwert möglicherweise die Diagnose.
„Signaturprüfung kann vorübergehend deaktiviert werden.“Dadurch wird eine wichtige Sicherheitskontrolle umgangen.
„Get-HotFix zeigt alle installierten Updates.“Es erfasst nicht jede Update- und Paketart.
„Rückgabecode 100 von dnf ist ein Fehler.“Bei dnf check-update kann er verfügbare Updates anzeigen.
„Eine Sperrdatei kann einfach gelöscht werden.“Eine aktive Pakettransaktion könnte beschädigt werden.
„Update fehlgeschlagen bedeutet fehlerhaftes Update.“Ursache kann lokal in Speicher, Netzwerk, Zeit oder Paketstatus liegen.
„Snapshot entspricht einer Sicherung.“Snapshot und unabhängige Sicherung erfüllen unterschiedliche Aufgaben.
„Update erfolgreich bedeutet Dienst funktionsfähig.“Nachkontrolle von Diensten und Anwendungen bleibt erforderlich.
27. Schnelle Befehlsübersicht
AufgabeWindowsDebian/UbuntuRHEL/FedoramacOS
Betriebssystemversion[RO] Get-ComputerInfo[RO] cat /etc/os-release[RO] cat /etc/os-release[RO] sw_vers
Architektur[RO] Get-CimInstance Win32_OperatingSystem[RO] dpkg --print-architecture[RO] uname -m[RO] uname -m
Freier Speicher[RO] Get-Volume[RO] df -hT[RO] df -hT[RO] df -h
UpdatequelleRichtlinien und WSUS prüfenAPT-Quelldateien prüfen[RO] dnf repolistMDM und Updateeinstellungen
Updatedienste[RO] Get-Service wuauserv,bits,cryptsvc,trustedinstallerAPT-Timer und ProzesseDNF-Timer und ProzessemacOS-Systemdienst
UpdatehistorieGet-HotFix und DISMAPT- und dpkg-Protokolle[RO] dnf history[RO] softwareupdate --history
Verfügbare UpdatesWindows-Updateverwaltung[CHANGE][PRIV] sudo apt update[TEST][PRIV] sudo dnf check-update[TEST] softwareupdate --list
Paketstatus prüfenDISM[RO][PRIV] sudo dpkg --audit[TEST][PRIV] sudo dnf checkUpdateprotokoll prüfen
Abhängigkeiten prüfenCBS- und DISM-Protokoll[TEST][PRIV] sudo apt-get check[TEST][PRIV] sudo dnf checkNicht direkt vergleichbar
PaketversionDISM oder Get-HotFix[RO] apt-cache policy "<PAKET>"[RO] rpm -q "<PAKET>"Anwendungsspezifisch
Ausstehender NeustartRegistryindikatoren prüfen/var/run/reboot-required kann distributionsabhängig existierenPaket- und Kernelstatus prüfenUpdate- und MDM-Status prüfen
ProtokolleGet-WindowsUpdateLog, CBS, Ereignisanzeige/var/log/apt, /var/log/dpkg.log, Journaldnf history, Journal[RO][PRIV] log show ...
Systemintegrität[TEST][PRIV] DISM /ScanHealthPaketdatenbank prüfen[TEST][PRIV] rpm -VaFestplatten- und Updateprotokolle
Proxy[RO] netsh winhttp show proxyAPT- und Umgebungsvariablen prüfenDNF- und Umgebungsvariablen prüfenNetzwerk- und MDM-Konfiguration
28. Entscheidungsmatrix
BefundWahrscheinliche UrsacheNächster Schritt
Update wird nicht angebotenRichtlinie, Kanal, Kompatibilität oder SupportstatusQuelle und Voraussetzungen prüfen
Download startet nichtDNS, Proxy, Firewall oder RepositoryNetzwerkpfad untersuchen
Download wiederholt beschädigtProxycache, Spiegelserver oder DatenträgerPrüfsumme, Quelle und Speicher prüfen
Signatur ungültigZeit, Schlüssel oder ZertifikatsketteZeit und Vertrauenskette prüfen
Nicht genügend SpeicherSystem- oder temporäres Volume vollSpeicherverbrauch analysieren
Paketmanager ist gesperrtAndere Transaktion aktivProzess und Protokolle prüfen
Paketabhängigkeit nicht erfüllbarFehlendes Repository oder VersionskonfliktAbhängigkeitsbaum untersuchen
Neustart wird wiederholt verlangtAusstehende Operation nicht abgeschlossenPending-Reboot-Status und Protokolle prüfen
Update rollt zurückInstallations-, Treiber- oder BootfehlerSetup- und Systemprotokolle auswerten
Mehrere Geräte betroffenZentrale Quelle, Richtlinie oder HerstellerproblemGemeinsamen Nenner ermitteln
Nur ein Gerät betroffenLokaler Cache, Zustand oder KonfigurationMit funktionierendem Vergleichssystem abgleichen
Update erfolgreich, Dienst ausgefallenInkompatibilität oder KonfigurationsmigrationDienstprotokolle und Herstellerhinweise prüfen
Betriebssystem nicht mehr unterstütztKeine reguläre UpdateversorgungGeplantes Upgrade beziehungsweise Migration
DNF endet mit Code 100Updates verfügbarNicht als Paketmanagerfehler behandeln
29. Dokumentationsvorlage
Ticket:
Datum und Uhrzeit:
Bearbeiter:

Betroffenes System:
Betriebssystem:
Version und Build:
Architektur:
Systemrolle:
Physisch oder virtuell:
Cluster- oder Domänenmitglied:

Updateart:
KB-, Paket- oder Versionsnummer:
Updatequelle:
WSUS, Repository oder MDM:
Fehlerphase:
Originaler Fehlercode:
Originale Fehlermeldung:
Zeitpunkt des Fehlers:

Freier Speicher:
Inode-Belegung:
Datum und Uhrzeit:
Ausstehender Neustart:
Updatedienst:
Paketmanager:
Aktive Installationsprozesse:
Sperrstatus:

DNS-Auflösung:
Proxy:
Erreichbarkeit der Updatequelle:
Signatur- oder Zertifikatsfehler:
Repositorystatus:
Abhängigkeitsfehler:

Relevante Protokolle:
Letzte erfolgreiche Aktualisierung:
Letzte Änderungen:
Vergleich mit funktionierendem System:

Vermutete Ursache:
Durchgeführte Tests:
Sicherung geprüft:
Wartungsfenster:
Durchgeführte Änderung:
Neustart durchgeführt:
Rückfallplan:

Installationsstatus nach der Maßnahme:
Dienststatus:
Anwendungsprüfung:
Monitoring unauffällig:
Weiterführende Maßnahmen:

Merksatz

Bei Updatefehlern wird nicht sofort der Cache gelöscht oder das Paket erneut installiert. Zuerst werden Updatequelle, Fehlerphase, Fehlercode, Speicherplatz, Zeit, Netzwerk, Paketstatus und Protokolle geprüft.

Quellen und weiterführende Dokumentation