Практический пример с использованием dd


Чтобы продемонстрировать процесс снятия данных, я опишу методику снятия данных утилитой dd. Программа dd считается одной из самых простых и гибких программ снятия данных, но она работает в режиме командной строки, а ее освоение несколько усложняется богатыми возможностями настройки, dd существует во многих версиях UNIX, а также в версии для Windows[2].
В данном примере будет рассматриваться Linux-версия.
Фактически программа dd копирует блок данных из одного файла и записывает его в другой файл. Она не интересуется типом копируемых данных и ничего не знает о файловых системах и дисках — копируются только файлы.
dd читает данные по блокам; размер блока по умолчанию равен 512 байтам. Данные читаются из входного источника, заданного флагом if=. Если флаг if= не указан, программа получает данные из стандартного ввода, которым обычно является клавиатура. Данные записываются в выходной файл, заданный флагом of=. При отсутствии параметра данные записываются в стандартный вывод, чаще всего на экран. В следующем примере файл filel.dat копируется в файл file2.dat 512-байтовыми блоками: dd if=f11el.dat of=file2.dat bs=512
2+0 records in
2+0 records out
Две последние строки показывают, что два полных блока были прочитаны из файла filel.dat и записаны в файл file2.dat. Если при последней операции чтения и записи использовался неполный блок, последние две строки завершались бы суффиксом + 1 вместо +0. Например, если бы файл filel.dat содержал 1500 байт вместо 1024, результат выглядел бы так: dd if“filel.dat of=file2.dat bs=512
2+1 records in
2+1 records out
Обратите внимание: размер выходного файла будет составлять 1500 байт.
Программа dd пытается записывать данные блоками, но если блок заполнен лишь частично, программа копирует то, что есть.
Источник
В системе Linux для каждого носителя информации и каждого раздела создается устройство, которое может использоваться в качестве входного файла. Например, главный диск АТА на первом канале представлен устройством /dev/hda; если указать это имя устройства с флагом if=, программа dd скопирует данные с диска в файл. В Microsoft Windows для жестких дисков файлы устройств не

создаются но для ссылки на диск можно использовать синтаксис \\.\ — например, \\.\PhysicalDriveO.
Размер блока по умолчанию составляет 512 байт, но параметр bs= позволяет задать произвольное значение. За одну операцию может копироваться как байт, так и 1 гигабайт. Подходит любое значение, но некоторые обеспечивают более высокое быстродействие по сравнению с остальными. Диски обычно читают данные блоками по 512 байт, но легко могут читать и больше. Слишком малые размеры блока неэффективны, потому что они требуют более частых обращений к диску и приводят к лишним потерям времени в процессе копирования. Если же выбранное значение окажется слишком большим, то время будет тратиться на заполнение буфера dd перед выполнением операции копирования. Эксперименты показали, что оптимальные значения лежат в интервале от 2 до 8 Кбайт.
Linux работает с диском напрямую и не нуждается в услугах BIOS, поэтому мы не рискуем получить у BIOS неверную информацию о размерах диска. Отсюда также следует, что в Linux невозможна программная блокировка записи, но при желании вы можете воспользоваться аппаратным устройством. 
<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Практический пример с использованием dd:

  1. 15.4. Учет операций по доверительному управлению на практическом примере
  2. 1.6. ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ДАННЫХ
  3. НАЧАЛО СЕРИЙНОГО ПРОИЗВОДСТВА и практического использования
  4. 7.4.4. Примеры анализа с использованием финансовых коэффициентов
  5. 6. ЗНАЧИМОСТЬ ПРАКТИЧЕСКИХ МЕР МИРОВОГО СООБЩЕСТВА ПО МИРНОМУ ИСПОЛЬЗОВАНИЮ КОСМИЧЕСКОГО ПРОСТРАНСТВА
  6. Пример использования в своих интересах распространенного социального стереотипа «по одежке встречают».
  7. 4. Практическое умение
  8. 4. Практическое воплощение
  9. ПРИМЕРЫ
  10. ПРИМЕР