Linux dd очистить диск

Обновлено: 07.07.2024

У меня есть ноутбук с Debian, и я собираюсь продать этот ноутбук.

Достаточно ли будет стереть установку Debian перед продажей, чтобы полностью очистить мой ноутбук от моих личных данных, и если да, как я могу удалить Debian (чтобы на ноутбуке не было операционной системы)?

@RuiFRibeiro Использование /dev/random совершенно не нужно. /dev/urandom вполне достаточно, и он не блокирует, и даже /dev/zero почти наверняка будет хорошо. Кроме того, используйте больший размер блока; Рекомендую порядка нескольких мегабайт. Это позволит подсистеме хранения правильно распределять очереди ввода-вывода. SSD Secure Erase с помощью hdparm . Нет необходимости стирать вручную с помощью dd, вы можете указать, чтобы диск сам по себе был уничтожен. @CijcoSistems Предполагая, что вы доверяете реализации диска команды ATA SECURE ERASE. Идея на будущее - очень эффективный и безопасный способ «стереть» данные из системы - это зашифровать разделы, о которых идет речь, прежде чем записывать в них какие-либо данные. Затем, когда вы хотите стереть систему, все, что вам нужно сделать, это перезаписать блок, в котором хранится ключ шифрования. LUKS делает это очень легко, и Debian поддерживает его в стандартной установке. Шифрование также защищает ваши данные в случае кражи вашего компьютера.

Этот пост nixCraft объясняет, как стереть жесткий диск

Безопасное удаление данных не так просто, как вы думаете. Когда вы удаляете файл с помощью команд по умолчанию операционной системы (например, «rm» в Linux / BSD / MacOS / UNIX или «del» в DOS или очистка корзины в WINDOWS), операционная система НЕ удаляет файл, содержимое файла остается на вашем жестком диске. Единственный способ сделать восстановление ваших конфиденциальных данных практически невозможным - это перезаписать («стереть» или «уничтожить») данные с помощью нескольких определенных шаблонов. Для постоянного удаления жесткого диска вы можете использовать стандартную команду dd. Тем не менее, я рекомендую использовать команду shred, wipe или scrub.

Предупреждение . Убедитесь, что выбран правильный диск или раздел. Неверное назначение диска или раздела приведет к потере данных. Ни при каких обстоятельствах мы не можем нести ответственность за полную или частичную потерю данных, поэтому, пожалуйста, будьте осторожны с именами дисков. ВЫ БЫЛИ ПРЕДУПРЕЖДЕНЫ!

Стереть диск без возможности восстановления с помощью живого компакт-диска Linux

Сначала загрузите компакт-диск Live Linux с knoppix или Live CD SystemRescueCd .

Затем запишите live cd и загрузите свой ноутбук или рабочий стол с live CD. Теперь вы можете стереть любой диск, включая Windows, Linux, Mac OS X или Unix-подобную систему.

1. Как мне использовать команду shred?

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

Где,

Эта же команда для жесткого диска IDE hda (первый жесткий диск ПК / Windows, подключенный к IDE):

Примечание. Комментарий от @Gilles
Замените shred -n 5 на shred -n 1 или cat / dev / zero. Многократные проходы бесполезны, если ваш жесткий диск не использует технологию 1980-х годов.

В этом примере используйте shred и / dev / urandom в качестве источника случайных данных:

2. Как использовать команду стирания

Вы можете использовать команду wipe для удаления любого файла, включая диски:

3. Как использовать команду scrub

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

Чтобы стереть / dev / sda, введите:

4. Используйте команду dd для безопасного стирания диска

Вы можете стереть диск, записав новые данные на каждый бит. Команда dd может использоваться следующим образом:

Протрите диск / dev / sda, введите:

5. Как мне безопасно стереть диск / раздел, используя случайно засеянный шифр AES от OpenSSL?

Вы также можете использовать команды openssl и pv для безопасного стирания диска. Во-первых, получите общий размер диска / dev / sda в байтах:

Затем введите следующую команду, чтобы стереть диск / dev / sda:

399717171200 | дд бс = 64К из = / dev / sda

6. Как использовать команду badblocks для безопасного стирания диска

Синтаксис:


Мануал

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

