Команда 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