Как сделать полный бекап диска Linux

Стандартная ситуация — на сервере начал умирать диск, появились первые беды, система с трудом встает после ребута. Но переустанавливать все заново очень долго, да и зачем? Гораздо проще сделать полный клон диска или испорченного раздела. И в этом поможет dd. Программа dd идеально подойдет там где нужно сделать точную копию раздела/слайса диска. Она сектор за сектором копирует данные из источника (параметр if ) в пункт назначения, если так можно выразиться (параметр of ). Чтобы понять как просто пользоваться программой давайте сделаем это на практике.

# dd if=/dev/hda of=/dev/hdb conv=noerror,sync

Команда выше сделает точную копию раздела /dev/hda в разделе /dev/hdb. То есть мы «отзеркалировали» /dev/hda. После conv= мы можем указать ряд параметров:

* noerror — продолжать копирование не обращая внимание на bad-блоки и прочие ошибки
* sync — поврежденные или отсутствующие данные во входном буфере на выходе будут заменены на нули. Опция замедляет работу команды dd, но для более корректного образа стоит воспользоваться ею.

# dd if=/dev/hda3 of=/var/backup/hda3.img

Этой командой мы записали раздел /dev/hda3 в бинарный файл hda3.img. Теперь его можно перенести на другой сервер и развернуть в точную копию/dev/hda3. Только учтите один минус dd — программа копирует данные по секторам и ей все равно есть на этом участке диска данные или нет, будет воссоздана точная копия и размер будет точно такой же! То есть если раздел /dev/hda3 имеет объем в 5 Гб а занят на нем только 1 то файл hda3.img будет весить 5 Гб. Восстановить раздел из образа также просто как и создать:

# dd if=/var/backup/hda3.img of=/dev/hda3

Ну и напоследок сделаем копию нашей MBR (Master Boot Record). MBR – это первый сектор на жестком диске содержащий таблицу разделов и запись, с какого раздела загружаться. Иногда требуется восстановить MBR из резерва.

# dd if=/dev/hda1 of=/var/backup/mbr.dump bs=512 count=1

Команде dd мы просто передали параметры bs и count, этим указав какой объем данных мы хотим скопировать.

* bs — block size, размера блока который мы хотим скопировать
* count — количество bs

Мы ведь уже знаем, что MBR находится в первых 512 байтах (1-й сектор). Теперь восстановим MBR из резервной копии

# dd if=/var/backup/mbr.dump of=/dev/hda1 bs=512 count=1

Размер сектора можно узнать так:

# fdisk -l /dev/hda1

  1. а как будет выглядеть команда ,чтобы скопировать диск целиком вместе с мбр, чтобы он стал загрузочным и полностью аналогичным оригиналу?

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

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