Proxmox BS: Przywracanie plików z kopii zapasowej VM
Wprowadzenie
Ten poradnik wyjaśnia, jak używać Proxmox Backup Server do przywracania na poziomie plików z kopii zapasowej maszyny wirtualnej bez wdrażania całej maszyny. Dowiesz się, jak odzyskiwać pojedyncze pliki za pomocą przeglądarki plików kopii zapasowych Proxmox w interfejsie webowym Proxmox VE oraz jak wykonać odzyskiwanie plików Proxmox z poziomu wiersza poleceń za pomocą proxmox-backup-client. Ten sposób pracy jest przydatny, gdy trzeba przywrócić pojedyncze pliki zawarte w kopiach zapasowych Proxmox bez wykonywania pełnego przywracania maszyny wirtualnej.
Odbiorcy: administratorzy systemów na poziomie średniozaawansowanym
Szacowany czas: 20–40 minut
Cel końcowy: po ukończeniu tego poradnika będziesz w stanie przywracać wybrane pliki z kopii zapasowej maszyny wirtualnej w Proxmox Backup Server bez przywracania całej maszyny.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz:
- Działający host Proxmox VE ze skonfigurowanym magazynem Proxmox Backup Server.
- Proxmox Backup Server 3.x lub 4.x z istniejącym datastore.
- Ukończoną kopię zapasową maszyny wirtualnej zapisaną w datastore PBS.
- Dostęp do interfejsu webowego Proxmox VE z uprawnieniami do przeglądania kopii zapasowych i przywracania plików.
- Dostęp do powłoki (shell) hosta Proxmox VE dla metody CLI.
- Polecenie proxmox-backup-client dostępne na hoście Proxmox VE.
- Dostęp do powłoki jako root dla metody mapowania w CLI, ponieważ mapowanie urządzeń loop i montowanie systemów plików wymagają podwyższonych uprawnień.
- Plik klucza szyfrowania, jeśli kopia zapasowa maszyny wirtualnej korzysta z szyfrowania po stronie klienta.
- Podstawową wiedzę o systemach plików Linux, punktach montowania i magazynie kopii zapasowych Proxmox VE.
Interfejs webowy Proxmox VE jest preferowaną metodą w przypadku większości zadań polegających na odzyskiwaniu pojedynczych plików. Metoda CLI jest przydatna, gdy potrzebny jest dostęp przez powłokę, automatyzacja lub odzyskiwanie z węzła, na którym interfejs webowy jest niepraktyczny.
Krok 1: Poznaj opcje przywracania na poziomie plików
Proxmox Backup Server przechowuje kopie zapasowe maszyn wirtualnych Proxmox VE jako kopie obrazów dysków na poziomie bloków. Oznacza to, że kopia zapasowa maszyny wirtualnej zwykle zawiera pliki takie jak drive-scsi0.img.fidx, qemu-server.conf.blob i client.log.blob, a nie zwykłe drzewo katalogów.
W przypadku szczegółowego odzyskiwania plików w Proxmox VE masz do dyspozycji dwie praktyczne opcje:
- Użyć interfejsu webowego Proxmox VE do przeglądania snapshotu kopii zapasowej i pobierania plików.
- Użyć proxmox-backup-client map, aby zmapować obraz dysku maszyny wirtualnej z kopii zapasowej na lokalne urządzenie loop, a następnie zamontować system plików gościa w trybie tylko do odczytu.
Przycisk File Restore w Proxmox VE otwiera przeglądarkę plików dla zawartości kopii zapasowej. Polecenie proxmox-backup-client map mapuje obraz napędu kopii zapasowej maszyny wirtualnej na lokalne urządzenie loopback, a po zakończeniu odzyskiwania należy użyć unmap.
Nie montuj odzyskanego systemu plików maszyny wirtualnej w trybie odczytu i zapisu, jeśli nie rozumiesz w pełni związanego z tym ryzyka. Do odzyskiwania plików montuj system plików w trybie tylko do odczytu i kopiuj pliki na zewnątrz.
Krok 2: Przywróć pojedyncze pliki za pomocą interfejsu webowego Proxmox VE
Użyj tej metody, gdy chcesz w najprostszy sposób odzyskać wybrane pliki bez wdrażania całej maszyny wirtualnej.
Otwórz widok kopii zapasowych
- Zaloguj się do interfejsu webowego Proxmox VE.
- W drzewie nawigacji po lewej stronie wybierz maszynę wirtualną.
- Otwórz kartę Backup.
- Wybierz magazyn Proxmox Backup Server z selektora magazynów, jeśli w Twoim środowisku jest kilka magazynów kopii zapasowych.

