Оно шевелится! Живые бэкапы Linux с помощью Remastersys

  • Tutorial
О резервном копировании можно говорить много и со вкусом, но я не буду играть в Капитана Очевидность. Первые же ссылки в выдаче Google по запросу «Ubuntu backup» расскажут об rsync, partimage, fsarchiver, dd, tar, simple backup. Я потратил много часов, экспериментируя с этими инструментами и переустанавливая систему после неудачных экспериментов. Я хотел найти самый быстрый и простой способ восстановить систему после фатального сбоя и продолжать работать, как ни в чем не бывало. Текст под катом сэкономил бы мне в общей сложности пару рабочих дней, прочитай я его несколько месяцев назад, когда впервые поставил Ubuntu на рабочий ноутбук.

Remastersys — скрипт, который создает LiveCD из установленной системы. Со всеми настройками и установленными пакетами. Если система вдруг не грузится или безнадежно испорчена вашими кривыми руками, а надо срочно работать, нет более быстрого способа. Просто вставляешь флэшку и перезагружаешься. Потом вытягиваешь текущюю работу с Дропбокса (или где там она у вас) и готово. Позже можно установить систему с этой флэшки.

Как это готовить?
  1. После того, как система настроена и все необходимые программы установлены, делаем генеральную уборку, чтобы довести объем образа до минимума. Деинсталлируем все ненужное, затем sudo apt-get autoremove и sudo apt-get clean, чистим корзину и смотрим, что у нас получается в анализаторе использования дисков. Remastersys предполагает размер образа не больше 4 Гигабайт, так что с учетом архивирования вряд ли удастся запихать в наш LiveCD больше 6G. Причем тут лучше перебдеть, чем недобдеть — remastersys не отличается умом и сообразительностью и не предупреждает о том, что размер образа слишком большой, а просто вылетает с ошибкой посреди процесса.
  2. Вносим в исключения remastersys примерно такой набор папок: /home/USERNAME/.cache /home/USERNAME/.thumbnails /home/USERNAME/.local/share/Trash /var/cache. Это можно сделать в файле /etc/remastersys.conf или через GUI. Если у вас в большом количестве есть видео, музыка, или другие тяжелые файлы — исключите папки, в которых они лежат. Бэкап больших объемов выходит за рамки этой статьи. Дропбокс может вести себя странно — хотя он и подхватывает восстановленную папку, но может затереть на сервере файлы, которых нет на LiveCD, так что их придется восстанавливать вручную, через веб-интерфейс. Конечно, можно было бы исключить его папку, но если вы делаете бэкап регулярно, версия на LiveCD мало чем будет отличаться от актуальной, и быстрее будет руками вправить Дропбоксу мозги, чем скачивать всю папку. Впрочем, может быть у вас и не будет такого глюка.
  3. Запускаем процесс и долго ждем.
  4. Система → Администрирование → Создание загрузочного диска. Выбираем наш iso, заливаем на флэшку.
  5. sudo remastersys clean


После загрузки с флэшки мне пришлось перезапустить WiFi вручную — 5 секунд делов. Кроме того, с LiveCD не работают проприетарные драйвера видеокарты.

