Cover Image

Hvordan få tak i dataene sine fra en delvis korrupt .VHDX-fil

 Fri 2024-10-11    Linux

Hvis man av en eller annen grunn skulle finne seg selv i en situasjon der man har en VHDX-fil som ikke lenger kan mountes i Windows eller henges på en VM i Hyper-V, så finnes det en løsning.

7-zip.

7-zip er et fantastisk program som kan åpne de mest utrolige ting, deriblant VHDX-diskfiler som Windows ellers ikke tror på at funker.

Jeg hadde for en tid tilbake et problem der webserveren min ikke lenger fungerte, og fikk nylig tilbake diskfilen, men den kunne ikke brukes som beskrevet over. Jeg åpnet så filen i 7-zip, som kunne melde at den inneholdt en fil ved navn 0.ufs, og identifiserte dette som et FreeBSD UFS-filsystem.

Jeg pakket ut filen og prøvde å rename denne til .vhdx, men det funket jo såklart heller ikke, siden det ikke er en vhdx-fil.

Løsningen var å mounte den i Linux. Jeg bootet Linux Mint LiveCD (som jeg vanligvis gjør, siden det funker så bra hver gang), og hamret inn følgende kommandoer:

Pakk ut vhdx-filen (eller bruk den som allerede var utpakket fra testingen tidligere) og gi den et mer fornuftig navn:

# 7z x home.vhdx # mv 0.ufs home.ufs

Lag en mappe et sted der filen kan mountes:

# mkdir /mnt/ufs

Last inn ufs-driver:

# modprobe ufs

Mount diskfilen:

# mount -r -t ufs -o ufstype=ufs2 0.ufs /mnt/ufs

Parametrene her betyr:

-r: read-only (vi vil ikke skrive til filsystemet og potensielt ødelegge noe)

-t ufs: type UFS/UFS2/FFS (NetBSD/FreeBSD/OpenBSD, respektivt)

-o ufstype=ufs2: Siden dette var et UFS2-filsystem fra FreeBSD, spesifiserer vi dette

home.ufs: filen vi mounter

/mnt/ufs: der vi mounter den

Og vips, så hadde jeg tilgang til filsystemet og kunne kopiere ut alle dataene mine. Nice.