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-2022_04_22-04_00_00.vma.gz > ./restore/vzdump-qemu-100-2022_04_22-04_00_00.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-2022_04_22-04_00_00.vma.zst -o ./restore/vzdump-qemu-100-2022_04_22-04_00_00.vma

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

# vma extract ./restore/vzdump-qemu-100-2022_04_22-04_00_00.vma -v ./restore/vm-100

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

# ls -la ./restore/vm-100
insgesamt 3558976
drwxr-xr-x 2 root root        4096 22. Apr 09:50 .
drwx------ 3 root root        4096 22. Apr 09:50 ..
-rw-r--r-- 1 root root 34359738368 22. Apr 09:50 disk-drive-scsi0.raw
-rw-r--r-- 1 root root        1285 22. Apr 09:50 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 anzeigen, um zu wissen, welche man mounten muss.
Ab Proxmox 7 ist standardmäßig gdisk installiert, bei vorherigen Versionen fdisk. Die Aufrufoptionen sind bei gdisk und fdisk identisch.

# gdisk -l ./restore/vm-100/disk-drive-scsi0.raw
GPT fdisk (gdisk) version 1.0.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk ./restore/vm-100/disk-drive-scsi0.raw: 67108864 sectors, 32.0 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): BE6D1063-FC6A-42E9-A221-AABDB6B71C16
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 67108830
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          264191   128.0 MiB   8300  boot
   2          264192         2361343   1024.0 MiB  8200  swap
   3         2361344        67106815   30.9 GiB    8300  root

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=$((2361344*512)) /mnt/vm-100

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