내 하드 드라이브의 물리적 섹터 크기는 얼마입니까? fdisk, smartctl 등.. 다른 답변을 제공합니다.

내 하드 드라이브의 물리적 섹터 크기는 얼마입니까? fdisk, smartctl 등.. 다른 답변을 제공합니다.

하드 드라이브는 USB3.0을 통해 외장 하드 드라이브 상자에 연결됩니다.

$ sudo smartctl -a /dev/sdb

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 3.5
Device Model:     ST4000DM004-2CV104
Firmware Version: 0001
User Capacity:    4,000,787,030,016 bytes [4.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5425 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
  • 4096 bytes physical위의 출력에 표시된 것을 볼 수 있습니다 .

  • 그러나 다음 결과는 모두 512바이트를 표시합니다.

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: USB3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
$ cat /sys/block/sdb/queue/hw_sector_size
512

$ cat /sys/block/sdb/queue/physical_block_size
512
$ lsblk -o NAME,PHY-SeC /dev/sdb
NAME   PHY-SEC
sdb        512
└─sdb1     512
$ sudo blockdev --getbsz /dev/sdb
512

그렇다면 하드 디스크의 실제 물리적 섹터 크기는 얼마입니까?

이어야 한다고 생각 4096하지만 왜 다른 모든 명령에서 잘못된 결과가 나오는지 모르겠습니다.

  • 그런데, 실제 물리 섹터 크기를 찾고 싶은 이유는 -b 4096런타임에 사용하고 싶기 때문입니다 badblocks.

감사합니다.

  • 추신: 대답이 '예'라면 4096이 외에 실제 결과를 보여줄 수 있는 Linux의 다른 도구가 있습니까 smartctl?

4096을 표시하는 다른 명령을 찾았습니다.

$ sudo hdparm -I /dev/sdb | grep -i physical
        Physical Sector size:                  4096 bytes

답변1

fdisk에 따르면 USB 디스크이므로 정보가 숨겨져 있습니다.

smartctl에는 디스크가 많은 데이터베이스가 있으므로 물리적 크기를 얻을 수 있습니다.

실제로 지난 몇 년 동안 만들어진 모든 HD, 특히 멀티 테라바이트 크기의 HD는 물리적 블록 크기가 4096바이트입니다.

방금 작은 NVME 드라이브를 살펴보았는데 gdisk에서 논리적/물리적 크기가 모두 512바이트라고 말합니다. 하지만 파티션은 정렬될 것입니다.2048개 섹터경계(예: 1Mib). SATA SSD도 마찬가지입니다.

관련 정보