Powinna pojawić się lista dostępnych snapshotów kopii zapasowych dla wybranej maszyny wirtualnej.
Otwórz przeglądarkę plików kopii zapasowych Proxmox
- Wybierz snapshot kopii zapasowej zawierający potrzebny plik.
- Kliknij File Restore.
- Poczekaj, aż Proxmox VE otworzy przeglądarkę plików kopii zapasowej.
- Rozwiń dysk maszyny wirtualnej zawierający system operacyjny gościa lub wolumin z danymi.

Przeglądasz teraz snapshoty kopii zapasowych za pośrednictwem interfejsu Proxmox VE. Ten widok obsługuje proces przywracania plików z Proxmox Backup Server i pozwala odzyskać wybrane dane bez pełnego przywracania maszyny wirtualnej.
Pobierz potrzebny plik
- Przejdź do katalogu zawierającego plik.
- Wybierz plik.
- Kliknij Download.
- Zapisz plik na swoim komputerze.

Wybrany plik powinien zostać pobrany przez przeglądarkę. To kończy przywracanie na poziomie plików z kopii zapasowej maszyny wirtualnej za pomocą przeglądarki.
Jeśli maszyna wirtualna ma wiele dysków, sprawdzaj kolejno każdy dysk w przeglądarce plików, aż znajdziesz właściwy system plików. Na przykład dysk systemu operacyjnego może mieć nazwę drive-scsi0, a dane aplikacji mogą znajdować się na drive-scsi1.
Krok 3: Przygotuj środowisko CLI
Użyj tej metody, gdy przywracasz dane z kopii zapasowych w datastore PBS z poziomu wiersza poleceń.
Zdefiniuj zmienne odzyskiwania
Uruchom poniższe polecenia na hoście Proxmox VE. Zastąp symbole zastępcze wartościami z Twojego środowiska.
export PBS_REPOSITORY="<PBS_USER>@<PBS_REALM>@<PBS_SERVER>:<DATASTORE>" export PBS_SNAPSHOT="vm/<VM_ID>/<SNAPSHOT_TIMESTAMP>" export PBS_ARCHIVE="drive-scsi0.img" export RESTORE_MOUNT="/mnt/pbs-file-restore" export RESTORE_TARGET="/root/restored-from-pbs" export PBS_PASSWORD="<PBS_USER_PASSWORD>" export PBS_FINGERPRINT="<PBS_SERVER_FINGERPRINT>"
Przykładowe wartości:
export PBS_REPOSITORY="root@[email protected]:backup" export PBS_SNAPSHOT="vm/101/2026-06-04T01:30:00Z" export PBS_ARCHIVE="drive-scsi0.img" export RESTORE_MOUNT="/mnt/pbs-file-restore" export RESTORE_TARGET="/root/restored-from-pbs" export PBS_PASSWORD="12345678" export PBS_FINGERPRINT="b1:89:bd:c9:b1:f8:33..."
Zmienne definiują repozytorium PBS, snapshot kopii zapasowej maszyny wirtualnej, archiwum dysku do zmapowania, tymczasowy punkt montowania oraz lokalny katalog docelowy odzyskiwania. Ustaw zmienne środowiskowe PBS_PASSWORD i PBS_FINGERPRINT. Odcisk palca (fingerprint) certyfikatu pobierzesz na Proxmox Backup Server, uruchamiając proxmox-backup-manager cert info.
Przy pierwszym połączeniu polecenie login interaktywnie prosi o potwierdzenie odcisku palca certyfikatu i podanie hasła. Bez tych zmiennych polecenia automatyczne kończą się błędem certificate validation failed, gdy brakuje odcisku palca, lub no password input mechanism available, gdy nie podano hasła.
Zaloguj się do Proxmox Backup Server
Uruchom polecenie logowania:
proxmox-backup-client login --repository "$PBS_REPOSITORY"
Oczekiwane dane wyjściowe:
Password:
Wprowadź hasło użytkownika PBS. Jeśli uwierzytelnienie się powiedzie, klient zapisuje tymczasowy ticket.
Jeśli używasz tokenu API, ustaw PBS_PASSWORD tylko na czas bieżącej sesji powłoki i usuń zmienną po zakończeniu odzyskiwania. Nie zapisuj sekretów tokenów w historii powłoki ani w skryptach, chyba że zabezpieczysz uprawnienia do pliku.
Krok 4: Zidentyfikuj snapshot kopii zapasowej maszyny wirtualnej i archiwum dysku
Wyświetl grupy kopii zapasowych w repozytorium PBS:
proxmox-backup-client list --repository "$PBS_REPOSITORY"
Przykładowe dane wyjściowe: tabela kopii zapasowych.
Wyświetl snapshoty grupy maszyny wirtualnej:
proxmox-backup-client snapshot list vm/<VM_ID> \ --repository "$PBS_REPOSITORY"
Przykładowe dane wyjściowe: tabela snapshotów.
Wyświetl pliki w wybranym snapshocie:
proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"
Przykładowe dane wyjściowe:
client.log.blob drive-scsi0.img.fidx index.json.blob qemu-server.conf.blob
Podczas mapowania archiwum dysku maszyny wirtualnej użyj nazwy archiwum bez sufiksu .fidx. Na przykład użyj drive-scsi0.img, a nie drive-scsi0.img.fidx.
Krok 5: Zmapuj dysk kopii zapasowej maszyny wirtualnej na urządzenie loop
Utwórz katalogi przywracania:
mkdir -p "$RESTORE_MOUNT" "$RESTORE_TARGET"
Zmapuj obraz dysku maszyny wirtualnej z PBS:
proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY"
Przykładowe dane wyjściowe:
/dev/loop0
Zapisz zwrócone urządzenie loop w zmiennej:
export LOOP_DEVICE="/dev/loop0"
Polecenie map mapuje obraz napędu kopii zapasowej maszyny wirtualnej na lokalne urządzenie loopback.
Używaj tej metody CLI wyłącznie z zaufanymi kopiami zapasowymi. Zamontowany system plików może zawierać złośliwe ścieżki, pliki specjalne lub nieoczekiwane metadane.
Krok 6: Sprawdź zmapowany dysk
Wyświetl partycje i systemy plików:
lsblk -f "$LOOP_DEVICE"
Przykładowe dane wyjściowe:
NAME FSTYPE LABEL UUID MOUNTPOINTS loop0 ├─loop0p1 vfat 1111-2222 └─loop0p2 ext4 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
Jeśli partycje się nie pojawiają, poproś jądro o odczytanie tablicy partycji:
partx -a "$LOOP_DEVICE"
Następnie sprawdź ponownie:
lsblk -f "$LOOP_DEVICE"
Powinieneś teraz zobaczyć urządzenia partycji, takie jak /dev/loop0p1 i /dev/loop0p2.
Systemy gościa z Linuksem zwykle używają ext4, XFS lub Logical Volume Manager. Systemy gościa z Windows zwykle używają NTFS. Interfejs webowy jest zazwyczaj prostszy do odzyskiwania plików z Windows, ponieważ obsługuje za Ciebie większą część procesu pracy z przeglądarką plików.
Krok 7: Zamontuj system plików gościa w trybie tylko do odczytu
Wybierz partycję zawierającą potrzebne pliki. W tym przykładzie systemem plików root Linuksa jest /dev/loop0p2.
Zamontuj ją w trybie tylko do odczytu:
mount -o ro /dev/loop0p2 "$RESTORE_MOUNT"
Oczekiwane dane wyjściowe: po pomyślnym zamontowaniu polecenie nie powinno zwrócić żadnych danych.
Sprawdź zamontowany system plików:
ls "$RESTORE_MOUNT"
Przykładowe dane wyjściowe:
bin boot etc home root usr var
Korzystasz teraz z wiersza poleceń, aby przywracać pojedyncze pliki zawarte w kopiach zapasowych Proxmox, bez przywracania całej maszyny wirtualnej.
Zamontuj wolumin LVM, jeśli gość używa LVM
Jeśli lsblk -f pokazuje LVM2_member, przeskanuj grupy woluminów:
vgscan --mknodes
Przykładowe dane wyjściowe:
Found volume group "ubuntu-vg" using metadata type lvm2
Aktywuj grupę woluminów:
vgchange -ay ubuntu-vg
Wyświetl woluminy logiczne:
lvs
Przykładowe dane wyjściowe:
LV VG Attr LSize ubuntu-lv ubuntu-vg -wi-a----- 50.00g
Dane wyjściowe lvs obejmują wszystkie woluminy logiczne wykryte na hoście Proxmox VE, a nie tylko grupę woluminów gościa, taką jak ubuntu-vg. Mogą również zawierać własne woluminy hypervisora z grupy woluminów pve, w tym root, swap, data oraz woluminy logiczne używane przez dyski maszyn wirtualnych.
Zamontuj wolumin logiczny w trybie tylko do odczytu:
mount -o ro /dev/ubuntu-vg/ubuntu-lv "$RESTORE_MOUNT"
Powinieneś teraz móc przeglądać przywrócony system plików gościa w $RESTORE_MOUNT.
Krok 8: Skopiuj wybrane pliki z kopii zapasowej
Utwórz lokalny katalog na odzyskane pliki:
mkdir -p "$RESTORE_TARGET"
Skopiuj jeden plik:
cp -a "$RESTORE_MOUNT/etc/hostname" "$RESTORE_TARGET/"
Oczekiwane dane wyjściowe: po pomyślnym skopiowaniu pliku polecenie nie powinno zwrócić żadnych danych.
Skopiuj katalog:
rsync -a "$RESTORE_MOUNT/var/www/html/" \ "$RESTORE_TARGET/html/"
Oczekiwane dane wyjściowe: po pomyślnym skopiowaniu katalogu polecenie nie powinno zwrócić żadnych danych.
Zweryfikuj skopiowane pliki:
find "$RESTORE_TARGET" -maxdepth 3 -type f
Przykładowe dane wyjściowe:
/root/restored-from-pbs/hostname /root/restored-from-pbs/html/index.html
Używaj rsync -a zamiast zwykłego cp, gdy chcesz zachować uprawnienia, właścicieli, znaczniki czasu i dowiązania symboliczne w odzyskanej kopii.
Krok 9: Przywróć pliki z kopii zapasowej PBS opartej na plikach za pomocą pxar
Ten krok jest opcjonalny w przypadku przywracania plików z maszyny wirtualnej, ale przydaje się, gdy snapshot kopii zapasowej zawiera archiwum plików, takie jak root.pxar.
Wyświetl pliki w snapshocie:
proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"
Przykładowe dane wyjściowe:
catalog.pcat1.didx root.pxar.didx
Otwórz interaktywną powłokę przywracania:
proxmox-backup-client catalog shell "$PBS_SNAPSHOT" root.pxar \ --repository "$PBS_REPOSITORY"
W powłoce wyświetl katalogi:
pxar:/ > ls
Przykładowe dane wyjściowe:
etc home root var
Wybierz plik:
pxar:/ > select /etc/hostname
Przywróć wybrane pliki:
pxar:/ > restore-selected /root/restored-from-pxar
Zamknij powłokę:
pxar:/ > exit
Metodę pxar stosuj do kopii zapasowych opartych na plikach. Metodę map stosuj do kopii zapasowych obrazów maszyn wirtualnych.
Krok 10: Wyczyść sesję przywracania CLI
Odmontuj system plików gościa:
umount "$RESTORE_MOUNT"
Jeśli aktywowano grupę woluminów LVM, dezaktywuj ją po odmontowaniu:
vgchange -an ubuntu-vg
Usuń mapowania partycji, jeśli zostały utworzone za pomocą partx:
partx -d "$LOOP_DEVICE"
Usuń mapowanie urządzenia loop PBS:
proxmox-backup-client unmap "$LOOP_DEVICE"
Oczekiwane dane wyjściowe: po pomyślnym usunięciu mapowania urządzenia loop polecenie nie powinno zwrócić żadnych danych.
Usuń tymczasowe katalogi montowania, jeśli nie są już potrzebne:
rmdir "$RESTORE_MOUNT"
Usuń wrażliwe zmienne środowiskowe:
unset PBS_PASSWORD unset PBS_REPOSITORY unset PBS_SNAPSHOT unset PBS_ARCHIVE unset LOOP_DEVICE
Lokalne środowisko odzyskiwania zostało wyczyszczone.
Weryfikacja
Sprawdź, czy przywrócone pliki istnieją:
ls -la "$RESTORE_TARGET"
Przykładowe dane wyjściowe:
total 12 drwxr-xr-x 3 root root 4096 Jun 4 02:10 . drwx------ 10 root root 4096 Jun 4 02:10 .. -rw-r--r-- 1 root root 12 Jun 4 01:00 hostname
W razie potrzeby porównaj zawartość plików:
cat "$RESTORE_TARGET/hostname"
Przykładowe dane wyjściowe:
app-vm-01
Upewnij się, że przywrócona kopia znajduje się poza zamontowanym systemem plików kopii zapasowej:
realpath "$RESTORE_TARGET"
Przykładowe dane wyjściowe:
/root/restored-from-pbs
Sprawdź, czy po czyszczeniu nie pozostały żadne mapowania loop PBS:
losetup -a | grep pbs-loopdev || true
Oczekiwane dane wyjściowe: jeśli polecenie nie zwraca żadnych danych, nie pozostały żadne mapowania loop proxmox-backup.
Cofanie zmian
Ten poradnik nie modyfikuje oryginalnej kopii zapasowej maszyny wirtualnej ani datastore PBS. Metoda z interfejsem webowym pobiera pliki wyłącznie na Twój komputer. Metoda CLI tworzy tymczasowe mapowania loop, punkty montowania i lokalne kopie odzyskanych plików.
Ta sekcja stanowi alternatywę dla Kroku 10 w przypadku wcześniejszego zakończenia procedury. Nie wykonuj jej po ukończeniu Kroku 10.
Aby cofnąć zmiany środowiska odzyskiwania CLI, uruchom:
umount "$RESTORE_MOUNT" proxmox-backup-client unmap "$LOOP_DEVICE" rm -rf "$RESTORE_TARGET" rmdir "$RESTORE_MOUNT"
Polecenie rm -rf "$RESTORE_TARGET" usuwa odzyskaną kopię z hosta Proxmox VE. Nie uruchamiaj go, jeśli nadal potrzebujesz przywróconych plików.
Jeśli aktywowano grupę woluminów LVM gościa, dezaktywuj ją:
vgchange -an ubuntu-vg
Jeśli mapowania partycji dodano ręcznie, usuń je:
partx -d "$LOOP_DEVICE"
Rozwiązywanie problemów
Brak przycisku File Restore
Upewnij się, że wybrano snapshot kopii zapasowej w magazynie PBS, a nie w lokalnym magazynie ISO lub obrazów. Sprawdź również, czy Twoje konto ma wystarczające uprawnienia do przeglądania zawartości kopii zapasowych.
Webowa przeglądarka plików nie może odczytać systemu plików
System plików gościa może być nieobsługiwany, zaszyfrowany wewnątrz maszyny wirtualnej, uszkodzony lub znajdować się wewnątrz LVM, RAID albo innej warstwy magazynu. Spróbuj metody CLI, aby ręcznie sprawdzić partycje za pomocą lsblk, blkid, vgscan i narzędzi specyficznych dla danego systemu plików.
proxmox-backup-client map kończy się błędami uwierzytelniania
Sprawdź ciąg repozytorium i dane uwierzytelniające:
echo "$PBS_REPOSITORY" proxmox-backup-client login --repository "$PBS_REPOSITORY"
Oczekiwany format repozytorium:
<PBS_USER>@<PBS_REALM>@<PBS_SERVER>:<DATASTORE>
Jeśli używasz namespace, dodaj --ns do odpowiednich poleceń proxmox-backup-client.
Kopia zapasowa jest zaszyfrowana
Podaj plik klucza podczas mapowania kopii zapasowej:
proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY" \ --keyfile <PATH_TO_ENCRYPTION_KEY>
Przykładowe dane wyjściowe:
/dev/loop0
Urządzenia partycji się nie pojawiają
Uruchom:
partx -a "$LOOP_DEVICE" lsblk -f "$LOOP_DEVICE"
Jeśli dysk używa LVM, uruchom:
vgscan --mknodes lvs
Jeśli dysk używa programowego RAID, ZFS wewnątrz gościa lub szyfrowania całego dysku, użyj odpowiednich narzędzi magazynu gościa i w miarę możliwości montuj odzyskane pliki w trybie tylko do odczytu.
Montowanie kończy się błędem z powodu nieprawidłowego typu systemu plików
Sprawdź typ systemu plików:
blkid
Przykładowe dane wyjściowe:
/dev/loop0p2: UUID="..." TYPE="ext4"
Następnie w razie potrzeby zamontuj z właściwym typem:
mount -t ext4 -o ro /dev/loop0p2 "$RESTORE_MOUNT"
Kopiowanie plików zachowuje nieprawidłowego właściciela
Podczas kopiowania plików jako root z zamontowanego systemu plików gościa informacje o właścicielu mogą odwoływać się do numerycznych identyfikatorów użytkowników z systemu gościa. Jest to zachowanie oczekiwane. Użyj rsync -a, aby zachować metadane do późniejszej analizy, lub kopiuj bez zachowywania właściciela, jeśli potrzebujesz tylko zawartości plików.
Podsumowanie
Przywróciłeś pojedyncze pliki z kopii zapasowej maszyny wirtualnej w Proxmox Backup Server bez wdrażania całej maszyny. Metoda z interfejsem webowym jest najszybszą drogą w przypadku większości zadań związanych z przywracaniem plików z Proxmox Backup Server, natomiast metoda CLI zapewnia precyzyjną kontrolę przy zaawansowanym odzyskiwaniu plików w Proxmox i analizie systemów plików. W codziennej pracy korzystaj najpierw z procesu File Restore w Proxmox VE, a proxmox-backup-client map stosuj wtedy, gdy potrzebujesz głębszego odzyskiwania z poziomu wiersza poleceń z datastore PBS.
Następne kroki
Rozważ udokumentowanie wewnętrznej procedury odzyskiwania, uwzględniając dokładne nazwy repozytoriów PBS, namespace, identyfikatory maszyn wirtualnych, lokalizację przechowywania klucza szyfrowania oraz listę kontrolną weryfikacji przywracania. Możesz także regularnie testować przywracanie na poziomie plików w ramach weryfikacji kopii zapasowych, ponieważ kopia zapasowa jest użyteczna tylko wtedy, gdy można z niej odzyskać potrzebne dane.
Wersja dokumentu: 1.0
Ostatnia aktualizacja: czerwiec 2026
Właściciel: Zespół dokumentacji technicznej