У меня есть жесткий диск объемом 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 и т. Д.), Которые поддерживают только USB-накопители MBR + FAT32.
После обращения к производителю они заявили, что диск фактически работает в неэмулируемом (родном) режиме 4k, контроллер USB SATA также вообще не выполняет эмуляцию. Для этого потребуется встроенное ПО привода, чтобы определить, поддерживает ли хост-контроллер (желает?) Адресацию секторов размером 4 КБ. Я не мог найти ничего об этом в публичной документации стандартов SATA. Поэтому я спрашиваю:
- Кто-нибудь видел «4096-байтовые логические блоки» на своем контроллере SATA?
- Действительно ли диски поддерживают включение / отключение эмуляции по требованию? Если так,
- Как работает это определение?
- Можете ли вы переопределить его на диске через флаг?
- Можете ли вы переопределить его на хост-контроллере через драйвер / флаг?