Odpowiedziałem na to pytanie , zakładając, że *.img
plik ma rozmiar sektora wynoszący 512
.
Jak wysłać zapytanie do urządzenia lub jego obrazu, aby znaleźć właściwy rozmiar sektora?
Odpowiedziałem na to pytanie , zakładając, że *.img
plik ma rozmiar sektora wynoszący 512
.
Jak wysłać zapytanie do urządzenia lub jego obrazu, aby znaleźć właściwy rozmiar sektora?
fdisk -l
(to jest niższe L w parametrze) pokaże Ci, między innymi, także rozmiar sektora.
$ 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
To pokazuje, że rozmiar sektora wynosi 512 bajtów.
EDYCJA: Nowsze wersje fdisk
np. fdisk
(Z pakietu util-linux 2.20.1
) pokażą również logiczny i fizyczny rozmiar sektora. Na przykład odpowiednie dane wyjściowe z „napędu WDC WD10EFRX 1 TB”:
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
Zgodnie z dokumentacją plików sysfs kolejki :
źródło
loopN
zamiastsdX
. Jest to jednak w pewnym sensie bezcelowe, ponieważ pliki obrazów tak naprawdę nie mają żadnych sektorów, a te informacje pokażą tylko rozmiar sektora aktualnie zamontowanego urządzenia.Można po prostu użyć
file(1)
polecenia i samodzielnie wykonać matematykę. Działa to nawet wtedy, gdy masz tylko obraz systemu FAT.Na przykład:
Ta partycja ma 64 sektory na klaster. Liczba bajtów w każdym sektorze wynosi 512, ponieważ jest to wartość domyślna, dlatego rozmiar klastra wynosi 32 KB.
Zauważ, że rozmiar sektora może być większy niż 512 (specyfikacja FAT ogranicza go do 4096, ale możesz przejść wyżej). Kiedy tak się stanie, zobaczysz dodatkowe pole „Bajty / sektor” na wyjściu.
Wykonaj dopasowanie ponownie, 4096 bajtów × 16 sektorów = 64 KiB na klaster.
źródło
dzięki powyższym odpowiedziom, o fdisk pokazującym fizyczny rozmiar sektora i o ścieżce / sys ... ale jedna uwaga ... autorstwa Lucasa w książce Absolute FreeBSD .... prawie każdy dysk twardy będzie dotyczył wielkości sektora, więc w przypadku Linuksa
zawsze, o ile rozumiem, pokaże 512 dla lepszej wydajności dobrze jest wziąć pod uwagę rozmiar sektora fizycznego, rzeczywisty, który jest naprawdę używany w logice sprzętowej. Pokazane przez fdisk i obecne w
źródło