Secure Erase stoppen

AlphaKaninchen

Commander
Registriert
Mai 2018
Beiträge
2.595
Hallo ich habe eine 12TB Toshiba MG07, ich habe auf dieser mit GNOME Disks ein Secure Erase gestartet. GNOME Disks nutzt im Hintergrund udisks, es dürfte also dieser Code ausgeführt worden sein:
https://github.com/storaged-project/udisks/blob/master/src/udiskslinuxdriveata.c
C:
/* OK, all checks done, let's do this thing! */

  /* First, set up a Job object to track progress */
  num_minutes = enhanced ? 2 * GUINT16_FROM_LE (identify.words[90]) : 2 * GUINT16_FROM_LE (identify.words[89]);
  job = udisks_daemon_launch_simple_job (daemon,
                                         UDISKS_OBJECT (object),
                                         enhanced ? "ata-enhanced-secure-erase" : "ata-secure-erase",
                                         caller_uid, NULL);
  udisks_job_set_cancelable (UDISKS_JOB (job), FALSE);

  /* A value of 510 (255 in the IDENTIFY DATA register) means "erase
   * is expected to take _at least_ 508 minutes" ... so don't attempt
   * to predict when the job is going to end and don't report progress
   */
  if (num_minutes != 510)
    {
      udisks_job_set_expected_end_time (UDISKS_JOB (job),
                                        g_get_real_time () + num_minutes * 60LL * G_USEC_PER_SEC);
      udisks_job_set_progress_valid (UDISKS_JOB (job), TRUE);
      timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT,
                                               1,
                                               on_secure_erase_update_progress_timeout,
                                               g_object_ref (job),
                                               g_object_unref);
    }

  /* Second, set the user password to 'xxxx' */
  {
    /* ATA8: 7.45 SECURITY SET PASSWORD - F1h, PIO Data-Out */
    guchar buf[512];
    UDisksAtaCommandInput input = {.command = 0xf1, .buffer = buf, .buffer_size = sizeof (buf)};
    UDisksAtaCommandOutput output = {0};
    memset (buf, 0, sizeof (buf));
    memcpy (buf + 2, pass, strlen (pass));
    if (!udisks_ata_send_command_sync (fd,
                                       -1,
                                       UDISKS_ATA_COMMAND_PROTOCOL_HOST_TO_DRIVE,
                                       &input,
                                       &output,
                                       &local_error))
      {
        g_prefix_error (&local_error, "Error sending ATA command SECURITY SET PASSWORD: ");
        goto out;
      }
  }

  clear_passwd_on_failure = TRUE;

  udisks_notice ("Commencing ATA%s secure erase of %s (%s). This operation is expected to take at least %d minutes to complete",
                 enhanced ? " enhanced" : "",
                 device_file,
                 udisks_drive_get_id (_drive),
                 num_minutes);

  /* Third... do SECURITY ERASE PREPARE */
  {
    /* ATA8: 7.42 SECURITY ERASE PREPARE - F3h, Non-Data */
    UDisksAtaCommandInput input = {.command = 0xf3};
    UDisksAtaCommandOutput output = {0};
    if (!udisks_ata_send_command_sync (fd,
                                       -1,
                                       UDISKS_ATA_COMMAND_PROTOCOL_NONE,
                                       &input,
                                       &output,
                                       &local_error))
      {
        g_prefix_error (&local_error, "Error sending ATA command SECURITY ERASE PREPARE: ");
        goto out;
      }
  }

  /* Fourth... do SECURITY ERASE UNIT */
  {
    /* ATA8: 7.43 SECURITY ERASE UNIT - F4h, PIO Data-Out */
    guchar buf[512];
    UDisksAtaCommandInput input = {.command = 0xf4, .buffer = buf, .buffer_size = sizeof (buf)};
    UDisksAtaCommandOutput output = {0};
    memset (buf, 0, sizeof (buf));
    if (enhanced)
      buf[0] |= 0x02;
    memcpy (buf + 2, pass, strlen (pass));
    if (!udisks_ata_send_command_sync (fd,
                                       G_MAXINT, /* disable timeout */
                                       UDISKS_ATA_COMMAND_PROTOCOL_HOST_TO_DRIVE,
                                       &input,
                                       &output,
                                       &local_error))
      {
        g_prefix_error (&local_error, "Error sending ATA command SECURITY ERASE UNIT (enhanced=%d): ",
                        enhanced ? 1 : 0);
        goto out;
      }
  }

Wenn ich es richtig lese ist das Passwort 'xxxx' (z.B. für den Fall eines Stromausfalls)

Mein Problem ist jetzt das ich erwartet habe dass recht schnell geht, (meine LaCie / Seagate HDDs machen das in Sekunden) mir wird als Prognose nun 1 Monat 15 Tage angezeigt. Erstmal wie realistisch ist diese Prognose? Und zweitens gibt es einen weg dem Controller zusagen Stop Secure Erase?
 
Code:
udisks_job_set_cancelable (UDISKS_JOB (job), FALSE);

Der Zeile nach zu urteilen ist da nichts mit abbrechen.
 
  • Gefällt mir
