Как снимать образы linux

Бэкап Linux и восстановление его на другом железе

Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.

На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:

  • сделать бэкап сервера;
  • восстановить бэкап на другом железе.

Гугление не дало внятных ответов, как это сделать, пришлось собирать информацию кусками и пробовать. Всякие acronis’ы отбросил сразу, ибо не интересно.

Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂

Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.

Начинаем копать теорию:

Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.

Итак, план действия:

1. Создание бэкапа

Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.

Переключаемся на root:

Монтируем раздел, который будем архивировать, у меня это sda1, чтобы случайно не наломать дров, монтируем только для чтения. Посмотреть все свои разделы можно при помощи команд ls /dev | grep sd или df -l

Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.

Все готово для создания архива

Здесь у нас параметры: c — создать архив, v — выводить информацию о процессе, z — использовать сжатие gzip, p — сохраняем данные о владельцах и правах доступа, f — пишем архив в файл, путь к файлу, —exclude — исключаем из архива каталог (я исключил каталоги с записями разговоров и каталог с бэкапами FreePBX), /mnt/ — каталог, который архивируем.

Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.

Складываем архив в надежное место за пределами офиса.

Восстановление бэкапа на другом железе

2. Размечаем диск, создаем файловую систему

Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.

Переключаемся на root:

Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.

Читайте также:  Usb cdc драйвер для windows

Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.

Cоздаем файловую систему на первом разделе.

3. Распаковываем архив.

Монтируем отформатированный раздел

Распаковываем архив прямо с флэшки

Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.

4. Создаем MBR на новом диске.

Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:

Переключаемся на новую систему используя chroot:

Делаем swap-раздел для новой системы:

Подключаем его же:

Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:

Открываем второй терминал (Alt+F2) под root:

И видим текущие UUID разделов.

Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.

Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:

На чистый диск должно встать без ошибок. Обновляем информацию из fstab:

Возвращаемся в Live-систему:

Размонтируем все каталоги:

Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.

Все, поехали. Грузимся с жесткого диска:

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

5. Тестирование и устранение неполадок.

Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.

Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:

Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.

Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:

Подключаем донглы, проверяем, все работает.
Спасибо за внимание.

Источник

blog.smart-admin.ru

Блог системного администратора

Снимаем образ утилитой DD в Linux

Снимаем образ всего диска утилитой dd.
1) узнаем как называется диск командой: df -h

Файловая система Разм Исп Дост Исп% смонтирована на
/dev/sda1 27G 2,8G 23G 11% /
tmpfs 1005M 0 1005M 0% /dev/shm

2) снимаем образ загрузочного раздела:

# dd if=/dev/sda of=/home/user/moy-mbr.bak count=1 bs=512

3) снимаем образ самого диска:

# dd if=/dev/sda of=/home/user/moy-razdel.bak

# dd if=/home/user/moy-mdr.bak of=/dev/sda

# dd if=/home/user/moy-razdel.bak of=/dev/sda

Можно сразу добавить в архив:

# dd if=/dev/sda | gzip -c > /home/user/moy-razdel.img.gz

И потом достать из архива:

# gzip -x /home/user/moy-razdel.img.gz | dd of=/dev/sda

Вариант 2 от Юрия Акимова

Создание образа жесткого диска при помощи утилиты dd в Unix

Для создания образа жесткого диск не обязательно использовать утилиты на подобии Acronis True Image или Norton Ghost, достаточно простой утилиты dd, которая входит в состав большинства Unix-подобных операционных систем (Linux, FreeBSD, Solaris и т.д.) В статье рассмотрен простой способ создания резервной копии образа жесткого диска при помощи dd. Первым делом необходимо подготовиться к резервному копированию. В данной статье введем следующие обозначения:

При необходимости нужно подставить собственные значения.

Подготовка к созданию образа жесткого диска

Первым делом необходимо загрузиться с любого доступного Live-CD диска, имеющего утилиту dd, и войти в командную строку в качестве суперпользователя. Создаем точку монтирования для проведения резервного копирования.

Читайте также:  Undelete files from linux

Монтируем жесткий диск на который необходимо сохранить образ.

Создание образа жесткого диска

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda — копируем весь жесткий диск sda;
  • of=/mnt/backup/sda.img — копируем в /mnt/backup/sda.img;
  • bs=8M — задаем размер кэша жесткого диска для ускорения процедуры копирования (иначе данные будут сбрасываться малыми порциями по 512 байт);
  • conv=sync,noerror — указываем dd на необходимость копирования по типу бит-в-бит с игнорированием ошибок чтения.

Для сокращения размера образа жесткого диска его можно сжать любым архиватором.

Восстановление образа жесткого диска

Для восстановления образа жесткого диска необходимо проделать процедуру обратную процедуре создания этого образа.

При использовании сжатия параллельно необходимо разархивировать образ.

Миграция системы на другой жесткий диск

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

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

Статистика копирования в dd

Главный минус в dd — это отсутствие наглядного представления статистики выполнения процедуры копирования. Однако этот минус можно легко обойти. Достаточно подключиться к другому терминалу.

Определить номер процесса, под которым запущена dd.

Периодически посылать данному процессу команду kill -USR1 номер_процесса_dd .

watch -n 5 kill -USR1 номер_процесса_dd

  • watch -n 5 — выполнять команду каждые 5 секунд;
  • kill -USR1 номер_процесса_dd — показать статистику копирования.

Источник

Снятие образа в Линуксе

Народ,а не подскажите ли как можно решить подобную задачку: Снять образ всего диска с RHEl 5.3. И так чтобы можно было его запустить потом на агалогичном железе на другом сервере.

Понятное дело, что это можно сделать через dd и не раз так делал. Но хочется, чтобы при необходимости можно было рапаковать образ и на более маленький хард (при условии конечно, что свободного места на диске достаточно).Ну типа чтобы он сам пропорционально уменьшал бы разделы либо перед распоковкой спрашивал. Пробовал Акронисом, но чтото ничего не получилось. Ему не нравится 256 inodes ext3 как я вычитал и он пишет Unsupported File System. Altiri вроде так умеет, но под данное железо IBM что0то не получается . Что подскажите .

Re: Снятие образа в Линуксе

Re: Снятие образа в Линуксе

когдато делал так:
#!/bin/sh
dd if=/dev/sda1 of=boot.img bs=512 count=1
tar cvpjf /home/backup/home-`date +%Y-%m-%d`.tar.bz2 /home/ —exclude /home/user/MyDownloads —exclude /home/user/MP3 —exclude /home/backup
tar cvpjf /home/backup/bin-`date +%Y-%m-%d`.tar.bz2 /bin
tar cvpjf /home/backup/boot-`date +%Y-%m-%d`.tar.bz2 /boot
tar cvpjf /home/backup/etc-`date +%Y-%m-%d`.tar.bz2 /etc
tar cvpjf /home/backup/lib-`date +%Y-%m-%d`.tar.bz2 /lib
tar cvpjf /home/backup/opt-`date +%Y-%m-%d`.tar.bz2 /opt
tar cvpjf /home/backup/root-`date +%Y-%m-%d`.tar.bz2 /root
tar cvpjf /home/backup/sbin-`date +%Y-%m-%d`.tar.bz2 /sbin
tar cvpjf /home/backup/srv-`date +%Y-%m-%d`.tar.bz2 /srv
tar cvpjf /home/backup/usr-`date +%Y-%m-%d`.tar.bz2 /usr
tar cvpjf /home/backup/var-`date +%Y-%m-%d`.tar.bz2 /var —exclude /var/tmp
ls -lh /home/backup

Re: Снятие образа в Линуксе

Re: Снятие образа в Линуксе

