Gibt es eine Möglichkeit, Sektoren ohne ECC-Korrektur vom SATA-Laufwerk zu lesen?


7

Ich weiß, dass es in alten ATA-Standards eine solche Möglichkeit gab: Der Befehl "LESEN LANG" erzeugte LBA-Sektor + ECC-Nutzlast. sg_read_longunterstützt unter Linux, aber der Befehl ist schon ziemlich lange veraltet, daher wundert es mich nicht, dass meine Festplatte ihn nicht implementiert.

root@ubuntu:~# sg_read_long --lba=2118229 /dev/sdc
sg_read_long: issue read long (10) to device /dev/sdc
    xfer_len=520 (0x208), lba=2118229 (0x205255), correct=0
  SCSI READ LONG (10) command not supported
root@ubuntu:~# sg_read_long -v --16 --lba=2118229 /dev/sdc
sg_read_long: issue read long (16) to device /dev/sdc
    xfer_len=520 (0x208), lba=2118229 (0x205255), correct=0
    Read Long (16) cmd: 9e 11 00 00 00 00 00 20 52 55 00 00 02 08 00 00 
read long (16):  Fixed format, current;  Sense key: Illegal Request
 Additional sense: Invalid field in cdb
  SCSI READ LONG (16) command, bad field in cdb

Hier ist auch hdparmDump:

root@ubuntu:~# hdparm -I /dev/sdc

/dev/sdc:

ATA device, with non-removable media
    Model Number:       WDC WD30EZRX-00MMMB0                    
    Serial Number:      WD-WCAWZ1777146
    Firmware Revision:  80.00A80
    Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
    Supported: 8 7 6 5 
    Likely used: 8
Configuration:
    Logical     max current
    cylinders   16383   16383
    heads       16  16
    sectors/track   63  63
    --
    CHS current addressable sectors:   16514064
    LBA    user addressable sectors:  268435455
    LBA48  user addressable sectors: 5860533168
    Logical  Sector size:                   512 bytes
    Physical Sector size:                  4096 bytes
    Logical Sector-0 offset:                  0 bytes
    device size with M = 1024*1024:     2861588 MBytes
    device size with M = 1000*1000:     3000592 MBytes (3000 GB)
    cache/buffer size  = unknown
Capabilities:
    LBA, IORDY(can be disabled)
    Queue depth: 32
    Standby timer values: spec'd by Standard, with device specific minimum
    R/W multiple sector transfer: Max = 16  Current = 0
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4 
         Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
    Enabled Supported:
       *    SMART feature set
            Security Mode feature set
       *    Power Management feature set
       *    Write cache
       *    Look-ahead
       *    Host Protected Area feature set
       *    WRITE_BUFFER command
       *    READ_BUFFER command
       *    NOP cmd
       *    DOWNLOAD_MICROCODE
            Power-Up In Standby feature set
       *    SET_FEATURES required to spinup after power up
            SET_MAX security extension
       *    48-bit Address feature set
       *    Device Configuration Overlay feature set
       *    Mandatory FLUSH_CACHE
       *    FLUSH_CACHE_EXT
       *    SMART error logging
       *    SMART self-test
       *    General Purpose Logging feature set
       *    64-bit World wide name
       *    {READ,WRITE}_DMA_EXT_GPL commands
       *    Segmented DOWNLOAD_MICROCODE
       *    Gen1 signaling speed (1.5Gb/s)
       *    Gen2 signaling speed (3.0Gb/s)
       *    Gen3 signaling speed (6.0Gb/s)
       *    Native Command Queueing (NCQ)
       *    Host-initiated interface power management
       *    Phy event counters
       *    NCQ priority information
            DMA Setup Auto-Activate optimization
       *    Software settings preservation
       *    SMART Command Transport (SCT) feature set
       *    SCT LBA Segment Access (AC2)
       *    SCT Features Control (AC4)
       *    SCT Data Tables (AC5)
            unknown 206[12] (vendor specific)
            unknown 206[13] (vendor specific)
Security: 
    Master password revision code = 65534
        supported
    not enabled
    not locked
    not frozen
    not expired: security count
        supported: enhanced erase
    508min for SECURITY ERASE UNIT. 508min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50014ee25bc950c2
    NAA     : 5
    IEEE OUI    : 0014ee
    Unique ID   : 25bc950c2
Checksum: correct

Ich möchte mehrere Sektoren ohne ECC lesen, um einen besseren Speicherauszug für halb tote Festplatten zu erstellen.

Ein weiterer Teil der Geschichte ist der ATAPI-8-Befehlssatz. Es deklariert den SCT Read / Write Long- Befehl, der funktioniert, wenn das IDENITFY DEVICE-Datenwort 106 Bit 12 gemäß gemäß Null gelöscht wirdT13/1699-D Revision 6a, Working Draft AT Attachment 8 - ATA/ATAPI Command Set (ATA8-ACS) . Dieses Bit wird auf 1 gesetzt, wenn der logische Gerätesektor länger als 256 Wörter ist .

OTOH, es funktioniert nur mit 512-Byte-Sektoren, daher verstehe ich nicht, ob es funktioniert, wenn ECC / CRC auf 4k-Sektoren angewendet wird.

Antworten:


3

Kurze Antwort: NEIN.

SCT Read / Write Long ist durch T13/e08153r1 ACS-2 veraltet. SCT Read and Write Long ist veraltet . T13/2015-D Revision 4, Working Draft ATA/ATAPI Command Set - 2 (ACS-2)vom 7. Dezember 2010 markiert diesen Befehl bereits als veraltet.

Dies T13/e08153r1gibt den Grund für das Entfernen von Read / Write Long- Befehlen an:

Jüngste Änderungen in der Aufzeichnungstechnologie haben die Idee, dass ein Host tatsächlich seine eigenen Fehlerkorrektur- / Erkennungsdaten auf das Gerät übertragen kann, bedeutungslos gemacht.

Siehe http://www.t13.org/documents/UploadedDocuments/docs2009/e08153r1-Obsolete_SCT_Read_Long_and_SCT_Write_Long.pdf und http://www.scribd.com/doc/88224835/Ataatap-Cevand- fot Details.

Ende der Geschichte.

PS SCT LBA Segment Access (AC2)sollte wirklich SCT Write Same (AC2)in HDParm Dump sein :)


1
Um sicherzustellen, dass ich das richtig verstehe: READ LONGwurde verwendet, um Lesesektoren zu erzwingen, die die ECC-Prüfung nicht bestanden haben. Diese Dokumente machen den Befehl überflüssig. Bedeutet dies, dass es keine Möglichkeit gibt, das Laufwerk dazu zu zwingen, Sektordaten zurückzugeben, die die ECC-Prüfung nicht bestehen?
Davor Josipovic

@davor denke ich schon.
Darkk

@davor zumindest gibt es keinen bekannten und dokumentierten Weg, dies zu tun.
Darkk

darkk ist völlig korrekt, aber ich dachte, ich möchte darauf hinweisen, dass das technische Referenzhandbuch für ähnliche Produkte wie WD10EZEX und WD30EURS behauptet, dass die Laufwerke trotz Veraltetheit und Entfernung aus den Standards den Zugriff weiterhin unterstützen. Dies kann ein Fehler sein, da das WD-Dokument trotz fortschrittlicher Formatlaufwerke die Sektoren immer noch als 512 Byte bezeichnet.
Etherfish
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.