ВНИМАНИЕ!
Администрирование Linux не входит в круг моих интересов. Я занимаюсь этим по необходимости. Поэтому я не касался многих других аспектов работы с Remastersys — модификация загрузочного меню, например. Так же я не тестировал получившуюся флэшку на множестве разных компьютеров — загрузится ли, установится ли… У меня все заработало сразу — а значит, у многих других (хоть и не обязательно у всех, увы) тоже должно. Более подробные инструкции есть на сайте remastersys.
Поделиться публикацией
Комментарии 34
    +1
    tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html

    самый простой и удобный способ. А еще им можно бэкапить MySQL/PgSQL базы итд.
      +1
      Мне пока это простым не показалось. И вот вопрос — насколько я понял, LVM позволяет делать инкрементальные снэпшоты файловой системы, которая установлена поверх него, даже если сама ФС такую возможность не поддерживает?
        +1
        LVM работает на уровне блочных устройств, поэтому ФС не имеет значения.
        0
        MySQL/PgSQL базы им бэкапить можно только тогда, когда восстановление из бэкапа не очень нужно. Проще говоря, бэкапить базы нельзя.
          0
          Поясните.
            0
            КО намекает на консистентность базы в момент создания снапшота.
            и если у мелкомягких скул в курсе про shadow copy, то в курсе ли mysql про lvm snapshot — большой вопрос
              0
              В общем да. Теоретически можно сделать блокирование и сброс всех таблиц перед снапшотом (mysqlhotcopy так и делает), но тогда и сам снапшот нужен не так сильно. И вопрос бэкапа просто баз не стоит в контексте lvm снапшотов, скорее бэкап виртуальных машин, в которые не всегда можно и влезть.
                +1
                Насколько я знаю (информация где-то проскакивала на хабре), у MySQL лог транзакций устроен таким образом, что даже снапшот в момент работы с таблицами потом подхватится, правда, ценою данных из незавершенной транзакции.
                  0
                  А у него есть транзации на MyISAM?
                    0
                    MyISAM — нет, InnoDB — да.
                    И, кстати, MyISAM наверняка тоже в той или иной мере должен уметь восстанавливаться после такого, хотя бы на случай падения сервера.
                      +1
                      myisamchk в той или иной мере восстановит. Только бэкапы так не делают, чтобы надо было их с помощью myisamchk восстанавливать.
                        0
                        Согласен, я вижу только один вариант, при котором это будет оправдано — если даже короткий даунтайм существенно нарушит работу системы. Но это редкий случай и обычно при таких нагрузках обычно есть репликация БД.
          +1
          спасибо!
            0
            Для бекапа своей системы юзаю еженощно FSArchiver. Он бекапит раздел в файл на другом компьютере, потом этот файл можно развернуть обратно и создать раздел с файловой системой со всем содержимым.

            Для того, чтобы файл был небольшой, система стоит на небольшом разделе, 20-Gb, а всё остальное, что жрёт много места — на другом разделе, который будет не жалко потерять если что :-)
              0
              У меня почему-то раздел, восстановленный после FSArchiver, отказался грузиться. Хотя у меня есть подозрение, что это я с grub чего-то намутил, первый раз, все-таки.
            • НЛО прилетело и опубликовало эту надпись здесь
                0
                Не надо. Все на лету.
                0
                А зачем вообще бэкапить системный раздел ОС, подобных Ubuntu, которые используют вменяемую систему управления установкой типа dpkg? ИМХО, одно из преимуществ таких систем установки как раз и заключается в том, что они позволяют с легкостью установить систему с нуля. С легктостью — это значит, быстро и практически без взаимодействия с пользователем (не нужно ничего искать, скачивать и устанавливать вручную). Установка всего нужного для работы кастомного софта (при условии, что он есть в репозиториях) делается одной командой. Более того, свежепоставленную систему не обязательно сразу донастраивать под себя в полном объеме, включая все рюшечки и бантики (тем паче, если она нужна вам для работы) — тут хорошо действует принцип «решай проблемы по мере их возникновения»: система сама придет в нужное вам рабочее состояние буквально через неделю-другую использования. При этом самоликвидируется весь старый софт, который вы когда-то для чего-то поставили, но теперь больше не используете и совсем про него забыли. К тому же, используемый набор софта — штука тоже динамическая, а регулярный бэкап — это лишняя головная боль.

                Вот что нужно обязательно бэкапить, так это раздел /home. Но для этого существуют более удобные способы, чем создание загрузочных и прочих образов: например, тот же dropbox. Или ночной rsync на какой-нибудь сервер. Вобщем, любой удобный вам способ, хоть F5 на внешний винт пару раз в неделю. Поскольку это незагрузочный раздел, с ним все проще.

                Сам я отказался от системного бэкапа с тех пор, как окончательно снес Windows с основного десктопа. Это было уже много лет как назад. К тому же, раз в пару лет я переустанавливаю Ubuntu описанным выше способом (т.е. свежий дистрибутив на чистый раздел), но не потому, что что-то глючить начинает, а чтобы вызвать тот самый побочный эффект самоудаления неактуального софта. Системный размер у меня, к слову, всего-навсего 8G (при том, что я dev, то есть у меня там установлена куча инструментальных средств и т.п.), из которых процентов 30 всегда свободно.
                  0
                  Упс! Ответ ушел не туда. См. ниже.
                  0
                  Установить систему с нуля, это в смысле с дистрибутива? Но это же не меньше получаса! А потом весь софт — как я понял, вы предлагаете собрать команды установки всех нужных пакетов в скрипт, не вручную же ставить — еще столько же, особенно если что-то ставилось из исходников и долго компилируется. Причем для всего этого нужен интернет. Если же вы предполагали все-таки сохранять все необходимые пакеты и архивы для установленного софта, то получается такой-же точно бэкап: исходный дистрибутив + установленный софт. Remastersys просто собирает эти куски вместе. И самое главное — если я спешу, он позволяет продолжить работу буквально через 5 минут (загрузиться с флешки + подтянуть текущюю работу с дропбокса), даже если винт с системой полностью уничтожен.
                    0
                    А вы просуммируйте время, потраченное вами на изучение различных средств бэкапа, на создание образа с помощью ремастера, а также на поддержку обновление его в будущем и разделите эту сумму на количество падений системного раздела, которые требовали восстановления из бэкапа. Я думаю, что для большинства людей полученная величина будет всяко больше часа (это максимум, включая первичную кастомизацию), который надо потратить на восстановление системы с оригинального дистрибутива. У меня такая внештатная ситуация была раз или два за лет так 15 (не считая, разумеется, добровольно инициированных переустановок). Тут дело еще в том, что в наши дни у человека как правило имеется более одного компьютера, поэтому выход из строя одного из них не блокирует работу (при грамотной ее реализации, конечно — git/svn/dropbox/whatever). Упавшим компьютером в таком случае можно заняться когда-нибудь потом, когда в распоряжении будет этот необходимый час.

                    Аргумент про отсутствие интернета несколько натянут (тот же дропбокс без него вам тоже не доступен). Ручная сборка рабочего софта… В Ubuntu не очень актуально, это же не Gentoo. У меня может быть от силы пара кастомных пакетов, для которых я сразу же сделал deb и запихнул на сервер. Я в принципе не исключаю, что могут существовать ситуации, когда бэкап системного раздела все же оправдан, но они ИМХО крайне редки. Мой же подход, помимо всего прочего, удобен тем, что он решает проблему бэкапа ОС путем устранения самого факта наличия проблемы — ничего лучшего для решения проблем еще не изобрели :)

                    ПС. Что меня действительно озадачивает, так это MacOSX. Вот там проблема восстановления работоспособности системы действительно стоит в полный рост, потому что весь сторонний софт устанавливается фактически вручную… ИМХО, ребятам давно пора уже взять dpkg на вооружение. Не очень понятно, почему этого до сих пор не сделано. Надеюсь что, грядущий в Lion AppStore хоть как-то исправит эту ситуацию.
                      0
                      Ну, если считать время на обучение, то да. Хотя вот мне удалось за несколько месяцев испортить систему гораздо больше раз, чем вам за 15 лет, и живой бэкап мне все-таки кажется более привлекательным, чем переустановка. Впрочем, это уже вопрос личных предпочтений — бэкапить или нет. Топик скорее о том, что если уж решили бэкапить — то вот есть такая штука, как remastersys. Из всех способов он мне понравился больше всего. И при этом он на удивление малоизвестен. На Хабре, к примеру, слово «remastersys» упоминалось всего два раза в комментах.
                        –1
                        Для экспериментов с ОС, а Вы как я понимаю именно так и используете свою Ubuntu, рекомендую посмотреть в сторону виртуальных систем с возможностью snapshot. VirtualBox вам подойдет.

                        Для работы этот «бекап» вообще не юзабельный, да еще и только под Debian like.
                        Возможно поэтому он и удостоился внимания хабрасообщества.
                    +1
                    BackupPC — централизованное бекапирование систем посредством rsync. Полные, инкрементальные бекапы. Гибкая настройка, удобные WEB интерфейс для сравнения и восстановления как отдельных файлов так и папок.
                    + у нас настроено бекапирование баз данных если такие имеются на серверах.

                    Рекомендую.
                      0
                      вчера поставил очередному клиенту. хорошее и простое решение.
                      был один момент: бэкап каталога с базами MSSQL от 1С выдавал ошибку что не может прочитать 23 файла.
                      оказалось все дело в MSSQL. «Держит» он как то эти файлы не давая прочитать. не дает даже на винде скопировать в другой каталог.
                      0
                      А я вот с лета все жду — когда упадет Убунту. Уже и с 10,4 на 10,10 перелез, а она, блин, все не падает. До этого ХП годами не переставлялась. Сейчас параллельно 7-ка крутится в двух местах — и ничего так…
                      Что я делаю не так?

                      ЗЫ. Для убунты же есть лив сд, с которого Вы и ставились (ну или лив флеш). Вот когда критично, срочно — самое оно.

                      Когда-то людям делал бекапы системы настроенной. Как раз именно системы, со всем софтом.
                      Приходят через 6-8-12 месяцев с поклоном, мол — верни все обратно.
                      Ну прикольно, что можно восстановить систему за 3 минуты. НО ПОТОМ 2 ДНЯ нужно тупо сидеть и обновлять почти весь софт!
                      Там кодеки, там браузеры, там им клиенты — там еще какая-то хрень… Вот Вам плата за бекапы системного раздела на вин. платформе.

                      В Убунту же главное что? Правильно — /home + список своих ppa. Все. А там падай — не хочу.
                        0
                        Видите ли, я купил свой ThinkPad X100E до того как увлекся Ruby и возникла необходимость в Linux. А эта модель ThinkPad не слишком совместима с Linux. Сейчас уже почти все работает, но проблемы были, приходилось ставить еще не обкатанные версии только потому, что они моё железо поддерживали. Плюс любопытство. Плюс неопытность. Вот она и падала.
                          0
                          У самого леново s12 — брал именно для руби — но потом как-то мир линукса накрыл сильно.
                          все стало из коробки.
                            +1
                            Ну там скорее всего были не такие падения, что нужно переустановка. Скорее всего нужно было пакет установить\конфиг поправить. Но знания что именно править, конечно же, приходят с опытом. По первой, наверное, проще знакомство с новой ОС начинать опять с чистой системы.
                          0
                          Спасибо за наводку, попробую применить на работе
                            +1
                            Не зря все советуют хранить свой home в отдельном разделе — так и бекапить удобнее (будь то LVM или rsync) и переставлять.

                            НО есть много вещей которые как не изголяйся — в хоум не засунешь, например список виртуальных хостов /etc/apache2/sites-enabled и hosts
                              0
                              Извернуться-то можно
                              mount -o bind
                              или же ln -s :)
                                0
                                mount целиком перекроет папку — а если я хочу чтобы дефолтные файлы (default и default-ssl) ставились из пакетов, а мои — добавлялись из моего хоума?

                                симлинки — неспортивно, их нужно будет как минимум создать)

                                Вот если бы апач читал вначале /etc/apache2/sites-enabled, а потом например у каждого пользователя из группы www-data его ~/.apache2/sites-enabled…
                                Я понимаю что это все можно реализовать руками, но мы же вроде как систему с нуля ставим и вроде как пакеты берем из стандартного репа, вот если бы в стандартном репе апача было такое поведение заложено…
                              0
                              А вот ещё R1Soft Hot Copy for Linux, кто пробовал?
                              Пишут что те же снэпшоты, но не надо LVM ставить.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое