Files
homelab-infra/ops/windows-reinstall/docs/windows-neuaufsetzen-masterplan.md
T
2026-05-31 22:53:10 +02:00

551 lines
18 KiB
Markdown

# 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.
- Passwortmanager, 2FA-Recovery-Codes und Browser-Sync manuell pruefen.
- Banking4-Speicherort explizit pruefen.
- Banking4 im Programm selbst oeffnen und aktuellen Datentresor/Backup-Export bestaetigen. Der Key und der Datentresor sind bereits lokal auf H: gesichert.
- WISO Steuer 2026 oeffnen und Lizenz/Buhl-Konto sowie Speicherorte der Steuerdateien bestaetigen.
- Microsoft-Konto fuer M365 pruefen: Office-Webkonto/Abonnement, Installationsrecht, OneDrive-Sync.
- 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 aktivieren oder deaktiviert lassen
- 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
- [ ] Backup-Struktur auf H: erstellt
- [ ] Programmliste exportiert
- [ ] Laufwerksliste exportiert
- [ ] Windows-Aktivierung dokumentiert
- [ ] Benutzerordner gesichert
- [ ] Browser-Lesezeichen exportiert oder Sync geprüft
- [ ] Passwortmanager geprüft
- [ ] 2FA-Recovery-Codes gesichert
- [ ] SSH/API/GPG/Zertifikate gesichert
- [ ] 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.