У меня 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
* {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 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
И если я cat /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)
Если я cat /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
* {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 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
Если я cat /sys/class/block/sdb/queue/physical_block_size
и /sys/class/block/sdb/queue/logical_block_size
они оба говорят 512.
Итак, с этой док-станцией я снова вижу диск как "обычный" секторный диск с 512 байтами.
Вопросы
- почему hdparm говорит что-то отличное от fdisk и
/sys/class/block/sdb/queue/physical_block_size
+/sys/class/block/sdb/queue/logical_block_size
с обеими док-станциями? hdparm говорит, что размер физического сектора равен 4096, а другой говорит, что размер физического сектора равен 512 (как логический) - Как это возможно, что совсем недавно (купленная в 2018 году) док-станция USB 3 с мостом JMicron, поддерживающим новейший протокол UASP, не воспринимает накопитель как 4k, а гораздо более старый мост USB 2 SATA + PATA от JMicron тоже ? Это вообще проблема, если я начинал использовать этот жесткий диск с этими док-станциями с нуля?
- как видите, разделы на этом диске являются членами RAID (RAID1); таблица разделов и массив RAID были созданы при использовании диска с корпусом JMicron SATA + PATA. Всякий раз, когда я пытаюсь запустить RAID-массивы с этим корпусом, у меня нет проблем, и я могу прочитать содержимое на диске; всякий раз, когда я пытаюсь сделать то же самое с обеими док-станциями, я получаю сообщение об ошибке "суперблок не найден", поэтому массив не запускается, и я не могу прочитать содержимое диска; это немного пугает меня, потому что я боюсь, что не смогу прочитать содержимое этого диска обратно, если однажды выйдет из строя корпус
Чтобы преодолеть проблему 3. Я помню, что мог изменять интересующий раздел даже при использовании первой док-станции, играя с началами блоков и размером сектора, чтобы я мог получить изображение в файле, которое я мог бы смонтировать как устройство обратной связи, и вернуть исходное содержимое, однако Мне было интересно, есть ли более простое решение, которое не заставляет меня создавать образ всего диска.