EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Proxmox BS: Восстановление файлов из бэкапа ВМ

Введение

В этом руководстве объясняется, как использовать Proxmox Backup Server для восстановления на уровне файлов из резервной копии VM без развертывания всей виртуальной машины. Вы узнаете, как извлекать отдельные файлы через файловый браузер резервных копий Proxmox в веб-интерфейсе Proxmox VE и как выполнять восстановление файлов Proxmox из командной строки с помощью proxmox-backup-client. Этот рабочий процесс полезен, когда вам нужно восстановить отдельные файлы, содержащиеся в резервных копиях Proxmox, но вы не хотите выполнять полное восстановление резервной копии VM.

Целевая аудитория: системные администраторы среднего уровня
Расчетное время: 20-40 минут
Итоговая цель: к концу этого руководства вы сможете восстанавливать конкретные файлы из резервной копии VM в Proxmox Backup Server без восстановления всей VM.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Рабочий хост Proxmox VE с настроенным хранилищем Proxmox Backup Server.
  • Proxmox Backup Server 3.x или 4.x с существующим хранилищем данных.
  • Завершенная резервная копия VM, сохраненная в хранилище данных PBS.
  • Доступ к веб-интерфейсу Proxmox VE с правами для просмотра резервных копий и восстановления файлов.
  • Доступ к shell на хосте Proxmox VE для метода CLI.
  • Команда proxmox-backup-client, доступная на хосте Proxmox VE.
  • Root-доступ к shell для метода сопоставления через CLI, потому что сопоставление loop-устройств и монтирование файловых систем требуют повышенных прав.
  • Файл ключа шифрования, если резервная копия VM использует клиентское шифрование.
  • Базовые знания файловых систем Linux, точек монтирования и хранилищ резервных копий Proxmox VE.

Info

Веб-интерфейс Proxmox VE является предпочтительным методом для большинства задач восстановления одного файла. Метод CLI полезен, когда вам нужен доступ через shell, автоматизация или восстановление с узла, где веб-интерфейс непрактичен.

Шаг 1: Разберитесь с вариантами восстановления на уровне файлов

Proxmox Backup Server хранит резервные копии виртуальных машин Proxmox VE как резервные копии дисковых образов на блочном уровне. Это означает, что резервная копия VM обычно содержит такие файлы, как drive-scsi0.img.fidx, qemu-server.conf.blob и client.log.blob, а не обычное дерево каталогов.

Для рабочих процессов детального восстановления файлов Proxmox VE есть два практических варианта:

  • Использовать веб-интерфейс Proxmox VE, чтобы просмотреть снимок резервной копии и скачать файлы.
  • Использовать proxmox-backup-client map, чтобы сопоставить образ диска VM из резервной копии с локальным loop-устройством, а затем смонтировать гостевую файловую систему только для чтения.

Кнопка File Restore в Proxmox VE открывает файловый браузер для содержимого резервной копии. Команда proxmox-backup-client map сопоставляет образ диска резервной копии VM с локальным loopback-устройством, после восстановления за ней должна следовать команда unmap.

Warning

Не монтируйте восстановленную файловую систему VM в режиме чтения и записи, если вы полностью не понимаете риск. Для восстановления файлов монтируйте файловую систему только для чтения и копируйте файлы наружу.

Шаг 2: Восстановите отдельные файлы через веб-интерфейс Proxmox VE

Используйте этот метод, когда вам нужен самый простой способ извлечь конкретные файлы без развертывания всей VM.

Откройте представление Backup

  1. Войдите в веб-интерфейс Proxmox VE.
  2. В левом дереве навигации выберите VM.
  3. Откройте вкладку Backup.
  4. Выберите хранилище Proxmox Backup Server в селекторе хранилища, если в вашей среде есть несколько хранилищ резервных копий.

Вы должны увидеть список доступных снимков резервных копий для выбранной VM.

Откройте файловый браузер резервных копий Proxmox

  1. Выберите снимок резервной копии, который содержит нужный файл.
  2. Нажмите File Restore.
  3. Подождите, пока Proxmox VE откроет файловый браузер резервной копии.
  4. Разверните диск VM, который содержит гостевую операционную систему или том с данными.

Теперь вы должны просматривать снимки резервных копий через интерфейс Proxmox VE. Это представление позволяет выполнять операции восстановления файлов Proxmox Backup Server без полного восстановления резервной копии VM.

Скачайте нужный файл

  1. Перейдите в каталог, который содержит файл.
  2. Выберите файл.
  3. Нажмите Download.
  4. Сохраните файл на свою рабочую станцию.

Вы должны получить выбранный файл через браузер. На этом восстановление на уровне файлов из резервной копии VM через браузер завершено.

Info

