저는 소프트웨어 정의 장치를 실험하고 있으며 블록 크기 = 512바이트로 작동하도록 강제하려고 시도하고 있지만 Linux는 이를 원하지 않는 것 같습니다.
장치가 최소 명령 청크 수를 보고하도록 강제했습니다 SCSI INQUIRY
.
hekto@ubuntu3:~$ sudo sg_inq -p 0xb0 /dev/sde
VPD INQUIRY: Block limits page (SBC)
Maximum compare and write length: 255 blocks
Optimal transfer length granularity: 1 blocks
Maximum transfer length: 1 blocks
Optimal transfer length: 1 blocks
Maximum prefetch transfer length: 0 blocks
Maximum unmap LBA count: 0
Maximum unmap block descriptor count: 0
Optimal unmap granularity: 0
Unmap granularity alignment valid: 0
Unmap granularity alignment: 0
Maximum write same length: 0x0 blocks
Maximum atomic transfer length: 0
Atomic alignment: 0
Atomic transfer length granularity: 0
그러나 fdisk -l
여전히 물리적 블록 크기 = 4096을 보고합니다.
hekto@ubuntu3:~$ sudo fdisk -l /dev/sde
Disk /dev/sde: 5 MB, 5120000 bytes
1 heads, 10 sectors/track, 1000 cylinders, total 10000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes <== see here
I/O size (minimum/optimal): 4096 bytes / 524288 bytes. <== and here
이 숫자(위 참조)는 어디에서 왔습니까?
운영 체제: Ubuntu 14.04.5 LTS, 커널 3.19.0-78-일반
(MacBook의 VMware Fusion 8.5.8에서 가상 머신으로 작동)