docs: introduce docs/archive, remove finished sprint boards and generated report
- docs/archive/2026/ with index README: DR tabletop drill, workstation audits, HA/Ecowitt draft, pre-Borg backup audit, finished windows reinstall project docs - delete weekend sprint boards (content preserved in MASTER_TODO done log and git history) - untrack generated ops/policy-checks/last-report.md and gitignore it - fix references (CLAUDE.md, docs/README.md, ops/windows-reinstall/README.md) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
# Backup Audit - Status Quo
|
||||
|
||||
Stand: 2026-04-15
|
||||
|
||||
Dieses Dokument beschreibt den aktuellen Ist-Zustand des Homelab-Backups, bevor weitere Strukturänderungen oder Migrationsschritte vorgenommen werden.
|
||||
|
||||
## Ziel dieses Audits
|
||||
|
||||
1. Festhalten, welche Daten wo liegen.
|
||||
2. Prüfen, was aktuell im Borg-Scope enthalten ist.
|
||||
3. Sichtbar machen, welche Lücken oder Unsicherheiten noch bestehen.
|
||||
4. Erst danach über Umzüge oder Bereinigungen entscheiden.
|
||||
|
||||
## Shares - fachliche Einordnung
|
||||
|
||||
| Share | Aktuelle Rolle | Bewertung |
|
||||
| --- | --- | --- |
|
||||
| `appdata` | App-Konfig, Datenbanken, App-State, Secrets | fachlich normal, aber gemischt; nicht alles daraus sollte pauschal gebackupt werden |
|
||||
| `documents` | Nutzdaten für Dokumente / Paperless | fachlich sauber |
|
||||
| `photos` | Nutzdaten für Bilder / Immich / Archiv | fachlich sauber |
|
||||
| `services` | GitOps / Infrastruktur / Gitea / Compose | fachlich sauber |
|
||||
| `backups` | Backup-Ziele und Restore-Daten | sollte frei von Live-App-Daten bleiben |
|
||||
| `media` | Mediathek / große Inhaltsdaten | aktuell nicht Teil des Critical-Scopes |
|
||||
| `finance` | sensible Nutzdaten | aktuell nicht Teil des Critical-Scope |
|
||||
| `projekte` | Projekt- und Entwicklungsdaten | aktuell nicht Teil des Critical-Scope |
|
||||
|
||||
## Aktueller Borg-Zielzustand
|
||||
|
||||
Es gibt derzeit zwei relevante Ebenen:
|
||||
|
||||
1. Ein älteres breites Test-Repository (`hetzner_borg-appdata`), das nicht als finales Design gewertet werden sollte.
|
||||
2. Ein neues gezieltes Critical-Repository (`critical_infra`), das den fachlich wichtigen Scope abdecken soll.
|
||||
|
||||
Der technische Scope für `critical_infra` ist in `all-important-sources.txt` festgehalten.
|
||||
|
||||
## Aktueller Borg-Scope - Quellen
|
||||
|
||||
### Dumps
|
||||
|
||||
- `/local/borg-dumps`
|
||||
|
||||
### Kritische App-/Nutzdaten
|
||||
|
||||
- `/local/appdata/vaultwarden`
|
||||
- `/local/appdata/paperless-ngx/data`
|
||||
- `/local/paperless/media`
|
||||
- `/local/paperless/export`
|
||||
- `/local/paperless/consume`
|
||||
- `/local/immich/upload`
|
||||
- `/local/immich/external`
|
||||
- `/local/gitea/data`
|
||||
- `/local/appdata/mealie/data`
|
||||
- `/local/appdata/mailarchiver/data-protection-keys`
|
||||
|
||||
### Secrets / Konfiguration / Infrastruktur
|
||||
|
||||
- `/local/secrets`
|
||||
- `/local/appdata/authelia/config`
|
||||
- `/local/appdata/traefik`
|
||||
- `/local/appdata/ntfy`
|
||||
- `/local/appdata/paperless-gpt`
|
||||
- `/local/appdata/tailscale`
|
||||
- `/local/appdata/adguard/conf`
|
||||
- `/local/appdata/borg-ui/data`
|
||||
- `/local/appdata/komodo/periphery`
|
||||
- `/local/appdata/komodo/core`
|
||||
|
||||
## Service-Audit
|
||||
|
||||
| Service | Nutzdaten | DB / technischer Zustand | Aktuell durch Borg abgedeckt? | Bewertung |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Vaultwarden | `/mnt/user/appdata/vaultwarden` | Datei-basiert | Ja | gut |
|
||||
| Paperless | `documents` + `appdata/paperless-ngx/data` | Shared PostgreSQL Dump vorhanden | Ja | gut |
|
||||
| Immich | `/mnt/user/photos/immich`, `/mnt/user/photos/family_archive` | eigener PostgreSQL Dump vorhanden | Ja | gut |
|
||||
| Gitea | `/mnt/user/services/gitea/data` | SQLite in `/data` | Ja | gut |
|
||||
| Mealie | `/mnt/user/appdata/mealie/data` | eigener PostgreSQL Dump vorhanden | Ja | gut |
|
||||
| Mail-archiver | DataProtection-Keys | Shared PostgreSQL Dump vorhanden | Ja | gut |
|
||||
| Authelia | Config + Secrets | Shared PostgreSQL Dump vorgesehen / erzeugt | Ja | gut |
|
||||
| Traefik | dynamische Config + Let's Encrypt | keine separate DB | Ja | gut |
|
||||
| ntfy | Datei-Daten | keine separate DB | Ja | gut |
|
||||
| Paperless-GPT | lokale Daten / Prompts | keine separate DB | Ja | gut |
|
||||
| Tailscale | State-Verzeichnis | keine separate DB | Ja | gut |
|
||||
| AdGuard | `conf` | `work` bewusst nicht im Critical-Scope | Teilweise | okay |
|
||||
| Komodo | `core` + `periphery` | MongoDB Dump aktuell nicht verifiziert | Teilweise | offen |
|
||||
| Redis | transiente Daten / Cache | absichtlich nicht im Scope | Nein | bewusst ausgeschlossen |
|
||||
| Scrutiny | Config + InfluxDB | InfluxDB nicht im Scope | Nein | bewusst ausgeschlossen |
|
||||
| Plex | Medien-Metadaten / Cache | kein Critical-Scope | Nein | bewusst ausgeschlossen |
|
||||
|
||||
## Datenbank-Dumps - Ist-Zustand
|
||||
|
||||
### Erfolgreich erzeugt
|
||||
|
||||
- `postgresql17-globals.sql`
|
||||
- `postgresql17-mailarchiver.dump`
|
||||
- `postgresql17-paperless.dump`
|
||||
- `postgresql17-authelia.dump`
|
||||
- `mealie.dump`
|
||||
- `immich.dump`
|
||||
|
||||
### Bestätigt
|
||||
|
||||
- `komodo-mongo.archive.gz` - am 2026-05-04 frisch erzeugt und per `gzip -t` geprüft
|
||||
|
||||
## Ergebnis des ersten `critical_infra`-Laufs
|
||||
|
||||
Der erste vollständige Lauf des neuen Borg-Repositories `critical_infra` wurde erfolgreich abgeschlossen.
|
||||
|
||||
### Bestätigter Lauf
|
||||
|
||||
- Repository: `ssh://u565255@u565255.your-storagebox.de:23/./hetzner_borg_appdata_critical`
|
||||
- Archiv: `manual-backup-2026-04-13T19:19:52`
|
||||
- Status: erfolgreich (`rc 0`)
|
||||
- Laufzeit: `1h 37m 12s`
|
||||
- Dateien: `63.237`
|
||||
- Archivgröße: `24,73 GB` original / `24,53 GB` komprimiert / `23,37 GB` dedupliziert
|
||||
|
||||
### Bedeutung
|
||||
|
||||
Damit ist bestätigt, dass der aktuelle Critical-Scope technisch durch Borg gesichert werden kann.
|
||||
|
||||
Das betrifft insbesondere:
|
||||
|
||||
- Paperless-Dokumente und zugehörige Dumps
|
||||
- Immich-Uploads und `photos/family_archive`
|
||||
- Gitea-Daten
|
||||
- Vaultwarden
|
||||
- Secrets / Traefik / Authelia
|
||||
- die aktuell erzeugten PostgreSQL-Dumps
|
||||
|
||||
### Weiterhin offen trotz erfolgreichem Lauf
|
||||
|
||||
- der Scope kann später noch bewusst verschlankt werden, ist aber aktuell funktionsfähig
|
||||
|
||||
## Aktueller Abschlussstand
|
||||
|
||||
Seit dem ersten erfolgreichen Lauf wurde der Zielzustand weiter konkret umgesetzt:
|
||||
|
||||
- Die Pre-Backup-Dumps laufen host-seitig über Unraid User Scripts / Host-Cron.
|
||||
- Der Dump-Zielpfad wurde nach `/mnt/user/backups/borg/dumps` verlagert.
|
||||
- Der neue Zielpfad ist im laufenden `borg-ui`-Container sichtbar.
|
||||
- Ein Restore-Smoke-Test war erfolgreich:
|
||||
- `postgresql17-globals.sql` wurde wiederhergestellt
|
||||
- `gitea.db` wurde wiederhergestellt
|
||||
- `ntfy` bleibt fuer Borg-Alerts eingerichtet; Uptime Kuma wurde 2026-05-25 durch Blackbox/Prometheus/Grafana abgeloest.
|
||||
- `Firefly`, `Firefly-Fints` und `Semaphore` wurden aus Git und vom Homelab entfernt.
|
||||
|
||||
## Was aktuell bewusst nicht als Problem gewertet wird
|
||||
|
||||
- `photos/family_archive` liegt fachlich korrekt im Share `photos` und wird durch Borg gesichert.
|
||||
- Paperless liegt absichtlich über mehrere Shares verteilt:
|
||||
- `documents` für Nutzdaten
|
||||
- `appdata` für App-State
|
||||
- Dump für DB
|
||||
- Immich liegt absichtlich über mehrere Bereiche verteilt:
|
||||
- `photos` für Bilder
|
||||
- `appdata` für DB
|
||||
- Dump für DB
|
||||
|
||||
Das ist kein Strukturfehler, sondern eine normale Trennung zwischen Nutzdaten und App-State.
|
||||
|
||||
## Aktuelle Lücken / offene Entscheidungen
|
||||
|
||||
1. **Komodo MongoDB**
|
||||
- Dump-Pfad im Skript vorhanden
|
||||
- Erfolg am 2026-05-04 bestätigt
|
||||
|
||||
## Vorläufiges Audit-Fazit
|
||||
|
||||
Der aktuelle Borg-Scope ist **nicht chaotisch**, sondern bereits deutlich strukturierter als ein pauschales Backup von `/mnt/user/appdata`.
|
||||
|
||||
Fachlich sieht das Bild aktuell so aus:
|
||||
|
||||
- `appdata` = technischer App-State
|
||||
- `documents` = Paperless-/Dokumenten-Nutzdaten
|
||||
- `photos` = Immich-/Bild-Nutzdaten
|
||||
- `services` = GitOps / Gitea / Infra
|
||||
- `backups` = Backup-Ziel, nicht Live-Daten
|
||||
|
||||
Das eigentliche Restproblem ist aktuell **nicht** die Share-Struktur, sondern:
|
||||
|
||||
- einzelne noch offene Dump-Kandidaten
|
||||
|
||||
## Nächste sinnvolle Schritte
|
||||
|
||||
1. `komodo-mongo` nach Komodo-Major-Upgrades gezielt im Auge behalten.
|
||||
2. Das automatische Borg-Fenster beobachten und nach den ersten geplanten Läufen nur noch auf Warnungen reagieren.
|
||||
3. Optionale spätere Scope-Verschlankung nur bewusst und nicht ad hoc vornehmen.
|
||||
|
||||
## Festgehaltene Entscheidung
|
||||
|
||||
Stand jetzt werden **keine grundlegenden Share-Umstrukturierungen** vorgenommen.
|
||||
|
||||
### Begründung
|
||||
|
||||
- Die aktuelle Share-Struktur ist fachlich grundsätzlich brauchbar:
|
||||
- `appdata` = technischer App-State
|
||||
- `documents` = Dokument-Nutzdaten
|
||||
- `photos` = Bild-/Immich-Nutzdaten
|
||||
- `services` = GitOps / Infrastruktur
|
||||
- `backups` = Backup-Ziel
|
||||
- Der erwartete Ertrag eines großen Share-Umbaus ist aktuell niedrig.
|
||||
- Das Risiko eines Umbaus ist vergleichsweise hoch, weil Live-Pfade, Compose-Mounts und Backup-Quellen gleichzeitig betroffen wären.
|
||||
- Der aktuelle Engpass liegt nicht in den Shares selbst, sondern in:
|
||||
- vollständiger Borg-Abdeckung
|
||||
- sauberer Dump-Automatisierung
|
||||
- einzelnen offenen Spezialfällen
|
||||
|
||||
### Spezifische Bewertung
|
||||
|
||||
- `photos/family_archive` bleibt an Ort und Stelle.
|
||||
- `documents`-Pfade für Paperless bleiben an Ort und Stelle.
|
||||
- `services/gitea` bleibt an Ort und Stelle.
|
||||
- `appdata` wird aktuell nicht großflächig bereinigt oder umgebaut.
|
||||
|
||||
### Aktuelle Prioritäten statt Share-Umbau
|
||||
|
||||
1. Den automatischen Betrieb beobachten statt die Architektur weiter umzubauen.
|
||||
2. Repo-Soll und Live-Ist nur bei echtem Drift erneut vergleichen.
|
||||
3. `komodo-mongo` bei Bedarf separat bewerten.
|
||||
|
||||
### Erläuterung zu Punkt 4
|
||||
|
||||
Diese Änderung wird ausdrücklich als **klein, risikoarm und sinnvoll** bewertet:
|
||||
|
||||
- Dump-Dateien und Borg-Staging-Daten sind Backup-Artefakte, keine eigentlichen App-Daten.
|
||||
- Der Zielpfad `/mnt/user/backups/borg/dumps` ist fachlich sauberer als `appdata/borg-ui/dumps`.
|
||||
- Der erwartete Nutzen ist höher als bei kosmetischen Share-Umbauten, weil die Trennung zwischen Live-System und Backup-Artefakten klarer wird.
|
||||
|
||||
Festgelegtes Ziel:
|
||||
|
||||
- `/mnt/user/backups/borg/dumps`
|
||||
|
||||
Wichtig:
|
||||
|
||||
- Diese Änderung bleibt klein und risikoarm, weil nur Dump-Artefakte umziehen.
|
||||
- Die Live-App-Datenpfade bleiben davon unberührt.
|
||||
@@ -0,0 +1,504 @@
|
||||
# DR Tabletop Drill - 2026-06-03
|
||||
|
||||
Trockenlauf gegen `docs/DISASTER_RECOVERY.md` Phase 0 bis 5 plus referenzierte
|
||||
Runbooks (`SERVICES_RECOVERY.md`, `RESTORE_MATRIX.md`, `SECRETS_MAP.md`,
|
||||
`RESTORE_HANDBOOK.md`, `EXTERNAL_DEPENDENCIES.md`).
|
||||
|
||||
Szenario: Bare-Metal-Ausfall. Unraid-Host und alle lokalen Festplatten sind
|
||||
weg. Operator hat: Laptop, Hetzner-Account, Vaultwarden-Export, Repo-Doku.
|
||||
Soft-Recovery (Host laeuft, Appdata futsch) ist eine Teilmenge dieser
|
||||
Findings.
|
||||
|
||||
Methode: kalter Lesetest. Kein Container gestartet, keine Skripte
|
||||
ausgefuehrt. Jeder Befund ist mit Repo-Datei und Zeile belegt. Spekulative
|
||||
"vielleicht unklar"-Befunde sind weggelassen.
|
||||
|
||||
Severity:
|
||||
|
||||
- **CRITICAL** - blockiert Wiederanlauf, ohne Workaround nicht loesbar
|
||||
- **HIGH** - blockiert eine Phase, Workaround moeglich aber undokumentiert
|
||||
- **MED** - kostet Zeit oder fuehrt zu vermeidbarem Fehler
|
||||
- **LOW** - Konsistenz / Stil
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| ID | Phase | Severity | Thema |
|
||||
|---|---|---|---|
|
||||
| P0-1 | 0 | HIGH | Brueckenpfad Windows-Clone -> frischer Unraid-Host fehlt |
|
||||
| P0-2 | 0 | HIGH | GitHub-Mirror-Zugang im DR ist nicht eigenstaendig dokumentiert |
|
||||
| P1-1 | 1 | CRITICAL | Unraid-Flash-Restore: kein dokumentierter Extract-Pfad ohne laufenden Host |
|
||||
| P1-2 | 1 | MED | Unraid-OS-Flash-Restore-Test laut Matrix nie real getestet |
|
||||
| P2-1 | 2 | HIGH | KOMODO_* externe Operator-Notiz ist Pflichtquelle, Existenz nicht verifizierbar |
|
||||
| P2-2 | 2 | HIGH | DR.md Phase 4 vs. SERVICES_RECOVERY.md Bootstrap-Reihenfolge widerspruechlich |
|
||||
| P2-3 | 2 | MED | `homelab_smtp_password.txt` fehlt in DR.md Phase 2.6.1 |
|
||||
| P2-4 | 2 | MED | `n8n_encryption_key.txt` fehlt in DR.md Phase 2.6.1 |
|
||||
| P2-5 | 2 | LOW | Monitoring-/Filebrowser-Secrets fehlen in DR.md Phase 2.6.1 |
|
||||
| P3-1 | 3 | HIGH | Borg-Client ohne `borg-ui`-Container ist nicht dokumentiert |
|
||||
| P3-2 | 3 | HIGH | Borg-Passphrase-Bootstrap aus Offline-Sicherung nicht als expliziter Schritt |
|
||||
| P3-3 | 3 | MED | Hetzner-Maintenance-Key aus Vaultwarden ist Henne-Ei im Bare-Metal |
|
||||
| P4-1 | 4 | HIGH | Externe Docker-Netze in DR.md Phase 4 Stufe 1 nicht erwaehnt |
|
||||
| P4-2 | 4 | HIGH | Cloudflare-LE-Rate-Limit-Risiko bei verlorenem `letsencrypt`-State |
|
||||
| P4-3 | 4 | MED | `traefik/dynamic/*` als Phase-4-Pre-Check fehlt in der Reihenfolge |
|
||||
| P4-4 | 4 | HIGH | Authelia "frische Postgres ohne Dump"-Pfad nicht beschrieben |
|
||||
| P4-5 | 4 | LOW | Gitea in Stufe 2 hinter Postgres ist faktisch nicht noetig (SQLite) |
|
||||
| P4-6 | 4 | HIGH | Komodo-Mongo Passwort-Lockout-Risiko bei restauriertem Datadir |
|
||||
| P4-7 | 4 | MED | Komodo `extra_hosts` mit hardgecodeter LAN-IP bricht bei IP-Wechsel |
|
||||
| P4-8 | 4 | HIGH | Stack-ENV-Wiederherstellung in Komodo praktisch nur manueller UI-Eintrag |
|
||||
| P5-1 | 5 | LOW | Smoke-Tests in Phase 5 weniger streng als RESTORE_MATRIX |
|
||||
| P5-2 | 5 | MED | Kein Verifikationspunkt fuer App-zu-DB-Verbindung nach Stack-ENV-Restore |
|
||||
| X-1 | uebergreifend | HIGH | Nextcloud-Restore-Skript ist da, aber noch nie real ausgefuehrt |
|
||||
|
||||
## Phase 0 - Repo-Zugang
|
||||
|
||||
### P0-1 (HIGH) - Brueckenpfad Windows-Clone -> frischer Unraid fehlt
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:88-93` listet als Repo-Quellen: GitHub-Mirror,
|
||||
lokaler Bare-Clone, lokaler Arbeits-Clone. `SERVICES_RECOVERY.md:67-68`
|
||||
nennt den lokalen Operator-Clone unter `G:\Gitea_Clone\homelab-infra\` als
|
||||
Vorzug.
|
||||
|
||||
Luecke: der Pfad "wie kommt der Windows-Clone auf einen frisch installierten
|
||||
Unraid-Host" ist nicht beschrieben. Implizit: SMB-Share, USB-Stick, scp ueber
|
||||
LAN. Aber auf einem frisch aufgesetzten Unraid existiert noch keine
|
||||
funktionierende SMB-Konfiguration; SSH-Key vom Operator-PC ist nicht
|
||||
vorbereitet.
|
||||
|
||||
Vorschlag: Zwei Saetze in `DISASTER_RECOVERY.md` Phase 0 ergaenzen, wie der
|
||||
Operator-Clone konkret zum Host kommt (USB-Stick + `mkdir -p
|
||||
/mnt/user/services/homelab-infra && rsync -a` aus Operator-Windows-PC, oder
|
||||
direkt vom GitHub-Mirror per `git clone https://github.com/...` auf dem
|
||||
Unraid-Host).
|
||||
|
||||
### P0-2 (HIGH) - GitHub-Mirror-Zugang im DR
|
||||
|
||||
`SECRETS_MAP.md:42` sagt, der GitHub-Push-Mirror-PAT liegt in den
|
||||
Gitea-Mirror-Settings persistent unter `/mnt/user/services/gitea/data`.
|
||||
`EXTERNAL_DEPENDENCIES.md:18` nennt den Mirror als `michaelkaleschke-spec/
|
||||
homelab-infra` und betont "privater" Push-Mirror.
|
||||
|
||||
Luecke: Wenn der Mirror **privat** ist, scheitert ein anonymer `git clone`
|
||||
im DR-Bootstrap. Es gibt keine dokumentierte Notfall-Quelle fuer einen
|
||||
Read-PAT/SSH-Key, der lokal beim Operator (nicht in Gitea, nicht im Repo)
|
||||
verfuegbar ist.
|
||||
|
||||
Vorschlag in `EXTERNAL_DEPENDENCIES.md`: entweder explizit dokumentieren,
|
||||
dass der Mirror lesend `Public` ist (DR-fit), oder einen Read-PAT in der
|
||||
Vaultwarden-/Offline-Notiz neben der Borg-Passphrase als Bootstrap-Voraussetzung
|
||||
benennen.
|
||||
|
||||
## Phase 1 - Unraid und Shares
|
||||
|
||||
### P1-1 (CRITICAL) - Unraid-Flash-Restore ohne laufenden Host
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:107` sagt: "Primaere lokale/off-site
|
||||
Restore-Quelle fuer die bestehende Flash-Konfiguration ist das
|
||||
Borg-Artefakt `unraid-flash-config.tar.gz` aus
|
||||
`/mnt/user/backups/borg/dumps/latest`."
|
||||
|
||||
Henne-Ei: der Pfad ist auf den verlorenen Shares oder auf Hetzner. Hetzner-
|
||||
Zugriff braucht einen funktionierenden Linux-Host mit Borg-Client und
|
||||
Passphrase. Im Bare-Metal-Fall ist genau das nicht da. RESTORE_MATRIX.md
|
||||
Tier 1 Zeile `Unraid OS Flash` (`docs/RESTORE_MATRIX.md:29`) sagt nur "Unraid
|
||||
USB Flash Creator / neuer Boot-Stick" - das beschreibt die Stick-Erzeugung,
|
||||
nicht den Extract des Borg-Artefakts.
|
||||
|
||||
Operativ: Operator braucht einen Laptop mit Borg-Client + Passphrase +
|
||||
SSH-Key fuer die Hetzner-Storage-Box. Das ist eine **separat zu pflegende
|
||||
Operator-Workstation-Voraussetzung** und ist in keinem Repo-Dokument als
|
||||
DR-Vorbedingung gelistet.
|
||||
|
||||
Vorschlag: In `EXTERNAL_DEPENDENCIES.md` oder `DISASTER_RECOVERY.md`
|
||||
Abschnitt 3 als Pflichtposten aufnehmen: "Operator-Laptop mit installiertem
|
||||
Borg-Client, SSH-Key fuer Hetzner und Zugriff auf die offline gesicherte
|
||||
Passphrase". Inklusive Test, dass der Operator den Extract tatsaechlich
|
||||
durchfuehren kann.
|
||||
|
||||
### P1-2 (MED) - Unraid-OS-Flash-Restore-Test nie gelaufen
|
||||
|
||||
`docs/RESTORE_MATRIX.md:140` Spalte "Letzter Restore-Test" fuer Unraid OS
|
||||
Flash: `-` (kein Test). Das ist die Grundlage fuer Phase 1 und ist nie als
|
||||
Smoke verifiziert. Empfehlung: einmaliger Test, der die Tar-Archiv-Struktur
|
||||
gegen die erwarteten Flash-Pfade prueft (kein echter Boot-Test noetig).
|
||||
|
||||
## Phase 2 - Secrets und Stack-ENV
|
||||
|
||||
### P2-1 (HIGH) - KOMODO_* externe Operator-Notiz als Pflichtquelle
|
||||
|
||||
`docs/SECRETS_MAP.md:132,138-143` macht den Komodo-Sonderfall klar: die
|
||||
KOMODO_*-Secrets sind aus dem eigenen Mongo-Dump nicht rekonstruierbar,
|
||||
solange Komodo nicht laeuft. Quellen: Vaultwarden ODER externe Notiz.
|
||||
|
||||
Im Bare-Metal-Fall ist Vaultwarden in DR.md Phase 4 Stufe 4, Komodo in
|
||||
Phase 4 Stufe 3. Damit ist die **externe Operator-Notiz** die einzige
|
||||
Pflichtquelle in der Reihenfolge.
|
||||
|
||||
Luecke: ob diese Notiz wirklich existiert und die 5 Werte
|
||||
(KOMODO_SECRET_KEY, KOMODO_WEBHOOK_SECRET, KOMODO_JWT_SECRET,
|
||||
KOMODO_MONGO_PASSWORD, KOMODO_PERIPHERY_PASSKEY) enthaelt, ist in keinem
|
||||
Repo-Dokument bestaetigt. Die Borg-Passphrase ist als "Operator-Bestaetigung
|
||||
2026-05-26" dokumentiert; eine analoge Bestaetigung fuer die KOMODO_*-Notiz
|
||||
fehlt.
|
||||
|
||||
Vorschlag: gleiche Form wie Borg-Passphrase - eine Zeile in
|
||||
`EXTERNAL_DEPENDENCIES.md` "Komodo-Stack-ENV-Notiz offline gesichert,
|
||||
Operator-Bestaetigung YYYY-MM-DD".
|
||||
|
||||
### P2-2 (HIGH) - Reihenfolgen-Inkonsistenz DR vs. SERVICES_RECOVERY
|
||||
|
||||
`docs/SERVICES_RECOVERY.md:102` (Stufe C, Komodo-Bootstrap): "Vaultwarden
|
||||
(sobald restauriert), externe Operator-Notiz, oder Komodo-Mongo-Dump (nur
|
||||
wenn Mongo separat bereits gestartet ...)".
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:247-301` (Phase 4): Stufe 3 = Komodo, Stufe 4 =
|
||||
Vaultwarden.
|
||||
|
||||
Wenn ein Leser sich an DR.md Phase 4 haelt, ist Vaultwarden nach Komodo
|
||||
fertig. Aber SERVICES_RECOVERY.md Stufe C setzt Vaultwarden als optionale
|
||||
Vorab-Quelle voraus. Ohne externe Notiz heisst das praktisch: Komodo kann
|
||||
nicht starten. Die Konsequenz steht nirgendwo explizit in DR.md.
|
||||
|
||||
Vorschlag: In `DISASTER_RECOVERY.md` Phase 4 Stufe 3 einen Hinweisblock
|
||||
ergaenzen: "KOMODO_*-Werte muessen vor Stufe 3 aus externer Notiz oder
|
||||
einer in Stufe 2 voraus gezogenen Vaultwarden-Instanz vorliegen. Default-
|
||||
Pfad: externe Notiz."
|
||||
|
||||
### P2-3 (MED) - `homelab_smtp_password.txt` fehlt in DR.md 6.1
|
||||
|
||||
`docs/SECRETS_MAP.md:20` listet `/mnt/user/appdata/secrets/
|
||||
homelab_smtp_password.txt` fuer Vaultwarden-SMTP. In `DISASTER_RECOVERY.md`
|
||||
Abschnitt 6.1 (`docs/DISASTER_RECOVERY.md:136-151`) ist sie nicht
|
||||
aufgefuehrt. Vaultwarden startet ohne, kann aber keine Einladungs-/
|
||||
Benachrichtigungs-Mails versenden. Klein, aber unsichtbarer Folgefehler im
|
||||
Familien-Onboarding-Pfad.
|
||||
|
||||
### P2-4 (MED) - `n8n_encryption_key.txt` fehlt in DR.md 6.1
|
||||
|
||||
`docs/SECRETS_MAP.md:58` listet `/mnt/user/appdata/secrets/
|
||||
n8n_encryption_key.txt`. In DR.md 6.1 fehlt sie komplett.
|
||||
`SECRETS_MAP.md:135` macht die Folgen explizit: "Bei Verlust aller
|
||||
Quellen: n8n startet, aber alle gespeicherten Credentials sind unbrauchbar".
|
||||
Da n8n den GMX-Mail-Workflow fuer das Gitea-`Micha/mails`-Repo betreibt,
|
||||
ist das ein direkter Workflow-Ausfall.
|
||||
|
||||
### P2-5 (LOW) - Monitoring-/Filebrowser-Secrets fehlen in DR.md 6.1
|
||||
|
||||
`docs/SECRETS_MAP.md:53-55`: `influxdb3_admin_token.json`,
|
||||
`monitoring_grafana_admin_password.txt`,
|
||||
`monitoring_grafana_influxdb_token.txt` sowie
|
||||
`filebrowser_admin_password.txt` sind nicht in DR.md 6.1. Tier-3-Apps,
|
||||
Folge ist nur ein UI-Initialisierungs-Schritt nach Wiederanlauf. Keine
|
||||
Critical-Konsequenz, aber Inkonsistenz.
|
||||
|
||||
## Phase 3 - Borg-Extract
|
||||
|
||||
### P3-1 (HIGH) - Borg-Client ohne `borg-ui`-Container
|
||||
|
||||
`docs/RESTORE_HANDBOOK.md:30-33` sagt explizit: "Borg-Zugriff laeuft ueber
|
||||
den vorhandenen `borg-ui`-Container".
|
||||
|
||||
Im Bare-Metal-Fall ist `borg-ui` selbst kalt (Tier 3, DR.md Phase 4 Stufe 5).
|
||||
Es gibt keinen dokumentierten Pfad, wie der erste Borg-Extract ohne diesen
|
||||
Container laeuft. Implizite Optionen: nativer Borg auf Unraid (Plugin),
|
||||
`docker run --rm borgbackup/borg`, oder Operator-Laptop. Keine davon ist
|
||||
benannt.
|
||||
|
||||
Vorschlag: In `RESTORE_HANDBOOK.md` Abschnitt 2 einen "Bare-Metal-Vorlauf"
|
||||
ergaenzen, der den initialen Borg-Extract ohne borg-ui-Container
|
||||
beschreibt - z. B. `docker run --rm -v
|
||||
/mnt/user/backups/restore-lab:/restore borgbackup/borg ...`.
|
||||
|
||||
### P3-2 (HIGH) - Borg-Passphrase-Bootstrap nicht als expliziter Schritt
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:68`: "Host-Secret-Datei vorhanden und fuer
|
||||
Borg-Zugriff verifiziert; externe Offline-Hinterlegung vom Operator am
|
||||
2026-05-26 bestaetigt."
|
||||
|
||||
Praktisch heisst das: im Bare-Metal-Fall liest der Operator die Passphrase
|
||||
aus einem analogen Medium und tippt sie in den Borg-Client. Das ist ein
|
||||
**Bootstrap-Schritt**, der nicht als Schritt dokumentiert ist. Er steckt
|
||||
implizit in "extern bestaetigt".
|
||||
|
||||
Vorschlag: Ein nummerierter Bullet in `DISASTER_RECOVERY.md` Phase 3 ("Wenn
|
||||
echte Daten aus Borg benoetigt werden"): "Schritt 1: Borg-Passphrase aus
|
||||
Offline-Sicherung beschaffen. Wert wird nicht in Skripte oder Tickets
|
||||
kopiert; nur in den interaktiven Borg-Aufruf eingegeben."
|
||||
|
||||
### P3-3 (MED) - Hetzner-Maintenance-Key im Bare-Metal
|
||||
|
||||
`docs/EXTERNAL_DEPENDENCIES.md:17`: "Maintenance-Key liegt in Vaultwarden".
|
||||
|
||||
Im Bare-Metal-Bootstrap ist Vaultwarden Phase 4 Stufe 4. Damit ist der Key
|
||||
fuer die initiale Phase-3-Hetzner-Verbindung nicht zugaenglich. Implizit
|
||||
muss er ebenfalls offline gesichert sein (analog Borg-Passphrase).
|
||||
|
||||
Vorschlag: gleiche Form wie Borg-Passphrase - eine Operator-Bestaetigung
|
||||
in `EXTERNAL_DEPENDENCIES.md`, dass der Hetzner-SSH-Key auch ausserhalb von
|
||||
Vaultwarden offline verfuegbar ist. Sonst ist die "Vaultwarden"-Aussage
|
||||
fuer Bare-Metal eine Falle.
|
||||
|
||||
## Phase 4 - Bootstrap-Reihenfolge
|
||||
|
||||
### P4-1 (HIGH) - Externe Docker-Netze in DR.md Phase 4 Stufe 1 nicht erwaehnt
|
||||
|
||||
`docs/SERVICES_RECOVERY.md:82-84` Stufe A schreibt explizit: "Externe
|
||||
Docker-Netze existieren oder werden erzeugt (`frontend_net`, `backend_net`).
|
||||
Wenn nicht vorhanden: `docker network create --driver bridge frontend_net`
|
||||
bzw. `... --internal backend_net`."
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:252-260` Phase 4 Stufe 1 nennt nur Traefik,
|
||||
AdGuard, Tailscale. Kein Hinweis auf externe Netze.
|
||||
|
||||
`traefik/docker-compose.yml:70-76` deklariert `frontend_net`, `backend_net`,
|
||||
`monitoring_net` als `external: true`. Ohne vorab erstellte Netze scheitert
|
||||
der erste `docker compose up` mit "network frontend_net not found".
|
||||
|
||||
Vorschlag: In `DISASTER_RECOVERY.md` Phase 4 vor Stufe 1 einen Vorlauf
|
||||
"Stufe 0 - Docker-Grundlage" einfuegen, der die Netzwerk-Erzeugung wie in
|
||||
`SERVICES_RECOVERY.md` Stufe A explizit listet.
|
||||
|
||||
### P4-2 (HIGH) - Cloudflare-LE-Rate-Limit-Risiko
|
||||
|
||||
`docs/RESTORE_MATRIX.md:30` markiert `letsencrypt` korrekt als
|
||||
Restore-relevant. `docs/DISASTER_RECOVERY.md:240` listet
|
||||
`/mnt/user/appdata/traefik/letsencrypt` ebenfalls als kritischen
|
||||
Borg-Restore-Pfad.
|
||||
|
||||
Luecke: kein Hinweis auf den Praxisfall "LE-State verloren, frischer
|
||||
Acme-Run". Let's Encrypt hat ein Rate-Limit von 50 Zertifikaten/Domain/
|
||||
Woche und 5 Duplicate-Zertifikate/Woche. Bei einer Multi-Sub-Domain-
|
||||
Konstellation wie `*.kaleschke.info` (15+ Hostnames) ist das beim
|
||||
hektischen DR-Bootstrap erreichbar.
|
||||
|
||||
Vorschlag: In `DISASTER_RECOVERY.md` Phase 4 Stufe 1 einen Hinweis: "Bei
|
||||
verlorenem oder unklarem `acme.json` zuerst gegen
|
||||
`acme-staging-v02.api.letsencrypt.org` ausstellen lassen, erst nach
|
||||
gruenem Smoke auf Production-CA umschalten." Ist eine Praesentations-
|
||||
Aenderung in den Compose-Args, kein neuer Code.
|
||||
|
||||
### P4-3 (MED) - `traefik/dynamic/*` als Pre-Check fehlt
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:357-365` Sektion 10 beschreibt die manuelle
|
||||
Sonderregel fuer `traefik/dynamic/*`. Korrekt.
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:252-260` Phase 4 Stufe 1 verweist nicht auf
|
||||
diese Sonderregel. Wer der Reihenfolge folgt und Sektion 10 nicht liest,
|
||||
startet Traefik ohne Middlewares - alle 2FA-Routen brechen still.
|
||||
|
||||
Vorschlag: Cross-Reference in Phase 4 Stufe 1: "Vor `docker compose up
|
||||
traefik` pruefen, dass `/mnt/user/appdata/traefik/dynamic/middlewares.yml`,
|
||||
`tls.yml`, `dashboards.yml` vorhanden sind (Sonderregel Sektion 10)."
|
||||
|
||||
### P4-4 (HIGH) - Authelia "frische Postgres ohne Dump"-Pfad fehlt
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:267-275` Phase 4 Stufe 2 startet Postgres und
|
||||
Authelia. Authelia erwartet eine Rolle `authelia` mit dem Passwort aus
|
||||
`authelia_postgres_password.txt`. Im Restore-Pfad mit `pg_dumpall --globals-
|
||||
only` ist die Rolle abgedeckt.
|
||||
|
||||
Bei einem **fresh-start** (keine alten Daten, nur Container hochfahren) ist
|
||||
die Rolle nicht da. Postgres-Image legt sie nicht automatisch an. Authelia
|
||||
schlaegt mit "FATAL: role authelia does not exist" fehl.
|
||||
|
||||
Luecke: Der Initialisierungspfad fuer eine frische Postgres ohne
|
||||
pg_dumpall ist in der Doku nicht beschrieben. Im echten DR mit Borg ist
|
||||
das unwahrscheinlich, aber im Soft-Recovery oder Migrations-Drill schon.
|
||||
|
||||
Vorschlag: In `DISASTER_RECOVERY.md` Phase 4 Stufe 2 eine optionale
|
||||
Anweisung: "Falls Postgres frisch ist (kein Dump-Restore), `infra/
|
||||
postgresql17/init/`-Skripte oder manuelle `CREATE ROLE`/`CREATE DATABASE`-
|
||||
Schritte ergaenzen."
|
||||
|
||||
### P4-5 (LOW) - Gitea nach Postgres ist faktisch unnoetig
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:267-275` Phase 4 Stufe 2 ordnet Gitea hinter
|
||||
Postgres ein. Gitea nutzt SQLite (`gitea.sqlite.dump`), nicht den shared
|
||||
Postgres. Reihenfolge ist nicht falsch, aber irrefuehrend. Nicht kritisch.
|
||||
|
||||
### P4-6 (HIGH) - Komodo-Mongo Passwort-Lockout-Risiko
|
||||
|
||||
`ops/komodo/docker-compose.yml:18-20` zeigt: `komodo-mongo` initialisiert
|
||||
sich bei leerem Datadir mit `MONGO_INITDB_ROOT_PASSWORD_FILE` aus
|
||||
`/mnt/user/appdata/secrets/komodo_mongo_password.txt`.
|
||||
|
||||
Restore-Fall: Datadir aus Borg restauriert, Secret-Datei aus Borg
|
||||
restauriert - beide aus demselben Snapshot. OK.
|
||||
|
||||
Riskanter Fall: Datadir aus Borg, aber Secret-Datei aus einer anderen
|
||||
(neueren oder aelteren) Quelle. Mongo akzeptiert den Login nicht, Komodo
|
||||
laeuft nicht. Lockout. Doku erwaehnt diesen Pin-Punkt nicht.
|
||||
|
||||
Vorschlag: Hinweis in `DISASTER_RECOVERY.md` Phase 4 Stufe 3: "Mongo-
|
||||
Datadir und `komodo_mongo_password.txt` muessen aus demselben Snapshot
|
||||
kommen. Bei Mismatch: leeren Datadir und Re-Init, dann Daten aus
|
||||
`komodo-mongo.archive.gz` per `mongorestore`."
|
||||
|
||||
### P4-7 (MED) - Hardgecodete LAN-IP in `extra_hosts`
|
||||
|
||||
`ops/komodo/docker-compose.yml:50` und `:101` haben:
|
||||
`"git.kaleschke.info:192.168.178.58"`.
|
||||
|
||||
Bare-Metal-Recovery auf anderer Hardware oder veraenderter LAN-IP fuehrt
|
||||
zu stummem Fehler: Komodo-Core kann Gitea nicht ueber den Override
|
||||
erreichen, faellt auf AdGuard-DNS zurueck (wenn der schon laeuft) oder
|
||||
scheitert.
|
||||
|
||||
Vorschlag: kurzer Hinweis in `DISASTER_RECOVERY.md` Phase 4 Stufe 3: "Bei
|
||||
geaenderter Host-LAN-IP `extra_hosts`-Werte in `ops/komodo/docker-compose.
|
||||
yml` vor `compose up` anpassen oder ueber `.env` parametrisieren."
|
||||
|
||||
### P4-8 (HIGH) - Stack-ENV-Wiederherstellung praktisch manuell
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:188-195` sagt: "Wenn `komodo-mongo.archive.gz`
|
||||
frisch ist, koennen die Werte beim Komodo-Restart aus dem Dump
|
||||
zurueckgespielt werden, ohne dass jemand sie sieht."
|
||||
|
||||
`docs/RESTORE_HANDBOOK.md:73-74` und `docs/AUDIT_2026-05-25_TODO.md:20`
|
||||
machen den Daten-Mongo-Restore als "erledigt 2026-06-03" sichtbar - aber
|
||||
NICHT als Teil des DR-Bootstraps. Komodo-Bootstrap im Trockenlauf benutzt
|
||||
Wegwerf-Werte.
|
||||
|
||||
Praktisch heisst das: Im DR-Bootstrap (Phase 4 Stufe 3) startet Komodo
|
||||
**ohne** den Mongo-Daten-Restore. Die `KOMODO_*` kommen aus externer
|
||||
Notiz. Aber die Stack-ENVs fuer `paperless`/`immich`/`mail-archiver`/
|
||||
`speedtest` (PAPERLESS_DBPASS etc.) **muessen vor Stufe 4** wieder in
|
||||
Komodo eingetragen sein. Wenn der Mongo-Daten-Restore nicht direkt nach
|
||||
Komodo-Start passiert, gehen diese Werte manuell in die Komodo-UI.
|
||||
|
||||
Vorschlag: Klarstellung in `DISASTER_RECOVERY.md` Phase 4 zwischen Stufe
|
||||
3 und Stufe 4: "Optionaler Mongo-Daten-Restore aus `komodo-mongo.archive.
|
||||
gz` per `ops/restore-tests/komodo-mongo-restore-test.sh`-Muster - dann
|
||||
sind alle Stack-ENVs zurueck. Alternativ: Stack-ENVs manuell in Komodo-
|
||||
UI eintragen, Quelle Vaultwarden (sobald Stufe 4 Vaultwarden laeuft -
|
||||
Henne-Ei mit Paperless: Paperless-Start dann erst nach Vaultwarden, nicht
|
||||
parallel)."
|
||||
|
||||
## Phase 5 - Verifikation
|
||||
|
||||
### P5-1 (LOW) - Smoke-Tests in DR.md weniger streng als Matrix
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:337-345` Phase 5.3 sagt z. B. "Vaultwarden
|
||||
startet und ist erreichbar". `docs/RESTORE_MATRIX.md:39` sagt: "Login-
|
||||
Seite erreichbar, Tresor-Daten sichtbar". Das zweite ist faktisch der
|
||||
echte Smoke-Test.
|
||||
|
||||
Geschmackssache, kein Bug. Empfehlung: DR.md auf die Matrix-Smokes
|
||||
verweisen statt eigene Kurzversion.
|
||||
|
||||
### P5-2 (MED) - Kein Verifikationspunkt App-zu-DB-Verbindung
|
||||
|
||||
`docs/DISASTER_RECOVERY.md:337-345` prueft App-Start, nicht DB-Auth-
|
||||
Erfolg. Bei falschem `PAPERLESS_DBPASS`-Stack-ENV startet Paperless
|
||||
moeglicherweise mit Error-Log und ist via Traefik nicht antwortend - aber
|
||||
das fehlt als Pruefpunkt.
|
||||
|
||||
Vorschlag: Phase 5.3 ergaenzen: "Pro App: `docker logs <app>` zeigt keine
|
||||
`password authentication failed`/`FATAL: role does not exist`-Eintraege."
|
||||
|
||||
## Uebergreifende Findings
|
||||
|
||||
### X-1 (HIGH) - Nextcloud-Restore-Skript existiert, ist aber ungetestet
|
||||
|
||||
`ops/restore-tests/nextcloud-restore-test.sh` und
|
||||
`ops/restore-tests/nextcloud-compose.test.yml` existieren im Repo.
|
||||
`docs/RESTORE_MATRIX.md:147` Spalte "Letzter Restore-Test" fuer Nextcloud:
|
||||
`-`, naechster Lauf `**hoechste Prio**`. `docs/AUDIT_2026-05-25_TODO.md:18`
|
||||
fuehrt es als P1 "offen".
|
||||
|
||||
Damit ist der echte Tabletop-Gewinn: der Test ist nicht "noch zu bauen",
|
||||
sondern "noch nie ausgefuehrt". Ein `bash /mnt/user/services/homelab-
|
||||
infra/ops/restore-tests/nextcloud-restore-test.sh` schliesst die letzte
|
||||
Tier-2-Luecke.
|
||||
|
||||
## Nicht-Findings
|
||||
|
||||
Was ich gepruft und als sauber verifiziert habe:
|
||||
|
||||
- Referenzierte Skripte existieren alle: `pre-backup-dumps.sh`,
|
||||
`gitea-bundle-mirror.sh`, `run-restore-checks.sh`,
|
||||
`komodo-bootstrap-test.sh`, `posture-check.sh`, alle Restore-Test-
|
||||
Skripte fuer Tier-1 und Tier-2.
|
||||
- Pfadverweise zwischen DR.md, RESTORE_MATRIX.md, SECRETS_MAP.md,
|
||||
SERVICES_RECOVERY.md sind konsistent (Borg-Dumps unter `/mnt/user/
|
||||
backups/borg/dumps/latest`, Secrets unter `/mnt/user/appdata/secrets`).
|
||||
- Drift-Erkennung Authelia (`services/authelia-diff.sh`) ist in
|
||||
`posture-check` integriert (`WORKFLOW.md:292`).
|
||||
- GitHub-Mirror-Pfad und Gitea-Bundle-Mirror als Repo-Bootstrap-Quellen
|
||||
sind dreifach abgesichert (lokaler Clone, GitHub, Bundle).
|
||||
- Tier-1-Postgres-Restore-Drill ist 2026-06-03 erfolgreich gelaufen
|
||||
(`AUDIT_2026-05-25_TODO.md:19`).
|
||||
- `ops/komodo/docker-compose.yml` ist als Recovery-Anker getestet
|
||||
(`SERVICES_RECOVERY.md:142-166`).
|
||||
- Borg-Passphrase und Hetzner-Account-Hygiene sind Operator-bestaetigt
|
||||
(`AUDIT_2026-05-25_TODO.md:46-47`).
|
||||
|
||||
## Vorschlag fuer Reihenfolge der Folge-Arbeit
|
||||
|
||||
1. **CRITICAL P1-1 zuerst** - Operator-Laptop-Voraussetzung als
|
||||
DR-Pflichtposten dokumentieren. Eine Dokuzeile.
|
||||
2. **HIGH P0-2 + P3-3** - klaeren, ob GitHub-Mirror lesend public ist und
|
||||
wo der Hetzner-Maintenance-Key offline liegt. Zwei Dokuzeilen oder
|
||||
eine echte Setup-Entscheidung.
|
||||
3. **HIGH P2-1** - Operator-Bestaetigung "KOMODO_*-Notiz offline
|
||||
gesichert YYYY-MM-DD" in `EXTERNAL_DEPENDENCIES.md` ergaenzen (sobald
|
||||
real angelegt).
|
||||
4. **HIGH P4-1 + P4-2** - Vorlauf "Stufe 0 - Docker-Grundlage" und
|
||||
LE-Staging-Hinweis in DR.md Phase 4 einfuegen. Etwa 10 Zeilen Doku.
|
||||
5. **HIGH X-1** - `nextcloud-restore-test.sh` einmal scharf ausfuehren.
|
||||
Vermutlich ein Vormittag inklusive Report-Review.
|
||||
6. **HIGH P2-2 + P4-8** - Reihenfolgen-Konsistenz Komodo/Vaultwarden in
|
||||
DR.md eindeutig aufloesen.
|
||||
7. Rest in der Reihenfolge der Tabelle.
|
||||
|
||||
Punkte 1-4 sind reine Doku-Arbeit, keine Compose-/Runtime-Aenderung.
|
||||
Punkt 5 ist ein echter Restore-Lauf mit Report. Punkt 6 ist die
|
||||
substanziellste Doku-Aenderung in DR.md.
|
||||
|
||||
## Folge-Iteration 2026-06-03 (Doku-Fixes im selben Aenderungsblock)
|
||||
|
||||
Direkt nach dem Drill und nach Operator-Antworten auf vier offene Fragen wurden folgende Findings im Repo adressiert. Operator-Aufgaben, die ich nicht selbst tun kann, sind als P1 in `docs/AUDIT_2026-05-25_TODO.md` aufgenommen.
|
||||
|
||||
| ID | Massnahme |
|
||||
|---|---|
|
||||
| P0-1 | DR.md Phase 0 ergaenzt um "Operativer Pfad fuer den Repo auf den frisch installierten Unraid-Host" (USB/SMB/rsync); DR.md Abschnitt 3 mit Zeile "Operator-DR-Workstation"; `EXTERNAL_DEPENDENCIES.md` neuer Abschnitt "DR-Workstation Bare-Metal-Kit" |
|
||||
| P0-2 | `EXTERNAL_DEPENDENCIES.md` GitHub-Mirror-Zeile praezisiert (privat, Read-PAT/Deploy-Key Pflicht); DR.md Phase 0 verweist explizit darauf; offene Operator-Aufgabe in Audit-Restliste |
|
||||
| P1-1 | Operator-DR-Workstation als Voraussetzung in DR.md Abschnitt 3 und in `EXTERNAL_DEPENDENCIES.md`; konkrete Pflichtbestandteile (WSL2, Borg, SSH-Key) gelistet |
|
||||
| P1-2 | Bleibt offen als P3-Test in Restore-Backlog (kein Doku-Fix moeglich) |
|
||||
| P2-1 | KOMODO_*-Notiz als kritische Secret-Zeile in `EXTERNAL_DEPENDENCIES.md` mit Status "noch nicht angelegt"; Operator-Aufgabe in Audit-Restliste |
|
||||
| P2-2 | DR.md Phase 4 Stufe 3 ergaenzt um expliziten Hinweis "KOMODO_* aus externer Notiz oder voraus gezogener Vaultwarden" |
|
||||
| P2-3 | DR.md Abschnitt 6.1 um `homelab_smtp_password.txt` erweitert |
|
||||
| P2-4 | DR.md Abschnitt 6.1 um `n8n_encryption_key.txt` erweitert |
|
||||
| P2-5 | DR.md Abschnitt 6.1 um Monitoring-Grafana/InfluxDB-/Filebrowser-Secrets erweitert |
|
||||
| P3-1 | DR.md neuer Abschnitt 7.3 "Borg-Extract ohne `borg-ui`-Container" mit DR-Workstation- und Docker-Variante |
|
||||
| P3-2 | DR.md Abschnitt 7.3 nennt Passphrase-Eingabe explizit als interaktiven Bootstrap-Schritt |
|
||||
| P3-3 | `EXTERNAL_DEPENDENCIES.md` Review-Zeile 2026-06-03: Hetzner-Maintenance-Key auch offline bestaetigt |
|
||||
| P4-1 | DR.md Phase 4 neue Stufe 0 "Docker-Grundlage" mit `docker network create` Befehlen |
|
||||
| P4-2 | DR.md Phase 4 Stufe 1 LE-Staging-Hinweis bei verlorenem `acme.json` |
|
||||
| P4-3 | DR.md Phase 4 Stufe 0 nennt `traefik/dynamic/*` als Pre-Check |
|
||||
| P4-4 | Wird mit fresh-Postgres-Initialisierungsskripten ohne Doku-Aenderung nicht sinnvoll abgedeckt; bleibt als Doku-Hinweis offen, ist im realen Restore-Pfad mit `pg_dumpall --globals-only` abgedeckt |
|
||||
| P4-5 | LOW, nicht angepasst (Reihenfolge nicht falsch, nur irrefuehrend) |
|
||||
| P4-6 | DR.md Phase 4 Stufe 3 "Wichtige Stolperfallen": Mongo-Datadir/Secret-Mismatch und Re-Init-Pfad |
|
||||
| P4-7 | DR.md Phase 4 Stufe 3 "Wichtige Stolperfallen": `extra_hosts`-Anpassung bei IP-Wechsel |
|
||||
| P4-8 | DR.md Phase 4 Stufe 3 "Wichtige Stolperfallen": Stack-ENV-Wiederherstellung per `mongorestore` oder manuell |
|
||||
| P5-1 | LOW, nicht angepasst |
|
||||
| P5-2 | DR.md Phase 5.3 um `docker logs`-Verifikation der App-zu-DB-Verbindung erweitert |
|
||||
| X-1 | **erledigt 2026-06-03**: Nextcloud-Restore-Test scharf gelaufen, drei Iterationen (zwei Skript-Bugs gefixt), Endresultat SUCCESS mit HTTP 200, occ status ok, 126 DB-Tabellen. Damit ist Tier-2 vollstaendig belegt. |
|
||||
|
||||
Nicht angefasst: P1-2 (kein Doku-Fix moeglich), P4-4 (im echten Restore-Pfad ohnehin abgedeckt), P4-5 und P5-1 (LOW). Die offenen Operator-Aufgaben (KOMODO_*-Notiz, Read-PAT, DR-Workstation, Nextcloud-Restore) stehen jetzt in `docs/AUDIT_2026-05-25_TODO.md` als P1.
|
||||
|
||||
## Reproduktion dieses Drills
|
||||
|
||||
```text
|
||||
Methode: kalter Lesetest gegen
|
||||
- docs/DISASTER_RECOVERY.md
|
||||
- docs/RESTORE_MATRIX.md
|
||||
- docs/SECRETS_MAP.md
|
||||
- docs/SERVICES_RECOVERY.md
|
||||
- docs/RESTORE_HANDBOOK.md
|
||||
- docs/EXTERNAL_DEPENDENCIES.md
|
||||
- ops/komodo/docker-compose.yml
|
||||
- traefik/docker-compose.yml
|
||||
Verifizierte Skript-Existenz: ops/borg-ui/scripts/*, ops/restore-tests/*,
|
||||
services/posture-check/*
|
||||
Kein Container gestartet, kein Skript ausgefuehrt, keine produktiven
|
||||
Pfade beruehrt.
|
||||
```
|
||||
@@ -0,0 +1,145 @@
|
||||
# Home Assistant -> InfluxDB 3 -> Grafana
|
||||
|
||||
**Status 2026-06-06: archiviert / nicht aktiv.** Home Assistant existiert seit
|
||||
dem Crash aktuell nicht mehr. Dieses Dokument ist nur noch ein historischer
|
||||
Zielbild-Entwurf fuer einen spaeteren Neuaufbau. Das fruehere TODO
|
||||
`influxdb3_homeassistant_token` wurde aus der aktiven Master-Liste gestrichen;
|
||||
vor Token-, InfluxDB-Writer- oder Ecowitt-Arbeiten muss Home Assistant zuerst
|
||||
neu aufgesetzt und neu inventarisiert werden.
|
||||
|
||||
Ziel: Home Assistant schreibt ausgewaehlte Ecowitt- und Energiesensoren nach InfluxDB 3 Core. Grafana bleibt das Langzeit-Dashboard, Home Assistant bleibt die Automationszentrale.
|
||||
|
||||
## Historischer Live-Stand 2026-05-04
|
||||
|
||||
- Home Assistant ist per SSH unter `192.168.178.50:22222` erreichbar.
|
||||
- `ha core check` ist erfolgreich.
|
||||
- InfluxDB 3 Core ist von Home Assistant aus unter `http://192.168.178.58:8181/` erreichbar; `401 Unauthorized` ohne Token ist der erwartete Reachability-Test.
|
||||
- In `/homeassistant/configuration.yaml` ist noch kein `influxdb:`-Block aktiv.
|
||||
- In `/homeassistant/secrets.yaml` ist noch kein `influxdb3_homeassistant_token` eingetragen.
|
||||
- In der Home-Assistant-Entity-Registry ist noch keine Ecowitt-Integration sichtbar; aktuell existiert nur `weather.forecast_home`.
|
||||
|
||||
## 1. InfluxDB fuer Home Assistant erreichbar machen
|
||||
|
||||
Der Stack haelt InfluxDB bewusst ohne Traefik-Route. Fuer Home Assistant wird nur der HTTP-Port `8181` auf einer internen LAN-Adresse veroeffentlicht.
|
||||
|
||||
Im Zielzustand in Komodo/Stack-Environment fuer `monitoring` setzen:
|
||||
|
||||
```env
|
||||
INFLUXDB_BIND_IP=192.168.178.58
|
||||
```
|
||||
|
||||
`192.168.178.58` ist die LAN-IP des Docker-Hosts, auf dem `monitoring-influxdb3-core` laeuft. Nicht `0.0.0.0` verwenden, wenn es nicht notwendig ist.
|
||||
|
||||
Danach den Stack neu deployen und von Home Assistant aus pruefen:
|
||||
|
||||
```bash
|
||||
curl -i --max-time 5 http://192.168.178.58:8181/
|
||||
```
|
||||
|
||||
Erwartetes Ergebnis ohne Token: `401 Unauthorized`. Das bestaetigt, dass der LAN-Port erreichbar ist und Authentifizierung aktiv bleibt.
|
||||
|
||||
## 2. Token fuer Home Assistant
|
||||
|
||||
InfluxDB 3 Core unterstuetzt aktuell Admin- und Named-Admin-Tokens. Einen eigenen Named-Admin-Token fuer Home Assistant verwenden, damit der Token getrennt vom initialen Operator-/Admin-Token rotiert werden kann.
|
||||
|
||||
Den Token in Home Assistant eintragen:
|
||||
|
||||
```yaml
|
||||
# /homeassistant/secrets.yaml
|
||||
influxdb3_homeassistant_token: "apiv3_REPLACE_WITH_HOME_ASSISTANT_TOKEN"
|
||||
```
|
||||
|
||||
Token niemals ins Git-Repository schreiben.
|
||||
|
||||
## 3. Ecowitt in Home Assistant anbinden
|
||||
|
||||
Die offizielle Ecowitt-Integration ist eine lokale Push-Integration. Home Assistant erzeugt einen HTTP-Webhook; die Wetterstation sendet danach ihre Daten aktiv an Home Assistant.
|
||||
|
||||
1. In Home Assistant `Einstellungen -> Geraete & Dienste -> Integration hinzufuegen -> Ecowitt` oeffnen.
|
||||
2. Die angezeigten Werte fuer Server/IP, Pfad und Port notieren.
|
||||
3. Im Ecowitt-Gateway entweder per App oder Web-UI unter `Weather Services -> Customized` eintragen:
|
||||
- Customized: `Enable`
|
||||
- Protocol Type Same As: `Ecowitt`
|
||||
- Server/IP, Path und Port exakt wie in Home Assistant angezeigt
|
||||
4. Wichtig: Ecowitt kann kein HTTPS. Den lokalen HTTP-Endpunkt von Home Assistant verwenden, nicht eine reine HTTPS-/Traefik-URL.
|
||||
5. Nach dem ersten Push pruefen, ob neue `sensor.*`- und ggf. `binary_sensor.*`-Entities in Home Assistant auftauchen.
|
||||
|
||||
## 4. Home Assistant fuer InfluxDB konfigurieren
|
||||
|
||||
Minimaler Startblock fuer `/homeassistant/configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
influxdb:
|
||||
api_version: 2
|
||||
ssl: false
|
||||
host: 192.168.178.58
|
||||
port: 8181
|
||||
token: !secret influxdb3_homeassistant_token
|
||||
organization: homelab
|
||||
bucket: homelab
|
||||
max_retries: 3
|
||||
default_measurement: state
|
||||
include:
|
||||
entity_globs:
|
||||
- sensor.*ecowitt*
|
||||
- sensor.*gw*
|
||||
- sensor.netzbezug_live
|
||||
- sensor.ins_netz_live
|
||||
- sensor.ins_haus_live
|
||||
- sensor.pv_ueberschuss_live
|
||||
- sensor.batterie_soc_live
|
||||
- sensor.wallbox_leistung_live
|
||||
- sensor.pv_produktion_heute
|
||||
- sensor.wallbox_energie_heute
|
||||
```
|
||||
|
||||
Die `sensor.*ecowitt*`- und `sensor.*gw*`-Regeln sind nur Startpunkte. Nach dem ersten Ecowitt-Push die echten Entity-IDs aus Home Assistant auslesen und die Liste enger machen.
|
||||
|
||||
Nach dem Edit:
|
||||
|
||||
```bash
|
||||
ha core check
|
||||
ha core restart
|
||||
```
|
||||
|
||||
## 5. Grafana Smoke-Test
|
||||
|
||||
In `https://monitoring.kaleschke.info` mit der bestehenden Datenquelle `InfluxDB 3 Core` eine SQL-Abfrage testen:
|
||||
|
||||
```sql
|
||||
SHOW TABLES
|
||||
```
|
||||
|
||||
Danach eine konkrete Tabelle pruefen. Home Assistant schreibt Measurements je nach Konfiguration und Entity-Typ; typische Tabellen sind `state`, `degC`, `%`, `W`, `kWh` oder aehnliche Measurement-Namen.
|
||||
|
||||
Beispiel fuer die ersten Werte:
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM state
|
||||
ORDER BY time DESC
|
||||
LIMIT 20
|
||||
```
|
||||
|
||||
## 6. Dashboard-Kandidaten
|
||||
|
||||
Sinnvolle Panels fuer das erste Wetter-Dashboard:
|
||||
|
||||
- Aussentemperatur und Luftfeuchte
|
||||
- Luftdruck
|
||||
- Windgeschwindigkeit und Boeen
|
||||
- Regenrate und Regen heute
|
||||
- UV und Solarstrahlung
|
||||
- Batterielevel der Ecowitt-Sensoren
|
||||
- PV-Ueberschuss vs. Wetter
|
||||
- Wallbox-Leistung vs. PV-Ueberschuss
|
||||
|
||||
## 7. Erste Automationen
|
||||
|
||||
Home Assistant bleibt fuer Reaktionen zustaendig:
|
||||
|
||||
- Regen startet -> Dachfenster/Fenster pruefen
|
||||
- Windboee ueber Grenzwert -> Markise/Rolllaeden schuetzen
|
||||
- Frostwarnung -> Garten/Wasser/Auto-Hinweis
|
||||
- Genug Regen heute -> Bewaesserung ueberspringen
|
||||
- Ecowitt-Batterie niedrig -> ntfy/HA-Benachrichtigung
|
||||
@@ -0,0 +1,86 @@
|
||||
# baerchen App-/Lizenz-Readiness - 2026-06-06
|
||||
|
||||
Automatisch erzeugter lokaler Check. Keine Lizenzkeys, Passwoerter, Tokens oder Recovery-Code-Werte wurden ausgelesen oder ins Repo geschrieben.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
- Technische Inventarisierung: erledigt
|
||||
- Manuelle Konto-/Recovery-Bestaetigung: erledigt laut Operator-Bestaetigung 2026-06-06 ("alle Dienste laufen")
|
||||
|
||||
## Installierte Programme
|
||||
|
||||
### Passwortmanager / Browser
|
||||
|
||||
| DisplayName | DisplayVersion | Publisher | InstallDate |
|
||||
| --- | --- | --- | --- |
|
||||
| Brave | 149.1.91.168 | Die Brave-Autoren | 20260604 |
|
||||
| Google Chrome | 149.0.7827.54 | Google LLC | 20260604 |
|
||||
| Microsoft Edge | 148.0.3967.96 | Microsoft Corporation | 20260604 |
|
||||
| Microsoft Edge WebView2-Laufzeit | 148.0.3967.96 | Microsoft Corporation | 20260604 |
|
||||
|
||||
### Banking4 / Subsembly
|
||||
|
||||
| DisplayName | DisplayVersion | Publisher | InstallDate |
|
||||
| --- | --- | --- | --- |
|
||||
| Banking4 Home | | Subsembly GmbH | |
|
||||
|
||||
### WISO / Buhl
|
||||
|
||||
| DisplayName | DisplayVersion | Publisher | InstallDate |
|
||||
| --- | --- | --- | --- |
|
||||
| WISO Steuer 2026 | 33.07.3410 | Buhl Data Service GmbH | 20260604 |
|
||||
|
||||
### Microsoft 365 / Office / OneDrive
|
||||
|
||||
| DisplayName | DisplayVersion | Publisher | InstallDate |
|
||||
| --- | --- | --- | --- |
|
||||
| Microsoft 365 - de-de | 16.0.20026.20140 | Microsoft Corporation | |
|
||||
| Microsoft 365 - en-us | 16.0.20026.20140 | Microsoft Corporation | |
|
||||
| Microsoft OneDrive | 23.038.0219.0001 | Microsoft Corporation | |
|
||||
| Office 16 Click-to-Run Extensibility Component | 16.0.20026.20076 | Microsoft Corporation | 20260604 |
|
||||
| Office 16 Click-to-Run Localization Component | 16.0.20026.20140 | Microsoft Corporation | 20260604 |
|
||||
|
||||
## Relevante Datenpfade
|
||||
|
||||
| Path | Exists | Type | LastWriteTime | Bytes |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| C:\Users\michi\AppData\Local\Subsembly | True | Directory | 2026-06-04T12:23:43 | 43360359 |
|
||||
| C:\Users\michi\AppData\Local\Buhl | True | Directory | 2026-06-04T12:55:57 | 680833 |
|
||||
| C:\Users\michi\AppData\Local\Buhl Data Service GmbH | False | | | |
|
||||
| C:\ProgramData\Buhl Data Service GmbH | True | Directory | 2026-06-04T12:57:08 | 6037194 |
|
||||
| C:\Users\michi\Documents\steuer | True | Directory | 2026-01-26T11:21:44 | 13069132 |
|
||||
| C:\Users\michi\Desktop\Banking | False | | | |
|
||||
| C:\Users\michi\OneDrive | True | Directory | 2026-06-04T12:39:24 | 39370265 |
|
||||
| D:\30_Finanzen | True | Directory | 2026-06-04T20:14:26 | 128994854 |
|
||||
| D:\30_Finanzen\Recovery-Codes | False | | | |
|
||||
| D:\30_Finanzen\BitLocker-RecoveryKey-baerchen-2026-06-06.txt | False | | | |
|
||||
|
||||
## OneDrive / Microsoft 365 Indikatoren
|
||||
|
||||
### OneDrive Prozess
|
||||
|
||||
_Keine Treffer._
|
||||
|
||||
### OneDrive Accounts Registry
|
||||
|
||||
| PSChildName |
|
||||
| --- |
|
||||
| Business1 |
|
||||
| Personal |
|
||||
|
||||
### Office Aktivierungsindikatoren
|
||||
|
||||
_Keine Office-OSPP-Aktivierungsdaten gefunden oder Office nicht klassisch installiert._
|
||||
|
||||
## Manuell noch zu bestaetigen
|
||||
|
||||
- [x] Passwortmanager laesst sich oeffnen und enthaelt Homelab-/Banking-/Provider-Eintraege.
|
||||
- [x] 2FA-Recovery-Codes fuer Microsoft, Hetzner, Cloudflare, Tailscale, Gitea/GitHub und Banken sind offline oder in Vaultwarden auffindbar.
|
||||
- [x] Banking4 oeffnet den aktuellen Datentresor; ein frischer Backup-/Exportpfad ist bekannt.
|
||||
- [x] WISO Steuer 2026 oeffnet, Buhl-Konto/Lizenz ist aktiv, Steuerdateien unter `C:\Users\michi\Documents\steuer` bzw. neuem Zielpfad sind sichtbar.
|
||||
- [x] Microsoft-Konto zeigt aktives M365/Office-Installationsrecht.
|
||||
- [x] OneDrive-Sync ist angemeldet und synchronisiert die erwarteten Ordner.
|
||||
|
||||
## Bewertung
|
||||
|
||||
Dieses Dokument belegt die technische Inventarisierung und die Operator-Bestaetigung vom 2026-06-06. Secret-Werte, Lizenzkeys und Recovery-Code-Werte wurden nicht dokumentiert.
|
||||
@@ -0,0 +1,132 @@
|
||||
# Boot-Cleanup-Plan 2026-06-04
|
||||
|
||||
## Ziel
|
||||
|
||||
`F:` ist das alte Windows und soll spaeter verschwinden. Vor Loeschen/Formatieren/Resize muss das neue Windows beweisen, dass es ohne `F:` bootet und keine BCD-/Resume-Abhaengigkeit mehr auf `F:` zeigt.
|
||||
|
||||
Noch keine Partition wird geloescht, formatiert oder erweitert.
|
||||
|
||||
## Aktueller Befund
|
||||
|
||||
- Neues Windows: `C:\WINDOWS`
|
||||
- Alter Loader: `Windows 11 Alt`
|
||||
- Alter Loader zeigt auf `partition=F:`
|
||||
- Alter Resume-Eintrag zeigt auf `partition=F:` und `F:\hiberfil.sys`
|
||||
- Boot Manager referenziert aktuell noch den alten Resume-Eintrag.
|
||||
- Aktives Pagefile ist nur `C:\pagefile.sys`.
|
||||
- `D:\pagefile.sys` und `E:\pagefile.sys` sind inaktive Altlasten, lassen sich aber ohne Adminrechte nicht entfernen.
|
||||
|
||||
## Vorbereitete Skripte
|
||||
|
||||
Im Arbeitsordner `C:\Users\michi\Documents\Neues Windows`:
|
||||
|
||||
- `boot-cleanup-freigabe-f-vorbereitung.ps1`
|
||||
- `start-boot-cleanup-admin.cmd`
|
||||
|
||||
Der Syntaxcheck des PowerShell-Skripts wurde ausgefuehrt. Es laedt korrekt und stoppt ohne Adminrechte erwartbar mit:
|
||||
|
||||
```text
|
||||
Dieses Skript muss als Administrator laufen.
|
||||
```
|
||||
|
||||
## Geplanter Admin-Block
|
||||
|
||||
Das Skript fuehrt mit Adminrechten aus:
|
||||
|
||||
1. Backupordner unter `C:\Temp\boot_cleanup_<timestamp>` anlegen.
|
||||
2. BCD, WinRE, Volumes, Partitionen und Pagefiles vor der Aenderung protokollieren.
|
||||
3. BCD exportieren nach `BCD-before-cleanup.bak`.
|
||||
4. `{bootmgr}` `resumeobject` auf den aktuellen C:-Resume-Eintrag setzen.
|
||||
5. Alten Loader `Windows 11 Alt` aus der Boot-Anzeige entfernen.
|
||||
6. Alten Loader loeschen.
|
||||
7. Alten F:-Resume-Eintrag loeschen.
|
||||
8. Inaktive Alt-Pagefiles `D:\pagefile.sys` und `E:\pagefile.sys` entfernen.
|
||||
9. BCD, WinRE und Pagefiles danach erneut protokollieren.
|
||||
|
||||
## Nicht enthalten
|
||||
|
||||
- Kein Loeschen von `F:`.
|
||||
- Kein Formatieren von `E:`.
|
||||
- Kein Resize von Partitionen.
|
||||
- Kein Entfernen von Recovery-Partitionen.
|
||||
- Kein Veraendern von `G:` / Homelab / EFI-Systempartition.
|
||||
|
||||
## Danach notwendig
|
||||
|
||||
1. Neustart.
|
||||
2. Pruefen, ob Windows sauber bootet.
|
||||
3. `bcdedit /enum all` pruefen: keine `partition=F:` Referenz mehr.
|
||||
4. Pagefiles pruefen: nur `C:\pagefile.sys` aktiv, `D:\pagefile.sys` und `E:\pagefile.sys` weg.
|
||||
5. Erst danach `F:` als technisch freigegeben markieren.
|
||||
|
||||
## Ausgefuehrt 2026-06-04 17:25
|
||||
|
||||
Der Admin-Block wurde ausgefuehrt. Log-/Backup-Ordner:
|
||||
|
||||
- `C:\Temp\boot_cleanup_20260604_172547`
|
||||
- BCD-Backup: `C:\Temp\boot_cleanup_20260604_172547\BCD-before-cleanup.bak`
|
||||
- Log: `C:\Temp\boot_cleanup_20260604_172547\boot_cleanup_log.txt`
|
||||
|
||||
Ergebnis laut Admin-Log:
|
||||
|
||||
- `{bootmgr}` `resumeobject` wurde auf den aktuellen C:-Resume-Eintrag `{f6daf1c6-6f16-11f0-992f-bc6ee2f9d6ec}` gesetzt.
|
||||
- `Windows 11 Alt` wurde aus `displayorder` entfernt.
|
||||
- Alter Loader `{f6daf1bd-6f16-11f0-992f-bc6ee2f9d6ec}` wurde geloescht.
|
||||
- Alter F:-Resume-Eintrag `{f6daf1bc-6f16-11f0-992f-bc6ee2f9d6ec}` war nach dem Loader-Cleanup bereits nicht mehr auffindbar.
|
||||
- `D:\pagefile.sys` wurde entfernt.
|
||||
- `E:\pagefile.sys` wurde entfernt.
|
||||
|
||||
After-BCD aus Admin-Log:
|
||||
|
||||
- `displayorder` enthaelt nur noch `{current}`.
|
||||
- `Windows 11 Neu` zeigt auf `device partition=C:` und `osdevice partition=C:`.
|
||||
- Resume zeigt auf `partition=C:`.
|
||||
- Im After-BCD-Log sind keine `partition=F:`-Eintraege mehr sichtbar.
|
||||
|
||||
After-Pagefiles:
|
||||
|
||||
- Aktiv: `C:\pagefile.sys`
|
||||
- Vorhanden: `C:\hiberfil.sys`, `C:\pagefile.sys`, `C:\swapfile.sys`
|
||||
- Alte Dateien auf `D:` und `E:` sind weg.
|
||||
- Auf `F:` liegen weiterhin alte `hiberfil.sys`/`swapfile.sys` des alten Windows; diese bleiben bis zur finalen F:-Bereinigung unangetastet.
|
||||
|
||||
Unabhaengige Nachpruefung aus normaler Codex-Shell:
|
||||
|
||||
- `D:` frei: ca. 126.3 GB
|
||||
- `E:` frei: ca. 629.5 GB
|
||||
- `Get-CimInstance Win32_PageFileUsage` meldet nur `C:\pagefile.sys`
|
||||
|
||||
Verbleibend nach Neustarttest:
|
||||
|
||||
- `F:` ist nach erfolgreichem Neustarttest technisch von der Boot-Konfiguration entkoppelt.
|
||||
- WinRE war nach dem Cleanup `Disabled`. **Erledigt 2026-06-05:** WinRE wurde im Admin-Nachlauf (siehe `laufwerks-neustruktur-2026-06-04.md` Abschnitt "Admin-Nachlauf 2026-06-05") mit `reagentc /setreimage` und `reagentc /enable` repariert und aktiviert. `Windows RE-Status: Enabled`, Version `10.0.26100.8455`.
|
||||
|
||||
## Neustarttest 2026-06-04 17:27
|
||||
|
||||
Nach dem Cleanup wurde Windows erfolgreich neu gestartet.
|
||||
|
||||
Post-Reboot-Status:
|
||||
|
||||
- `LastBootUpTime`: 2026-06-04 17:27:56
|
||||
- Neues Windows laeuft weiter von `C:\WINDOWS`.
|
||||
- `D:\pagefile.sys` und `E:\pagefile.sys` sind weiterhin weg.
|
||||
- Aktives Pagefile: `C:\pagefile.sys`
|
||||
|
||||
Post-Reboot-Bootreport:
|
||||
|
||||
- `C:\Temp\bcd_post_reboot_latest.txt`
|
||||
- `C:\Temp\winre_post_reboot_latest.txt`
|
||||
|
||||
Ergebnis:
|
||||
|
||||
- Keine sichtbare `partition=F:`-Referenz im BCD-Post-Reboot-Report.
|
||||
- `displayorder` enthaelt nur `{current}`.
|
||||
- `Windows 11 Neu` zeigt auf `device partition=C:` und `osdevice partition=C:`.
|
||||
- Resume zeigt auf `partition=C:`.
|
||||
- Historischer Post-Reboot-Stand war: WinRE blieb `Disabled`. Nachlauf
|
||||
2026-06-05: WinRE ist `Enabled`; siehe Erledigt-Hinweis oben.
|
||||
|
||||
Bewertung:
|
||||
|
||||
- `F:` ist aus Boot-/Resume-Sicht technisch freigegeben.
|
||||
- Partitionen wurden weiterhin nicht geloescht, formatiert oder erweitert.
|
||||
@@ -0,0 +1,137 @@
|
||||
# DR-Workstation Readiness - 2026-06-06
|
||||
|
||||
Automatisch erzeugter lokaler Readiness-Check fuer den Operator-PC. Es wurden keine Secret-Werte, Passphrases oder Private-Key-Inhalte ausgegeben.
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| Check | Ergebnis |
|
||||
|---|---|
|
||||
| WSL2 Ubuntu | vorhanden (`Ubuntu 24.04`, WSL Version 2) |
|
||||
| SSH/Git in WSL | vorhanden |
|
||||
| GitHub-Read-Smoke mit DR-Key | ok |
|
||||
| Borg Client | installiert |
|
||||
| Hetzner Storage Box mit DR-Key | ok |
|
||||
| `~/dr-smoke.sh` | vorhanden |
|
||||
| Finaler Borg-Smoke | ok, Operator-Bestaetigung 2026-06-06 10:05:30 |
|
||||
| WSL sudo ohne Passwortprompt | nein, Operator muss Passwort eingeben |
|
||||
|
||||
## Bewertung
|
||||
|
||||
- Der lokale WSL2-/Ubuntu-Unterbau ist vorhanden.
|
||||
- Die DR-Key-Arbeitskopien liegen in WSL unter `~/.ssh/dr-readonly` und `~/.ssh/dr-hetzner`.
|
||||
- GitHub-Read-Smoke und Hetzner-SSH-Smoke sind erfolgreich.
|
||||
- `borgbackup` ist installiert.
|
||||
- Der vollstaendige Bare-Metal-DR-Smoke ist erfolgreich abgeschlossen.
|
||||
|
||||
## Finaler Borg-Smoke
|
||||
|
||||
Operator-Bestaetigung vom 2026-06-06:
|
||||
|
||||
- Befehl: `bash ~/dr-smoke.sh`
|
||||
- GitHub Deploy-Key: HEAD `3a263a4...`
|
||||
- Hetzner SSH-Login: Repos `backup`, `backup2`, `hetzner_borg_appdata`, `hetzner_borg_appdata_critical` sichtbar
|
||||
- Borg-Repo: `ssh://u565255@u565255.your-storagebox.de/./hetzner_borg_appdata_critical`
|
||||
- Repository ID: `5dd9b949...`
|
||||
- Encryption: `Yes (repokey)`
|
||||
- Borg-Statistik: `Original size 1.16 TB`, `Compressed size 1.13 TB`, `Deduplicated size 35.92 GB`
|
||||
- Ergebnis: `DR-Smoke OK (2026-06-06 10:05:30)`
|
||||
|
||||
Die Borg-Passphrase wurde nur interaktiv eingegeben und nicht dauerhaft auf `baerchen` gespeichert.
|
||||
|
||||
## Rohchecks
|
||||
|
||||
### wsl_status
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
Standarddistribution: Ubuntu
|
||||
|
||||
Standardversion: 2
|
||||
|
||||
|
||||
```
|
||||
|
||||
### wsl_list
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
NAME STATE VERSION
|
||||
|
||||
* Ubuntu Stopped 2
|
||||
|
||||
docker-desktop Stopped 2
|
||||
|
||||
|
||||
```
|
||||
|
||||
### ubuntu_os
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
Distributor ID: Ubuntu
|
||||
Description: Ubuntu 24.04.4 LTS
|
||||
Release: 24.04
|
||||
Codename: noble
|
||||
6.6.114.1-microsoft-standard-WSL2
|
||||
```
|
||||
|
||||
### tools
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
/usr/bin/borg
|
||||
borg 1.2.8
|
||||
/usr/bin/ssh
|
||||
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024
|
||||
/usr/bin/git
|
||||
git version 2.43.0
|
||||
```
|
||||
|
||||
### sudo
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
sudo-password-needed
|
||||
```
|
||||
|
||||
### wsl_ssh_files
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
total 40
|
||||
drwx------ 2 michi michi 4096 Jun 6 09:14 .
|
||||
drwxr-x--- 5 michi michi 4096 Jun 6 08:37 ..
|
||||
-rw------- 1 michi michi 411 Jun 6 09:14 dr-hetzner
|
||||
-rw------- 1 michi michi 419 Jun 6 09:14 dr-readonly
|
||||
-rw------- 1 michi michi 411 Apr 4 19:29 id_ed25519
|
||||
-rw-r--r-- 1 michi michi 97 Apr 4 19:29 id_ed25519.pub
|
||||
-rw------- 1 michi michi 6358 Jun 6 09:14 known_hosts
|
||||
-rw------- 1 michi michi 3013 Apr 20 20:13 known_hosts.old
|
||||
-rw------- 1 michi michi 3858 Apr 24 08:27 known_hosts.pre-port222-20260604-122031.bak
|
||||
-rwxr-xr-x 1 michi michi 1311 Jun 6 08:37 /home/michi/dr-smoke.sh
|
||||
```
|
||||
|
||||
### github_dr_key_smoke
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
68d3ace598ee4d1cdad3ed94b63ae5046ac187fb HEAD
|
||||
```
|
||||
|
||||
### hetzner_dr_key_smoke
|
||||
|
||||
- ExitCode: `0`
|
||||
|
||||
```text
|
||||
backup
|
||||
backup2
|
||||
hetzner_borg_appdata
|
||||
hetzner_borg_appdata_critical
|
||||
```
|
||||
@@ -0,0 +1,148 @@
|
||||
# PostDelta 2026-06-04
|
||||
|
||||
Diese Datei dokumentiert das Delta, das nach dem urspruenglichen Windows-Neuaufsetzen-Plan und nach `_Delta_2026-05-19` entstanden ist.
|
||||
|
||||
Sie ist die Git-Repo-Kopie von:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\HANDOFF_2026-06-04.md
|
||||
```
|
||||
|
||||
## Kontext
|
||||
|
||||
- Der Benutzer war am 2026-06-04 noch im alten Windows gebootet.
|
||||
- Aus Sicht des alten Windows war:
|
||||
- altes Windows = `C:\WINDOWS`
|
||||
- neues Windows vermutlich = `D:\Windows`
|
||||
- Nach Boot ins neue Windows koennen sich Laufwerksbuchstaben aendern.
|
||||
- Vor jedem Restore oder Cleanup zuerst `Get-Volume`, `Get-Disk`, `Get-Partition`, `$env:SystemDrive` und `$env:windir` pruefen.
|
||||
|
||||
## Relevante Backup-Schichten
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup
|
||||
H:\Windows-Neuaufsetzen-Backup\_Delta_2026-05-19
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146
|
||||
```
|
||||
|
||||
Das PostDelta ist fuer aktuelle Daten zwingend mitzuberuecksichtigen.
|
||||
|
||||
## PostDelta-Inhalte
|
||||
|
||||
PostDelta-Ziel:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146
|
||||
```
|
||||
|
||||
Wichtige Unterordner:
|
||||
|
||||
- `00_Kritisch_Direkt`
|
||||
- `01_Desktop`
|
||||
- `02_Dokumente`
|
||||
- `03_Bilder`
|
||||
- `05_Downloads`
|
||||
- `09_Programme_Settings_Lizenzen`
|
||||
- `16_Overwatch2_Config`
|
||||
- `17_Maus_Settings`
|
||||
- `18_D_Users_michi_AdminCheck`
|
||||
|
||||
## Banking4
|
||||
|
||||
Aktuellster bekannter Tresor:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\00_Kritisch_Direkt\Mein Datentresor.sub
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\00_Kritisch_Direkt\.Mein Datentresor.sub.att
|
||||
```
|
||||
|
||||
Hash-verifiziert:
|
||||
|
||||
```text
|
||||
Mein Datentresor.sub
|
||||
SHA256 F22224B7A765046D4B76D71C1E296DA59D8D8A849A41A12E5C10254DF0EC71AD
|
||||
|
||||
.Mein Datentresor.sub.att
|
||||
SHA256 3FC5D0BD8B673975F9C42F4ED53278CFF434ED21E266B8B60589288A2FF9F4D8
|
||||
```
|
||||
|
||||
Der aeltere Banking4-Tresor aus Hauptbackup/Delta ist nicht mehr der neueste Stand.
|
||||
|
||||
Lizenz:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\keys_exporte\banking4_license_private.txt
|
||||
```
|
||||
|
||||
## WISO Steuer
|
||||
|
||||
Hauptbackup:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\07_Banking_Finanzen\WISO_Steuer_Dokumente
|
||||
```
|
||||
|
||||
PostDelta:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\02_Dokumente\steuer
|
||||
```
|
||||
|
||||
PostDelta enthaelt 8 Steuerdateien inklusive einer Pia-Marie-Datei.
|
||||
|
||||
## Overwatch 2
|
||||
|
||||
PostDelta:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\16_Overwatch2_Config
|
||||
```
|
||||
|
||||
Wichtig:
|
||||
|
||||
```text
|
||||
16_Overwatch2_Config\Documents_Overwatch\Settings\Settings_v0.ini
|
||||
```
|
||||
|
||||
Beim Backup war nur `Overwatch.log` gesperrt; das ist eine Logdatei.
|
||||
|
||||
## Maus / iCUE
|
||||
|
||||
PostDelta:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\17_Maus_Settings
|
||||
```
|
||||
|
||||
Enthaelt Corsair/iCUE-bezogene AppData/ProgramData, Registry-Exports und Windows-Mauswerte.
|
||||
|
||||
## D:\Users\michi Admincheck
|
||||
|
||||
Bericht:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\_PostDelta_2026-06-04_100146\18_D_Users_michi_AdminCheck
|
||||
```
|
||||
|
||||
Ergebnis:
|
||||
|
||||
- 6565 Dateien
|
||||
- 2950 Ordner
|
||||
- ca. 1.58 GB
|
||||
- 0 rekursive Zugriffsfehler
|
||||
- Standardordner praktisch leer
|
||||
- fast alles AppData/Windows-Package-Kram
|
||||
|
||||
Interpretation: aus alter Windows-Sicht keine wichtigen persoenlichen Daten in `D:\Users\michi`.
|
||||
|
||||
## Reihenfolge im neuen Windows
|
||||
|
||||
1. Laufwerksbuchstaben und gebootetes Windows pruefen.
|
||||
2. Alle drei Backup-Schichten pruefen.
|
||||
3. Banking4 mit PostDelta-Tresor wiederherstellen.
|
||||
4. WISO mit Hauptbackup plus PostDelta pruefen.
|
||||
5. Dokumente/Desktop/Bilder/Downloads migrieren.
|
||||
6. Overwatch 2 und iCUE/Corsair gezielt wiederherstellen.
|
||||
7. SSH/Git/Homelab wiederherstellen.
|
||||
8. Erst danach Windows-Idealkonfiguration, Bootcleanup und Formatierungen.
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
# Post-Install: Als Erstes Codex wieder startklar machen
|
||||
|
||||
Ziel: Nach der frischen Windows-Installation zuerst wieder mit Codex/ChatGPT weiterarbeiten koennen, bevor der restliche Wiederaufbau startet.
|
||||
|
||||
## 1. Internet herstellen
|
||||
|
||||
1. Windows starten.
|
||||
2. LAN/WLAN verbinden.
|
||||
3. Falls kein Internet vorhanden ist:
|
||||
- externe Backup-HDD anschliessen
|
||||
- Treiber aus `H:\Windows-Neuaufsetzen-Backup\13_Treiber_Windows` installieren
|
||||
- besonders LAN/WLAN/Chipsatz pruefen
|
||||
|
||||
## 2. Browser starten
|
||||
|
||||
1. Microsoft Edge oeffnen.
|
||||
2. Bei Microsoft/ChatGPT/Codex anmelden, je nachdem welche Variante genutzt wird.
|
||||
3. Diese Datei auf H: oeffnen:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\POSTINSTALL_ERSTES_ZIEL_CODEX.md
|
||||
```
|
||||
|
||||
## 3. Basiswerkzeuge installieren
|
||||
|
||||
PowerShell als normaler Benutzer oeffnen.
|
||||
|
||||
```powershell
|
||||
winget install --exact --id Git.Git --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Microsoft.VisualStudioCode --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id OpenJS.NodeJS.LTS --source winget --accept-package-agreements --accept-source-agreements
|
||||
```
|
||||
|
||||
Optional danach UniGetUI:
|
||||
|
||||
```powershell
|
||||
winget install --exact --id Devolutions.UniGetUI --source winget --accept-package-agreements --accept-source-agreements
|
||||
```
|
||||
|
||||
## 4. SSH und Git-Konfiguration zurueckholen
|
||||
|
||||
Backup-HDD muss angeschlossen sein.
|
||||
|
||||
```powershell
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.ssh" | Out-Null
|
||||
Copy-Item -Path "H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\ssh\*" -Destination "$env:USERPROFILE\.ssh" -Force
|
||||
Copy-Item -Path "H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\git\.gitconfig" -Destination "$env:USERPROFILE\.gitconfig" -Force
|
||||
```
|
||||
|
||||
SSH-Key-Rechte pruefen:
|
||||
|
||||
```powershell
|
||||
ssh -T git@github.com
|
||||
```
|
||||
|
||||
Falls Gitea genutzt wird, stattdessen oder zusaetzlich den Gitea-Host testen.
|
||||
|
||||
## 5. Homelab-Repo wieder verfuegbar machen
|
||||
|
||||
Wenn `G:\Gitea_Clone\homelab-infra` noch existiert:
|
||||
|
||||
```powershell
|
||||
cd /d G:\Gitea_Clone\homelab-infra
|
||||
git status
|
||||
```
|
||||
|
||||
Falls das Repo neu geklont werden muss:
|
||||
|
||||
```powershell
|
||||
New-Item -ItemType Directory -Force -Path G:\Gitea_Clone | Out-Null
|
||||
cd /d G:\Gitea_Clone
|
||||
git clone <DEIN_GITEA_ODER_GITHUB_REPO_URL> homelab-infra
|
||||
cd homelab-infra
|
||||
git status
|
||||
```
|
||||
|
||||
## 6. Codex-Kontext wieder aufnehmen
|
||||
|
||||
Wichtige Dateien:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\installierte_programme_lesbar.md
|
||||
H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\kritische_programme_lizenz_check.md
|
||||
H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\keys_exporte\banking4_license_private.txt
|
||||
G:\Gitea_Clone\homelab-infra\ops\windows-reinstall\docs\windows-neuaufsetzen-masterplan.md
|
||||
```
|
||||
|
||||
Dann Codex/ChatGPT sagen:
|
||||
|
||||
```text
|
||||
Windows ist frisch installiert. Bitte hilf mir mit dem Post-Install-Wiederaufbau anhand von H:\Windows-Neuaufsetzen-Backup und dem Masterplan.
|
||||
```
|
||||
|
||||
## 7. Danach erst Programme wiederherstellen
|
||||
|
||||
Reihenfolge:
|
||||
|
||||
1. Banking4 installieren und Lizenz aus `banking4_license_private.txt` nutzen.
|
||||
2. Banking4-Datentresor aus `H:\Windows-Neuaufsetzen-Backup\07_Banking_Finanzen\Banking4_Datentresor_explizit` oeffnen.
|
||||
3. Microsoft 365 ueber Microsoft-Konto installieren.
|
||||
4. WISO Steuer installieren und Steuerdateien aus `WISO_Steuer_Dokumente` pruefen.
|
||||
5. Restliche Programme mit UniGetUI/WinGet/Installern wieder aufbauen.
|
||||
@@ -0,0 +1,255 @@
|
||||
# Programme-Entscheidungs-Checkliste fuer den Windows-Wiederaufbau
|
||||
|
||||
Stand: 2026-06-04
|
||||
Quelle: `H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\installierte_programme.csv` (161 Eintraege, Registry-Export vom 2026-05-07)
|
||||
Winget-Abdeckung: `H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\winget-export.json`
|
||||
Uebergeordneter Kontext: [HANDOFF_2026-06-04.md](../../../../H:/Windows-Neuaufsetzen-Backup/HANDOFF_2026-06-04.md) sowie [postdelta-2026-06-04.md](postdelta-2026-06-04.md)
|
||||
|
||||
## Wofuer ist diese Datei
|
||||
|
||||
Vorgefilterte Sortierung aller 161 installierten Programme in drei Toepfe, damit der Wiederaufbau im neuen Windows nicht 161 Einzelentscheidungen braucht.
|
||||
|
||||
**So nutzt sie der neue Codex/Claude:**
|
||||
|
||||
1. **Auto-Ja** (18 Eintraege): alle winget-IDs werden in einem Skript-Lauf installiert, ein User-OK reicht.
|
||||
2. **Einzelfrage** (38 Eintraege): jeden Eintrag mit Micha durchgehen, pro Eintrag `j` / `n` / `spaeter`. Hier sitzen die Lizenzen, Logins und Config-Restores.
|
||||
3. **Auto-Skip** (105 Eintraege): nur Sichtkontrolle, default ueberspringen. Sind Treiber-Bundles, Runtimes, Duplikate, Bloatware.
|
||||
|
||||
Summe: 161 == 161, keine Duplikate doppelt klassifiziert (Registry-Hive-Duplikate landen automatisch in Auto-Skip).
|
||||
|
||||
---
|
||||
|
||||
## 1. Auto-Ja (18)
|
||||
|
||||
Standard-Tools ohne Login/Lizenz, alle ueber `winget` installierbar. Im neuen Windows als Sammel-Befehl ausfuehrbar:
|
||||
|
||||
```powershell
|
||||
winget install --exact --id Brave.Brave --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id CPUID.CPU-Z.MSI --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id CPUID.HWMonitor --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id CrystalDewWorld.CrystalDiskInfo --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Futuremark.3DMark --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Git.Git --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id GoLang.Go --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Governikus.AusweisApp --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Guru3D.RTSS --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id HulubuluSoftware.AdvancedRenamer --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id LimeTechnology.UnraidUSBCreator --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id MaxCut.MaxCut --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id OpenJS.NodeJS.LTS --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Python.Launcher --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id Python.Python.3.13 --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id buchen.portfolio --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id den4b.ReNamer --source winget --accept-package-agreements --accept-source-agreements
|
||||
winget install --exact --id fjsoft.MyPhoneExplorer --source winget --accept-package-agreements --accept-source-agreements
|
||||
```
|
||||
|
||||
| DisplayName | Version | Publisher | winget-ID | Begruendung |
|
||||
|---|---|---|---|---|
|
||||
| 3DMark | 2.22.7359.0 | UL | Futuremark.3DMark | Benchmark, kein Login |
|
||||
| Advanced Renamer | 3.95 | Hulubulu Software | HulubuluSoftware.AdvancedRenamer | Free Rename-Tool |
|
||||
| AusweisApp | 2.4.0 | Governikus GmbH & Co. KG | Governikus.AusweisApp | Online-Ausweis, kein Login |
|
||||
| Brave | 147.1.89.145 | Die Brave-Autoren | Brave.Brave | Browser (Sync optional spaeter) |
|
||||
| CPUID CPU-Z MSI 2.03 | 2.03 | CPUID, Inc. | CPUID.CPU-Z.MSI | System-Info-Tool |
|
||||
| CPUID HWMonitor 1.60 | 1.60 | CPUID, Inc. | CPUID.HWMonitor | Hardware-Monitor |
|
||||
| CrystalDiskInfo 9.8.0 | 9.8.0 | Crystal Dew World | CrystalDewWorld.CrystalDiskInfo | SSD/HDD-Health-Check |
|
||||
| Git | 2.53.0.2 | The Git Development Community | Git.Git | Dev-Tool (SSH-Key wird separat aus Backup zurueckgeholt) |
|
||||
| Go Programming Language amd64 go1.26.1 | 1.26.1 | https://go.dev | GoLang.Go | Dev-Tool |
|
||||
| MaxCut | 2.9.3.9 | MaxCut Software Ltd | MaxCut.MaxCut | Plattenoptimierungs-Tool, free |
|
||||
| MyPhoneExplorer | 2.3 | F.J. Wechselberger | fjsoft.MyPhoneExplorer | Android-Sync-Tool |
|
||||
| Node.js | 24.15.0 | Node.js Foundation | OpenJS.NodeJS.LTS | Dev-Tool |
|
||||
| Portfolio Performance | 0.76.3 | Andreas Buchen | buchen.portfolio | Open Source, Daten aus Backup |
|
||||
| Python 3.13.3 Core Interpreter (64-bit) | 3.13.3150.0 | Python Software Foundation | Python.Python.3.13 | Python 3.13 — Python.Python.3.13 deckt das gesamte Bundle ab |
|
||||
| Python Launcher | 3.13.3150.0 | Python Software Foundation | Python.Launcher | Dev-Tool |
|
||||
| ReNamer | 7.7.0.0 | den4b Team | den4b.ReNamer | Free Rename-Tool |
|
||||
| RivaTuner Statistics Server 7.3.7 | 7.3.7 | Unwinder | Guru3D.RTSS | OSD fuer Spiele (kommt mit MSI Afterburner) |
|
||||
| Unraid USB Creator | 1.1.0 | Lime Technology, Inc | LimeTechnology.UnraidUSBCreator | Homelab-Tool |
|
||||
|
||||
---
|
||||
|
||||
## 2. Einzelfrage (38)
|
||||
|
||||
Brauchen Lizenz, Login, Konfig-Restore oder explizite Ja/Nein-Entscheidung. **Pro Eintrag mit Micha klaeren.** Die "KRITISCH"-Eintraege haben Vorrang.
|
||||
|
||||
Reihenfolge-Empfehlung (aus `HANDOFF_2026-06-04.md`):
|
||||
|
||||
1. NVIDIA App (zuerst — bringt alle NVIDIA-Komponenten im Bundle)
|
||||
2. Microsoft 365 (M-Konto)
|
||||
3. Banking4 + Tresor aus PostDelta
|
||||
4. WISO Steuer 2026 + Steuerdateien aus PostDelta
|
||||
5. WSL + Distros (Ubuntu.tar / docker-desktop.tar)
|
||||
6. Tailscale (Login)
|
||||
7. Browser (Google Chrome / Brave mit Sync)
|
||||
8. Corsair iCUE (Mausprofile aus PostDelta)
|
||||
9. Battle.net + Overwatch 2 Config aus PostDelta
|
||||
10. Rest in beliebiger Reihenfolge
|
||||
|
||||
| DisplayName | Version | Publisher | winget-ID | Begruendung |
|
||||
|---|---|---|---|---|
|
||||
| Adobe Acrobat (64-bit) | 26.001.21529 | Adobe | Adobe.Acrobat.Pro | Adobe-Lizenz/Subscription pruefen |
|
||||
| Adobe Refresh Manager | 1.8.0 | Adobe Systems Incorporated | | Adobe-Komponente, nur falls Acrobat installiert |
|
||||
| AIDA64 Extreme v6.85 | 6.85 | FinalWire Ltd. | FinalWire.AIDA64.Extreme | Kostenpflichtige Lizenz |
|
||||
| Android Studio | 2024.3 | Google LLC | Google.AndroidStudio | Sehr gross — nur falls Android-Dev gebraucht |
|
||||
| Ant Movie Catalog | 4.2.2.2 | Ant Software | | Spezial-Tool, kein winget |
|
||||
| Banking4 Home | | Subsembly GmbH | | KRITISCH: Lizenz aus 09_Programme_Settings_Lizenzen\keys_exporte\banking4_license_private.txt + Tresor aus _PostDelta_2026-06-04_100146\00_Kritisch_Direkt |
|
||||
| Battle.net | | Blizzard Entertainment | | Launcher fuer Blizzard-Spiele (Overwatch 2 + WoW + Hearthstone). Overwatch-Config aus _PostDelta\16_Overwatch2_Config |
|
||||
| Corsair iCUE5 Software | 5.44.55 | Corsair | Corsair.iCUE.5 | Mausprofile aus _PostDelta_2026-06-04_100146\17_Maus_Settings |
|
||||
| Docker Desktop | 4.67.0 | Docker Inc. | Docker.DockerDesktop | WSL2-basiert, viele Configs. Bewusste Entscheidung ob noetig |
|
||||
| EMDB Version 3.72 | 3.72 | Wicked & Wild Inc | | Spezial-Tool, kein winget |
|
||||
| Epic Games Launcher | 1.3.155.0 | Epic Games, Inc. | EpicGames.EpicGamesLauncher | Login + Spiele-Bibliothek |
|
||||
| FileBot | 5.1.5 | Point Planck Limited | PointPlanck.FileBot | Kostenpflichtige Lizenz |
|
||||
| Google Chrome | 147.0.7727.138 | Google LLC | Google.Chrome.EXE | Sync-Login (Lesezeichen/Passwords/Profile aus Backup) |
|
||||
| HP Scan - Grundlegende Software für das Gerät | 63.6.6364.25288 | HP Inc. | | HP-Drucker-Software (LAN/Netzwerk-Setup) — nur installieren wenn HP-Drucker noch da |
|
||||
| Microsoft 365 - de-de | 16.0.19929.20136 | Microsoft Corporation | Microsoft.Office | KRITISCH: ueber Microsoft-Konto / Office.com installieren |
|
||||
| Microsoft OneDrive | 26.063.0405.0002 | Microsoft Corporation | Microsoft.OneDrive | Microsoft-Konto-Login; vorher Sync-Konflikte mit altem OneDrive bedenken |
|
||||
| Movienizer 10.3 | | Movienizer.com | | Kostenpflichtig, kein winget |
|
||||
| MSI Afterburner 4.6.6 | 4.6.6 | MSI Co., LTD | Guru3D.Afterburner | Nur falls GPU-OC/Monitoring noch gebraucht wird |
|
||||
| NVIDIA App 11.0.7.237 | 11.0.7.237 | NVIDIA Corporation | Nvidia.GeForceExperience | KRITISCH ZUERST: NVIDIA-App-Bundle installiert ALLE NVIDIA-Komponenten in einem Rutsch (Treiber + Container) |
|
||||
| Octoparse 8.7.2 | 8.7.2 | Octopus Data Inc. | OctopusData.Octoparse | Web-Scraper, Account-bezogen, optional |
|
||||
| PingPlotter 5 | 5.18.0.7997 | Pingman Tools, LLC | Pingman.PingPlotter | Kostenpflichtige Lizenz, optional |
|
||||
| Plex Media Server | 1.40.3555 | Plex, Inc. | Plex.PlexMediaServer | Server-Komponente + Plex-Konto. Hinweis: am Homelab laeuft separater Plex; Desktop-Installation nur falls bewusst gewollt |
|
||||
| Razer Chroma | 4.0.662 | Razer Inc. | | Razer-Komponente — kommt mit Synapse |
|
||||
| Razer Synapse | 4.0.662 | Razer Inc. | | Hardware-Konfig (Mauspad/Beleuchtung) |
|
||||
| Rename Expert 5.31.6 | 5.31.6 | Gillmeister Software | | Kostenpflichtig, manuelle Installation |
|
||||
| Tailscale | 1.96.3 | Tailscale Inc. | Tailscale.Tailscale | Login + Tailscale-Konto (gleicher Account wie Homelab) |
|
||||
| Tesseract-OCR - open source OCR engine | 5.5.0.20241111 | Tesseract-OCR community | UB-Mannheim.TesseractOCR | OCR-Engine, open source — entscheiden ob noch genutzt |
|
||||
| WD Discovery | 4.4.407 | Western Digital Technologies, Inc. | | NAS-Discovery-Tool, nur falls WD NAS noch in Nutzung |
|
||||
| WD Drive Utilities | 2.1.0.142 | Western Digital Technologies, Inc. | | WD-HDD-Tool, nur falls WD-Platte noch in Nutzung |
|
||||
| WD My Cloud | 1.0.2.34 | Western Digital Technologies, Inc. | | WD My Cloud Login, nur falls Geraet noch in Nutzung |
|
||||
| Windows Subsystem for Linux | 2.6.3.0 | Microsoft Corporation | Microsoft.WSL | KRITISCH: WSL aktivieren, dann Distros per `wsl --import` aus 09_Programme_Settings_Lizenzen\Ubuntu.tar + docker-desktop.tar |
|
||||
| WinRAR 7.11 (64-Bit) | 7.11.0 | win.rar GmbH | RARLab.WinRAR | Lizenz (technisch Shareware) |
|
||||
| WISO Steuer 2023 | 30.10.3890 | Buhl Data Service GmbH | | Alte Version — nur falls noch reaktiviert werden soll. Steuerdateien aus 07_Banking_Finanzen\WISO_Steuer_Dokumente |
|
||||
| WISO Steuer 2024 | 31.02.3430 | Buhl Data Service GmbH | | Alte Version — nur falls noch reaktiviert werden soll |
|
||||
| WISO Steuer 2025 | 32.03.2120 | Buhl Data Service GmbH | | Alte Version — nur falls noch reaktiviert werden soll |
|
||||
| WISO Steuer 2026 | 33.05.3220 | Buhl Data Service GmbH | | KRITISCH aktuellste Version: Buhl-Konto + Steuerdateien aus _PostDelta\02_Dokumente\steuer (8 Dateien) |
|
||||
| Wondershare Recoverit(Build 14.0.13.3) | 14.0.13.3 | Wondershare Software Co.,Ltd. | | Kostenpflichtig, Datenrettungs-Tool |
|
||||
| WoodWorks 1.8.7 | 1.8.7 | Robert Denk | | Spezial-Tool, manuelle Installation |
|
||||
|
||||
---
|
||||
|
||||
## 3. Auto-Skip (105)
|
||||
|
||||
Treiber-Bundles, Runtimes, Dependencies, Duplikate, Bloatware, Spiele (kommen ueber Launcher). **Nur Sichtkontrolle, default ueberspringen.** Wenn Micha ein Item hier wider Erwarten doch will, in Einzelfrage verschieben.
|
||||
|
||||
| DisplayName | Version | Publisher | winget-ID | Begruendung |
|
||||
|---|---|---|---|---|
|
||||
| 3DMark | 2.22.7359.0 | UL | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Apex Legends | | Respawn Entertainment | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| ARC Raiders | | Embark Studios | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| Bonjour | 2.0.2.0 | Apple Inc. | | Apple Bonjour — Dependency (z. B. HP), wird bei Bedarf nachgezogen |
|
||||
| Bonjour-Druckdienste | 2.0.2.0 | Apple Inc. | | Apple Bonjour — Dependency (z. B. HP), wird bei Bedarf nachgezogen |
|
||||
| Documentation Manager | 23.40.0.4 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Dynamic Application Loader Host Interface Service | 1.0.0.0 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Epic Games Launcher Prerequisites (x64) | 1.0.0.0 | Epic Games, Inc. | | Epic Games Prerequisite — kommt mit Epic Games Launcher |
|
||||
| Epic Online Services | 4.0.1 | Epic Games, Inc. | | Epic Online Services — kommt mit Epic Games Launcher |
|
||||
| Futuremark SystemInfo | 5.49.1085.0 | Futuremark | | Dependency von 3DMark — wird mit installiert |
|
||||
| Hearthstone | | Blizzard Entertainment | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| HELLDIVERS™ 2 | | Arrowhead Game Studios | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| HP EmailSMTP Plugin | 56.0.517.0 | HP | | HP Drucker-Plugin — kommt mit HP-Treiber/HP Smart |
|
||||
| HP OCR | 1.0.1020.0 | HP Inc. | | HP Drucker-Plugin — kommt mit HP-Treiber/HP Smart |
|
||||
| HP SFTP Plugin | 56.0.517.0 | HP Inc. | | HP Drucker-Plugin — kommt mit HP-Treiber/HP Smart |
|
||||
| HP SharePoint Plugin | 56.0.517.0 | HP | | HP Drucker-Plugin — kommt mit HP-Treiber/HP Smart |
|
||||
| Intel(R) Chipset Device Software | 10.1.19899.8597 | Intel(R) Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) Chipset Device Software | 10.1.19899.8597 | Intel Corporation | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Intel(R) Icls | 1.0.0.0 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) Management Engine Components | 1.0.0.0 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) Management Engine Components | 2425.6.26.0 | Intel Corporation | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Intel(R) Management Engine Driver | 1.0.0.0 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) ME WMI Provider | 1.0.0.0 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) Serial IO | 30.100.2131.26 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel(R) Serial IO | 30.100.2131.26 | Intel Corporation | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Intel(R) Wireless Bluetooth(R) | 23.40.0.2 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Intel® Software Installer | 23.40.0.4 | Intel Corporation | | Intel Treiber/Engine — kommt mit Intel Chipset-Driver-Bundle |
|
||||
| Launcher Prerequisites (x64) | 1.0.0.0 | Epic Games, Inc. | | Epic Games Prerequisite — kommt mit Epic Games Launcher |
|
||||
| MaxCut | 2.9.3.9 | MaxCut Software (Pty) Ltd | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Microsoft Edge | 147.0.3912.98 | Microsoft Corporation | | Microsoft Edge / WebView2 — Bestandteil von Windows 11 |
|
||||
| Microsoft Edge WebView2-Laufzeit | 147.0.3912.98 | Microsoft Corporation | | Microsoft Edge / WebView2 — Bestandteil von Windows 11 |
|
||||
| Microsoft Teams Meeting Add-in for Microsoft Office | 1.26.08901 | Microsoft | | Office-Add-in — kommt mit Microsoft 365 / Teams |
|
||||
| Microsoft Update Health Tools | 5.72.0.0 | Microsoft Corporation | | Windows-Component — Windows Update |
|
||||
| Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161 | 9.0.30729.6161 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161 | 9.0.30729.6161 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 | 10.0.30319 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.61030 | 11.0.61030.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030 | 11.0.61030.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.61030 | 11.0.61030 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030 | 11.0.61030 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030 | 11.0.61030 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030 | 11.0.61030 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.30501 | 12.0.30501.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501 | 12.0.30501.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005 | 12.0.21005 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.21005 | 12.0.21005 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 x86 Additional Runtime - 12.0.21005 | 12.0.21005 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2013 x86 Minimum Runtime - 12.0.21005 | 12.0.21005 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2015-2022 Redistributable (x64) - 14.44.35211 | 14.44.35211.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2015-2022 Redistributable (x86) - 14.44.35211 | 14.44.35211.0 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2022 X64 Additional Runtime - 14.44.35211 | 14.44.35211 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.44.35211 | 14.44.35211 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2022 X86 Additional Runtime - 14.44.35211 | 14.44.35211 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| Microsoft Visual C++ 2022 X86 Minimum Runtime - 14.44.35211 | 14.44.35211 | Microsoft Corporation | | VC++ Redistributable/Runtime — Dependency, wird mit Apps gezogen |
|
||||
| MSI Center SDK | 3.2026.0123.01 | MSI | | MSI Komponente — wird mit MSI Center nachgezogen |
|
||||
| NvCpl | 1.0 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA AIUser Container | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Backend | 11.0.7.237 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Container | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA FrameView SDK 1.7.12227.37421622 | 1.7.12227.37421622 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Grafiktreiber 596.21 | 596.21 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA HD-Audiotreiber 1.4.5.7 | 1.4.5.7 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Install Application | 2.1002.442.0 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA LocalSystem Container | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA MessageBus 3 for NvApp | 3.21 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA NvDLISR | 1.0 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA PhysX-Systemsoftware 9.23.1019 | 9.23.1019 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Session Container | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA ShadowPlay 11.0.7.0 | 11.0.7.0 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Telemetry Client | 19.5.13.0 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA User Container | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Virtual Audio 4.65.0.12 | 4.65.0.12 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| NVIDIA Watchdog Plugin for NvContainer | 1.48 | NVIDIA Corporation | | NVIDIA Driver-Komponente — wird mit dem NVIDIA-App-/Treiber-Bundle installiert |
|
||||
| Office 16 Click-to-Run Extensibility Component | 16.0.19929.20136 | Microsoft Corporation | | Office-Komponente — kommt mit Microsoft 365 |
|
||||
| Office 16 Click-to-Run Localization Component | 16.0.19929.20062 | Microsoft Corporation | | Office-Komponente — kommt mit Microsoft 365 |
|
||||
| Overwatch | | Blizzard Entertainment | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| PingPlotter 5 | 5.18.0.7997 | Pingman Tools, LLC | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| Plex Media Server | 1.40.3.8555 | Plex, Inc. | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| PUBG: BATTLEGROUNDS | | KRAFTON, Inc. | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| Python 3.13.3 Add to Path (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Development Libraries (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Documentation (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Executables (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 pip Bootstrap (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Standard Library (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Tcl/Tk Support (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Python 3.13.3 Test Suite (64-bit) | 3.13.3150.0 | Python Software Foundation | | Sub-Komponente von Python 3.13 — wird mit dem Python-Hauptpaket nachgezogen |
|
||||
| Realtek USB Audio | 6.4.0.2422 | Realtek Semiconductor Corp. | | Realtek Audio-Treiber — kommt mit Chipset-/Audio-Driver-Bundle |
|
||||
| Stopping Plex | 1.40.3555 | Plex, Inc. | | Artefakt, kein echtes Programm |
|
||||
| THX Spatial Audio USB 1532-0555 | 3.2.3.0 | THX | | THX Audio-Komponente — kommt mit Audio-/Headset-Treiber |
|
||||
| THX Spatial Audio USB 1532-0555 | 3.2.3.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.11.0 | THX | | THX Audio-Komponente — kommt mit Audio-/Headset-Treiber |
|
||||
| THX V3 APO Presets | 3.2.11.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.14.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.12.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.12.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.11.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.14.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| THX V3 APO Presets | 3.2.11.0 | THX | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| WD Desktop App 2.1.0.335 | 2.1.0.335 | Western Digital Corporation | | WD Desktop App (legacy) — durch WD Discovery abgeloest |
|
||||
| WD Desktop App 2.1.0.335 (x64) | 2.1.0.335 | Western Digital Corporation | | WD Desktop App (legacy) — durch WD Discovery abgeloest |
|
||||
| WD Drive Utilities | 2.1.0.142 | Western Digital Technologies, Inc. | | Duplikat (zweiter Registry-Hive-Eintrag desselben Programms, siehe oben) |
|
||||
| WD SES Driver Setup | 2.1.0 | Western Digital | | Altes WD-Driver-Setup — wird durch aktuelle WD-Tools ersetzt |
|
||||
| World of Warcraft | | Blizzard Entertainment | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
| World of Warcraft Classic Era | | Blizzard Entertainment | | Game — Reinstall ueber Battle.net/Steam/Epic Launcher (Einzelfrage betrifft nur den Launcher) |
|
||||
|
||||
---
|
||||
|
||||
## Verifikations-Block
|
||||
|
||||
- Eintraege total: 161
|
||||
- Auto-Ja: 18
|
||||
- Einzelfrage: 38
|
||||
- Auto-Skip: 105
|
||||
- Quelle: 161 Eintraege in `installierte_programme.csv`
|
||||
- Stimmt: 18 + 38 + 105 == 161 == 161
|
||||
|
||||
## Aenderungs-Workflow
|
||||
|
||||
Falls Micha vor der Neuinstallation noch Eintraege umsortieren will: direkt in diesem Markdown-File die Zeile zwischen den Sektionen verschieben und Begruendung anpassen. Diese Datei ist die Wahrheit fuer den Wiederaufbau-Schritt.
|
||||
@@ -0,0 +1,303 @@
|
||||
# System-Audit 2026-06-05
|
||||
|
||||
**Scope:** Windows-Host `baerchen` (frisch aufgesetzt), Read-only
|
||||
**Referenz-Doku:** `ops/windows-reinstall/docs/laufwerks-neustruktur-2026-06-04.md`, `boot-cleanup-plan-2026-06-04.md`
|
||||
**Durchgeführt:** 2026-06-05, ohne Admin-Rechte
|
||||
**Rohdaten:** `audit/raw/01_volumes_partitions.txt` bis `06_events_hardware.txt`
|
||||
|
||||
---
|
||||
|
||||
## 1. Ordner- und Laufwerksstruktur (Priorität)
|
||||
|
||||
### 1.1 Soll-Ist-Vergleich: Ordner-Existenz
|
||||
|
||||
| Pfad | Soll | Ist | Status |
|
||||
|---|---|---|---|
|
||||
| `D:\00_Inbox` | ✓ | vorhanden | OK |
|
||||
| `D:\10_Dokumente` | ✓ | vorhanden | OK |
|
||||
| `D:\11_Bilder` | ✓ | vorhanden | OK, aber ReadOnly-Attribut gesetzt |
|
||||
| `D:\12_Videos` | ✓ | vorhanden | OK |
|
||||
| `D:\13_Musik` | ✓ | vorhanden | OK |
|
||||
| `D:\14_Downloads` | ✓ | vorhanden | OK |
|
||||
| `D:\20_Projekte\aktiv` | ✓ | vorhanden | OK |
|
||||
| `D:\20_Projekte\archiv` | ✓ | vorhanden | OK |
|
||||
| `D:\30_Finanzen\Banking4` | ✓ | vorhanden | OK |
|
||||
| `D:\30_Finanzen\WISO_Steuer` | ✓ | vorhanden | OK |
|
||||
| `D:\90_Archiv` | ✓ | vorhanden | OK |
|
||||
| `E:\Steam\steamapps` | ✓ | vorhanden | OK |
|
||||
| `E:\BattleNet` | ✓ | vorhanden | OK |
|
||||
| `E:\EpicGames` | ✓ | vorhanden | OK |
|
||||
| `E:\EA` | ✓ | vorhanden | OK |
|
||||
| `E:\Riot` | ✓ | vorhanden | OK |
|
||||
| `E:\Ubisoft` | ✓ | vorhanden | OK |
|
||||
| **`E:\_Standalone`** | **✓** | **FEHLT** | **LÜCKE** |
|
||||
| `G:\repos` | ✓ | vorhanden | OK |
|
||||
| `G:\tools` | ✓ | vorhanden als `Tools` (Großbuchstabe) | OK (NTFS case-insensitive) |
|
||||
|
||||
**Nicht in Soll-Doku, aber vorhanden:**
|
||||
|
||||
| Pfad | Beurteilung |
|
||||
|---|---|
|
||||
| `D:\Micha\Videos` | Altquelle, fast leer (1 Datei), Rest wurde bereinigt |
|
||||
| `D:\WSL` | WSL-Datenpfad, nicht in Doku erwähnt, aber logisch |
|
||||
| `G:\Apps` | Zweck unklar, nicht dokumentiert |
|
||||
| `G:\Gitea_Clone` | Bewusst so (homelab-infra bleibt laut Doku unangetastet) |
|
||||
| `G:\Workspace` | Nicht dokumentiert, wahrscheinlich Dev-Workspace |
|
||||
|
||||
### 1.2 Known-Folder-Redirects
|
||||
|
||||
| Ordner | Soll (Doku) | Ist (gemessen) | Status |
|
||||
|---|---|---|---|
|
||||
| Desktop | `D:\Micha\Desktop` | `D:\00_Inbox\Desktop` | **ABWEICHUNG** |
|
||||
| Dokumente | `D:\10_Dokumente` | `D:\10_Dokumente` | OK |
|
||||
| Downloads | `D:\14_Downloads` | `D:\14_Downloads` | OK |
|
||||
| Bilder | `D:\11_Bilder` | `D:\11_Bilder` | OK |
|
||||
| Musik | `D:\13_Musik` | `D:\13_Musik` | OK |
|
||||
| Videos | `D:\12_Videos` | `D:\12_Videos` | OK |
|
||||
|
||||
**Desktop-Befund (Detail):**
|
||||
- Soll-Doku schreibt: `D:\Micha\Desktop` (als bewusster Sonderfall ohne nummerierten Ordner).
|
||||
- Ist: Desktop zeigt auf `D:\00_Inbox\Desktop` — dieser Ordner existiert, enthält 4 Dateien.
|
||||
- `D:\Micha\Desktop` existiert **nicht**.
|
||||
- `D:\Micha` enthält nur noch `Videos` (1 Datei, leer).
|
||||
- Fazit: Das Known-Folder-Ziel wurde nach der Doku-Erstellung nochmals geändert. Die Doku ist in diesem Punkt veraltet. Der Desktop liegt funktional korrekt auf D:, aber das Ziel weicht vom dokumentierten Soll ab. **Doku-Update empfohlen.**
|
||||
|
||||
### 1.3 Doppelbestand D:\Micha\* vs. neue Nummernstruktur
|
||||
|
||||
| Alt | Dateien | Neu | Dateien | Bewertung |
|
||||
|---|---|---|---|---|
|
||||
| `D:\Micha\Dokumente` | NICHT MEHR VORHANDEN | `D:\10_Dokumente` | 4011 / 595 MB | Bereinigt ✓ |
|
||||
| `D:\Micha\Bilder` | NICHT MEHR VORHANDEN | `D:\11_Bilder` | 7789 / 12,4 GB | Bereinigt ✓ |
|
||||
| `D:\Micha\Videos` | 1 Datei, ~0 MB | `D:\12_Videos` | 1 Datei, ~0 MB | Quasi-leer, kein Doppelbestand |
|
||||
| `D:\Micha\Musik` | NICHT MEHR VORHANDEN | `D:\13_Musik` | 0 Dateien | Bereinigt ✓ |
|
||||
| `D:\Micha\Downloads` | NICHT MEHR VORHANDEN | `D:\14_Downloads` | 2186 / 2,2 GB | Bereinigt ✓ |
|
||||
| `D:\Micha\Finanzen` | NICHT MEHR VORHANDEN | `D:\30_Finanzen` | 126 / 123 MB | Bereinigt ✓ |
|
||||
|
||||
**Fazit:** Der befürchtete Doppelbestand ist weitgehend aufgelöst. Nur `D:\Micha\Videos` ist noch vorhanden, ist aber inhaltlich leer. `D:\Micha` kann nach manueller Prüfung von Videos entfernt werden.
|
||||
|
||||
### 1.4 Labels
|
||||
|
||||
| Laufwerk | Soll | Ist | Status |
|
||||
|---|---|---|---|
|
||||
| D: | `Daten-Projekte` | `Daten-Projekte` | OK ✓ |
|
||||
| E: | `Games` | `Games` | OK ✓ |
|
||||
| H: | unveraendert | `Externe HDD` | OK ✓ |
|
||||
|
||||
### 1.5 Rollen-Konsistenz und Partitions-Layout
|
||||
|
||||
| Laufwerk | Soll-Rolle | Ist | Status |
|
||||
|---|---|---|---|
|
||||
| C: | Windows + kleine Programme | Disk 0, 167 GB SATA | OK |
|
||||
| D: | Daten & Projekte | Disk 1, 168 GB SATA | OK |
|
||||
| E: | Games | Disk 2, **930 GB** NVMe (nach F-Merge) | OK ✓ |
|
||||
| F: | Altes Windows (löschen) | **Nicht mehr vorhanden** | Abgeschlossen ✓ |
|
||||
| G: | Arbeits-SSD, Homelab/Dev | Disk 3, 931 GB NVMe | OK |
|
||||
| H: | Externe Backup-HDD | Disk 4, 7.28 TB USB | OK |
|
||||
|
||||
E: und das ehemalige F: sind jetzt eine einzige 930 GB Partition auf Disk 2. Layout ist sauber.
|
||||
|
||||
### 1.6 Fachliche Gesamtbewertung der Struktur
|
||||
|
||||
**Stärken:**
|
||||
- Die Nummernstruktur auf D: ist vollständig angelegt und die Known Folders zeigen bis auf Desktop korrekt dorthin.
|
||||
- Der Doppelbestand ist fast vollständig bereinigt — das war die größte Risikoquelle.
|
||||
- F: ist weg, E: ist auf volle Disk-Kapazität gewachsen — die BCD-Bereinigung und Partition-Erweiterung wurde sauber abgeschlossen.
|
||||
- Label-Benennung konsistent.
|
||||
- G: ist operational (repos, Tools, Gitea_Clone vorhanden).
|
||||
|
||||
**Lücken und Inkonsistenzen:**
|
||||
1. **Desktop-Redirect weicht von Doku ab** (Ist: `D:\00_Inbox\Desktop`, Doku: `D:\Micha\Desktop`). Da `D:\Micha\Desktop` nicht existiert und der Desktop funktioniert, ist die Doku das Problem, nicht das System.
|
||||
2. **`E:\_Standalone` fehlt** — laut Doku angelegt, tatsächlich nicht vorhanden. Kein funktionaler Schaden, aber Inkonsistenz zur Rollenbeschreibung.
|
||||
3. **`D:\11_Bilder` hat ReadOnly-Attribut** auf Ordner-Ebene gesetzt — ungewöhnlich, keine erkennbare Ursache. Kein Showstopper, aber prüfenswert.
|
||||
4. **`G:\Apps`, `G:\Workspace`** sind nicht in der Soll-Doku definiert. Kein Problem an sich, aber für spätere Audits hilfreich zu dokumentieren.
|
||||
5. **`D:\WSL`** nicht dokumentiert — WSL-Datenpfade dort gehören explizit erwähnt.
|
||||
6. **`D:\13_Musik`** ist leer (0 Dateien) — entweder war `D:\Micha\Musik` schon leer, oder die Kopie ist ausgeblieben. Zu prüfen ob Musik aus PostDelta-Backup nachgezogen werden muss.
|
||||
|
||||
**Gesamturteil:** Die Struktur ist in sich schlüssig und der Umbau ist zu ~95% abgeschlossen. Die verbleibenden Punkte sind kleine Doku-Lücken und ein fehlender Ordner, kein strukturelles Problem.
|
||||
|
||||
---
|
||||
|
||||
## 2. OS-Baseline
|
||||
|
||||
| Feld | Wert | Bewertung |
|
||||
|---|---|---|
|
||||
| Edition | Windows 11 Pro | OK |
|
||||
| Build | 26200 (Insider/Preview-Build) | Achtung: kein Stable-Channel-Build |
|
||||
| Aktivierung | OEM_DM, aktiv | OK |
|
||||
| Installiert | 2026-05-10 | ~25 Tage alt |
|
||||
| Letzter Boot | 2026-06-05 07:57 | Frisch gebootet |
|
||||
| Ausstehende Updates | 0 | OK |
|
||||
| Reboot pending | Nein | OK |
|
||||
|
||||
**Befund Build 26200:** Das ist ein Windows Insider/Canary-Channel Build, kein Produktions-Release. Für einen Nerd-Einsatz vertretbar, aber mit dem Wissen verbunden, dass Insider-Builds weniger stabil sind und keine LTS-Garantie haben.
|
||||
|
||||
---
|
||||
|
||||
## 3. Security
|
||||
|
||||
### Defender
|
||||
- Aktiv, TamperProtection an, Signaturen aktuell. **OK.**
|
||||
- Ausschlüsse und ASR-Regeln: nur als Admin lesbar — **kein Befund, aber blind spot.**
|
||||
|
||||
### Firewall
|
||||
- Alle drei Profile aktiv. DefaultInboundAction `NotConfigured` bedeutet im Windows-Default: eingehend blockieren, ausgehend erlauben. **OK.**
|
||||
- Port 27036 (Steam Remote Play) lauscht auf `0.0.0.0` — also LAN-seitig offen. Erwartetes Steam-Verhalten, aber explizit im Bewusstsein halten.
|
||||
|
||||
### BitLocker
|
||||
- Nicht prüfbar ohne Admin. **Blind spot — Empfehlung: BitLocker für C: und D: aktivieren.**
|
||||
|
||||
### Secure Boot / TPM
|
||||
- Nicht prüfbar ohne Admin. Hardware MSI MS-7D32 unterstützt beides. Status unbekannt.
|
||||
|
||||
### UAC
|
||||
- Standard-Konfiguration korrekt (Secure Desktop aktiv). **OK.**
|
||||
|
||||
### Lokale Admins
|
||||
- `Administrator` (Built-in) + `michi`. Zwei Accounts in Admins ist normal für einen Einzel-PC. OK.
|
||||
|
||||
### SSH Key Permissions
|
||||
- `id_ed25519` hat `VORDEFINIERT\Administratoren FullControl` — das ist zu weit offen.
|
||||
- SSH-Clients unter Windows tolerieren das, aber best practice ist: nur der eigene User darf lesen.
|
||||
- **Empfehlung:** `icacls` Berechtigungen auf User only setzen (als Admin ausführen).
|
||||
|
||||
---
|
||||
|
||||
## 4. Storage & Boot
|
||||
|
||||
- Alle 5 physischen Disks: **Healthy / OK.**
|
||||
- Wear-Level via `Get-StorageReliabilityCounter`: keine Ausgabe (SATA-SSDs und USB HDD liefern keine WMI-Daten). CrystalDiskInfo ist installiert — dort manuell prüfen.
|
||||
- Die zwei Intel SATA SSDs (Disk 0 + 1) sind **180 GB** — typische Einzel-Partition-Auslastung auf C: ~36% und D: ~11%, reichlich Luft.
|
||||
- **BCD:** ohne Admin nicht lesbar. Doku bestätigt sauberen Zustand nach Cleanup + Neustarttest.
|
||||
- **WinRE:** ohne Admin nicht lesbar. Doku sagt Disabled — muss vor künftiger Partitionsarbeit aktiviert werden.
|
||||
|
||||
---
|
||||
|
||||
## 5. Netzwerk
|
||||
|
||||
- Ethernet: 192.168.178.103, DNS auf Kallilabcore (AdGuard). **Korrekt.**
|
||||
- Tailscale: aktiv, dieser Rechner als `baerchen-1` online, direkter Pfad zu `kallilabcore`. **OK.**
|
||||
- Kein SSH-Config — alle SSH-Verbindungen laufen ohne Host-Aliases. Funktional, aber unpraktisch.
|
||||
- Lauschende Ports: Keine auffälligen Exposition nach außen außer SMB (139/445 — LAN-normal) und Steam 27036.
|
||||
|
||||
---
|
||||
|
||||
## 6. Remote-Management / SSH
|
||||
|
||||
- Kein `~\.ssh\config` vorhanden. Empfehlung: Host-Aliases anlegen (z.B. `Host kallilabcore`).
|
||||
- SSH-Key vorhanden und aktuell.
|
||||
- **Key-Rechte zu weit (s. Security).**
|
||||
- Docker contexts: `desktop-linux` aktiv. Docker Desktop läuft.
|
||||
- kubectl: keine Contexts — erwartet (kein k8s im Homelab).
|
||||
- Tailscale: direkter Pfad zu Homelab aktiv, SSH über Tailscale-IP funktioniert.
|
||||
|
||||
---
|
||||
|
||||
## 7. Dev-Toolchain
|
||||
|
||||
| Tool | Version | Bewertung |
|
||||
|---|---|---|
|
||||
| git | 2.54.0 | Aktuell, OK |
|
||||
| Python | 3.13.13 | Aktuell, OK |
|
||||
| Node.js | 24.16.0 (LTS) | Aktuell, OK |
|
||||
| Go | 1.26.4 | Aktuell, OK |
|
||||
| Commit-Signing | nicht konfiguriert | Optional, aber für Homelab-GitOps empfohlen |
|
||||
|
||||
WSL Ubuntu ist installiert aber gestoppt. docker-desktop läuft als WSL2-Backend.
|
||||
|
||||
---
|
||||
|
||||
## 8. Hardware & Performance
|
||||
|
||||
- i5-14600KF, 14C/20T, 31.8 GB RAM — für Homelab-Dev-Rechner gut ausgestattet.
|
||||
- Energieplan: **Ausbalanciert** — für einen Gaming- und Dev-Rechner suboptimal. `Höchstleistung` oder `Ultimative Leistung` wäre bei dauerhafter Nutzung besser.
|
||||
- Keine echten Gerätekonflikte in PnP (alle "Unknown" sind erwartet: ghosted devices, Netzwerkgeräte, VSS).
|
||||
|
||||
---
|
||||
|
||||
## 9. Autostart & Persistenz
|
||||
|
||||
Läuft automatisch: Brave Update, Steam, Razer Synapse, Docker Desktop, iCUE, Realtek Audio, Tailscale, Ollama.
|
||||
|
||||
**Auffällig:** `SoftLanding\CreativeManagementTask` — unbekannter Scheduled Task, nicht einem Standard-Produkt zuzuordnen. Sollte manuell im Task Scheduler geprüft werden (Quelle, Executable, Publisher).
|
||||
|
||||
OneDrive läuft mit drei Tasks (Startup + Update) — falls Daten-Sync nicht gewünscht ist, sollte OneDrive deaktiviert werden, da es Dokumente/Bilder/etc. stummschalten könnte (bekanntes Windows-Verhalten nach Known-Folder-Redirect).
|
||||
|
||||
---
|
||||
|
||||
## 10. Zuverlässigkeit
|
||||
|
||||
| Event ID | Anzahl | Beschreibung | Risiko |
|
||||
|---|---|---|---|
|
||||
| 20 | 70 | Defender KB4052623 Update-Fehler (0x80240016) | Niedrig — Timing, Defender aktuell |
|
||||
| 10010 | 15 | DCOM Server Timeout | Niedrig — Windows-Hintergrund |
|
||||
| 7000 | 3 | Steam Service Start fehlgeschlagen | Niedrig — Race Condition beim Boot |
|
||||
| 7023 | 3 | Windows Modules Installer beendet mit Fehler | Mittel — Update-Abbrüche prüfen |
|
||||
| **6008** | **2** | **Unerwartetes Herunterfahren 2026-05-19 13:56** | **Mittel — einmaliger BSOD/Stromausfall** |
|
||||
| 7034 | 2 | MSI Center Service Absturz | Niedrig |
|
||||
|
||||
- **Kein Crash-Dump** vorhanden (`C:\Windows\Minidump` leer). Entweder ist kein BSOD gewesen (Stromausfall), oder Dump-Einstellungen schreiben nicht.
|
||||
- Empfehlung: Dump-Einstellungen auf "Kleiner Speicherauszug" oder "Vollständiger Speicherauszug" prüfen.
|
||||
|
||||
---
|
||||
|
||||
## 11. Homelab-Server (ausstehend)
|
||||
|
||||
**Status: NICHT DURCHGEFÜHRT**
|
||||
|
||||
SSH-Config ist leer — kein Host-Alias konfiguriert. Tailscale zeigt `kallilabcore` als aktiv auf `100.80.98.33` / `192.168.178.58`.
|
||||
|
||||
**Bitte bestätigen:**
|
||||
- SSH-User für Kallilabcore (wahrscheinlich `root`?)
|
||||
- Soll ich `ssh root@192.168.178.58` oder über Tailscale-IP verwenden?
|
||||
|
||||
Nach Bestätigung wird der Homelab-Teil nachgezogen und dieser Report ergänzt.
|
||||
|
||||
---
|
||||
|
||||
## 12. Gesamt-Findings (priorisiert)
|
||||
|
||||
### Kritisch / Handlungsbedarf vor nächster Partitionsarbeit
|
||||
| # | Befund | Begründung |
|
||||
|---|---|---|
|
||||
| K1 | WinRE ist Disabled (laut Doku) | Ohne WinRE kein automatisches Recovery. Muss aktiviert werden bevor weitere Disk-Ops. |
|
||||
| K2 | BitLocker-Status unbekannt (kein Admin) | C: und D: sollten verschlüsselt sein — aktuell Blind Spot. |
|
||||
|
||||
### Mittel / Zeitnah klären
|
||||
| # | Befund |
|
||||
|---|---|
|
||||
| M1 | Desktop-Redirect zeigt auf `D:\00_Inbox\Desktop`, Doku sagt `D:\Micha\Desktop` — Doku aktualisieren |
|
||||
| M2 | `E:\_Standalone` fehlt — Ordner anlegen oder aus Doku streichen |
|
||||
| M3 | SSH Private Key Permissions zu weit (Admins haben FullControl) |
|
||||
| M4 | Energieplan "Ausbalanciert" — für Gaming/Dev `Höchstleistung` empfohlen |
|
||||
| M5 | `SoftLanding\CreativeManagementTask` unbekannt — Quelle und Publisher prüfen |
|
||||
| M6 | Unerwartetes Herunterfahren 2026-05-19 — Ursache klären (Stromausfall? BSOD ohne Dump?) |
|
||||
| M7 | `D:\11_Bilder` hat ReadOnly-Attribut — Ursache und Auswirkung prüfen |
|
||||
|
||||
### Niedrig / Nice-to-have
|
||||
| # | Befund |
|
||||
|---|---|
|
||||
| N1 | SSH-Config leer — Host-Aliases anlegen |
|
||||
| N2 | Git commit.gpgsign nicht gesetzt — für GitOps-Commits empfohlen |
|
||||
| N3 | `D:\Micha\Videos` noch vorhanden (1 leere Datei) — bereinigen |
|
||||
| N4 | `G:\Apps`, `G:\Workspace` nicht in Doku — dokumentieren oder strukturieren |
|
||||
| N5 | `D:\WSL` nicht in Doku — erwähnen |
|
||||
| N6 | `D:\13_Musik` leer — Musik aus PostDelta-Backup nachziehen? |
|
||||
| N7 | OneDrive läuft (3 Tasks) — prüfen ob Sync für D:\10_Dokumente etc. gewünscht |
|
||||
| N8 | Energiesparmodus-Dump-Einstellungen prüfen (kein Dump für 6008-Event) |
|
||||
| N9 | `D:\DumpStack.log` ist ein Artefakt aus der alten D:-Nutzung, kann bereinigt werden |
|
||||
| N10 | Insider-Build 26200 — bewusste Entscheidung, aber dokumentieren |
|
||||
|
||||
---
|
||||
|
||||
## 13. Nächste Schritte (empfohlen, nicht ausgeführt)
|
||||
|
||||
1. **Homelab-SSH-Zugang bestätigen** und Homelab-Audit nachziehen.
|
||||
2. **WinRE aktivieren** (als Admin: `reagentc /enable`) — Voraussetzung für künftige Disk-Ops.
|
||||
3. **BitLocker Status prüfen** (als Admin: `Get-BitLockerVolume`) und ggf. für C:/D: aktivieren.
|
||||
4. **SSH-Key-Permissions straffen**: `icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "$env:USERNAME:F"` (als Admin).
|
||||
5. **`SoftLanding\CreativeManagementTask` untersuchen** — im Task Scheduler Quelle und Aktion prüfen.
|
||||
6. **Doku `laufwerks-neustruktur-2026-06-04.md`** unter Abschnitt Desktop-Befund korrigieren: Ist-Ziel `D:\00_Inbox\Desktop`.
|
||||
7. **`E:\_Standalone`** anlegen falls geplant.
|
||||
8. **`D:\Micha\Videos`** prüfen und ggf. löschen.
|
||||
9. **CrystalDiskInfo** für SSD Wear-Level öffnen und Werte dokumentieren.
|
||||
10. **Energieplan** auf `Höchstleistung` oder `Ultimative Leistung` umstellen.
|
||||
@@ -0,0 +1,564 @@
|
||||
# Windows neu aufsetzen: Masterplan ohne Datenverlust
|
||||
|
||||
Stand: 2026-05-07
|
||||
|
||||
Ziel: Windows sauber neu installieren, die Datenträgerstruktur bereinigen und wichtige Daten sicher erhalten.
|
||||
|
||||
Grundregel: Vor dem Löschen, Formatieren oder Neuinstallieren müssen mindestens zwei geprüfte Kopien der wichtigen Daten existieren.
|
||||
|
||||
## Aktueller Arbeitsstand
|
||||
|
||||
Stand: 2026-05-07, 15:00 Uhr
|
||||
|
||||
Erledigt:
|
||||
|
||||
- Backup-Ziel `H:\Windows-Neuaufsetzen-Backup` auf externer 8-TB-HDD erstellt.
|
||||
- Inventarlisten exportiert nach `H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen`.
|
||||
- Installierte Programme inventarisiert: 161 Eintraege.
|
||||
- Aktuelle Benutzerordner von `C:\Users\michi` gesichert: Desktop, Documents, Pictures, Videos, Downloads, Music.
|
||||
- `C:\Users\michi\.ssh` und `C:\Users\michi\.gitconfig` gesichert.
|
||||
- Alte Standardordner aus `D:\Users\Baerchen` gesichert, soweit vorhanden.
|
||||
- Persoenliche/auffaellige Ordner von `F:` gesichert: `BMW Leasing`, `Marina Handy 2025`, `Marina Handy Backup`.
|
||||
- Relevante Ordner von `G:` gesichert: `Gitea_Clone`, `open-webui`, `Treiber`.
|
||||
- WSL-Distributionen exportiert: `Ubuntu.tar`, `docker-desktop.tar`.
|
||||
- Browserprofile gesichert: Chrome und Edge.
|
||||
- Kritische Programmdaten zusaetzlich gesichert:
|
||||
- Banking4/Subsembly: `C:\Users\michi\AppData\Local\Subsembly`
|
||||
- WISO/Buhl: `C:\Users\michi\AppData\Local\Buhl`, `C:\Users\michi\AppData\Local\Buhl Data Service GmbH`, `C:\ProgramData\Buhl Data Service GmbH`
|
||||
- WISO-Steuerdateien: `C:\Users\michi\Documents\steuer`
|
||||
- Banking-Exporte vom Desktop: `C:\Users\michi\Desktop\Banking`
|
||||
- Registry-Exports fuer Subsembly und Microsoft Office erstellt; Buhl-Registry-Suchlisten erstellt.
|
||||
- Banking4-Lizenzdaten separat gesichert: `H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\keys_exporte\banking4_license_private.txt`.
|
||||
- Aktueller Banking4-Datentresor separat gesichert: `H:\Windows-Neuaufsetzen-Backup\07_Banking_Finanzen\Banking4_Datentresor_explizit\Mein Datentresor.sub`.
|
||||
- Office-Aktivierungsstatus exportiert: lokal als Microsoft 365/Office16 O365 Home Premium Grace/Notifications sichtbar, daher Microsoft-Konto/Abonnement manuell pruefen.
|
||||
- Lesbare Programmlisten erstellt:
|
||||
- `installierte_programme_lesbar.md`
|
||||
- `kritische_programme_lizenz_check.md`
|
||||
- UniGetUI/Keyfinder-Empfehlungen dokumentiert: `keyfinder_tools_recommendation.md`.
|
||||
- Robocopy-Summenzeilen geprueft: keine Kopierfehler in den bekannten Backup-Jobs.
|
||||
- Verifikationslisten erstellt:
|
||||
- `backup_verification_known_data.csv`
|
||||
- `backup_verification_browser_profiles.csv`
|
||||
|
||||
Noch offen:
|
||||
|
||||
- Manuelle Screenshots in `H:\Windows-Neuaufsetzen-Backup\14_Screenshots` ablegen.
|
||||
- BitLocker-Status mit Adminrechten pruefen. **Nachlauf 2026-06-05:** Status
|
||||
wurde geprueft; C:/D:/E:/G:/H: sind `FullyDecrypted`, Protection `Off`.
|
||||
**Entscheidung 2026-06-06:** BitLocker bleibt bewusst deaktiviert; Recovery
|
||||
laeuft ueber Veeam-Image, kein BitLocker-Key-Management.
|
||||
- Passwortmanager, 2FA-Recovery-Codes und Browser-Sync manuell pruefen. **Erledigt 2026-06-06 laut Operator-Bestaetigung.**
|
||||
- Banking4-Speicherort explizit pruefen. **Erledigt 2026-06-06 laut Operator-Bestaetigung.**
|
||||
- Banking4 im Programm selbst oeffnen und aktuellen Datentresor/Backup-Export bestaetigen. Der Key und der Datentresor sind bereits lokal auf H: gesichert. **Erledigt 2026-06-06 laut Operator-Bestaetigung.**
|
||||
- WISO Steuer 2026 oeffnen und Lizenz/Buhl-Konto sowie Speicherorte der Steuerdateien bestaetigen. **Erledigt 2026-06-06 laut Operator-Bestaetigung.**
|
||||
- Microsoft-Konto fuer M365 pruefen: Office-Webkonto/Abonnement, Installationsrecht, OneDrive-Sync. **Erledigt 2026-06-06 laut Operator-Bestaetigung.**
|
||||
- Technisches Nachinstallations-Inventar 2026-06-06 erledigt:
|
||||
`baerchen-app-license-readiness-2026-06-06.md`. Banking4, WISO Steuer
|
||||
2026, Microsoft 365/OneDrive und relevante Datenpfade sind lokal sichtbar;
|
||||
Konto-/App-Oeffnen-Checks wurden am 2026-06-06 durch den Operator
|
||||
bestaetigt ("alle Dienste laufen").
|
||||
- Optional Keyfinder-Lauf durchfuehren und Ergebnisse lokal auf H: speichern.
|
||||
- `G:\Ollama` bewusst entscheiden: nicht gesichert, ca. 40,9 GB lokale Modell-/Cache-Daten.
|
||||
- D:, F: und G: vor dem spaeteren Loeschen noch einmal in Ruhe final bestaetigen.
|
||||
|
||||
## Zielentscheidung: Neues Windows auf Datentraeger 0
|
||||
|
||||
Entscheidung vom 2026-05-07: Das neue Windows soll auf `Datentraeger 0` installiert werden.
|
||||
|
||||
Aktueller Zustand laut Datentraegerverwaltung:
|
||||
|
||||
| Datentraeger | Aktuelles Laufwerk | Groesse | Inhalt/Zweck |
|
||||
|---|---:|---:|---|
|
||||
| Datentraeger 0 | D: | ca. 167 GB | Alte Windows SSD |
|
||||
| Datentraeger 1 | E: | ca. 167 GB | Blizzard Games |
|
||||
| Datentraeger 2 | C: und F: | ca. 931 GB | aktuelles Windows + 980SSD-Partition |
|
||||
| Datentraeger 3 | G: | ca. 931 GB | M2 SSD / Daten |
|
||||
| Datentraeger 4 | H: | ca. 7,45 TB | externe Backup-HDD |
|
||||
|
||||
Bewertung:
|
||||
|
||||
- Machbar, wenn `Datentraeger 0` als reines Windows-/Programme-Laufwerk genutzt wird.
|
||||
- Nicht ideal fuer sehr viele Programme/Games, weil nur ca. 167 GB vorhanden sind.
|
||||
- Vorteil: Die aktuelle Windows-SSD auf `Datentraeger 2` bleibt waehrend der Migration zunaechst erhalten.
|
||||
- Wichtig: Bei der Installation duerfen ausschliesslich Partitionen auf `Datentraeger 0` geloescht werden.
|
||||
|
||||
Empfohlenes Installationsverhalten:
|
||||
|
||||
1. Externe Backup-HDD `H:` vor der Windows-Installation abziehen.
|
||||
2. Wenn praktisch moeglich: andere interne Datentraeger fuer die Installation abziehen oder im UEFI deaktivieren.
|
||||
3. Im Windows-Setup `Benutzerdefiniert` waehlen.
|
||||
4. `Datentraeger 0` anhand der Groesse ca. 167 GB identifizieren.
|
||||
5. Nur auf `Datentraeger 0` alle Partitionen loeschen:
|
||||
- 499 MB Wiederherstellung
|
||||
- 100 MB nicht zugeordnet bleibt egal
|
||||
- D: Alte Windows SSD
|
||||
- 640 MB Wiederherstellung
|
||||
6. Den dadurch komplett nicht zugeordneten Speicher auf `Datentraeger 0` auswaehlen.
|
||||
7. Windows installieren lassen.
|
||||
|
||||
Nicht loeschen:
|
||||
|
||||
- `Datentraeger 1` / E: Blizzard Games
|
||||
- `Datentraeger 2` / C: und F:
|
||||
- `Datentraeger 3` / G:
|
||||
- `Datentraeger 4` / H:
|
||||
|
||||
Nach der Installation:
|
||||
|
||||
- Bootreihenfolge im UEFI auf die neue Windows-Installation auf `Datentraeger 0` setzen.
|
||||
- Altes Windows auf `Datentraeger 2` erst loeschen, wenn das neue System mehrere Tage stabil laeuft.
|
||||
|
||||
## UniGetUI fuer den Wiederaufbau
|
||||
|
||||
UniGetUI ist fuer den Wiederaufbau sinnvoll, aber nicht fuer Lizenz-Keys.
|
||||
|
||||
Nutzen:
|
||||
|
||||
- Programme ueber WinGet/Scoop/Chocolatey/Pip/NPM suchen und installieren.
|
||||
- Updates zentral verwalten.
|
||||
- Paketlisten importieren/exportieren.
|
||||
|
||||
Grenzen:
|
||||
|
||||
- Banking4, WISO Steuer und Microsoft 365 wurden im `winget export` nicht als sauber wiederinstallierbare Pakete abgedeckt.
|
||||
- Lizenzkeys werden durch UniGetUI nicht gesichert.
|
||||
|
||||
Vorhanden:
|
||||
|
||||
- WinGet-Export: `H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\winget-export.json`
|
||||
|
||||
Nach Neuinstallation:
|
||||
|
||||
```powershell
|
||||
winget install --exact --id Devolutions.UniGetUI --source winget
|
||||
```
|
||||
|
||||
Danach kann die WinGet-Liste optional importiert werden:
|
||||
|
||||
```powershell
|
||||
winget import --import-file "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\winget-export.json" --accept-package-agreements --accept-source-agreements
|
||||
```
|
||||
|
||||
Empfehlung: Nicht alles blind importieren. Erst Basisprogramme installieren, dann die exportierte Liste als Orientierung nutzen.
|
||||
|
||||
## Laufwerksannahmen
|
||||
|
||||
Diese Zuordnung muss vor dem Start geprüft werden.
|
||||
|
||||
| Laufwerk | Vermutung | Behandlung |
|
||||
|---|---|---|
|
||||
| C: | aktuelles Windows | sichern, danach neu aufsetzen |
|
||||
| D: | alte Windows-SSD oder Altbestand | erst analysieren, nicht blind löschen |
|
||||
| E: | Blizzard / Games | wahrscheinlich neu ladbar, Saves prüfen |
|
||||
| F: | 980SSD, fast leer | liegt auf derselben physischen Samsung 980 PRO wie C: |
|
||||
| G: | M.2 SSD, stark belegt | erst analysieren, wichtige Daten sichern |
|
||||
| H: | externe 8-TB-HDD | Backup-Ziel |
|
||||
|
||||
Wichtige Erkenntnis aus dem Inventar vom 2026-05-07: `C:` und `F:` sind Partitionen auf derselben Samsung SSD 980 PRO 1TB. Wenn diese SSD als Ziel fuer die Neuinstallation genutzt wird, muss besonders sauber entschieden werden, welche Partitionen geloescht werden. `F:` ist kein eigener physischer Datentraeger.
|
||||
|
||||
## Phase 1: Backup-Struktur auf H: anlegen
|
||||
|
||||
Zielordner:
|
||||
|
||||
```text
|
||||
H:\Windows-Neuaufsetzen-Backup\
|
||||
|-- 01_Desktop
|
||||
|-- 02_Dokumente
|
||||
|-- 03_Bilder
|
||||
|-- 04_Videos
|
||||
|-- 05_Downloads_wichtig
|
||||
|-- 06_Projekte
|
||||
|-- 07_Banking_Finanzen
|
||||
|-- 08_Browser_Lesezeichen_Profile
|
||||
|-- 09_Programme_Settings_Lizenzen
|
||||
|-- 10_Games_Savegames
|
||||
|-- 11_Homelab_NAS_Doku
|
||||
|-- 12_Exportierte_Listen
|
||||
|-- 13_Treiber_Windows
|
||||
|-- 14_Screenshots
|
||||
|-- 15_Musik
|
||||
`-- 99_Unsortiert_von_D_F_G
|
||||
```
|
||||
|
||||
PowerShell:
|
||||
|
||||
```powershell
|
||||
$BackupRoot = "H:\Windows-Neuaufsetzen-Backup"
|
||||
$Folders = @(
|
||||
"01_Desktop",
|
||||
"02_Dokumente",
|
||||
"03_Bilder",
|
||||
"04_Videos",
|
||||
"05_Downloads_wichtig",
|
||||
"06_Projekte",
|
||||
"07_Banking_Finanzen",
|
||||
"08_Browser_Lesezeichen_Profile",
|
||||
"09_Programme_Settings_Lizenzen",
|
||||
"10_Games_Savegames",
|
||||
"11_Homelab_NAS_Doku",
|
||||
"12_Exportierte_Listen",
|
||||
"13_Treiber_Windows",
|
||||
"14_Screenshots",
|
||||
"15_Musik",
|
||||
"99_Unsortiert_von_D_F_G"
|
||||
)
|
||||
|
||||
New-Item -ItemType Directory -Force -Path $BackupRoot | Out-Null
|
||||
$Folders | ForEach-Object {
|
||||
New-Item -ItemType Directory -Force -Path (Join-Path $BackupRoot $_) | Out-Null
|
||||
}
|
||||
```
|
||||
|
||||
Stop-Punkt: H: ist sichtbar, beschreibbar und hat genug freien Speicher.
|
||||
|
||||
## Phase 2: Inventar exportieren
|
||||
|
||||
### Installierte Programme
|
||||
|
||||
```powershell
|
||||
$BackupRoot = "H:\Windows-Neuaufsetzen-Backup"
|
||||
|
||||
Get-ItemProperty `
|
||||
HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, `
|
||||
HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
|
||||
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
|
||||
Where-Object { $_.DisplayName } |
|
||||
Sort-Object DisplayName |
|
||||
Export-Csv "$BackupRoot\12_Exportierte_Listen\installierte_programme.csv" -NoTypeInformation -Encoding UTF8
|
||||
```
|
||||
|
||||
Optional zusätzlich:
|
||||
|
||||
```powershell
|
||||
winget list > "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\winget-list.txt"
|
||||
```
|
||||
|
||||
### Laufwerksübersicht
|
||||
|
||||
```powershell
|
||||
Get-Volume |
|
||||
Sort-Object DriveLetter |
|
||||
Select-Object DriveLetter, FileSystemLabel, FileSystem, Size, SizeRemaining |
|
||||
Export-Csv "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\laufwerke.csv" -NoTypeInformation -Encoding UTF8
|
||||
|
||||
Get-Disk |
|
||||
Select-Object Number, FriendlyName, SerialNumber, HealthStatus, Size, PartitionStyle |
|
||||
Export-Csv "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\datentraeger.csv" -NoTypeInformation -Encoding UTF8
|
||||
```
|
||||
|
||||
### Windows-Aktivierung
|
||||
|
||||
```powershell
|
||||
wmic path softwarelicensingservice get OA3xOriginalProductKey > "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\windows_oem_key.txt"
|
||||
```
|
||||
|
||||
Zusätzlich Screenshot speichern:
|
||||
|
||||
- Windows-Aktivierung
|
||||
- Datenträgerverwaltung
|
||||
- Apps & Features
|
||||
- Gerätemanager
|
||||
- Netzwerkadapter
|
||||
|
||||
Stop-Punkt: Programmliste, Laufwerkslisten und wichtige Screenshots liegen auf H:.
|
||||
|
||||
## Phase 3: Muss-Daten sichern
|
||||
|
||||
Die folgenden Daten haben Priorität.
|
||||
|
||||
### Benutzerordner
|
||||
|
||||
Passe `<Benutzername>` an.
|
||||
|
||||
```powershell
|
||||
$User = "C:\Users\<Benutzername>"
|
||||
$BackupRoot = "H:\Windows-Neuaufsetzen-Backup"
|
||||
|
||||
robocopy "$User\Desktop" "$BackupRoot\01_Desktop" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /TEE /LOG:"$BackupRoot\12_Exportierte_Listen\backup_desktop.log"
|
||||
robocopy "$User\Documents" "$BackupRoot\02_Dokumente" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /TEE /LOG:"$BackupRoot\12_Exportierte_Listen\backup_dokumente.log"
|
||||
robocopy "$User\Pictures" "$BackupRoot\03_Bilder" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /TEE /LOG:"$BackupRoot\12_Exportierte_Listen\backup_bilder.log"
|
||||
robocopy "$User\Videos" "$BackupRoot\04_Videos" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /TEE /LOG:"$BackupRoot\12_Exportierte_Listen\backup_videos.log"
|
||||
robocopy "$User\Music" "$BackupRoot\15_Musik" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /TEE /LOG:"$BackupRoot\12_Exportierte_Listen\backup_music.log"
|
||||
```
|
||||
|
||||
Downloads nicht blind komplett übernehmen. Erst wichtige Installer, PDFs, ZIPs, Rechnungen, Exporte und persönliche Dateien aussortieren.
|
||||
|
||||
### Kritische versteckte Daten
|
||||
|
||||
Prüfen und bei Bedarf sichern:
|
||||
|
||||
| Pfad | Warum |
|
||||
|---|---|
|
||||
| `C:\Users\<Benutzername>\.ssh` | SSH Keys |
|
||||
| `C:\Users\<Benutzername>\.gitconfig` | Git-Konfiguration |
|
||||
| `C:\Users\<Benutzername>\AppData\Roaming` | wichtige App-Einstellungen |
|
||||
| `C:\Users\<Benutzername>\AppData\Local` | Browserprofile, App-Daten |
|
||||
| `C:\ProgramData` | gemeinsame App-Daten, Lizenzen |
|
||||
| `C:\Users\<Benutzername>\Documents\Outlook-Dateien` | PST/Outlook-Archive |
|
||||
|
||||
Empfehlung: AppData nur sichern, später aber nicht komplett zurückkopieren.
|
||||
|
||||
## Phase 4: Spezialdaten prüfen
|
||||
|
||||
Diese Daten sind leicht zu übersehen.
|
||||
|
||||
- Banking4-Daten, Exporte, Tresore
|
||||
- Passwortmanager-Backups oder lokale Datenbanken
|
||||
- 2FA-Recovery-Codes
|
||||
- Browser-Lesezeichen-Export
|
||||
- lokale Spielstände ohne Cloud-Sync
|
||||
- Steuerunterlagen
|
||||
- Verträge und Rechnungen
|
||||
- GPG/PGP Keys
|
||||
- Zertifikate
|
||||
- VPN-Profile
|
||||
- API-Keys und `.env` Dateien
|
||||
- Homelab-, NAS- und Router-Dokumentation
|
||||
- Docker Desktop Daten
|
||||
- WSL-Distributionen
|
||||
- virtuelle Maschinen
|
||||
|
||||
### WSL exportieren, falls genutzt
|
||||
|
||||
```powershell
|
||||
wsl --list --verbose > "H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\wsl-distros.txt"
|
||||
wsl --export <DistroName> "H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\<DistroName>.tar"
|
||||
```
|
||||
|
||||
## Phase 5: D:, F: und G: analysieren
|
||||
|
||||
Nicht löschen. Erst suchen.
|
||||
|
||||
PowerShell:
|
||||
|
||||
```powershell
|
||||
$BackupRoot = "H:\Windows-Neuaufsetzen-Backup"
|
||||
$SearchRoots = @("D:\", "F:\", "G:\")
|
||||
$Patterns = @(
|
||||
"Users",
|
||||
"Windows.old",
|
||||
"Dokumente",
|
||||
"Documents",
|
||||
"Bilder",
|
||||
"Pictures",
|
||||
"Desktop",
|
||||
"Downloads",
|
||||
"Projekte",
|
||||
"Projects",
|
||||
"Backup",
|
||||
"NAS",
|
||||
"Git",
|
||||
"Python",
|
||||
"Banking",
|
||||
"Steuern",
|
||||
"Vertraege",
|
||||
"Verträge"
|
||||
)
|
||||
|
||||
foreach ($Root in $SearchRoots) {
|
||||
if (Test-Path $Root) {
|
||||
Get-ChildItem -Path $Root -Directory -ErrorAction SilentlyContinue |
|
||||
Select-Object FullName, LastWriteTime |
|
||||
Export-Csv "$BackupRoot\12_Exportierte_Listen\top_level_$($Root[0]).csv" -NoTypeInformation -Encoding UTF8
|
||||
|
||||
foreach ($Pattern in $Patterns) {
|
||||
Get-ChildItem -Path $Root -Recurse -Directory -ErrorAction SilentlyContinue -Filter "*$Pattern*" |
|
||||
Select-Object FullName, LastWriteTime |
|
||||
Export-Csv "$BackupRoot\12_Exportierte_Listen\fundstellen_$($Root[0])_$Pattern.csv" -NoTypeInformation -Encoding UTF8
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Alles Unklare zuerst nach `H:\Windows-Neuaufsetzen-Backup\99_Unsortiert_von_D_F_G\` sichern.
|
||||
|
||||
Stop-Punkt: Für D:, F: und G: ist klar, was wichtig ist, was neu installiert werden kann und was später gelöscht werden darf.
|
||||
|
||||
## Phase 6: Treiber und Installationsmedien vorbereiten
|
||||
|
||||
Vorher herunterladen und auf H: speichern:
|
||||
|
||||
- Windows 11 Media Creation Tool
|
||||
- Mainboard-Chipsatztreiber
|
||||
- LAN-Treiber
|
||||
- WLAN-Treiber
|
||||
- GPU-Treiber
|
||||
- Audio-Treiber
|
||||
- Bluetooth-Treiber, falls relevant
|
||||
- Drucker-/Scanner-Treiber, falls relevant
|
||||
|
||||
Minimum: LAN/WLAN-Treiber müssen offline verfügbar sein.
|
||||
|
||||
Stop-Punkt: Windows-USB-Stick funktioniert und Netzwerk-Treiber liegen auf H:.
|
||||
|
||||
## Phase 7: Backup prüfen
|
||||
|
||||
Pflichtprüfung:
|
||||
|
||||
- H: abziehen und wieder anschließen
|
||||
- mehrere Bilder öffnen
|
||||
- mehrere PDFs öffnen
|
||||
- Office-Dateien öffnen
|
||||
- Projektordner prüfen
|
||||
- Banking-/Finanzdaten prüfen
|
||||
- SSH-Key-Ordner prüfen
|
||||
- Programmliste öffnen
|
||||
- Robocopy-Logs auf Fehler prüfen
|
||||
|
||||
Optional Ordnergrößen vergleichen:
|
||||
|
||||
```powershell
|
||||
Get-ChildItem "C:\Users\<Benutzername>\Documents" -Recurse -Force -ErrorAction SilentlyContinue |
|
||||
Measure-Object -Property Length -Sum
|
||||
|
||||
Get-ChildItem "H:\Windows-Neuaufsetzen-Backup\02_Dokumente" -Recurse -Force -ErrorAction SilentlyContinue |
|
||||
Measure-Object -Property Length -Sum
|
||||
```
|
||||
|
||||
Go/No-Go:
|
||||
|
||||
- Go: wichtige Daten sind auf H: lesbar und mindestens die kritischsten Daten existieren zusätzlich auf NAS, Cloud oder zweiter Platte.
|
||||
- No-Go: unbekannte Daten auf D:, F: oder G:, fehlende Browser-/Passwort-/2FA-Sicherung, unklarer Banking4-Speicherort, kein funktionierender Netzwerk-Treiber.
|
||||
|
||||
## Phase 8: Ziel-SSD für Windows festlegen
|
||||
|
||||
Empfehlung:
|
||||
|
||||
- Eine schnelle, zuverlässige SSD als neues C:
|
||||
- Games, Daten und Projekte getrennt halten
|
||||
- Alte Windows-SSD erst später löschen
|
||||
|
||||
Vermutlicher Kandidat:
|
||||
|
||||
- Samsung SSD 980 PRO 1TB, falls sie bewusst komplett als neue System-SSD neu partitioniert werden soll
|
||||
- WDC WDS100T2B0C 1TB, falls die aktuelle M.2-Datenplatte nach vollstaendiger Sicherung als neues Systemlaufwerk dienen soll
|
||||
- nicht einfach `F:` auswaehlen, ohne die physische SSD-Struktur zu beachten, da `F:` und `C:` auf derselben SSD liegen
|
||||
|
||||
Vor der Installation ideal:
|
||||
|
||||
- Nur Ziel-SSD angeschlossen lassen
|
||||
- Backup-HDD H: abziehen
|
||||
- andere interne Laufwerke abziehen, falls praktisch möglich
|
||||
|
||||
Das verhindert, dass Windows Bootpartitionen auf dem falschen Datenträger ablegt.
|
||||
|
||||
## Phase 9: Windows neu installieren
|
||||
|
||||
Installation:
|
||||
|
||||
1. Vom Windows-USB-Stick booten.
|
||||
2. Benutzerdefinierte Installation wählen.
|
||||
3. Ziel-SSD eindeutig identifizieren.
|
||||
4. Nur auf der Ziel-SSD alte Partitionen löschen.
|
||||
5. Nicht zugeordneten Speicher auf der Ziel-SSD auswählen.
|
||||
6. Windows installieren.
|
||||
|
||||
Nicht anfassen:
|
||||
|
||||
- externe Backup-HDD
|
||||
- Datenlaufwerke
|
||||
- alte Windows-SSD, solange sie nicht final geprüft wurde
|
||||
|
||||
## Phase 10: Ersteinrichtung
|
||||
|
||||
Direkt nach der Installation:
|
||||
|
||||
- Windows Update vollständig laufen lassen
|
||||
- Chipsatztreiber installieren
|
||||
- GPU-Treiber installieren
|
||||
- LAN/WLAN prüfen
|
||||
- Windows-Aktivierung prüfen
|
||||
- Laufwerksbuchstaben sauber vergeben
|
||||
- Windows Defender und Firewall prüfen
|
||||
- BitLocker bewusst deaktiviert lassen (Entscheidung 2026-06-06)
|
||||
- Wiederherstellungspunkt erstellen
|
||||
|
||||
Basisprogramme:
|
||||
|
||||
- Browser
|
||||
- Passwortmanager
|
||||
- 7-Zip
|
||||
- Office oder LibreOffice
|
||||
- Banking4
|
||||
- Git
|
||||
- VS Code / Codex / Dev-Tools
|
||||
- Docker Desktop / WSL, falls benötigt
|
||||
- Trading-/Finanztools
|
||||
- Drucker/Scanner
|
||||
- Steam / Battle.net
|
||||
|
||||
## Phase 11: Daten kontrolliert zurückholen
|
||||
|
||||
Zuerst:
|
||||
|
||||
- Dokumente
|
||||
- Bilder
|
||||
- Projekte
|
||||
- Finanzen
|
||||
- Desktop
|
||||
- wichtige Downloads
|
||||
- SSH Keys
|
||||
- Browser-Lesezeichen
|
||||
|
||||
Danach gezielt:
|
||||
|
||||
- einzelne App-Konfigurationen
|
||||
- Spielstände
|
||||
- WSL-Distributionen
|
||||
- Docker-Daten
|
||||
- Outlook/PST
|
||||
|
||||
Nicht tun:
|
||||
|
||||
- `AppData` komplett zurückkopieren
|
||||
- alte Windows-Ordner zurückmischen
|
||||
- Programme aus alten Ordnern starten statt neu installieren
|
||||
|
||||
## Phase 12: Alte Datenträger bereinigen
|
||||
|
||||
Erst nach mehreren Tagen stabiler Nutzung:
|
||||
|
||||
- D: alte Windows-SSD final prüfen
|
||||
- alte Benutzerordner gezielt archivieren oder löschen
|
||||
- alte Windows-/Recovery-/EFI-Partitionen nur löschen, wenn sicher nicht davon gebootet wird
|
||||
- Games-Laufwerke neu strukturieren
|
||||
- Datenlaufwerke sinnvoll benennen
|
||||
|
||||
Zielstruktur:
|
||||
|
||||
| Laufwerk | Zweck |
|
||||
|---|---|
|
||||
| C: | Windows + Programme |
|
||||
| D: | Daten / Projekte |
|
||||
| E: | Games |
|
||||
| F: | Arbeits-SSD / schnelle Daten |
|
||||
| H: | Backup extern |
|
||||
|
||||
## Finale Checkliste vor dem Löschen
|
||||
|
||||
Status 2026-06-05: Diese Checkliste ist historisch fuer die Freigabe der
|
||||
Neuinstallation. Die technische Neuinstallation, Laufwerksbereinigung,
|
||||
WinRE-Pruefung und Veeam-Baseline sind in neueren Dokumenten nachgezogen.
|
||||
Status 2026-06-06: Passwortmanager/2FA, Banking4, WISO und Microsoft/M365
|
||||
wurden durch den Operator bestaetigt ("alle Dienste laufen").
|
||||
|
||||
- [ ] Backup-Struktur auf H: erstellt
|
||||
- [ ] Programmliste exportiert
|
||||
- [ ] Laufwerksliste exportiert
|
||||
- [ ] Windows-Aktivierung dokumentiert
|
||||
- [ ] Benutzerordner gesichert
|
||||
- [ ] Browser-Lesezeichen exportiert oder Sync geprüft
|
||||
- [x] Passwortmanager geprüft
|
||||
- [x] 2FA-Recovery-Codes gesichert
|
||||
- [ ] SSH/API/GPG/Zertifikate gesichert
|
||||
- [x] Banking4-Speicherort geprüft und gesichert
|
||||
- [ ] Homelab-/NAS-Doku gesichert
|
||||
- [ ] D:, F: und G: analysiert
|
||||
- [ ] Unklare Daten nach `99_Unsortiert_von_D_F_G` kopiert
|
||||
- [ ] LAN/WLAN-Treiber auf H: gespeichert
|
||||
- [ ] Windows-USB-Stick erstellt
|
||||
- [ ] Backup-Dateien stichprobenartig geöffnet
|
||||
- [ ] Kritische Daten zusätzlich auf NAS, Cloud oder zweiter Platte gesichert
|
||||
- [ ] Ziel-SSD eindeutig festgelegt
|
||||
|
||||
Erst wenn alle Punkte erledigt sind, ist die Neuinstallation freigegeben.
|
||||
Reference in New Issue
Block a user