Dd if dev zero

Dd if dev zero

Автор: Lucky Рубрики: Linux

В жизни случаются ситуации, когда хочется бесследно избавиться от информации на жестком диске. Причин этого желания может быть много.

Одни из таких причин: Продажа жесткого диска или выбрасывание жесткого диска на свалку.

Продавая HDD совсем не хочется чтобы кто-то копался в старой информации, тем более что там могут быть конфеденциальные данные. Даже выбрасывая жесткий диск на помойку хочется знать, что никто не сможет восстановить информацию оттуда.

Способов бесследно стереть информацию существует много. О двух способах полного удаления информации с HDD я расскажу ниже.

Собрался я выбрасывать старый, но еще работающий жесткий диск. Хотя диск и сбоил, но позволял с собой работать. И мне захотелось уверенности, что никто из праздного любопытства не сможет восстановить пароли от различных интернет-ресурсов ранее хранившееся на этом HDD. Немного подумав решил воспользоваться бесплатными вариантами, реализованными в мире Linux систем.

На полке с CD/DVD дисками обнаружился установочный диск Ubuntu 12.04, которым я и решил воспользоваться. Устанавливать Ubuntu я не собирался, а хотел воспользоваться возможностью запуска этой операционной системы без установки с CD диска. Дабы ничего не перепутать я отключил все HDD, кроме того, с которого собирался бесследно удалить информацию и загрузился с установочного диска Ubuntu 12.04.

Подопытный HDD был подключен мастером на IDE шлейф, а DVD-ROM был подключен слэйвом. После загрузки с диска передо мной появился экран выбора.

Мне предлагалось выбрать: попробовать Ubuntu без установки или установить.

Я выбрал попробовать [Try Ubuntu], а языком интерфейса я оставил предложенный мне по умолчанию English. Английский я выбрал по простой причине: Я собирался в консоли вводить команды и у меня не было желания вспоминать как переключать язык ввода.

Ubuntu загрузилась и предо мной предстал “Рабочий стол”.

Первый вариант: команда dd

dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Dataset Definition) из языка JCL

Будьте внимательны! Не ошибитесь с выбором файла устройства! Иначе потеряете данные.

  • Первым делом я нажал комбинацию клавиш CTRL + ALT + F1 ( Переключился на первую виртуальную консоль ).
  • Затем в консоли ввел команду sudo -i ( Становимся Суперпользователем )
  • Затем команда fdisk -l ( Выводит список доступных дисков, в выводе этой команды мы уточняем название нашего hdd ). В моем случае жесткий диск в системе был назван sda.
  • Затем: dd if=/dev/zero of=/dev/sda bs=4M ( Собственно сама команда, стирающая данные с жесткого диска. Хотя На самом деле эта команда не стирает данные, а заполняет HDD нулями. Сама операция занимает достаточно продолжительное время ).

Если же нас преследует паранойя, то после этой команды мы задаем команду, которая заполняет жесткий диск случайными данными (очень медленный процесс, сильно загружающий CPU ): dd if=dev/urandom of=/dev/sda bs=4M

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

CTRL + ALT + F7 — Вернуться в графический режим.

  • dd if=/dev/zero of=/dev/sda — заполняем диск нулями
  • dd if=/dev/urandom of=/dev/sda — заполняем диск случайными данными
  • dd if=/dev/random of=/dev/sda — заполняем диск случайными данными ( немного быстрее предыдущей)

Второй вариант: команда shred

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

Итак, перед нами “Рабочий стол” Ubuntu.

Будьте внимательны! Не ошибитесь с выбором файла устройства! Иначе потеряете данные.

  • Первым делом я нажимаем комбинацию клавиш CTRL + ALT + F1 ( Переключаемся на первую виртуальную консоль ).
  • Затем в консоли вводим команду sudo -i ( Становимся Суперпользователем )
  • Затем команда fdisk -l ( Выводит список доступных дисков, в выводе этой команды мы уточняем название нашего hdd ). В моем случае жесткий диск в системе был назван sda.
  • Затем: shred -n0 -z -v /dev/sda ( Собственно сама команда, стирающая данные с жесткого диска ).
Читайте также:  Последняя версия программного обеспечения триколор тв

Подробнее о параметрах этой команды:

  • n0 — число проходов ( я указал 0, это значит что число проходов с заполнением файла случайными данными будет равно нулю).
  • z — Заполнить нулями ( будет еще один проход в который файл будет заполняться нулями )
  • v — показывать индикатор прогресса ( удобно видеть сколько процентов сделано, а сколько осталось )
  • /dev/sdb — HDD, с которого уничтожаем информацию.

