Вторник, 05.11.2024
TiM
Меню сайта
Категории раздела
Мои статьи [9]
1С Бухгалтерия [1]
Arduino / ATMEGA [10]
ESP8266 [1]
OrangePi PC и Raspberry Pi 2 Model B V1.1 [4]
Шаговые двигатели [1]
PHPProBid [0]
CMS DLE (DataLife Engine) [0]
CMS Joomla [13]
SugarCRM [5]
Базы данных [5]
PHP скрипты [16]
Bash и скрипты [27]
IP АТС Elastix / Asterisk [12]
CentOS [6]
Debian [8]
Lubuntu / LinuxMINT [29]
Windows [28]
Умный дом [1]
Сервера [16]
Natural Selection [1]
System Shock 2 [1]
Форма входа
Главная » Статьи » Lubuntu / LinuxMINT

Утилита dd

dd (dataset definition) — универсальный инструмент, предназначенный для побайтового копирования и для конвертации файлов.

Пример, наглядно иллюстрирующий основные параметры команды:

dd if=/dev/urandom of=/dev/null bs=100M count=5

Параметры:

  • if: указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
  • of: указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
  • bs: количество байт, которые будут записаны за раз. Можно представлять этот аргумент как размер куска данные, которые будут записаны или прочитаны, а количество кусков регулируется уже следующим параметром.
  • count: как раз то число, которое указывает: сколько кусочков будет скопировано.

Таким образом, описанная команда читает 5*100 мегабайт из устройства /dev/urandom в устройство /dev/null. Придавая этой команде смысловую нагрузку получается, что система сгенерирует 500 мегабайт случайных значений и запишет их в null устройство. Конечно, единственное, что сделает эта команда: нагрузит процессор на несколько секунд.

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

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

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

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

Параметр «conv» позволяет подключать несколько фильтров, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать.

Смонтировать образ можно при помощи команды mount с ключем “-o loop”:

mount -o loop image.iso /mnt/image

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

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

Если и так не работает, значит файловая система образа полетела.
Работа с носителями информации
Клонирования жесткого диска:

Подробности см. в статье “DD+GnuPG(AES256/SHA512+BZIP2)+SPLIT клонируем, сжимаем шифруем раздел

Забить носитель нулями:

dd if=/dev/zero of=/dev/DEVICE

ВАЖНО! данный способ СОВЕРШЕННО не гарантирует полного уничтожения данных на жестком диске и их все равно можно будет восстановить с помощью специального ПО и спец. оборудования. Для гарантии полного уничтожения данных необходимо применять спец. алгоритмы стирания данных, такие например как Gutman, VSITR, RCMP TSSIT OPS-II и др.

Проверить можно тем же dd, но преобразовав данные в hex:

dd if=/dev/sda | hexdump -C

Должны посыпаться нули.

Операции с MBR

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

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

Восстановление MBR из резервной копии:

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

Обратите внимание на то, что если Linux монтирует файловые системы согласно суперблоку, то Windows ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk.
Генерация файлов

При помощи dd можно генерировать файлы, а затем использовать их как контейнеры других файловых систем, так же возможно применении шифрования.
При помощи dd создадим файл, забитый нулями.

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

Генерация файла, забитого нулями:

dd if=/dev/zero of=image.img bs=1M count=1024

или

Генерация файла, забитого случайными числами:

dd if=/dev/urandom of=image.img bs=1M count=1024

Будет создан файл размером 1 Гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Для примера будем использовать алгоритм blowfish.

Загрузка модулей:

modprobe cryptoloop
modprobe blowfish

Ассоциация образа с блочным устройством со включенным шифрованием:

losetup -e blowfish /dev/loop0 image.img

Команда запросит ввести пароль к образу. Если ключ введен не правильно, система не смонтируется. Можно будет заново создать данные в образе, используя новый ключ, но к старым данным доступа не будет.

Создаем файловую систему и монтируем:

mkfs.ext2 /dev/loop0 
mount /dev/loop0 /mnt/image

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

Отключение от блочного loop устройства:

umount /dev/loop0 losetup -d /dev/loop0

Теперь зашифрованный образ готов.

Категория: Lubuntu / LinuxMINT | Добавил: Timofey (13.01.2016)
Просмотров: 1048
Поиск
Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0
YANDEX
Яндекс.Метрика
Сайты
  • Харьковский Юридический Альянс
  • Оцифровка кинопленки
  • TiM ©
    Харьков 2024