Как стереть жесткий диск

Странный вопрос, но вот. Я хотел бы написать программу для прошивки моего внешнего жесткого диска с помощью 1, а затем 0, чтобы полностью очистить его, чтобы я мог его продать. Итак, почему я хочу писать свое собственное программное обеспечение, а не просто использовать DBAN?

  1. Насколько я понимаю, DBAN удаляет все обнаруженные жесткие диски. Я только хочу очистить мой внешний.

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

  3. Честно говоря, мне действительно любопытно, как работает прошивка.

Google не нашел слишком много (тупой Adobe Flash). Я бы предпочел делать это на C/C++, но другие языки работают, включая ассемблер.


person John Morgan    schedule 15.11.2012    source источник
comment
Просто сотрите все на диске, затем напишите программу на любом языке, чтобы заполнить диск файлами случайных данных. Да, несколько битов могут проскальзывать здесь и там, но не настолько, чтобы вызывать серьезное беспокойство.   -  person Hot Licks    schedule 15.11.2012
comment
Используйте 1_. Нет необходимости писать программу.   -  person Dietrich Epp    schedule 15.11.2012
comment
(И я не думаю, что это вспышка — может быть, скраб.)   -  person Hot Licks    schedule 15.11.2012
comment
@JanDvorak: Почему? В чем смысл?   -  person Dietrich Epp    schedule 15.11.2012
comment
@JanDvorak: У вас есть источник, подтверждающий это? При каких обстоятельствах можно восстановить жесткий диск после dd if=/dev/zero, если нельзя сделать это с помощью dd if=/dev/[u]random?   -  person Dietrich Epp    schedule 15.11.2012
comment
@JanDvorak: В таком случае вы должны быть уверены и поместить копию Улисса Джеймса Джойса рядом с вашим компьютером, прежде чем начать. Мое заявление о том, что это помогает, не имеет источника, но и не вредит. Это заставляет вас чувствовать себя в большей безопасности (Джойс дает это ощущение тепла и безопасности).   -  person Dietrich Epp    schedule 15.11.2012
comment
лол, я вспоминаю тот вызов Great Zero Было создано, чтобы решить это раз и навсегда. К сожалению, это, вероятно, недостаточно широко освещалось, чтобы сделать вывод.   -  person Brian Cain    schedule 15.11.2012
comment
@BrianCain Отличная ссылка. Удаляю свои прежние комментарии.   -  person John Dvorak    schedule 15.11.2012
comment
ИМО, это немного неубедительно. Но я по-прежнему думаю, что вполне вероятно, что вы могли бы эффективно сократить потенциальный пул злоумышленников только до национальных государств.   -  person Brian Cain    schedule 15.11.2012
comment
Это не вопрос, на который можно ответить. Я хочу написать программу, которая... потому что я не хочу использовать то, что уже есть... Серьезно?   -  person Ken White    schedule 15.11.2012
comment
@KenWhite Вопрос кажется мне актуальным. Вам не нужно обосновывать свои причины, задавая вопросы здесь. Если люди хотят узнать, как написать программу, которая стирает диск, я не вижу причин не принимать их вопрос.   -  person Nikos C.    schedule 15.11.2012
comment
Связанный пост суперпользователя: superuser.com/q/19326/169038   -  person Makoto    schedule 15.11.2012
comment
Это демонстрирует очень плохой подход к решению проблем на нескольких уровнях. Во-первых, приложите усилия, чтобы выяснить, каковы на самом деле возможности DBAN. И обратите внимание, что это с открытым исходным кодом.   -  person Jim Balter    schedule 15.11.2012
comment
проголосовать за stupid adobe flash. РЖУ НЕ МОГУ   -  person madper    schedule 15.11.2012
comment
@NikosC: в FAQ содержатся конкретные, краткие вопросы, и что должны быть показаны некоторые усилия по самостоятельному решению проблемы. Здесь также часто говорят, что это не учебный сайт и не замена личного помощника по исследованиям. Я хочу написать... недостаточно усилий, ИМО, и это определенно не конкретный, краткий вопрос.   -  person Ken White    schedule 15.11.2012
comment
Очистка диска работает на более высоком уровне, чем уровень прошивки. Если вы хотите узнать, как работает прошивка, я предлагаю вам приобрести Arduino и научиться программировать ее. Продолжайте работать над этим, и в конечном итоге вы поймете, как работают такие вещи, как жесткий диск и прошивка материнской платы.   -  person Warren Young    schedule 16.11.2012


Ответы (3)


Ну, сделать это на C довольно просто. Сначала вы открываете соответствующий файл устройства в режиме записи:

int fd = open("/dev/sdc", O_WRONLY);

и вы просто write() 512-байтовых фрагментов к нему, пока вы не сможете больше писать. В новых дисках вместо этого используются сектора по 4096 байт, но ОС обычно обрабатывает их так, как если бы у них были сектора по 512 байт, поэтому 512 — самое безопасное значение. Вот программа на C, которая делает именно это:

(Примечание: будьте очень осторожны при выборе правильного файла устройства /dev, иначе вы сотрете не тот диск!)

#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(void)
{
    int fd = open("/dev/sdd", O_WRONLY);
    if (fd < 0) {
        fprintf(stderr, "Error opening device file.\n");
        return EXIT_FAILURE;
    }

    // Write 0's all over the disk, in chunks of 512 bytes.
    char* zeros = calloc(1, 512);
    ssize_t written, total = 0;
    do {
        total += written = write(fd, zeros, 512);
        printf("\rBytes written: %ld", total);
    } while (written == 512);
    printf("\nDone!\n");

    close(fd);
    free(zeros);
    return 0;
}

Вы можете получить ускорение, если уберете printf(), хотя довольно круто видеть прогресс, как это происходит. Вам, вероятно, также следует выполнить дополнительную проверку ошибок в конце (если written равно -1, произошла ошибка, и вы должны проверить errno.)

Обратите внимание, что из-за кэширования программа может некоторое время зависать в конце после того, как напечатает «Готово». На самом деле это не зависание, просто кэширование операций записи блокирует его до тех пор, пока они все не будут завершены.

person Nikos C.    schedule 15.11.2012

Насколько я понимаю, DBAN удаляет все обнаруженные жесткие диски. Я только хочу очистить мой внешний.

Это не так.

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

Но когда вы просыпаетесь утром, это уже сделано, верно? Кроме того, его очевидно можно настроить.

Честно говоря, мне действительно любопытно, как работает прошивка.

Имхо, это не лучшее место для начала.

person Brian Cain    schedule 15.11.2012

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

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

$ sudo hdparm -I /dev/sda

После этого вы получите такую ​​информацию, как:

ATA device, with non-removable media
    Model Number:       ST31000524AS                            
    Serial Number:      XXXXXXX
    Firmware Revision:  JC4B    
    Transport:          Serial, SATA Rev 3.0

...

Хотя это наоборот, вы можете посмотреть / поискать судебную экспертизу. т.е. FAU, Цифровая криминалистика с открытым исходным кодом и т. д., чтобы получить дополнительную информацию.

Еще немного об очистке.

person Luca Stein    schedule 15.11.2012
comment
Вы очень на правильном пути. hdparm также можно использовать для вызова функции secure-erase встроенного ПО. на всех современных дисках ATA. - person Makoto; 15.11.2012