Если у VM несколько дисков, проверяйте каждый диск в файловом браузере, пока не найдете нужную файловую систему. Например, диск операционной системы может быть drive-scsi0, а данные приложения могут находиться на drive-scsi1.

Шаг 3: Подготовьте среду CLI

Используйте этот метод, когда вам нужны рабочие процессы восстановления данных из хранилища данных PBS через командную строку.

Определите переменные восстановления

Выполните следующие команды на хосте Proxmox VE. Замените заполнители значениями из вашей среды.

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>"

Примеры значений:

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..."

Переменные определяют репозиторий PBS, снимок резервной копии VM, архив диска для сопоставления, временную точку монтирования и локальный целевой каталог восстановления. Задайте переменные окружения PBS_PASSWORD и PBS_FINGERPRINT. Чтобы получить отпечаток сертификата на Proxmox Backup Server, выполните команду proxmox-backup-manager cert info.

При первом подключении команда login в интерактивном режиме запрашивает подтверждение отпечатка сертификата и ввод пароля. Без этих переменных автоматизированные команды завершаются с ошибкой certificate validation failed, если не указан отпечаток сертификата, или no password input mechanism available, если не указан пароль.

Войдите в Proxmox Backup Server

Выполните команду входа:

proxmox-backup-client login --repository "$PBS_REPOSITORY"

Ожидаемый вывод:

Password:

Введите пароль пользователя PBS. Если аутентификация пройдет успешно, клиент сохранит временный ticket.

Tip

Если вы используете API-токен, задавайте PBS_PASSWORD только для текущей shell-сессии и сбрасывайте его после восстановления. Не храните секреты токенов в истории shell или скриптах, если вы не защищаете права доступа к файлу.

Шаг 4: Определите снимок резервной копии VM и архив диска

Выведите список групп резервных копий в репозитории PBS:

proxmox-backup-client list --repository "$PBS_REPOSITORY"

Пример ожидаемого вывода: таблица групп.

Выведите список снимков для группы VM:

proxmox-backup-client snapshot list vm/<VM_ID> \ --repository "$PBS_REPOSITORY"

Пример ожидаемого вывода: таблица снимков.

Выведите список файлов в выбранном снимке:

proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"

Пример ожидаемого вывода:

client.log.blob drive-scsi0.img.fidx index.json.blob qemu-server.conf.blob

Info

При сопоставлении архива диска VM используйте имя архива без суффикса .fidx. Например, используйте drive-scsi0.img, а не drive-scsi0.img.fidx.

Шаг 5: Сопоставьте диск резервной копии VM с loop-устройством

Создайте каталоги восстановления:

mkdir -p "$RESTORE_MOUNT" "$RESTORE_TARGET"

Сопоставьте образ диска VM из PBS:

proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY"

Пример ожидаемого вывода:

/dev/loop0

Сохраните возвращенное loop-устройство в переменной:

export LOOP_DEVICE="/dev/loop0"

Команда map сопоставляет образ диска резервной копии VM с локальным loopback-устройством.

Warning

Используйте этот метод CLI только с доверенными резервными копиями. Смонтированная файловая система может содержать вредоносные пути, специальные файлы или неожиданные метаданные.

Шаг 6: Проверьте сопоставленный диск

Выведите список разделов и файловых систем:

lsblk -f "$LOOP_DEVICE"

Пример ожидаемого вывода:

NAME FSTYPE LABEL UUID MOUNTPOINTS loop0 ├─loop0p1 vfat 1111-2222 └─loop0p2 ext4 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

Если разделы не появляются, попросите ядро прочитать таблицу разделов:

partx -a "$LOOP_DEVICE"

Затем проверьте еще раз:

lsblk -f "$LOOP_DEVICE"

Теперь вы должны увидеть устройства разделов, такие как /dev/loop0p1 и /dev/loop0p2.

Info

Гостевые Linux-системы часто используют ext4, XFS или Logical Volume Manager. Гостевые Windows-системы часто используют NTFS. Веб-интерфейс обычно проще для восстановления файлов Windows, потому что он берет на себя большую часть рабочего процесса файлового браузера.

Шаг 7: Смонтируйте гостевую файловую систему только для чтения

Выберите раздел, который содержит нужные файлы. В этом примере корневая файловая система Linux находится в /dev/loop0p2.

Смонтируйте ее только для чтения:

mount -o ro /dev/loop0p2 "$RESTORE_MOUNT"

Ожидаемый вывод: Команда не должна возвращать вывод при успешном монтировании.

Проверьте смонтированную файловую систему:

ls "$RESTORE_MOUNT"

Пример ожидаемого вывода:

bin boot etc home root usr var

Теперь вы выполняете восстановление отдельных файлов Proxmox через командную строку без восстановления всей VM.

Смонтируйте LVM-том, если гостевая система использует LVM

