DevBug blog

О Linux, Java, разработке ПО и не только

dd: создаем образ флешки

Предположим, что у нас имеется некая флешка, образ которой нам необходимо сделать. Допустим, что данная флешка в системе определяется, как /dev/sdb. Для создания клона данной флешки воспользуемся утилитой dd, которая помимо всего прочего умеет/может:

  • копировать первые n байт файла;
  • пропустить m байт от начала;
  • прочитать файл с дефектного носителя;
  • транслировать содержимое файла в ASCII;
  • «развернуть» порядок байт в файле;
  • просто скопировать очень большой файл;
  • все вместе взятое

Рассмотрим несколько примеров по:

  • созданию.восстановлению образа флеш-накопителя;
  • созданию/восстановлению резервной копии флеш-накопителя с использованием сжатия;

Открываем терминал (консоль) и вводим команду от имени суперпользователя:

dd if=/dev/sdb of=flash_image.img bs=1M

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

Для восстановления существующего образа обратно на флешку вводим команду:

dd if=flash_image.img of=/dev/sdb bs=1M

Собственно тут все тоже самое, только с точностью наоборот.Если у нас имеется две одинаковые флешки и нам необходимо сделать копию одной флешки (sdb) на другую(sdc), то вводим команду:

dd if=/dev/sdb of=/dev/sdc bs=1M

Для создания резервной копии с использованием сжатия вводим команду:

dd if=/dev/sdb bs=1M | gzip -c img.gz

Для восстановления из сжатого образа:

gunzip -c img.gz | dd of=/dev/sdb bs=1M

С точки зрения затраченного времени, данный способ резервного копирования является не самым эффективным, т.к. dd осуществляет линейное чтение данных с носителя (файла). Для уменьшения скорости создания/восстановления образов можно поиграться с параметром bs=1M (размер блока). В нашем случае размер блока принят равным 1 МБ.

comments powered by Disqus