LINUX.ORG.RU

dd, копирование изображения диска на него самого


0

0

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

Диск размечен таким образом - /, /boot, /home, swap, /mnt/backup

Подразумевается, что в разделе /mnt/backup достаточна место чтобы в него скопировать образ всей системы. Кроме того на нем используется файловая система JFS и он гарантированно стоит последним разделом.

Достаточно глупые вопросы, но:

1) Где посмотреть с какой позиции начинается на жестком диске раздел, смонтированный в последствии в /mnt/backup

2) Можно-ли сделать резервное копирование жесткого диска следующим образом: dd if=/dev/sda of=/mnt/backup/system.iso count=XXX bs=XXX, то есть остановить копирование как раз там, где начинается раздел для резервного копирования.

3) Насколько безболезненно можно будет развернуть подобную резервную копию?

Буду благодарен за любую помощь, спасибо.


1) fdisk -l
2) можно, но вместо dd по-моему лучше воспользоваться tar
3) если mbr не испорчена -вполне безболезненно можно будет

Sylvia ★★★★★ ()

1) fdisk -lu , адреса получаться Units = sectors of 1 * 512 = 512 bytes
2) Можно. Возможно будет компактнее и проще использовать partimage, но если хочется dd, то можно.
3) Придётся пересоздать фс на последнем(бекап) разделе. (если он там нужен)
Если новый диск меньше по размеру чем старый, то последний раздел (бекап) нужно будет пересоздать. (если нужен).

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

Nao ★★★★★ ()

Если уж делать с помощью dd, ИМХО, логичнее создавать ререзвные копии разделов, а не диска. И отдельно резервную копию MBR (тиблицы разделов). И swap не скопируются и в случае чего что-нибудь удалить можно.

mky ★★★★★ ()

Лучше не связывайся с dd, ибо
1. Геометрия диска изменится - затрахаешься восстанавливать.
2. dd дампит всё пространство, включая нули.
3. tar что советовали тоже не рекомендую, т.к. каждый раз будешь весь снова все данные дампить.
4. Не понимаю чем тебе JFS так понравилась.

Вообщем мой вариант решения задачи - перейти на XFS, она умеет снимки и с рабочей системы. Ничего отмонтировать даже не надо (я, надеюсь, ты понимаешь, что для dd образа тебе придётся опускать систему).
А потом просто xfsdump blah-blah | xfsrestore blah-blah. При этом она держит инкрементальные бэкапы до 9и уровней, т.е. не придётся постоянно все данные снимать, как tar'ом.
У меня есть готовый скрипт для backup XFS'а. Если нужен - говори.

anonymous ()
Ответ на: комментарий от Nao

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

новый винт не меньше суммарного размера партиций которые бекапятся.


Извините, ошибся. Даже скорее затупил - слишком расточительно так получается.

Warf ()

Вариант с tar рассматривал, но не совсем то, что нужно.

Несколько не понял с xfsdump - чтобы с ее помощью сделать снимок корня, нужно чтобы «/» был в XFS? Это не опасно, с учетом любви XFS заполнять концы файлов мусором при выключении питания?

Просто может быть я действительно заблуждаюсь, но сейчас таблицы разделов такая:
/ - Ext4
/boot - Ext2
/home - XFS (много больших файлов которые никогда не открываются для записи).

Для создания снимков / с xfsdump нужно сделать его тоже в XFS? Или этот способ не для самой системы, а все таки для документов?

Warf ()

Инкрементальные бекапы можно делать например с помощью rdiff-backup
Это если не хочется привязываться к конкретным фс и их утилитам.

Nao ★★★★★ ()
Ответ на: комментарий от Warf

> Для создания снимков / с xfsdump нужно сделать его тоже в XFS?
да, xfsdump только для xfs

Nao ★★★★★ ()
Ответ на: комментарий от Nao

Делать / в файловой системе XFS - имеет смысл? Я не пользовался этой файловой системой, но о ней пишут много противоречивого, для этого она подойдет?

Warf ()

Я так и не понял, ты хочешь просто делать бекап или перенести на другой винт? В любом случае посмотри в сторону rsync, имхо идеальное решение для бекапа, поддерживает запаковку бекапов и обновление дельтами. Если переносишь данные на новый винт, то это тоже подойдет, но MBR надо будет через dd скопировать.

PayableOnDeath ()

Может быть, лучше разделить бекап по разделам, плюс отдельно MBR?

AITap ★★★★★ ()

Я так и не понял, ты хочешь просто делать бекап или перенести на другой винт?


Просто резервная копия, не для переноса на другой диск.

Может быть, лучше разделить бекап по разделам, плюс отдельно MBR?


Именно так и сделаю, спасибо. Это самое грамотное.

да, xfsdump только для xfs


Читаю на http://www.tin.org/bin/man.cgi?section=8&topic=xfsdump
Несколько не понимаю синтаксис команды. Или принцип работы.

Можно привести пример, как сделать абсолютный снимок файловой системы с записью его в отдельный файл на другом разделе? И второй пример - последующее создание инкрементального снимка для того-же раздела, с записью в другой файл. Если не трудно...

Warf ()
Ответ на: комментарий от Warf

> Можно привести пример, как сделать абсолютный снимок файловой системы с записью его в отдельный файл на другом разделе?

Както так:
xfsdump -l0 -f /path/to/backup.0 /dev/xfs_partition

И второй пример - последующее создание инкрементального снимка для того-же раздела, с записью в другой файл.


xfsdump -l1 -f /path/to/backup.1 /dev/xfs_partition

З.Ы. xfs в глаза не видел, информация получена из мана.

Nao ★★★★★ ()
Ответ на: комментарий от anonymous

>Вообщем мой вариант решения задачи - перейти на XFS, она умеет снимки и с рабочей системы.

А потом просто xfsdump blah-blah | xfsrestore blah-blah

Насколько я понял эти тузлы аналогичны dump/restore для ext*?

Nao ★★★★★ ()
Ответ на: комментарий от Warf

Если места достаточно и дампы не пакуются, можно не париться и хранить всё в открытом виде:

xfsdump -l$LVL -L level_$LVL -M `LANG=C date +%b_%d` - ${BACKUP_SRC[$I]} | xfsrestore -r - $BACKUP_MNT

Вообщем мой вариант решения задачи - перейти на XFS, она умеет снимки и с рабочей системы.
А потом просто xfsdump blah-blah | xfsrestore blah-blah

Насколько я понял эти тузлы аналогичны dump/restore для ext*?

Как бы да, но я с ними не работал и, согласно характеристикам ext*, они снимки не поддерживают. Значит дампить корень в rw нельзя, иначе бэкап может получиться порченым.

anonymous ()

А в чём тайный сакральный смысл размещения бэкапа на том же винте?

friday ★★★ ()
Ответ на: комментарий от friday

А в чём тайный сакральный смысл размещения бэкапа на том же винте?

Не боязнь поломки диска, а страх нуба поломать систему ;)

Warf ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.