Если lsblk -f показывает LVM2_member, выполните сканирование volume group:

vgscan --mknodes

Пример ожидаемого вывода:

Found volume group "ubuntu-vg" using metadata type lvm2

Активируйте volume group:

vgchange -ay ubuntu-vg

Выведите список logical volume:

lvs

Пример ожидаемого вывода:

LV VG Attr LSize ubuntu-lv ubuntu-vg -wi-a----- 50.00g

Info

В выводе команды lvs отображаются все логические тома, обнаруженные на хосте Proxmox VE, а не только гостевая группа томов, например ubuntu-vg. В список также могут входить собственные тома гипервизора из группы томов pve, включая корневой том, том подкачки, том данных и логические тома, используемые дисками виртуальных машин.

Смонтируйте logical volume только для чтения:

mount -o ro /dev/ubuntu-vg/ubuntu-lv "$RESTORE_MOUNT"

Теперь вы должны иметь возможность просматривать восстановленную гостевую файловую систему в $RESTORE_MOUNT.

Шаг 8: Скопируйте конкретные файлы из резервной копии

Создайте локальный каталог для восстановленных файлов:

mkdir -p "$RESTORE_TARGET"

Скопируйте один файл:

cp -a "$RESTORE_MOUNT/etc/hostname" "$RESTORE_TARGET/"

Ожидаемый вывод: Команда не должна возвращать вывод, когда файл успешно скопирован.

Скопируйте каталог:

rsync -a "$RESTORE_MOUNT/var/www/html/" \ "$RESTORE_TARGET/html/"

Ожидаемый вывод: Команда не должна возвращать вывод, когда каталог успешно скопирован.

Проверьте скопированные файлы:

find "$RESTORE_TARGET" -maxdepth 3 -type f

Пример ожидаемого вывода:

/root/restored-from-pbs/hostname /root/restored-from-pbs/html/index.html

Tip

Используйте rsync -a вместо обычного cp, когда хотите сохранить права, владельцев, timestamps и symbolic links в восстановленной копии.

Шаг 9: Восстановите файлы из файловой резервной копии PBS с помощью pxar

Этот шаг необязателен для восстановления на уровне файлов из VM, но он полезен, когда снимок резервной копии содержит файловый архив, например root.pxar.

Выведите список файлов в снимке:

proxmox-backup-client snapshot files "$PBS_SNAPSHOT" \ --repository "$PBS_REPOSITORY"

Пример ожидаемого вывода:

catalog.pcat1.didx root.pxar.didx

Откройте интерактивную shell восстановления:

proxmox-backup-client catalog shell "$PBS_SNAPSHOT" root.pxar \ --repository "$PBS_REPOSITORY"

Внутри shell выведите список каталогов:

pxar:/ > ls

Пример ожидаемого вывода:

etc home root var

Выберите файл:

pxar:/ > select /etc/hostname

Восстановите выбранные файлы:

pxar:/ > restore-selected /root/restored-from-pxar

Выйдите из shell:

pxar:/ > exit

Info

Используйте метод pxar для файловых резервных копий. Используйте метод map для резервных копий образов VM.

Шаг 10: Очистите CLI-сеанс восстановления

Размонтируйте гостевую файловую систему:

umount "$RESTORE_MOUNT"

Если вы активировали LVM volume group, деактивируйте ее после размонтирования:

vgchange -an ubuntu-vg

Удалите сопоставления разделов, если вы создали их с помощью partx:

partx -d "$LOOP_DEVICE"

Отмените сопоставление loop-устройства PBS:

proxmox-backup-client unmap "$LOOP_DEVICE"

Ожидаемый вывод: Команда не должна возвращать вывод, когда loop-устройство успешно отключено.

Удалите временные каталоги монтирования, если они вам больше не нужны:

rmdir "$RESTORE_MOUNT"

Сбросьте чувствительные переменные окружения:

unset PBS_PASSWORD unset PBS_REPOSITORY unset PBS_SNAPSHOT unset PBS_ARCHIVE unset LOOP_DEVICE

Теперь вы очистили локальную среду восстановления.

Проверка

Проверьте, что восстановленные файлы существуют:

ls -la "$RESTORE_TARGET"

Пример ожидаемого вывода:

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

Сравните содержимое файлов там, где это уместно:

cat "$RESTORE_TARGET/hostname"

Пример ожидаемого вывода:

app-vm-01

Подтвердите, что восстановленная копия находится вне смонтированной файловой системы резервной копии:

realpath "$RESTORE_TARGET"

Пример ожидаемого вывода:

/root/restored-from-pbs

Проверьте, что после очистки не осталось loop-сопоставлений PBS:

losetup -a | grep pbs-loopdev || true

Ожидаемый вывод: Если команда не возвращает вывод, loop-сопоставлений proxmox-backup не осталось.

Откат изменений

Это руководство не изменяет исходную VM, резервную копию или хранилище данных PBS. Метод веб-интерфейса только скачивает файлы на вашу рабочую станцию. Метод CLI создает временные loop-сопоставления, точки монтирования и локальные копии восстановленных файлов.

Info

В этом разделе предлагается альтернативный способ завершения процедуры вместо шага 10. Не выполняйте его после завершения шага 10.

Чтобы откатить CLI-среду восстановления, выполните:

umount "$RESTORE_MOUNT" proxmox-backup-client unmap "$LOOP_DEVICE" rm -rf "$RESTORE_TARGET" rmdir "$RESTORE_MOUNT"

Warning

Команда rm -rf "$RESTORE_TARGET" удаляет восстановленную копию с хоста Proxmox VE. Не выполняйте ее, если восстановленные файлы все еще нужны.

Если вы активировали гостевую LVM volume group, деактивируйте ее:

vgchange -an ubuntu-vg

Если вы вручную добавляли сопоставления разделов, удалите их:

partx -d "$LOOP_DEVICE"

Устранение неполадок

Кнопка File Restore отсутствует

Убедитесь, что вы выбрали снимок резервной копии на хранилище PBS, а не локальное ISO-хранилище или хранилище образов. Также убедитесь, что у вашей учетной записи достаточно прав для просмотра содержимого резервных копий.

Веб-файловый браузер не может прочитать файловую систему

Гостевая файловая система может быть неподдерживаемой, зашифрованной внутри VM, поврежденной или расположенной внутри LVM, RAID или другого уровня хранения. Попробуйте метод CLI, чтобы вручную проверить разделы с помощью lsblk, blkid, vgscan и инструментов, специфичных для файловой системы.

proxmox-backup-client map завершается ошибками аутентификации

Проверьте строку репозитория и учетные данные:

echo "$PBS_REPOSITORY" proxmox-backup-client login --repository "$PBS_REPOSITORY"

Ожидаемый формат репозитория:

<PBS_USER>@<PBS_REALM>@<PBS_SERVER>:<DATASTORE>

Если вы используете пространство имен, добавьте --ns к соответствующим командам proxmox-backup-client.

Резервная копия зашифрована

Укажите файл ключа при сопоставлении резервной копии:

proxmox-backup-client map "$PBS_SNAPSHOT" "$PBS_ARCHIVE" \ --repository "$PBS_REPOSITORY" \ --keyfile <PATH_TO_ENCRYPTION_KEY>

Пример ожидаемого вывода:

/dev/loop0

Устройства разделов не появляются

Выполните:

partx -a "$LOOP_DEVICE" lsblk -f "$LOOP_DEVICE"

Если диск использует LVM, выполните:

vgscan --mknodes lvs

Если диск использует software RAID, ZFS внутри гостевой системы или full-disk encryption, используйте соответствующие гостевые инструменты хранения и по возможности монтируйте восстановленные файлы только для чтения.

Монтирование завершается ошибкой Wrong Filesystem Type

Проверьте тип файловой системы:

blkid

Пример ожидаемого вывода:

/dev/loop0p2: UUID="..." TYPE="ext4"

Затем смонтируйте с правильным типом, если нужно:

mount -t ext4 -o ro /dev/loop0p2 "$RESTORE_MOUNT"

Копирование файла сохраняет неправильного владельца

При копировании файлов из смонтированной гостевой файловой системы от root владелец может ссылаться на числовые идентификаторы пользователей из гостевой системы. Это ожидаемо. Используйте rsync -a, чтобы сохранить метаданные для последующей проверки, или копируйте без сохранения владельца, если вам нужно только содержимое файла.

Заключение

Вы восстановили отдельные файлы из резервной копии VM в Proxmox Backup Server без развертывания всей VM. Метод веб-интерфейса является самым быстрым путем для большинства задач восстановления файлов Proxmox Backup Server, а метод CLI дает точный контроль для расширенного восстановления файлов Proxmox и проверки файловой системы. Для обычных операций сначала используйте рабочий процесс Proxmox VE File Restore, а proxmox-backup-client map используйте, когда нужно более глубокое восстановление из хранилища данных PBS через командную строку.

Следующие шаги

Рассмотрите возможность документировать вашу внутреннюю процедуру восстановления с точными именами репозиториев PBS, пространствами имен, VM ID, расположением ключей шифрования и checklist для проверки восстановления. Также можно регулярно тестировать восстановление на уровне файлов как часть проверки резервного копирования, потому что резервная копия полезна только тогда, когда вы можете восстановить нужные данные.

Версия документа: 1.0
Последнее обновление: Июнь 2026
Владелец: Команда технической документации

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA