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