Linux und Windows HelpDesk

Proxmox VM-Backup mounten.

Manchmal kann es vorkommen, dass man aus einem Proxmox VM-Backup, dass man hoffentlich regelmäßig durchführen lässt, nur einzelne Dateien benötigt.
Wenn man einmal weiß wie es geht, ist es im Grunde ganz einfach.

Zunächst entpackt man das Backup-Archiv an einen Ort seiner Wahl.
Quellpfad und Dateiname müssen natürlich an die jeweiligen Gegebenheiten angepasst werden und das Zielverzeichnis muss unabhängig vom verwendeten Kompressionsverfahren bereits vorhanden sein.

Verwendet man gzip-Archive sieht der Aufruf so aus.

# gzip -dc /mnt/sdb/dump/vzdump-qemu-100-2019_07_26-04_00_02.vma.gz > ./restore/vzdump-qemu-100-2019_07_26-04_00_02.vma

Die Option "c" gibt an, dass das Archiv erhalten bleiben soll.

Verwendet man das Kompressionsverfahren Zstandard (zstd) sieht der Befehl so aus.

# zstd -d /mnt/sdb/dump/vzdump-qemu-100-2019_07_26-04_00_02.vma.zst -o ./restore/vzdump-qemu-100-2019_07_26-04_00_02.vma

Nun muss das vma Archiv ebenfalls noch entpackt werden um eine raw Datei zu erhalten.

# vma extract ./restore/vzdump-qemu-100-2019_07_26-04_00_02.vma -v ./restore/vm-100

Nach dem entpacken lässt man sich den Inhalt anzeigen.

# ls -la ./restore/vm-100
-rw-r--r-- 1 root root 34359738368 Jul 27 14:29 disk-drive-scsi0.raw
-rw-r--r-- 1 root root         954 Jul 27 14:29 qemu-server.conf

Interessant ist dabei nur der Name des Laufwerkes, welches gemountet werden soll.
Man lässt sich nun die einzelnen Partitionen des Laufwerks mit fdisk anzeigen, um zu wissen, welche man mounten muss.

# fdisk -l ./restore/vm-100/disk-drive-scsi0.raw
Disk ./restore/vm-100/disk-drive-scsi0.raw: 32 GiB, 34359738368 bytes, 67108864 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BE6D1063-FC6A-42E9-A221-AABDB6B71C16

Device Start End Sectors Size Type
./restore/vm-100/disk-drive-scsi0.raw1 2048 100351 98304 48M Linux filesystem
./restore/vm-100/disk-drive-scsi0.raw2 100352 2197503 2097152 1G Linux swap
./restore/vm-100/disk-drive-scsi0.raw3 2197504 67106815 64909312 31G Linux filesystem

Altmodisch aber bewährt, Boot, Swap und Root Partition.
Nun soll die Root Partiton gemountet werden.
Zu beachten ist, dass je nach der zu mountender Partition, deren Startsektor im Mountbefehl angegeben werden muss. Zudem muss die Sektorgröße (Sector size) angegeben werden. Wenn noch nicht geschehen, wird vorher das Zielverzeichnis erstellt.

# mkdir /mnt/vm-100
# mount ./restore/vm-100/disk-drive-scsi0.raw -o offset=$((2197504*512)) /mnt/vm-100

Damit ist die Root Partition des Backup unter /mnt/vm-100 gemountet und man kann ganz normal damit Arbeiten.