Не удается прочитать содержимое на диске расширенного формата при использовании некоторых док-станций USB

544
Mauro Molinari

У меня Linux Mint 17.3 (на основе Ubuntu 14.04) с ядром 4.4.0. У меня есть жесткий диск Western Digital Caviar Green WD10EARX емкостью 1 ТБ. Этикетка на этом диске говорит, что это диск "Advanced Format". Обратите внимание, что перемычка не установлена, поэтому перемычка «совместимость» / «эмуляция» не установлена.

Я читал о дисках расширенного формата и их размере сектора 4 КБ (вместо стандартного 512 байт), но я не могу объяснить другое поведение, которое я вижу, когда подключаю этот диск к разным USB-корпусам или док-станциям.

Пример 1: док-станция Sunplus USB 2

lsusb -v показывает:

Bus 003 Device 013: ID 1bcf:0c31 Sunplus Innovation Technology Inc. SPIF30x Serial-ATA bridge Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0  bDeviceProtocol 0  bMaxPacketSize0 64 idVendor 0x1bcf Sunplus Innovation Technology Inc. idProduct 0x0c31 SPIF30x Serial-ATA bridge bcdDevice 1.32 iManufacturer 1 Sunplus Innovation Technology  iProduct 2 USB to Serial-ATA bridge iSerial 3 <removed> bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 Bulk Only Configuration bmAttributes 0xc0 Self Powered MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 5 Bulk Only Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0  bDeviceProtocol 0  bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered 

fdisk -l показывает:

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 testine, 63 settori/tracce, 121601 cilindri, totale 1953525168 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x0001cf00  Dispositivo Boot Start End Blocks Id System /dev/sdb1 8040 498023 244992 fd Autorilevamento raid di Linux /dev/sdb2 498024 562271 32124 fd Autorilevamento raid di Linux /dev/sdb3 562272 809271 123500 fd Autorilevamento raid di Linux /dev/sdb4 809272 244187999 121689364 fd Autorilevamento raid di Linux 

hdparm -I показывает:

