Mon, Mar 14, 2016 at 16:41:20, doka.ua wrote about "Re: [uanog] SMART disk status":
А как можно проверить? Мои рипортят 512 байт :)
Sector Size: 512 bytes logical/physical
Значит, у именно этого диска такой проблемы, возможно, нет. Хотя некоторые старые врали (я сталкивался с проблемой на WD15EARS). В общем случае выглядит так: C возвращаемом из диска по команде IDENTIFY DEVICE (Linux: HDIO_GET_IDENTITY, FreeBSD: IOCATAGPARM) - массиве из 256 16-битных слов в little endian - за эти параметры отвечают следующие слова: * слово 106 - b15==0, b14==1, b13 - признак "несколько логических на * один физический", b3..0 - двоичный логарифм количества логических в * физическом * слово 209 - b15==0, b14==1, b13..b0 - Logical sector offset within * the first physical sector where the first logical sector is placed. То есть для такого диска при логическом 512 байт и физическом 4K должно быть: * uint16_t identify[256]; * identify[106] == 0x6003 - во всех случаях * identify[209] == 0x4000 - если границы физических и логических совпадают с начала диска * identify[209] == 0x4001 - если применён хак с началом физического * сектора с логического 63-го для совместимности с разметкой MSDOS (WDxxEARS: для этого ставится джампер) При этих настройках диск продолжает быть совместимым со старым подходом по всему функционалу, только теряя в скорости на невыровненных доступах. Для SCSI, такие данные могут быть получены командой "READ CAPACITY (16)". См. sg_readcap из sg3_utils. Если диск 512/512, то проблем с выравниванием у него, скорее всего, нет (с поправкой на враньё, см. выше). Если диск 512 логическое / 4096 физическое (достаточно распространённый сейчас вариант), то для нормального доступа все границы разделов должны начинаться на позиции сектора, кратной 8. Это не проходит, например, при стандартной разметке MS-DOS, когда на "дорожке" 63 сектора: MBR - на секторе 0/0/1 (LBA=0) начало 1-го физического раздела - на секторе 0/1/1 (LBA=63) а надо было бы что-то кратное 8 (например, 32, 56)... Примерно в 2010-2012 из-за этой проблемы изменился стандартный подход к выравниванию при разделении дисков на разделы: если до того было типичным выравнивание на "дорожку" из 63 секторов (совместимость с MS-DOS), независимо от реальной геометрии диска (которая у большинства недоступна и, более того, неоднородна - в разных частях диска разная угловая плотность записи и соответственно количество секторов на физическую дорожку), то после этой границы стандарт - выравнивание на границу 1MB (для 512-байтных секторов это 2048 секторов), иногда чуть больше (2MB, 4MB). Все обновлённые с этой границы средства разметки по умолчанию используют такие выровненные средства. Это касается и Unix, и Windows (в последней началось даже раньше, из-за ориентации на "динамические диски" и программные LVM на них - такое умолчание ещё с Windows 7). -netch-