Как сделать дамп диска сервера debian
Перейти к содержимому

Как сделать дамп диска сервера debian

  • автор:

System backup

There are several good ways to backup a Linux system, and I’ll start with the first one I ever heard of, compression to an archive using tar command.

it’s easy to make a tar file of all system and user files with something like
sudu tar

I added the exclude for /var/cache/apt/archives/

Also it’s a good idea to exclude $HOME/.cache or clean chromium’s or firefox’s cache before backup (e.g with bleachbit).
You may want to make the backup on another partition too.

The ‘z’ option adds gzip to the command so that the tar file is compressed (tar alone just makes one file of everything).
another option is ‘u’ which updates the tar file, making changes, not sending everything all over again.
Adding the switch —one-file-system will exclude files from other partitions, e.g. for backup of system only:

Using scripts

Note: restoring an image from e.g. a 20Gb hdd source onto a 50Gb target, might render the target as a 20Gb disk — gparted will be needed in that case to expand the part to fill the 50Gb.

Make a Live USB

Clonezilla can make a Live CD iso of your cloned image, see here

you need an image already

  • go through the steps above to restore an image, but after select beginner,
  • select recovery-iso-zip
  • select image
  • select target for restoring from the iso! — change to «ask_user«
  • select lang, keymap
  • select iso or zip

Burn the USB

try unetbootin or tuxboot with iso file

or use the zip file with a command like: and make it bootable with:

RefractaSnapshot

With this script written by fsmithred, you can make a full system backup of your working box, which also becomes a Live Debian that can run or install anywhere you like. It’s smooth and easy to use. Runs via CLI or by its GUI.

download refractasnapshot and refractainstaller (base deb and gui deb if needed) from http://sourceforge.net/

cd to download dir

If there are unmet dependencies, sort it out with
for a new system I found refractasnapshot-base needed
squashfs-tools live-boot live-config live-boot-initramfs-tools live-config-sysvinit

version 9.3.3 needed the following.
libburn4 libjte1 libisofs6 libisoburn1 xorriso isolinux

refractainstaller needed
grub-pc grub-legacy

Also, you must install a newer version yad (>21.0), necessary for the snapshot installer to run properly, from here sourceforge.net/projects/yad-dialog

then cd, ./configure, make, sudo make install

or get the sid release deb binary from pkgs.org

1a. Config file

change the refracta working directory out of /home (to another partition), using the config file:
edit the exclude list (to reduce the final iso size) sudo geany /usr/lib/refractasnapshot/snapshot_exclude.list I added

1b. Post-scripts

these run after the install and before the unmount and reboot.

This one is in process, a script to ask whether a root dir should be moved to another partition — such as /var, or /usr. check it here https://gist.github.com/fsmithred/.

-it needs to go in /usr/lib/refractainstaller/post-install/
-the source (dir to move) and dest (partition) can be added to the script or you can try using yad to ask for which dir to move (I haven’t had time yet to test it)
and

2. Disk clean up

I recommend running Bleachbit as root to clean up the system before running a snapshot back-up.

  • install a dependency:
  • install the bleachbit deb
  • run sudo bleachbit
  • select some things like apt cache clean and Localization (unwanted languages — all those LC_MESSAGES files -set which ones to keep in preferences)
  • hit preview and then clean
  • run bleachbit as normal user to clean up the web browser cache and whatever

3. Build the snapshot

To make a snapshot of the installed system, either to backup or clone it to another PC, run `sudo refractasnapshot’

running it with the gui seems pointless to me, really

needed disk space = disk size used by the system files + room for the iso file (in my case with the proper excludes, 5.5Gb + 1.9Gb)

you can enable xz compression in the conf file, but it takes longer to make the iso file. You just un-comment the line: #mksq_opt=»-comp xz»

Tip: to get the installer icon on the desktop when you boot the Live ISO on another machine, but not present on the desktop on a new install.

  1. copy the .desktop file to the desktop i.e.
  2. edit the exclude list
  3. add the exclusion
  4. thus when the installer copies the file system to the target machine, the install icon will be excluded (so it only appears in the Live environment)

4. refracta2usb

to install the package, get from http://sourceforge.net/

install the dependencies
This allows install of a Live system to USB from a Live CD iso or from a running live session, and can also update the file-system on USB stick later with a newer one. (Unetbootin can be used if preferred)
http://distro.ibiblio.org/refracta/.

refracta2usb complains if the usb is mounted (and Unetbootin complains if its not mounted!)

Don’t eject the device, unmount with pumount /dev/sdb1 etc

Tip: before updating the ISO image on the USB stick, first erase the previous files. It can happen that the stick gets full.

If you can’t boot with the stick, try to reformat the USB stick, as a partition mess-up will prevent it booting.

5. refractainstaller

It’s a pretty straight forward affair once you boot into your Live system from the USB stick. I get my partitions ready before hand with gparted from Live.

Just run `refractainstaller` or `refractainstaller-yad`to run the installer.

It’s very nice to see your snapshot system getting cloned onto another box!

Note: installing on Uefi firmware PCs is not the same as installing on the usual BIOS PC. You need to get refractainstaller 9.2 or later and to install your ISO run `refractainstaller-uefi`. see «uefi and the installer»

Uefi will only boot a 64bit ISO as well — so to install a 32bit Debian, you’ll need at least one 64bit ISO on the usb stick in order to boot it and reach the boot menu.

Also, you may need these .deb packages on the root or in home of the ISO, to run a dpkg install using chroot during the refractainstaller process,
You could install these on your 64bit Debian before running the snapshot, but it removes grub-pc, so you should only do that if your Pc is uefi.

FSArchiver

is worth looking at too, its a file system archiver, as the name suggests http://www.fsarchiver.org/Main_Page

you can install it via apt, or download the binary file

It has a frontend called fsarchiver_dialog, http://zolli.altervista.org/fsa_dial/

Or you can just type fsarchiver in a terminal and it will give you the commands to use (or better, do man fsarchiver)

Резервное копирование (backup) сервера на Debian

Как известно, бэкапы — это наше все. Делаем бэкап с помощью tar и remastersys темной ночью, пока никто не видит.
Для начала создадим файл, в котором будет наш могучий скрипт. Простой, но могучий.

Создаем папки для бэкапов:

Это для SQUID

Это для SAMBA

Это для папки с веб-сервером

Это для дампов баз данных

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

Делаем скрипт его запускаемым:

Далее открываем любым редактором /backup.sh и пишем примерно следующее:

Настроим remastersys, для этого открываем файл /etc/remastersys.conf и вносим следующие изменения:

Теперь добавим в CRON расписание для проведения бэкапа.

Сохраняем и наслаждаемся.

Для того, чтобы проверить, как будет работать скрипт — пишем:

У меня на все-провсе уходит минут 10. После того, как скрипт отработает — в папке /backups появляются папки с бэкапами.

Как сделать дамп диска сервера debian

Product SiteDocumentation Site

9.10. Резервное копирование

9.10.1. Резервное копирование с помощью rsync

К ОСНОВАМ Жёсткая ссылка, второе имя файла

Пример 9.3. Файл /etc/dirvish/master.conf

НА ПРАКТИКЕ Запланированное истечение сроков хранения

Пример 9.4. Файл /backup/root/dirvish/default.conf

НА ПРАКТИКЕ Удалённое резервное копирование через SSH

9.10.2. Восстановление машин без резервных копий

УГЛУБЛЯЕМСЯ Резервное копирование сервисов SQL и LDAP

КУЛЬТУРА TAR , стандарт резервных копий на плёнке

Записки дебианщика

В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

  • Главная
  • Оглавление
  • Скачать
  • Новости
  • Экипаж
  • Лунодром

Как сделать бекап при помощи dd: используем dd для backup

Эпиграф
Только зануды делают резервные копии:
настоящие мужчины просто
закачивают все важное на ftp,
позволяя остальным отзеркалировать это.
Линус Торвальдс

Утилита dd есть в любом дистрибутиве, и даже в Knoppix , который можно использовать для восстановления данных, и вам не потребуются разные платные примочки типа Paragon backup или Symantec backup. То есть с помощью dd можно делать backup системы, в том числе backup сервера. Для этого так же потребуется любой архиватор, в данном примере это gzip. Приведён вариант с архивированием на другую машину по сети с использованием SSH или netcat.


1. Приготовления

Загружаемся с любого LiveCD диска с Linux / BSD, залогиниваемся под root-аккаунтом.
Убеждаемся, написав в консоли df, что ни один из тех разделов, что мы собираемся копировать, не примонтирован на запись. Решаем, куда будем архивировать данные: это может быть другой раздел на винчестере, внешний жёсткий диск или по сети.

2. Создаём резервную копию
В данном примере /dev/hda это винчестер, который архивируем, а /dev/sda1 — это раздел внешнего винчестера или другая партиция, на которую архивируем, hda.img.gz — получившийся сжатый файл-образ.

2.1 Внешний винчестер или другой раздел диска
Монтируем устройство, куда мы будем архивировать данные

Здесь происходит архивирование с одновременным сжатием, результат чего записывается в файл hda.img.gz
Параметр «conv=sync,noerror» указывает dd не читать блок, если при этом происходит ошибка, но записать в архивируемый файл-образ данные, чтобы размер блока не менялся.
Параметр «bs=64K» это размер блока в килобайтах — использование такого большого размера блока ускоряет процесс копирования. Параметр bs можно сделать ещё больше, а именно равным размеру кеша копируемого диска (например bs=8m), это сильно ускорит весь процесс.
Выходной поток передаётся по конвейеру для сжатия gzip, результат выводится в файл на другом диске.

2.2 Удалённо по сети
Всё то же самое, что в п.2.1, но с добавлением в конвейер SSH:

Архивный файл появится в домашней директории пользователя user на машине hostname. Если сеть маленькая, лучше вместо hostname использовать просто ip-адрес. Опция -c blowfish заставляет SSH выбрать алгоритм шифрования Blowfish, который быстрее остальных шифрует данные.

Вариант с netcat, если данные копируются по локальной сети и шифрование не нужно:

и далее всё то же, что и в п.2.1.

3. Восстанавливаем данные из бекапа
Пример тот же: /dev/hda это винчестер, который архивируем, hda.img.gz — архивный сжатый файл-образ, а /dev/sda1 — это раздел внешнего винчестера или другая партиция, с которого восстанавливаем данные.

3.1 Внешний винчестер или другой раздел диска
Копируем и распаковываем файл-образ одновременно:

Все параметры в п.2 уже объяснены.

3.2 Удалённо по сети
Сетевой вариант с восстановлением из файл-образа:

dd if= hda.img.gz | ssh -c blowfish user@ deadhost «gunzip -c | dd of= /dev/hda1 bs=64k»

Следует помнить, что в данном случае не следует использовать опцию conv=sync,noerror в опциях dd — если вы всё-таки включите эту опцию, в большинстве случаев это исказит записываемые данные (это заставляет dd не дожидаться данных, приходящих по сети, если целый блок недоступен).

Ссылки
Этот пост является переводом этой замечательной статьи, дополненной и расширенной этой и этой статьями. Так же это применимо к утилитам восстановления данных, описанных здесь.

28 комментариев: |высказаться!| RSS-лента дискуссии.|

А еще иногда (на ФС, отличных от ext3/reiser/xfs) возникают проблемы с файлами больше 2х или 4х Гб. Чтобы предотвратить такие проблемы, файл образа можно сразу порезать split-ом:
dd if=/dev/hdb1 | gzip | split -d -b 2G hdb1_img_
Получатся файлы hdb1_img_0, _1, .

Убеждаемся, написав в консоли df, что ни один из тех разделов, что мы собираемся копировать, не примонтирована на запись.

Или df в дебиане показывает статус ФС, или всё-таки mount ?

параметр bs лучше сделать еще больше, а именно равным размеру кеша копируемого диска. Т.е. например bs=8m, это сильно ускорит весь процесс

Или df в дебиане показывает статус ФС, или всё-таки mount?

Одно плохо, бэкап производится без учета ФС
Таким образом если на диске в 200G реальных данных скажем 100G, в образ все равно будут заворачиваться все 200.
И сжатие тут мало поможет, ибо неиспользуемые области содержат далеко не нулевые значения.

Одно плохо, бэкап производится без учета ФС
Таким образом если на диске в 200G реальных данных скажем 100G, в образ все равно будут заворачиваться все 200.
И сжатие тут мало поможет, ибо неиспользуемые области содержат далеко не нулевые значения.

Для того чтобы учитывать ФС как Вы выразились есть утилита partimage. Которая делает образ только реальных данных. Правда имеется не во всех дистрибутивах в отличии от dd.

Для того чтобы учитывать ФС как Вы выразились есть утилита partimage. Которая делает образ только реальных данных. Правда имеется не во всех дистрибутивах в отличии от dd.

Я это все к чему..
Может таки перед backup с использованием dd, как то прописать во все свободные блоки нули?
Тогда их участие в образе после сжатия будет не столь впечатляюще?

я в свое время делал бэкап с помощью pax, она по сути создает обычный tar.gz, только сохраняет все права и владельцев ФС, ну а восстановление с помощью обычного tar/gunzip. Если кому интересно могу найти с какими ключами использовал.

PS. Бэкапил наживую (в часы наименьшей нагрузки), сервер под FreeBSD 6.0. Ну и естесственно проверял что юэкапы потом можно будет использовать, т.е. восстанавливал на другой машине (другом железе).

Бэкапы нужны, чтобы было легче после такого: http://lug.wsu.edu/node/414 .

openssl+nc тоже дают шифрование. Просто раздаю с сервера образ машины эталонный, ставлю на образ пароль таким образом : )

Одно плохо, бэкап производится без учета ФС. Таким образом если на диске в 200G реальных данных скажем 100G, в образ все равно будут заворачиваться все 200.
И сжатие тут мало поможет, ибо неиспользуемые области содержат далеко не нулевые значения.

Именно для бэкапа в своё время были созданы утилиты dump/restore, которые, в отличие от partimage, есть в любом дистрибутиве. Эти утилиты лишены перечисленных недостатков, кроме того, позволяют делать инкрементальный бэкап.
Перечитываем статью, заменяя dd на dump, и всё хорошо 🙂

Пример использования dump/restore с корневого раздела удалённой машины в текущую директорию (с файла будет немного по другому)

ssh backup-server.remote «dump -0af- /» | restore -xf .

А чем плох backup с помощью tar ?

2 Portnov пишет.
А еще иногда (на ФС, отличных от ext3/reiser/xfs) возникают проблемы с файлами больше 2х или 4х Гб.
А что за файловые системы, у которых такие проблемы!? Неужели FAT\NTFS? 🙂

2 jankkhvej пишет.
Или df в дебиане показывает статус ФС, или всё-таки mount?
Во всяком случае:

$ df
Файловая система 1K-блоков Исп Доступно Исп% смонтирована на
/dev/hda2 58314120 29571488 28742632 51% /

Показано, что раздел смонтирован.

2 past пишет.
параметр bs лучше сделать еще больше, а именно равным размеру кеша копируемого диска. Т.е. например bs=8m, это сильно ускорит весь процесс
Спасибо за ценное замечание, добавлено в текст.

2 Анонимный пишет.
Одно плохо, бэкап производится без учета ФС
Таким образом если на диске в 200G реальных данных скажем 100G, в образ все равно будут заворачиваться все 200.
Так это полный образ диска и есть.

2 Maverick пишет.
есть утилита partimage. Которая делает образ только реальных данных. Правда имеется не во всех дистрибутивах в отличии от dd.
В Дебиане есть, по крайней мере в Этче. Надо будет на досуге о ней написать. Maverick , спасибо за идею!

2 Deepwalker пишет.
openssl+nc тоже дают шифрование. Просто раздаю с сервера образ машины эталонный
В общем тоже вариант.

2 ujo пишет.
Перечитываем статью, заменяя dd на dump, и всё хорошо 🙂
Да, по ходу дела придётся писать ещё один пост 🙂

И ещё раз спасибо за ценные мысли!

Убеждаемся, написав в консоли df, что ни один из тех разделов, что мы собираемся копировать, не примонтирована на запись.
Наверно, раздел всё-таки мужского рода и окончание у «примонтирована» должно быть другим, а? Как считает автор? 🙂

пофиг смонтирован ли первычный раздел или нет:
cat /dev/hda | gzip -9 > /mnt/disk2/obraz-hda.gz
и куча вариаций на тему.
точную копию диска (например когда собираешь пачками thin-клиенты):
cat /dev/hda > /dev/hdc

@virens
Да, Fat/Ntfs, а еще различные варианты iso9660/udf (если бэкапимся на двд). В большинстве случаев проблемы не возникает, но я предпочитаю перестраховаться 🙂

imho — может таки стоит перед бэкапом создать

dd if=/dev/zero of=./zero_file bs=FREE_SIZE count=1

и снять вопросы с размером запакованного архива?

Здесь
http://www.samag.ru/art/11.2006/11.2006_03.html
описан скрипт, учитывающий файловую систему. Он для SystemRescueCd, но используемые пакеты можно поставить в любой линукс.
И вообще, SystemRescueCd, который можно запускать с CD или флешки, много интересного несет в себе.
А есть что-либо под линукс, что умеет запакованный образ раздела монтировать, чтобы можно было просмотреть и скопировать выборочные файлы?

Привет, Virens. Можешь подсказать, есть небольшая задачка. Нужно мой ext3 раздел в 14Gb (есть только один раздел, монтирован на /) расширить, т.е. из 14Gb сделать 50Gb, и, конечно, сохранить при этом все те насройки и программы что есть уже в системе. Про это ли говорится в этом посте (или только о backup-е)? Если не про это, можешь, пожалуйста, подсказать, где можно найти/почитать как это правильно сделать.
Спасибо.
Александр.

Ошибочка вышла немного. Пункт 3.1 (цитирую):
>Копируем и распаковываем файл-образ одновременно:
># gzip -x /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
Вместо gzip -x должно быть gunzip -c. Ну и логичнее будет сказать «распаковываем и копируем», но это я уже придираюсь 🙂

На офф сайте Partimage предупреждается о НЕ поддежке фс ext4, btrfs

при распаковке теперь вместо gzip -x gzip -d

Волею хаоса сюда нагрянул автор и узрел необходимость поправить пост.

@Анонимный комментирует.
Наверно, раздел всё-таки мужского рода и окончание у "примонтирована" должно быть другим, а? Как считает автор? 🙂
Автор считает так же. Просто многие посты в этом блоге напоминают римские катакомбы — они подкапываются и переделываются столько раз, что русская языка мало-мало шайтанамама 🙂

@Анонимный комментирует.
пофиг смонтирован ли первычный раздел или нет:
Ну ты горяч, Анонимус!

и куча вариаций на тему.
В посте речь вообще-то про dd. Но мысль верная, и я её подумаю.

@sda комментирует.
imho — может таки стоит перед бэкапом создать
Занятно. Попробуем.

@Анонимный комментирует.
Здесь описан скрипт, учитывающий файловую систему. Он для SystemRescueCd, но используемые пакеты можно поставить в любой линукс.
Ссылка дохлая: "Внутренняя ошибка системы" и всё. А жаль.

И вообще, SystemRescueCd, который можно запускать с CD или флешки, много интересного несет в себе.
Йёда магистр с Анонимом согласен, SystemRescueCd к светлой стороне силы много интересного добавляет 🙂

А есть что-либо под линукс, что умеет запакованный образ раздела монтировать, чтобы можно было просмотреть и скопировать выборочные файлы?
Хмм. дас ист гут проблем. Можно попробовать привлечь к этому squashFS — но оно без записи.

@Анонимный комментирует.
Ошибочка вышла немного. Пункт 3.1 (цитирую):
Всё течёт, всё меняется. Спасибо, Анонимус! Поправил. И да, так оно логичнее.

Если использовать LVM — можно это все на живую делать, snapshot сделал с логического тома, бакапишь его и не паришся юзает его кто то или нет

@Анонимный комментирует.
Если использовать LVM — можно это все на живую делать
Это понятно, что можно, но у меня LVM нет.

Тут, кстати, один из приглашённых авторов (iv_vl) грозился разродиться постом про LVM. Но что-то у него это как-то не пошло. Анонимус не хочет поучаствовать в процессе?

(iv_vl) грозился разродиться постом про LVM
Часть про установку LVM написана, и лежит у тебя в закрытом блоге. Я установил дебиан и просто занимаюсь наукой. На эксперименты не тянет — мне ехать, а не шашечки. Посему, если кто захочет дописать, то с радостью отдам котенка^Wстатью в хорошие руки.
P.S. Михаил, я начал раздумывать, в какие постдоки податься после защиты. Может выскажешь по email какие соображения по поиску? Ведь у тебя, дебианщика, всегда есть рецепты на все случаи жизни, поэтому и читаем с удовольствием твой блог. Или хотя бы про Австралию скажи, как с этим дела.

Есть вопрос, таким образом можно будет сделать бэкап флешки телефона, с целью развернуть этот бэкап на SD карточку большего размера?
Карточка сильно старее телефона и кажется скоро откинет копыта и под это дело я намереваюсь купить карточку большего размера.
P.S. понимаю вопрос глупый, но все же интересно, телефончик тоже далеко не новый на Symbian и некоторые программки, установленные на SD карточку, не так просто найти да и времени займет немало.

Iskander, Да можно. Проблема возникнет только в "большести" другой карты. DD копирует побайтово все устройство, вместе с таблицей файлов. На Fat32 все блоки прописаны в эту таблицу. Поэтому ДВА варианта.

1) Скопировать с помощью dd на карточку, затем использовать gparted чтобы расширить раздел.
2) Снять образ с существующей карточки с помощью dd. Затем, используя mount -o loop подсоединить этот образ как диск, и просто перекопировать файлы с него на новую флэшку.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *