Saya menjawab pertanyaan ini , dengan asumsi bahwa *.img
file tersebut memiliki ukuran sektor 512
.
Bagaimana cara saya meminta perangkat, atau gambar perangkat, untuk menemukan ukuran sektor yang benar?
Saya menjawab pertanyaan ini , dengan asumsi bahwa *.img
file tersebut memiliki ukuran sektor 512
.
Bagaimana cara saya meminta perangkat, atau gambar perangkat, untuk menemukan ukuran sektor yang benar?
Jawaban:
fdisk -l
(itu lebih rendah L dalam parameter) akan menunjukkan kepada Anda, di antara informasi lain, ukuran sektor juga.
$ sudo fdisk -l
Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 63 208844 104391 83 Linux
/dev/sda2 208845 209712509 104751832+ 83 Linux
Ini menunjukkan bahwa ukuran sektor adalah 512 byte.
EDIT: Versi yang lebih baru fdisk
misalnya, fdisk
(dari paket util-linux 2.20.1
), juga akan menunjukkan ukuran sektor logis dan fisik. Misalnya, output yang relevan dari "WDC WD10EFRX 1TB drive":
Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Menurut dokumentasi untuk file sysfs antrian :
# cat /sys/block/sda/queue/hw_sector_size
512
loopN
bukan sdX
. Namun, ini agak tidak berarti, karena file gambar tidak benar-benar memiliki sektor apa pun, dan info ini hanya akan memberi tahu Anda ukuran sektor dari perangkat yang saat ini dipasang.
Orang bisa menggunakan file(1)
perintah dan melakukan matematika sendiri. Ini berfungsi bahkan jika Anda hanya memiliki gambar sistem FAT.
Sebagai contoh:
$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
code offset 0x58+2
OEM-ID "mkfs.fat"
sectors/cluster 64
reserved sectors 64
Media descriptor 0xf8
sectors/track 63
heads 255
hidden sectors 147632128
sectors 536870912 (volumes > 32 MB)
FAT (32 bit)
sectors/FAT 65536
serial number 0x9f981691
unlabeled
Partisi ini memiliki 64 sektor per kluster. Jumlah byte di setiap sektor adalah 512, karena ini adalah default, oleh karena itu, ukuran cluster adalah 32KB.
Perhatikan bahwa ukuran sektor bisa lebih besar dari 512 (spesifikasi FAT membatasi ke 4096 tetapi Anda bisa lebih tinggi). Ketika itu terjadi, Anda akan melihat bidang "Bytes / sektor" tambahan di output.
$ sudo mkfs.fat -S 4096 -s 16 /dev/sda5
mkfs.fat 4.1 (2017-01-24)
$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
code offset 0x58+2
OEM-ID "mkfs.fat"
Bytes/sector 4096
sectors/cluster 16
Media descriptor 0xf8
sectors/track 63
heads 255
hidden sectors 147632128
sectors 67108864 (volumes > 32 MB)
FAT (32 bit)
sectors/FAT 4096
serial number 0xb059d826
label: unlabeled
Lakukan pencocokan lagi, 4096 byte × 16 sektor = 64 KiB per cluster.
terima kasih jawaban di atas, tentang fdisk menampilkan ukuran sektor fisik, dan tentang / sys path ... tapi satu catatan ... oleh Lucas dalam buku Absolute FreeBSD .... hampir setiap hdd akan berbohong tentang ukuran sektor, jadi dalam kasus linux
/sys/block/sda/queue/hw_sector_size
akan selalu, sejauh yang saya mengerti, menunjukkan 512 untuk kinerja yang lebih baik ada baiknya memperhitungkan ukuran sektor fisik, nyata, yang benar-benar digunakan dalam logika perangkat keras. Itu ditunjukkan oleh fdisk, dan hadir di
cat /sys/block/sdc/queue/physical_block_size
4096