Bir bölümün sektör boyutunu bulma


24

Ben cevap bu soruyu , varsayarak bu *.imgdosya bir sektör boyutu vardı 512.

Doğru sektör boyutunu bulmak için bir aygıtı veya aygıtın görüntüsünü nasıl sorgularım?

Yanıtlar:


26

fdisk -l (bu, L parametresindeki düşük) diğer bilgilerin yanı sıra sektör boyutunu da gösterir.

$ 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

Bu, sektör boyutunun 512 bayt olduğunu gösterir.

EDIT: fdiskÖrneğin fdisk(paketinden util-linux 2.20.1) yeni sürümleri, size mantıksal ve fiziksel sektör boyutlarını da gösterecektir. Örneğin, bir "WDC WD10EFRX 1TB sürücüden" ilgili çıktı:

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

Yani 4096 bayt, 512 bayt.
Hibou57

26

Kuyruk sysfs dosyalarının belgelerine göre :

# cat /sys/block/sda/queue/hw_sector_size
512

1
Bu isteğe bağlı görüntü dosyaları için çalışmaz. Çekirdek onları nasıl bilmeli?
Christian Pietsch

1
Bu yüzden @ChristianPietsch keyfi görüntü dosyaları normalde döngü cihazlar üzerinden monte edilmiştir olacak onlar için çalışıyoruz. Sadece loopNyerine kullandığınızdan emin olun sdX. Yine de bir anlamda anlamsızdır, çünkü görüntü dosyalarında gerçekten herhangi bir sektör yoktur ve bu bilgi size şu anda monteli cihazın sektör boyutunu söyleyecektir.
Ruslan,

1

Biri sadece file(1)komutu kullanabilir ve matematiği kendisi yapabilir. Bu, FAT sisteminin yalnızca bir görüntüsüne sahip olsanız bile işe yarar.

Örneğin:

$ 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

Bu bölüm küme başına 64 sektöre sahiptir. Her sektördeki bayt sayısı 512'dir, varsayılan değerdir, bu nedenle küme boyutu 32KB'dir.

Sektör boyutunun 512'den büyük olabileceğine dikkat edin (FAT özelliği 4096 ile sınırlıdır, ancak daha yüksek olabilir). Bu olduğunda, çıktıda ek bir "Bayt / sector" alanı göreceksiniz.

$ 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

Maçı tekrar yapın, 4096 bayt × 16 sektör = küme başına 64 KiB.


0

Yukarıdaki cevaplar, fiziksel sektörün büyüklüğünü gösteren fdisk ve / sys yolunun hakkında ... ama bir not ... Lucas'ın Absolute FreeBSD adlı kitabında .... neredeyse her hdd sektör büyüklüğü hakkında yalan söyleyecek, bu yüzden linux için

/sys/block/sda/queue/hw_sector_size

her zaman, anlayabildiğim kadarıyla, daha iyi performans için 512'yi göstereceğim, gerçekten donanım mantığında kullanılan fiziksel sektör büyüklüğünü hesaba katmak iyidir. Fdisk tarafından gösterildi ve mevcut

cat /sys/block/sdc/queue/physical_block_size 
4096
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.