Ребята, прямым переносом tar-ов на вновь разбитый диск, dump/restore и dd я умею пользоваться и сам как-нибудь разберусь, когда мне понадобится. Речь идёт о том, чтобы сделать некий образ для людей, которые в этом ничего не понимают. Чтобы загрузились с CD кликнули бы пару раз и всё. На крайняк можно запихнуть сжатый архив от dd в LiveCD и впихнуть туда скрипт для распаковки. Так-то прокатит, но вот диски должны быть одинакового размера . Неужели не так какой-нить универсальной утилиты, которая умела бы это грамотно делать?

Re: Снятие образа в Линуксе

Ну stage3 gentoo как-то работает, да.
Можно на два этапа разбить (хотя надо, чтобы таблица разделов совпадала)
1. Распаковка корня
2. Распаковка var, etc
3. grub/lilo
4. .
5. Не?

Читайте также:  Векторный редактор для mac os

Источник

Средство для снятия образа с linux

Требуется снять с настроенного linux-сервера «образ» для бэкапа или распространения.

В solaris есть flash archive, который позволяет с настроенной системы снять образ, который можно или использовать в качестве бэкапа или в качестве мастер-образа для «заливания» однотипных машин. Такая же по сути вещь есть и в hp-ux, называется ignite.

В линуксе я пока нашел только способы вида — snapshot файловой системы и последующий dump, или, тем паче, снятие ПОЛНОСТЬЮ посекторно образа винта (как это может сделать, с помощью, например, g4l), что не способствует удобству хранения из-за занимаемого места.

Какие есть в линуксе средства подобные flash из солярки или ignite из hp-ux?

Re: Средство для снятия образа с linux

afaik tar , cpio , dump , restore .

Re: Средство для снятия образа с linux

> afaik tar , cpio , dump , restore .

Вы наверное вообще не прочитали мой вопрос. или я его задал некорректно..

попробую еще раз.

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

пример 1) загрузили упавший сервер по сети, и через сеть залили образ пример 2) с помощью какого-то носителя (cd/dvd, возможно подготовленного именно для данного сервера системой бэкапирования) загрузили систему и залили образ опять через сеть.

в общем человек, который хоть раз видел в жизни что такое flash-archive (solaris) или ignite(hp-ux) или хотя бы data protector должен понять что я имею в виду.

а всякие скриптования tar, cpio, dump, restore. — оставьте себе. может быть пошло прозвучит, но это решения не «того» уровня подготовки и использования в промышленных масштабах.

Re: Средство для снятия образа с linux

Re: Средство для снятия образа с linux

ну вот мало, а хотелось бы списком 🙂 а главное кто что пробовал и реально может дать оценку.

Bacula? а разве она теперь поддерживает и такие виды восстановления?

объясню: просто линукс-сервера сейчас всё больше и больше наполняют сектор «того» уровня, где раньше царили одни коммерческие юниксы. Я ни в коем случае не умаляю возможности tar,cpio,dump,restore, это отличные средства, но здесь идет речь не о том, что кого-то посадят и заставят писать скрипты на бэкапирование/востановление, а просто нужно БЫСТРО получить сертифицированное и поддерживаемое средство. Чтобы можно было потом начальству не объяснять — почему не сработал самописный скрипт.

Re: Средство для снятия образа с linux

Re: Средство для снятия образа с linux

я так же столкнулся с этой проблемой (решать/реализовывать не успел). но знакомые также посоветовали Partition Image (пост выше).

Re: Средство для снятия образа с linux

А lvm вроде же умеет snapshotы делать. Вот и снапшотить на сетевую фс.

Re: Средство для снятия образа с linux

А какой линукс? Если SLES, то там есть в ясте backup. Он формирует список всех установленых пакетов и + создаёт ещё один дополнительный пакет в формате rpm, в который запихивает все изменённые файлы и файлы не принадлежащие стандартным пакетам. Можно указать в каких директориях искать такие файлы. В промышленном масштабе я не пробовал это использовать, но штука сертифицированная, ибо является частью SLES. Поэтому по идее для восстановления достаточно на чистой минимальной системе установить все пакеты, все иконки для этого в ясте есть.

Источник

Оцените статью