Способы создания резервной копии жёсткого диска и восстановление данных.

Clonezilla

Простой и лёгкий способ создать резервную копию, просто загрузив система с CD или USB. Образ может храниться в сети или на локальных дисках.

Минусы: - невозможно создать копию без остановки системы

dd

Создаём образ с помощью утилиты dd, которая практически гарантировано есть в системе. Я делал резервные копии таким образом для своего роутера.

  • Создание образа с помощью dd

dd if=/dev/sda bs=8096 | gzip -9cf > router.sda.gz

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

  • Восстановление системы из образа с помощью dd

Теперь команда для восстановления системы из образа, который сделали немного ранее:

gunzip -c router.sda.gz | dd of=/dev/sda bs=8096

Минусы: - команда не поймёт, что встретила ошибку на диске и просто замучает его до фатального состояния.

dd_rescue

То же самое, что и dd, но с другим синтаксисом и понимает ошибки, пропуская их.

ddrescue

она же GNU ddrescue — мощная консольная утилита для восстановления данных с повреждённых носителей. Является частью проекта GNU (GNU/Linux).

Ставим (ubuntu):

apt-get install gddrescue

Использование:

ddrescue [options] infile outfile [logfile]

Лог - важное дело. В случае запуска повторных проходов, читаться будут только повреждённые данные (если это возможно). То есть 2-3 прогона существенно помогают восстановить информацию. Пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 router ~ # ddrescue -v /dev/sda /media/usb/backup.ddr /media/usb/backup.log
 About to copy 4001 MBytes from /dev/sda to /media/usb/backup.ddr
     Starting positions: infile = 0 B,  outfile = 0 B
     Copy block size: 128 sectors
 Sector size: 512  bytes
 Max retries: 0
 Direct: no    Sparse: no    Split: yes    Truncate: no
 
 Press Ctrl-C to interrupt
 Initial status (read from logfile)
 rescued:         0 B,  errsize:       0 B,  errors:       0
 Current status
 rescued:    75759 kB,  errsize:       0 B,  current rate:    4849 kB/s
    ipos:    75759 kB,   errors:       0,    average rate:   12626 kB/s
    opos:    75759 kB,     time from last successful read:       0 s
 Copying non-tried blocks...