Наиболее распространенным вариантом использования для полного cтирания устройства будет то, когда устройство будет clfyj или продано, поскольку это действительно важно для защиты данных.

Есть несколько команд, которые могут помочь вам выполнить эти операции в Linux.

Команда dd может помочь вам скопировать и преобразовать файл.

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

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

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

Вы можете стереть диск, записав новые данные за каждый бит.

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

2) shred

Команда shred используется для многократной перезаписи указанных файлов и затруднения для восстановления данных.

Синтаксис приведен ниже.

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

Эта команда навсегда удаляет данные.

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

-f изменяет разрешения
-n (iterations = N) перезаписывает N раз вместо значения по умолчанию (3)
-s (size = N) определяет количество байтов,
-u усекает и удаляет файлы после перезаписи
-v показывает подробную информацию о прогрессе
-x не округляет размеры файлов до следующего полного блока
-z добавляет окончательную перезапись с нулями
-u удаляет файл после перезаписи

Итак, чтобы стереть раздел, вы можете использовать:

Можно использовать shred со случайными данными, как показано ниже.

3) wipe

Команда wipe может использоваться для безопасного удаления файлов с магнитных носителей.

Вы можете использовать команду wipe для очистки данных на диске.

Команда по умолчанию отсутствует, ее необходимо установить.

На Ubuntu 17.04

На Centos 7 вам нужно сначала скачать rpmforge

Теперь установим утилиту wipe

Вы можете стереть раздел, как показано ниже:

4) scrub

Команда scrub может использоваться для перезаписи данных с использованием шаблонов.

Команда по умолчанию недоступна, ее необходимо установить в вашей системе Linux.

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

Для решения всех этих задач используется утилита 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. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:

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

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

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, для чего можно применять эту утилиту и насколько она может быть полезной. Это почти незаменимый инструмент системного администратора, поскольку с помощью нее можно делать резервные копии целой системы. И теперь вы знаете как. Если у вас остались вопросы, спрашивайте в комментариях!



В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.

Начну с небольшого примера, наглядно иллюстрирующего основные параметры команды:

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

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

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

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

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

Если и так не работает, значит файловая система образа полетела.

Работа с носителями информации

Очень простое, хоть и не оптимальное решение клонирования жесткого диска:

Все то же побайтовой копирование с размером буфера 4 Кб. Минус способа в том, что при любой заполненности разделов копироваться будут все биты, что не выгодно при копировании разделов с маленькой заполненностью. Чтобы уменьшить время копирования при манипуляции с большими объемами данных, можно просто перенести MBR на новый носитель (я ниже опишу как), перечитать таблицу разделов ядра (при помощи того же fdisk), создать файловые системы и просто скопировать файлы (не забыв сохранить права доступа к файлам).

Как вариант, можно даже по расписанию делать бекап раздела по сети. Разрулив ключи ssh будет работать такая схема:

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

Думаю, понятно на что нужно заменить DEVICE. После проведения лекций по Linux, я очень тщательно стал следить за тем, что пишу.
Проверить можно тем же dd, но преобразовав данные в hex:

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

Операции с MBR

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

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

Причины этих махинаций с MBR могут быть разные, однако хочу рассказать одну особенность, взятую из опыта: после восстановления давней копии MBR, где один из разделов был ext3, а позже стал FAT и использовался Windows, раздел перестал видиться виндой. Причина — ID раздела, который хранится в MBR. Если UNIX монтирует файловые системы согласно суперблоку, то винды ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk, особенно если на компьютере есть винды.

Генерация файлов

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

Создался файл размером почти в гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выберу алгоритм blowfish. Подгрузка модулей:

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

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

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

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

Основные идеи я расписал, однако множество задач, которые можно решить при помощи маленькой программки, имя которой состоит из двух букв, намного шире. Программа «dd» — яркий пример того, что IT'шники называют «UNIX way»: одна программа — часть механизма, выполняет исключительно свою задачу, и выполняет ее хорошо. В руках человека, который знает свое дело, которому свойственен не стандартный подход к решению задачи, такие маленькие программки помогут быстро и эффективно решать комплексные задачи, которые, на первый взгляд, должны решать крупные специализированные пакеты.

Читайте также: