Не знал где это написать, думаю на хабре будет самое место. Везде пишут что 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


Всем удачи, не забывайте делать бэкапы.

Комментарии (11)


  1. Disasm
    05.07.2015 19:45

    Самое главное — сначала сделать бэкап, а уже когда-нибудь потом проверить, можно ли из него восстановиться.


    1. big-town Автор
      05.07.2015 20:55

      Не понял что вы имеете ввиду. Из fsa-архивов не раз восстанавливался и причем даже ntfs-разделы.


      1. Disasm
        05.07.2015 21:24

        Само существование статьи как бы намекает на то, что до этого образ из бэкапа вы ни разу не монтировали. Хорошо, когда всё хорошо. Но обычно бэкапы нужны именно в тех случаях, когда всё плохо.


        1. big-town Автор
          05.07.2015 23:19

          Из статьи может и не вытекает, но с fsa архивами я работал. И как бы недоверять этому способу бэкапа у меня нет оснований. Просто не стояло задачи вытащить из архива несколько файлов. А на случай что бы не было все плохо у меня раиды с винтами на горячую замену. :)


        1. Gendalph
          05.07.2015 23:29

          У них немного другой сцераний применения: вы снимаете образы разделов и если что-то ломается — восстанавливаете их.


  1. mblp
    05.07.2015 22:01

    Ну так образ fsa Вы так и не смонтировали. Вы его восстановили его на блочное устройство. А то что в linux можно создавать блочные устройства и их монтировать, то здесь нет открытия Америки.


    1. big-town Автор
      05.07.2015 23:24
      +2

      А я где то написал об открытии америки? Вот здесь www.fsarchiver.org/forums/viewtopic.php?f=14&t=954 у человека стояла налогичная задача, но что то ему и ни какого способа не предложили.


  1. big-town Автор
    06.07.2015 13:07
    +1

    Ну и в догонку. Давайте наберем поисковый запрос в гугл «монтирование образа fsa» и затем «linux создать виртуальное блочное устройство». По первому запросу пройдя по ссылкам на первых страницах вы найдете единственный ответ «Unfortunately it won't be possible to do that we the current file format.» По второму запросу вы найдете что типа mknod… и xm block-attach. Как видите бысто человеку столкнувшимуся с такой проблемой решения не найти. Такие умники как mblp почемуто знают но не пишут. Я потому и написал на хабре что статьи с него отображается в топе и людям будет проще найти информацию.


    1. poxu
      07.07.2015 00:20

      Нельзя смонтировать fsa. Именно поэтому гугл отвечает, что смонтировать fsa нельзя. То, что предлагаете вы правильнее было бы поместить под заголовок «Как посмотреть содержимое fsa». Но я, когда погуглил, наткнулся на эту ссылку ubuntuforums.org/showthread.php?t=1381103. Вроде как раз примерно то же, что у вас.

      А про умников, которые знают и не пишут — поддерживаю. Не умников, а вас, конечно. Простые и известные вещи надо повторять почаще.


    1. poxu
      07.07.2015 00:37

      А ссылка, которую я нашёл, у вас в статье как раз и есть. Невнимательно читал, прошу прощения.


  1. big-town Автор
    08.07.2015 01:01

    Я как бы вообще призываю всех делиться опытом. На сегодня нет наверное ни одного человека который бы не воспользовался информацией из интернета. А уж если говорить о нас — админах или прогерах? Я помню как лет 15 назад я по распечатанным листочкам устанавливал linux slackware — мой первый линух. Ох уж и намучались мы тогда :). Я думаю без интернета многие бы вообще не состоялись. Хорошая книга стоит дорого и будучи студентом просто было не реально ее купить. Да ее еще и найти надо было.
    Поэтому народ не ленитесь и если есть что писать — пишите. Если вы не будите пополнять информацией интернет, значит ее там не будет и вашим потомкам не будет от него проку. Так сказать воздайте должное интернету.
    Про товарищей типа: я знаю как правильно, но нескажу вообще ни чего говорить не хочется. Чаще всего эти умники просто выделываются и не знают правильного ответа. Но есть и такие которые боятся что бы ты умнее не стал :). Был у нас один «товарищ» на кафедре так вот он из библиотеки забрал все книги начиная от delphi заканчивая photoshop. Читать конечно он их не собирался, ему было важно что бы ты, прочитав книгу, не стал умнее его. Вот тперь для меня это как красная тряпка и мне очень приходится сдерживаться что бы не высказать что я о них думаю, но иногда и высказываю. Нередко за это банят :). Не уподобляйтесь таким, будьте людьми и делитесь опытом.