Проблемы с поиском файлов в томе ZFS

Вопрос или проблема

Я сломал установку OPNsense без недавней резервной копии, поэтому решил загрузить систему с помощью USB-накопителя lmde и скопировать образ на внешний диск, чтобы попробовать восстановить директорию /conf оттуда. Я никогда по-настоящему не использовал zfs, поэтому столкнулся с некоторыми проблемами, но это, похоже, сработало:

Монтирование образа

losetup --partscan --find --show /media/JoSSte/ExtHdd4TB/OPNsense_zfs_dump.bak.dd 
# mount /dev/loop0 /mnt # не удается, так как это раздел zfs 
apt install zfsutils-linux 
zpool status
lsblk -l
zpool import -f -d /dev/loop0 opnsense

До того момента, как я осознал, что выполнение ls -lah в смонтированном /opnsense ничего не дает.

zfs get all отображает длинный список того, что, как я предполагаю, является эквивалентом папок в zfs (все они типа filesystem):

 opnsense
 opnsense/ROOT
 opnsense/ROOT/default 
 opnsense/home
 opnsense/tmp
 opnsense/usr
 opnsense/usr/ports
 opnsense/usr/src
 opnsense/var 
 opnsense/var/audit
 opnsense/var/crash
 opnsense/var/log
 opnsense/var/mail
 opnsense/var/tmp

Как мне на самом деле получить доступ к этим файлам?

После длительных исследований и поисков (и ругательств) я, кажется, нашел решение.

основываясь на выводе zfs get all|grep mountpoint и выполнении zfs set mountpoint=/mnt/opnsenseroot opnsense/ROOT/default (благодаря этому посту) я смог скопировать папку /mnt/opnsenseroot/conf на USB-накопитель.

Ответ или решение

Теория

ZFS (Zettabyte File System) — это современная файловая система, известная своей высокой надежностью, защитой данных и гибкостью. Однако, для тех, кто впервые сталкивается с ZFS, понимание её структуры может быть сложным. ZFS использует понятие пулов и файловых систем, которые обеспечивают дополнительные уровни абстракции над традиционными файловыми системами. В то время как традиционные файловые системы используют концепцию разделов и каталогов, ZFS разделяет данные на пулы, наборы данных и снапшоты.

Одна из ключевых особенностей ZFS заключается в её способности управлять пулами, которые могут содержать несколько файловых систем и томов. Каждый из данных объектов имеет собственные точки монтирования, свойства и может управляться независимо. Это позволяет более гибко организовывать и защищать данные. С другой стороны, это может ввести в заблуждение новичков, так как файловые системы ZFS могут не сразу отображаться как смонтированные каталоги до тех пор, пока не будет корректно настроена точка монтирования.

Пример

В представленном случае пользователь сталкивается с системой OPNsense, использующей ZFS. Основная задача заключается в восстановлении данных из каталога /conf на ZFS-томе. Пользователь создаёт образ системы с помощью dd и пытается его примонтировать для восстановления конфигурационных файлов. Однако, изначальная попытка смонтировать образ с использованием традиционных средств не увенчалась успехом из-за особенностей ZFS.

После подключения loop-устройства с помощью losetup и установки утилит zfsutils-linux, пользователь сталкивается с проблемой отсутствия визуально видимых файлов в точке монтирования ZFS-пула. Исходя из вывода команды zfs get all, стало ясно, что файловая система ZFS требует дополнительной настройки точек монтирования для доступа к данным.

Применение

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

  1. Идентификация текущих точек монтирования: Используйте команду zfs get all | grep mountpoint для проверки всех существующих точек монтирования. Данная команда выводит сведения о том, какие каталоги связаны с данными наборами данных ZFS.

  2. Изменение точки монтирования: Чтобы изменить точку монтирования и получить доступ к нужной файловой системе, используется команда zfs set mountpoint=/mnt/opnsenseroot opnsense/ROOT/default. Эта команда устанавливает пользовательскую точку монтирования для файловой системы /mnt/opnsenseroot.

  3. Проверка доступа: После настройки точки монтирования, используя команды ls и cd, проверьте доступность каталога /mnt/opnsenseroot и наличие в нём необходимых данных, включая конфигурационные файлы.

  4. Резервное копирование данных: Теперь, когда доступ к /mnt/opnsenseroot/conf восстановлен, критически важно создать резервную копию конфигурационных файлов на внешнем устройстве. Для этого можно использовать стандартные инструменты копирования данных в Linux, такие как cp или rsync, что обеспечит надежное сохранение данных на USB-накопителе или другом устройстве.

Решение данной задачи требует определенной последовательности работы с ZFS, знания особенностей работы с точками монтирования и уверенного пользования консольными утилитами для достижения конечной цели — восстановления данных. Знание таких нюансов может быть решающим в ситуациях, когда необходимо экстренно восстанавливать критически важную информацию без полноценного доступа к рабочей системе.

Оцените материал
Добавить комментарий

Капча загружается...