У меня есть жесткий диск объемом 4 ТБ с размером физического сектора 4 КБ (расширенный формат), и я подключил его к двум хост-контроллерам SATA (один внутренний и один в корпусе USB). На (более раннем, около 2010 г.) размер логического сектора составляет 512 байт, но он сообщает, что его физические секторы имеют размер 4096 байт. В последнем корпусе USB он имеет логический и физический размер 4096B:
# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks
# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)
"Внутренний" контроллер демонстрирует поведение, которое я видел ранее, которое обычно называется "512e", когда встроенное ПО привода эмулирует адресацию LBA 512 секторов, даже если физически не записывает секторы таким образом. Операционные системы (и администраторы) могут гарантировать, что разделы выровнены так, что (небольшие) команды записи могут быть сгруппированы так, чтобы диск мог перезаписывать полные сектора вместо того, чтобы вернуться к записи в часть физического сектора, где ему нужно прочитать остаток содержания в первую очередь.
Тем не менее, просмотр "4k собственного" поведения на диске (USB-корпус) был для меня новым, и я сначала подумал, что корпус эмулирует адресацию 4096B поверх эмулируемой 512B эмуляции диска.
Единственные случаи, которые я мог найти с помощью веб-поиска, где хранилища USB были зарегистрированы в логических секторах 4k. Я предполагаю, что они эмулируют 4k вместо 512e, поэтому разрешите таблицы разделов MBR, чтобы большие диски можно было использовать на устаревших / встроенных устройствах (Smart TV и т.д.), Которые поддерживают только MBR+FAT32 USB-накопитель.
После обращения к производителю они заявили, что диск фактически работает в неэмулируемом (родном) режиме 4k, контроллер USB SATA также вообще не выполняет эмуляцию. Для этого потребуется встроенное ПО привода, чтобы определить, поддерживает ли хост-контроллер (желает?) адресация секторов размером 4КБ. Я не мог найти ничего об этом в публичной документации стандартов SATA. Поэтому я спрашиваю:
- Кто-нибудь видел «4096-байтовые логические блоки» на своем контроллере SATA?
- Действительно ли диски поддерживают включение / отключение эмуляции по требованию? Если так,
- Как работает это определение?
- Можете ли вы переопределить его на диске через флаг?
- Можете ли вы переопределить его на хост-контроллере через драйвер / флаг?