Команда dd клонируем//очищаем флешку Ubuntu Debian Linux

 

Узнаем обозначение флешки в системе. Будьте внимательны так как при ошибке в название флешки в команде dd можно повредить винчестер хоста.

Выведем обозначение разделов всех устройств

и найдем среди них флеш накопитель:

sudo fdisk -u -l /dev/sd?

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

sudo cat /proc/partitions

Синтаксис команды dd

dd if=/AAAA of=/BBBB bs=CCCC count=DDDD conv=noerror

Где:

  • if: (input file) указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
  • of: (output file) указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
  • bs: количество байт, которые будут записаны за раз. То есть размер куска данных, которые будут прочитаны и записаны за раз. рекомендуют ставить bs= размеру кеша винчестера т.е. 8M 16M 32M
  • count: сколько кусков bs будет скопировано.
  • conv: позволяет подключать фильтрs, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения.

Примеры

Полное стирание диска

Чтобы на носителе ничего нельзя было восстановить — можно забить его нулями, эта команда всегда закончиться ошибкой "на носителе кончилось место"

dd if=/dev/zero of=/dev/sdX

Создание образа диска

dd if=/dev/cdrom of=image.iso conv=noerror

так же можно смонтировать образ в систему

mount -o loop /PathToImageFile/image.iso /mnt/FolderMount

Если что-то не получается, процесс разбивается на 2 уровня:

losetup -e /dev/loop0 /PathToImageFile/image.iso
mount /dev/loop0 /mnt/FolderMount

Операции с MBR

MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так: 

dd if=/dev/sda of=mbr.img bs=512 count=1

Восстановить можно проще: 

dd if=mbr.img of=/dev/sda

Копируем с архивированием

(используя gzip) данные с флешки на винчестера.

dd if=/dev/sdX conv=sync,noerror bs=8M | gzip -c >/PathToSave/sdX.img.gz

и обратно

gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync,noerror bs=8M

Копируем по сети

dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c blowfish UserName@HostName "dd of=sdX.img.gz bs=8M"

и обратно

dd if=sdX.img.gz | ssh -c blowfish UserName@HostName "dd of=/dev/sdX bs=8М"

Выводим текущий статус выполнения командой

killall -USR1 dd
Таксаномия: