Pull to refresh

Как примонтировать образ fsa

Reading time 2 min
Views 12K
Не знал где это написать, думаю на хабре будет самое место. Везде пишут что fsarchiver — замечательная утилита, что может создавать архивы с файловой системой, хорошо их сжимает и т.д. И это действительно так! И самое главное что эти архивы можно деалать на работающих системах.

Но вот сегодня выходной день, сервера находятся в другом городе и один из них лег, на системнике лампочка с восклицательным знаком горит красным цветом, а значит тяжелая беда с железками. По удаленке поднять не можем. С сервером конечно разберемся и починим, но надо скорее поднимать сервис на резервной машине. Образы всех серверов конечно мною были заботливо сделаны при помощи замечательной утилиты fsarсhiver.
И вот встала задача как достать конфигурационные файлы из fsa-образа. Конечно если есть пустой жесткий диск подключенный к машине с бэкапами это не проблема, а если его нет?
Поисковый запрос типа: «как монтировать образ fsa» не дал положительных ответов. И даже на оборот не много ввел в заблуждение. На сайте разработчики сказали: «Unfortunately it won't be possible to do that we the current file format.» (к сожалению это невозможно сделать с этим форматом файла).
Стало печально. Но что то внутри меня говорило, что это возможно! Ведь это линукс!
Еще не много поиска в интернете и я нашел нужную информацию. Конечно же, все элементарно! Этой командой я уже пользовался — losetup, но почему то напрочь вылетела у меня из головы.

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

#fsarchiver archinfo backup.fsa

Получаем что типа:

===================== filesystem information ====================
Filesystem id in archive: 0
Filesystem format: ext4
Filesystem label: lboot
Filesystem uuid: f8eebcb0-ba54-47e4-8a86-769880291a3e
Original device: /dev/md0
Original filesystem size: 921.43 MB (966189056 bytes)
Space used in filesystem: 59.61 MB (62504960 bytes)


Здесь нас интересует параметр Space used in filesystem: 59.61 MB (62504960 bytes)
то есть сколько минимум подребуется места для развертывания имиджа. Файл-образ должен быть чуть большего объема.
Создаем пустой файл vd.img размером 100мегабайт(требуется 59.61 MB ).
Параметры говорят сами за себя count-количество блоков, bs-их размер.

#dd if=/dev/zero of=vd.img count=100 bs=1M

Затем посморим какие петлевые интерфейсы у нас не используются

#losetup -f

Если таковых нет, то можно добавить.

#modprobe loop max_loop=128

И связываем файл-образ с этим интерфейсом

#losetup /dev/loop0 vd.img

Затем восстанавливаем на него наш архив

#fsarchiver restfs backup.fsa id=0,dest=/dev/loop0

И монтируем

#mount -o loop=/dev/loop0 /mnt/vd

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

#umount /mnt/vd
#losetup -d /dev/loop0
#rm -f vd.img


Всем удачи, не забывайте делать бэкапы.
Tags:
Hubs:
+14
Comments 11
Comments Comments 11

Articles