CTRL + ALT + F7 — Вернуться в графический режим.

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

  • shred -n0 -z -v /dev/sda (только один проход с заполнением файла /dev/sda нулями с отображением индикатора прогресса)
  • shred -v /dev/sda ( Число проходов по умолчанию (3) с заполнением случайными данными файла /dev/sda с отображением индикатора прогресса )
  • shred -n4 -z -v /dev/sda ( четыре прохода с заполнением файла /dev/sda случайными данными и один проход с заполнением файла нулями с отображением индикатора прогресса

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

Для решения всех этих задач используется утилита dd linux, которая просто выполняет копирование данных из одного места в другое на двоичном уровне. Она может скопировать CD/DVD диск, раздел на диске или даже целый жесткий диск. В этой статье мы рассмотрим что из себя представляет команда dd linux, основные ее опции и параметры, а также как ею пользоваться.

Как работает команда dd?

Сначала нужно понять как работает команда dd и что она делает. Фактически, это аналог утилиты копирования файлов cp только для блочных данных. Утилита просто переносит по одному блоку данных указанного размера с одного места в другое. Поскольку в Linux все, в том числе, устройства, считается файлами, вы можете переносить устройства в файлы и наоборот.

С помощью различных опций утилиты можно повлиять на размер блока, а это, в свою очередь, уже влияет на скорость работы программы. Дальше мы рассмотрим основные опции утилиты и ее возможности.

Команда dd

Синтаксис утилиты достаточно необычен, но в то же время очень прост, после того как вы его запомните и привыкнете:

$ dd if= источник_копирования of= место_назначения параметры

С помощью параметра if вам нужно указать источник, откуда будут копироваться блоки, это может быть устройство, например, /dev/sda или файл — disk.img. Дальше, с помощью параметра of необходимо задать устройство или файл назначения. Другие параметры имеют такой же синтаксис, как if и of.

Теперь давайте рассмотрим дополнительные параметры:

  • bs — указывает сколько байт читать и записывать за один раз;
  • cbs — сколько байт нужно записывать за один раз;
  • count — скопировать указанное количество блоков, размер одного блока указывается в параметре bs;
  • conv — применить фильтры к потоку данных;
  • ibs — читать указанное количество байт за раз;
  • obs — записывать указанное количество байт за раз;
  • seek — пропустить указанное количество байт в начале устройства для чтения;
  • skip — пропустить указанное количество байт в начале устройства вывода;
  • status — указывает насколько подробным нужно сделать вывод;
  • iflag, oflag — позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них: nocache, nofollow.
Читайте также:  Как перевести вордовский файл в пдф формат

Это были все основные опции, которые вам могут понадобиться. Теперь перейдем ближе к практике и рассмотрим несколько примеров как пользоваться утилитой dd linux.

Как пользоваться dd?

Обычные пользователи используют команду dd чаще всего для создания образов дисков DVD или CD. Например, чтобы сохранить образ диска в файл можно использовать такую команду:

sudo dd if=/dev/sr0 of=

/CD.iso bs=2048 conv=noerror

Фильтр noerror позволяет отключить реагирование на ошибки. Дальше, вы можете создать образ жесткого диска или раздела на нем и сохранить этот образ на диск. Только смотрите не сохраните на тот же жесткий диск или раздел, чтобы не вызвать рекурсию:

В вашей домашней папке будет создан файл с именем disk1.img, который в будущем можно будет развернуть и восстановить испорченную систему. Чтобы записать образ на жесткий диск или раздел достаточно поменять местами адреса устройств:

Очень важная и полезная опция — это bs. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:

  • с — один символ;
  • b — 512 байт;
  • kB — 1000 байт;
  • K — 1024 байт;
  • MB — 1000 килобайт;
  • M — 1024 килобайт;
  • GB — 1000 мегабайт;
  • G — 1024 мегабайт.

Команда dd linux использует именно такую систему, она сложная, но от этого никуда не деться. Ее придется понять и запомнить. Например, 2b — это 1 килобайт, и 1k, это тоже 1 килобайт, 1М — 1 мегабайт. По умолчанию утилита использует размер блока — 512 байт. Например, чтобы ускорить копирование диска можно брать блоки размером по 5 мегабайт. Для этого применяется такая команда:

Следующий параметр — это count. С помощью него можно указать сколько блоков необходимо скопировать. Например, мы можем создать файл размером 512 мегабайт, заполнив его нулями из /dev/zero или случайными цифрами из /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M count=512

Обратите внимание, что этот параметр указывает не размер в мегабайтах, а всего лишь количество блоков. Поэтому, если вы укажите размер блока 1b, то для создания файла размером 1Кб нужно взять только два блока. С помощью этого параметра также можно сделать резервную копию таблицы разделов MBR. Для этого скопируем в файл первые 512 байт жесткого диска:

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

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

Если образ диска слишком большой, можно перенаправить весь вывод нестандартный поток вывода утилиты gzip:

dd if =/dev/sda2 | bzip2 disk.img.bz2

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

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

Как вы знаете, команда dd linux пишет данные на диск непосредственно в двоичном виде, это значит, что записываются нули и единицы. Они переопределяют то, что было раньше размещено на устройстве для записи. Поэтому чтобы стереть диск вы можете просто забить его нулями из /dev/zero.

sudo dd if=/dev/zero of=/dev/sdb

Такое использование dd приводит к тому что весь диск будет полностью стерт.

Выводы

В этой статье мы рассмотрели как пользоваться dd linux, для чего можно применять эту утилиту и насколько она может быть полезной. Это почти незаменимый инструмент системного администратора, поскольку с помощью нее можно делать резервные копии целой системы. И теперь вы знаете как. Если у вас остались вопросы, спрашивайте в комментариях!

20 июня 2015 г.

Как ускорить процесс работы "dd"?

При использовании dd, bs является одним из наиболее важных аргументов командной строки. Это говорит о размере буфера, используемого для операций. Вы должны помнить, что:

  • Буфер будет влиять на производительность. Более большой буфер быстрее, но не делайте bs слишком большим если нет необходимости.
  • Место для буфера будет выделено из памяти, так что размер ограничен количеством оперативной памяти и доступного адресного пространства.
  • Аргументы count = и другие также можно использовать с bs
Читайте также:  Технология виртуальных клапанов v v t

Вариант 1
Использование параметра bs (bufer size)

По моему опыту, я не думаю, что есть что-то быстрее чем dd. Регулировка параметра bs может увеличить скорость, например, у меня есть 2 HDD, я знаю, что есть скорость чтения/записи (более 100 МБ / с), так что, мы можем сделать так:

dd if=/dev/sda of=/dev/sdb bs=100M

Тут, мы также можем использовать pv (должен быть установлен первым), который показывает максимальную скорость обоих дисков, а затем переходит на клонирование. У вас должны быть права root:

pv /dev/sdb

С pv я получил 156 MB/s

Удобство работы с pv заключается в том, что он показывает прогресс, текущую скорость, время, и ETA.
С pv и очень оптимизированного параметра bs, вы можете записать диск 4 ТБ менее чем за 7 часов (6 часов 50 минут при текущей скорости 150 Мб / с).

Вариант 2
Запись образа с разбивкой + bs

У нас есть образ раздела на 100GB (HDD), нам нужно записать его на новый HDD диск.Вот совет, который может резко ускорить процесс: разделить файл на более мелкие части (чем больше файл, тем медленнее dd работает)

sudo dd if=/dev/sda3 conv=sync,noerror bs=2M | split -a 3 -d -b 1G — /maindisk.img

В итоге, получится (maindisk.img000, maindisk.img001 и так далее . )

cat maindisk.img* | sudo dd of=/dev/sda1

Перед записью в новый раздел (partition) HDD — partition должны быть такого же размера, как и старый
Этот способ работает быстрее, чем обычный способ (без разбивки).

Тесты с использованием команды dd и параметра bs и параметра sync

В этих тестах я буду полностью стирать все что находится на USB, включая все разделы используя эту команду:

dd if=/dev/zero

Еще один пример стирания и записи в ноль, если жалко флэшку 🙂

dd if=/dev/urandom | pv | dd of=/dev/null

Каким должен быть "bs" для USB?

Для USB флэшки, я использую bs=1M

В наши дни, bs (block size) должен быть кратен размеру сектора устройства (обычно 4KB), но на самых последних дисках может быть гораздо больше, а на небольших флэшках может быть и меньше, но 4 КБ это разумная середина. Я часто использую 1MB bs с USB устройствами.

Параметр sync — очищает буфер и делает синхронизацию того, что поступило и того что вышло.

В этом приме я не использую bs, по умолчанию bs = 512 bytes

sudo dd if=/dev/zero | pv | sudo dd of=/dev/sdc && sync

Без bs
8179941376 bytes (8.2 GB) copied, 2519.81 s, 3.2 MB/s
7.62GB 0:41:59 [ 3.1MB/s] [ ]

В этом приме я использую bs равный 1Mб

sudo dd if=/dev/zero | pv | sudo dd of=/dev/sdc bs=1M && sync

С bs=1M
8179941376 bytes (8.2 GB) copied, 1052.03 s, 7.8 MB/s
7.62GB 0:17:32 [7.42MB/s] [ ]

В этом приме я использую bs равный 4Mб

sudo dd if=/dev/zero | pv | sudo dd of=/dev/sdc bs=4M && sync

С bs=4M
8179941376 bytes (8.2 GB) copied, 1051.14 s, 7.8 MB/s
7.62GB 0:17:31 [7.42MB/s] [ ]

Как видно из примеров выше без bs скорость записи значительно ниже.
bs = 1M и bs = 4M практически не отличаются.

На практике для флэшек рекомендуется использовать bs = 1M

Ссылка на основную публикацию
Dcomlaunch что это за служба
&nbsp &nbsp Практически, каждый пользователь Windows, неоднократно наблюдал в списке отображаемых диспетчером задач, несколько процессов с именем svchost.exe . Для...
1С скд вычислить сумма
1с. СКД. Вычисляемое поле в группировке. Эта методика используется: - когда итог в группировке отчета СКД 1с требуется не просто...
1С скд не выводит поле
Если в запросе используется конструкция вида регистратор.дата или получение еще какого-либо реквизита через регистратор и это поле не отображается в...
Dd if dev zero
Автор: Lucky Рубрики: Linux В жизни случаются ситуации, когда хочется бесследно избавиться от информации на жестком диске. Причин этого желания...
Adblock detector