물리적 섹터 크기가 4k (고급 형식) 인 4TB 하드 디스크가 있고 두 개의 SATA 호스트 컨트롤러 (하나는 내부 및 하나는 USB 인클로저에 있음)에 연결했습니다. (이전, 약 2010 년)에는 512B 논리 섹터 크기로 나타나지만 실제 섹터는 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)
"내부"컨트롤러는 이전에 본 동작을 보여줍니다. 일반적으로 드라이브의 펌웨어는 섹터를 물리적으로 쓰지 않더라도 드라이브의 펌웨어가 512 섹터 LBA 주소를 에뮬레이트하는 "512e"라고합니다. 운영 체제 (및 관리자)는 (작은) 쓰기 명령을 그룹화하여 디스크를 물리 섹터의 일부로 쓰는 대신 디스크 전체 섹터를 덮어 쓸 수 있도록 파티션을 정렬 할 수 있습니다. 내용의 첫번째.
그러나 드라이브 (USB 엔클로저)에서 "4k 기본"동작을 보는 것은 나에게 새로운 것이었고 처음 생각한 것은 엔클로저가 드라이브의 에뮬레이트 된 512B 에뮬레이션에서 4096B 주소를 에뮬레이트하고 있다는 것입니다.
4k 개의 논리 섹터에 등록 된 USB 스토리지 기능이있는 웹 검색에서 찾을 수있는 유일한 항목입니다. 512e 이상 4k를 에뮬레이트하므로 MBR 파티션 테이블을 허용하여 MBR + FAT32 USB 대용량 저장 장치 만 지원하는 레거시 / 임베디드 장치 (스마트 TV 및 기타 장치)에서 큰 드라이브를 사용할 수 있습니다.
제조업체에 연락 한 후 드라이브가 실제로 에뮬레이션되지 않은 (네이티브) 4k 모드에서 작동한다고 주장했으며 USB SATA 컨트롤러도 전혀 에뮬레이션을 수행하지 않습니다. 이를 위해서는 호스트 컨트롤러가 4KB의 섹터 크기 주소 지정을 지원하는지 여부를 감지하기 위해 드라이브의 펌웨어가 필요합니다. SATA 표준의 공개 문서에서 이것에 대해 아무것도 찾을 수 없습니다. 그래서 나는 묻습니다.
- SATA 컨트롤러에서 "4096 바이트 논리 블록"을 본 사람이 있습니까?
- 드라이브는 실제로 주문형 에뮬레이션 활성화 / 비활성화를 지원합니까? 그렇다면,
- 이 결정은 어떻게 작동합니까?
- 플래그를 통해 드라이브에서 대체 할 수 있습니까?
- 드라이버 / 플래그를 통해 호스트 컨트롤러에서 재정의 할 수 있습니까?