ATA device, with non-removable media Model Number: WDC WD10EARX-00N0YB0  Serial Number: <removed> Firmware Revision: 51.0AB51 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: 1953525168 Logical Sector size: 512 bytes Physical Sector size: 4096 bytes Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 953869 MBytes device size with M = 1000*1000: 1000204 MBytes (1000 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 * WRITE_UNCORRECTABLE_EXT command * _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 Write Same (AC2) * SCT Features Control (AC4) * SCT Data Tables (AC5) unknown 206[7] 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 186min for SECURITY ERASE UNIT. 186min for ENHANCED SECURITY ERASE UNIT.  Logical Unit WWN Device Identifier: 50014ee2b14805a5 NAA : 5 IEEE OUI : 0014ee Unique ID : 2b14805a5 Checksum: correct 

И если я кошка, /sys/class/block/sdb/queue/physical_block_sizeи /sys/class/block/sdb/queue/logical_block_sizeони оба говорят 512.

Таким образом, при подключении жесткого диска к этой док-станции создается впечатление, что это обычный секторный диск объемом 512 байт.

Пример 2: Корпус USB 2 с комбинированным мостом JMicron USB-SATA и PATA

При подключении диска к этому корпусу я вижу совершенно другую историю.

lsusb -v показывает:

Bus 003 Device 014: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0  bDeviceProtocol 0  bMaxPacketSize0 64 idVendor 0x152d JMicron Technology Corp. / JMicron USA Technology Corp. idProduct 0x2338 JM20337 Hi-Speed USB to SATA & PATA Combo Bridge bcdDevice 1.00 iManufacturer 1 JMicron iProduct 2 USB to ATA/ATAPI bridge iSerial 5 <removed> bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 USB Mass Storage bmAttributes 0xc0 Self Powered MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 6 MSC Bulk-Only Transfer Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0  bDeviceProtocol 0  bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered 

fdisk -l показывает:

Nota: la dimensione del settore è 4096 (non 512) (in English: Note: the sector size is 4096 (not 512)  Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 testine, 63 settori/tracce, 15200 cilindri, totale 244190646 settori Unità = settori di 1 * 4096 = 4096 byte Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Identificativo disco: 0x0001cf00  Dispositivo Boot Start End Blocks Id System /dev/sdb1 8040 498023 1959936 fd Autorilevamento raid di Linux /dev/sdb2 498024 562271 256992 fd Autorilevamento raid di Linux /dev/sdb3 562272 809271 988000 fd Autorilevamento raid di Linux /dev/sdb4 809272 244187999 973514912 fd Autorilevamento raid di Linux 

hdparm дает какой-то искаженный результат:

ATA device, with non-removable media Model Number: �����������@������������ Serial Number: ������������ Firmware Revision: ����� Standards: Used: unknown (minor revision code 0x10fd)  Supported: 14 11 10  Likely used: 14 Configuration: Logical max current cylinders 0 0 heads 0 0 sectors/track 510 0 -- Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 0 MBytes device size with M = 1000*1000: 0 MBytes  cache/buffer size = unknown Capabilities: IORDY(may be)(cannot be disabled) Queue depth: 32 Standby timer values: spec'd by Vendor R/W multiple sector transfer: Max = 255 Current = 255 Recommended acoustic management value: 234, current value: 0 DMA: not supported PIO: unknown Cycle time: no flow control=65535ns IORDY flow control=24384ns * reserved 69[0] * reserved 69[1] * reserved 69[2] * reserved 69[4] * reserved 69[7] * DEVICE CONFIGURATION SET/IDENTIFY DMA commands Security:  Master password revision code = 19648 not supported not enabled not locked not frozen not expired: security count not supported: enhanced erase Integrity word not set (found 0x0000, expected 0x9fa5) 

Если я кошка, /sys/class/block/sdb/queue/physical_block_sizeи /sys/class/block/sdb/queue/logical_block_sizeони оба говорят 4096.

Таким образом, похоже, что в этом корпусе используется диск с размерами секторов 4 Кб, в качестве «родного» накопителя расширенного формата 4 Кб. Если бы я остановился здесь, я бы сказал, что другая док-станция просто «слишком старая», чтобы должным образом поддерживать накопители 4k. Однако меня удивляет следующее.

Пример 3: док-станция JMicron USB 3

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

lsusb -v показывает:

Bus 004 Device 006: ID 152d:0565 JMicron Technology Corp. / JMicron USA Technology Corp.  Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0  bDeviceProtocol 0  bMaxPacketSize0 9 idVendor 0x152d JMicron Technology Corp. / JMicron USA Technology Corp. idProduct 0x0565  bcdDevice 1.01 iManufacturer 1 JMicron iProduct 2 JMS56x Series iSerial 5 <removed> bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 121 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 USB Mass Storage bmAttributes 0xc0 Self Powered MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 6 MSC Bulk-Only Transfer Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 4 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 98  iInterface 10 MSC BOT/UAS Transfer Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 0 Command pipe (0x01) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 0 MaxStreams 32 Status pipe (0x02) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 32 Data-in pipe (0x03) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 32 Data-out pipe (0x04) Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 22 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000f0e Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 32 micro seconds Device Status: 0x000d Self Powered U1 Enabled U2 Enabled 

fdisk -l показывает:

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 testine, 63 settori/tracce, 121601 cilindri, totale 1953525168 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 4096 bytes / 33553920 bytes Identificativo disco: 0x0001cf00  Dispositivo Boot Start End Blocks Id System /dev/sdb1 8040 498023 244992 fd Autorilevamento raid di Linux /dev/sdb2 498024 562271 32124 fd Autorilevamento raid di Linux /dev/sdb3 562272 809271 123500 fd Autorilevamento raid di Linux /dev/sdb4 809272 244187999 121689364 fd Autorilevamento raid di Linux 

hdparm -I показывает:

ATA device, with non-removable media Model Number: WDC WD10EARX-00N0YB0  Serial Number: <removed> Firmware Revision: 51.0AB51 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: 1953525168 Logical Sector size: 512 bytes Physical Sector size: 4096 bytes Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 953869 MBytes device size with M = 1000*1000: 1000204 MBytes (1000 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 * WRITE_UNCORRECTABLE_EXT command * _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 Write Same (AC2) * SCT Features Control (AC4) * SCT Data Tables (AC5) unknown 206[7] 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 186min for SECURITY ERASE UNIT. 186min for ENHANCED SECURITY ERASE UNIT.  Logical Unit WWN Device Identifier: 50014ee2b14805a5 NAA : 5 IEEE OUI : 0014ee Unique ID : 2b14805a5 Checksum: correct 

Если я кошка, /sys/class/block/sdb/queue/physical_block_sizeи /sys/class/block/sdb/queue/logical_block_sizeони оба говорят 512.

Итак, с этой док-станцией я снова вижу диск как «обычный» секторный диск с 512 байтами.

Вопросы

  1. почему hdparm говорит что-то отличное от fdisk и /sys/class/block/sdb/queue/physical_block_size+ /sys/class/block/sdb/queue/logical_block_sizeс обеими док-станциями? hdparm говорит, что размер физического сектора равен 4096, а другой говорит, что размер физического сектора равен 512 (как логический)
  2. Как это возможно, что совсем недавно (купленная в 2018 году) док-станция USB 3 с мостом JMicron, поддерживающим новейший протокол UASP, не воспринимает накопитель как 4k, а гораздо более старый мост USB 2 SATA + PATA от JMicron тоже ? Это вообще проблема, если я начинал использовать этот жесткий диск с этими док-станциями с нуля?
  3. как видите, разделы на этом диске являются членами RAID (RAID1); таблица разделов и массив RAID были созданы при использовании диска с корпусом JMicron SATA + PATA. Всякий раз, когда я пытаюсь запустить RAID-массивы с этим корпусом, у меня нет проблем, и я могу прочитать содержимое на диске; всякий раз, когда я пытаюсь сделать то же самое с обеими док-станциями, я получаю сообщение об ошибке «суперблок не найден», поэтому массив не запускается, и я не могу прочитать содержимое диска; это немного пугает меня, потому что я боюсь, что не смогу прочитать содержимое этого диска обратно, если однажды выйдет из строя корпус

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

1
Это очень похоже на этот вопрос: https://unix.stackexchange.com/questions/403919/harddrive-with-4096-physical-sector-size-reported-as-512-behind-usb-bridge Ответы здесь могут помочь проясните путаницу (или, возможно, сделаете вас более запутанным;]) Layne Bernardo 5 лет назад 0
USB-корпуса не все созданы равными, звучит так, как будто вы только что нашли немного Xen2050 5 лет назад 0
@LayneBernardo, спасибо Лейну, я просто прокрутил автора этого вопроса, чтобы узнать, не обнаружил ли он что-то еще. Mauro Molinari 5 лет назад 0
@MauroMolinari * Я * не сделал. (Я не автор вопросов, это не мое оборудование.) У меня такое чувство, что на сайте U & L есть еще несколько подобных вопросов. sourcejedi 5 лет назад 0
@ Xen2050 вы можете быть правы, я просто удивлен, что недавний мост JMicron, кажется, ведет себя неправильно, в то время как старый JMicron, кажется, ведет себя правильно. И в любом случае, неспособность прочитать содержимое диска вызывает тревогу. Mauro Molinari 5 лет назад 0
Для справки: похоже, что https://unix.stackexchange.com/questions/187748/recognizing-gpt-partition-table-created-with-different-logical-sector-size предлагает способ считывания содержимого обратно с помощью losttup и указав правильный размер блока. Mauro Molinari 5 лет назад 0
Насколько я понимаю, размер логического блока является частью абстракции физического диска, который используется в настоящее время для обеспечения более равномерного и более легкого доступа к физическим дискам. В основном ядро ​​делает вид, что пишет на воображаемый диск и автоматически переводит его в реальные области памяти. Кажется, что ядро ​​просто выбирает любой размер блока, который, по его мнению, использует для размера логического блока, и, возможно, более новые USB-корпуса обеспечивают подобный тип абстракции и просто сообщают абстрактные значения, так как обычно это не имеет никакого значения для операционной системы. , Layne Bernardo 5 лет назад 0

0 ответов на вопрос

Похожие вопросы