Reaktionen: AlphaKaninchen
Secure Erase überschreibt aber die Platte.
AlphaKaninchen schrieb:
Mein Problem ist jetzt das ich erwartet habe dass recht schnell geht, (meine LaCie / Seagate HDDs machen das in Sekunden)
Das ist technisch unmöglich.
Wie soll eine Platte binnen Sekunden komplett (mehrfach) überschrieben werden?
Wenn die 100MB/s schreibt an Nullen/Einsen, dann sind das bei 12TB
~12.000.000 MB / 100MB/s = 120.000 s = 2000 min = 33 h

Für einen Durchlauf. Und realistisch sind eher 60-90MB/s
 
  • Gefällt mir
Reaktionen: AlphaKaninchen
Cardhu schrieb:
Wie soll eine Platte binnen Sekunden komplett (mehrfach) überschrieben werden?
Secure Erase bei SED Platten bedeutet nur, dass der platteninterne Key zurückgesetzt/neu vergeben wird. Und schon ist zwar die HDD physikalisch nicht gelöscht, Dank eines nicht mehr (in endlicher/vertretbarer Zeit) zu ermittelnden Keys ist der Inhalt auch am Controller vorbei nicht mehr wieder zu entschlüsseln/lesen.

Welche HDDs AlphaKaninchen hat, weiss nur er. Damals war meine Seagate Exos X X16 als SED Laufwerk günstiger wie ohne.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: TomH22, Purche, AlphaKaninchen und eine weitere Person
So hat sich erledigt und Frage wie realistisch die Zeitschätzung war damit auch, hat circa 18h gedauert.
Ergänzung ()

Cardhu schrieb:
Wenn die 100MB/s schreibt an Nullen/Einsen, dann sind das bei 12TB
~12.000.000 MB / 100MB/s = 120.000 s = 2000 min = 33 h

Für einen Durchlauf. Und realistisch sind eher 60-90MB/s
Die Platte schreibt regulär mit circa 200Mbit/s die 18 Stunden lassen auf etwas weniger schließen, das war auch was ich erwartet habe war etwas geschockt als da 1 Monat stand

PS: eine Platte tatsächlich mit Nullen zu überschreiben dauert deutlich länger die unten genannten LaCie haben dank smr über eine Woche gebraucht, daher bevorzuge ich Secure Erase
Ergänzung ()

gymfan schrieb:
Welche HDDs AlphaKaninchen hat, weiss nur er. Damals war meine Seagate Exos X X16 als SED Laufwerk günstiger wie ohne.
Sind Seagate Mobile HDDs und 2,5" FireCuda SSHDs sowie LaCie Mobile Drives mit 5TB, ob die SED haben, keine Ahnung wie sieht man das?
 
Zuletzt bearbeitet:
AlphaKaninchen schrieb:
Sind Seagate Mobile HDDs und 2,5" FireCuda SSHDs sowie LaCie Mobile Drives mit 5TB, ob die SED haben, keine Ahnung wie sieht man das?
Außer den verbauten HDD-Typ auszulesen (falls das Gehäuse diesen bekannt gibt) und dann im Netz danach zu suchen, fällt mir nichts ein.

Bei des Exos X X16 gibt es u.A. die ST16000NM001G (kein SED) und ST16000NM003G (SED) mit sonst identischen Werten wie SATA und 512e/4Kn). Da steht dann auf Geizhals die Angabe zur SED Variante und wird auch im Datasheet von Seagate ausführlich erklärt.

Wobei die Funktion beim ext. Gehäuse durchaus auch im Controller des Gehäuses realisiert sein könnte, das auf die selben SATA-Kommandos reagiert.

Bei LaCie wird zumindest für eine von vielen Varianten damit geworben:
https://www.lacie.com/de/de/products/mobile-ssd-secure/ schrieb:
Wir haben die LaCie Mobile SSD Secure mit der LaCie Secure™-Technologie mit hochentwickelter AES 256-Bit-Selbstverschlüsselung und passwortbasierter Hardware-Verschlüsselung ausgestattet.
Das könnte, muss aber nicht, auf die gleiche Weise realisiert sein.
 
  • Gefällt mir
Reaktionen: AlphaKaninchen
Inzersdorfer schrieb:
Wo hier aber 1 Monat 15 Tage angezeigt wurde ist mir schleierhaft
Nachdem ich den Secure Erase bestätigt habe wurde mir in GNOME Disks das als erwartete Dauer angezeigt, die 508 min sind aus dem Code des udisk deamons den GNOME Disks im Hintergrund nutzt, warum es dort ein maximum bei diesem Wert gibt weiß ich nicht.

Nach meinem Verständnis des Codes und von Secure Erase macht eine Zeitprognose generell keinen Sinn.
Ergänzung ()

Bei der SED Version ging es um meine Sammlung an Seagate 2,5 HDDs, da diese scheinbar alle instand Secure Erase können...
Ergänzung ()

Bei den LaCie handelt es sich um ST5000LM000-2AN170

Sogar bei der deutlich älteren Porsche Design Version, immer dieses Model
 
Zuletzt bearbeitet:
Zurück
Oben