Классический сценарий: кто-то случайно удалил конфиг неделю назад, а бэкапится всё через Borg. Самый прямой путь — borg extract всего снапшота в отдельную директорию и выковыривать нужный файл руками, но для одного файла это избыточно, особенно если архив весит сотни гигабайт. У borg для этого есть mount — он поднимает FUSE-драйвер и отдаёт содержимое архива как обычную read-only файловую систему.

Работает это так: указываешь репозиторий, конкретный архив (или весь репозиторий целиком — тогда внутри точки монтирования появится по каталогу на каждый снапшот) и точку монтирования:

# список доступных архивов в репозитории
borg list /mnt/backup/borg_repo

# монтируем конкретный снапшот
borg mount /mnt/backup/borg_repo::myserver-2026-10-10 /mnt/borg

# или весь репозиторий сразу — медленнее, зато видно все архивы как подкаталоги
borg mount /mnt/backup/borg_repo /mnt/borg

Дальше — обычная работа с файлами: cp, grep, открыть в редакторе, сравнить diff с текущей версией. Сам процесс borg mount держит терминал занятым, пока не отмонтируешь, поэтому удобнее запускать в отдельном окне и потом отпускать явно через borg umount /mnt/borg (или системный fusermount -u — borg именно его и вызывает под капотом). Для постоянного доступа к репозиторию есть вариант через /etc/fstab с драйвером fuse.borgfs, но для разового “найти файл и скопировать” хватает ручного mount/umount.

Отдельный плюс этого подхода в том, что архив не разворачивается на диск целиком — FUSE-слой читает и расшифровывает блоки из репозитория по запросу, так что для одного файла из многотерабайтного снапшота не нужно ни временного места, ни ожидания полного extract. Минус predictable: чтение через FUSE медленнее прямого доступа к файлам на диске, так что для восстановления всего сервера целиком extract всё равно быстрее, чем копировать через смонтированную точку.

#linux #fuse #borg