GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana perintah seperti fdisk -l menemukan ukuran sektor?

Ukuran sektor perangkat tidak disimpan di MBR.

Perintah ruang pengguna seperti fdisk gunakan BLKBSZGET dan BLKSSZGET ioctl s untuk mengambil ukuran sektor dari disk. ioctl itu s ditangani oleh driver di kernel, yang mengambil informasi yang relevan dari drive itu sendiri.

(Tidak banyak dokumentasi tentang ioctl yang relevan s; Anda perlu memeriksa kode sumber kernel.)

Anda dapat melihat informasi yang relevan menggunakan alat lain yang didorong kueri secara langsung, misalnya hdparm . Pada SSD kecil, hdparm -I beri tahu saya

[...]
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
[...]
cache/buffer size  = unknown
Form Factor: 2.5 inch
Nominal Media Rotation Rate: Solid State Device
[...]

Pada disk berputar besar dengan sektor 4K, saya malah mendapatkan

[...]
Logical  Sector size:                   512 bytes
Physical Sector size:                  4096 bytes
Logical Sector-0 offset:                  0 bytes
[...]
cache/buffer size  = unknown
Form Factor: 3.5 inch
Nominal Media Rotation Rate: 5400
[...]

Ada beberapa pertanyaan di sana, saya mencoba melacak jawaban "Di mana fdisk menemukan ukuran sektor disk?" Yang terbaik yang saya temukan adalah mendapatkan info dari ioctl .

ioctl info di halaman manual Wikipedia dan Linux.

tautan kode sumber fdisk


Linux
  1. Bagaimana Menemukan File Di Sektor Tertentu?

  2. Bagaimana cara menemukan ukuran tumpukan maksimum?

  3. Cara mem-pipe hasil 'find' ke mv di Linux

  1. Cara Mengetahui Apakah Disk Adalah SSD Atau HDD Di Linux

  2. Cara mengaudit izin dengan perintah find

  3. Bagaimana cara menemukan UUID dari sistem file

  1. Bagaimana menemukan ukuran inode dari sistem file ext2/ext3/ext4?

  2. Cara menemukan ukuran buffer soket linux

  3. Bagaimana menemukan pengelola file default?