Hard-Disk
我的硬碟物理扇區大小是多少?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
.非常感謝。
- PS:如果答案是
4096
,除了 linux 中還有沒有其他工具可以顯示真實的結果smartctl
?我發現另一個命令會顯示 4096:
$ sudo hdparm -I /dev/sdb | grep -i physical Physical Sector size: 4096 bytes
根據 fdisk 的說法,它是一個 USB 磁碟 - 所以資訊是隱藏的。
smartctl 有一個包含許多磁碟的數據庫,因此它可以獲得物理大小。
事實上,過去幾年建構的任何 HD,尤其是多 TB 大小的 HD 都將具有 4096 字節的物理塊大小。
我剛剛查看了我的小型 NVME 驅動器,gdisk 說邏輯/物理大小都是 512 字節 - 但分區將在2048 個扇區邊界(即 1Mib)上對齊。它對 SATA SSD 也有同樣的看法。