Co oznacza wyjście fdisk?

10

Mam dysk flash i chcę zrozumieć jego właściwości w postaci, w jakiej jest wyprowadzany fdisk. Włożyłem go i sprawdziłem dmesgi mogłem zobaczyć, że został zamontowany, /dev/sdb1więc pobiegłem, fdiskaby zobaczyć, o co chodzi/dev/sdb

mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike: 

Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 sectors
 Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b3ee723

   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *          32      249854      124911+   b  W95 FAT32

O ile mogę stwierdzić, dysk to 128 MB sformatowany dysk flash FAT32, ma tylko 1 partycję. Zaczyna się od „32” (przypuszczalnie 0-31 jest używane w niektórych FTL).

Zgłasza, że ​​„sektor” ma rozmiar 512 bajtów i istnieje 249 856 sektorów (łącznie 122 MB).

Teraz jestem zdezorientowany co do liczby cylindrów, głowicy i sektorów / ścieżek. Wiem, że cylindry / głowice mają związek z typami przechowywania na dyskach magnetycznych. Czy ma to jakieś znaczenie, jeśli chodzi o urządzenie flash? A może to tylko „resztkowa” informacja, z fdiskktórej tak naprawdę nie ma żadnego znaczenia dla niemagnetycznego nośnika danych? Jeśli później, to po co w ogóle podawać wartości?

Drugie pytanie, jaki jest „rozmiar” bloku? :

Blocks
 124911+

A jakie jest znaczenie liczby +po bloku?

Mikrofon
źródło
1
Ładne pytanie +1, nigdy wcześniej o tym nie myślałem. Co rozumiesz przez „FTL”? Dla mnie to oznacza szybsze niż światło, wyobrażam sobie, że masz na myśli coś innego?
terdon
1
@terdon - FTL (warstwa tłumaczenia Flash) rzeczy, które wyrównywanie dziwek i co tam
Mike

Odpowiedzi:

3

Rozmiar bloku

Trójwymiarowa ścieżka (ta sama ścieżka na wszystkich dyskach) nazywa się walcem. Każda ścieżka jest podzielona na 63 sektory. Każdy sektor zawiera 512 bajtów danych. Dlatego rozmiar bloku w tablicy partycji wynosi 64 głowice * 63 sektory * 512 bajtów er ... podzielone przez 1024 ... :-)

Źródło: Partycjonowanie za pomocą fdisk

Za każdym razem, gdy Linux odnosi się do rozmiaru bloku, prawie zawsze jest to 1024 bajty - Linux używa 1024-bajtowych bloków jako prymitywnych jednostek pamięci podręcznej bufora i wszystkiego. Jedyne razy nie ma go w sterownikach specyficznych dla systemu plików, ponieważ niektóre systemy plików używają innych ziarnistość (na przykład w systemie plików ext3 o normalnym rozmiarze rozmiar bloku systemu plików wynosi zwykle 4096 bajtów). Jednak prawie nigdy nie widzisz rozmiaru bloku systemu plików; prawie jedynym sposobem, aby to zobaczyć, jest haker jądra lub uruchamianie programów takich jak dumpe2fs.

Problem polega na tym, że istnieją cztery odrębne jednostki, o których należy pamiętać. Co gorsza, dwie z tych jednostek noszą tę samą nazwę. Są to różne jednostki:

  1. Rozmiar bloku sprzętowego, „rozmiar sektora”
  2. Rozmiar bloku systemu plików, „rozmiar bloku”
  3. Rozmiar bloku bufora bufora jądra, „rozmiar bloku”
  4. Rozmiar bloku tabeli podziału, „rozmiar cylindra”

Aby rozróżnić rozmiar bloku systemu plików od rozmiaru bloku bufora bufora, będę postępować zgodnie z terminologią FAT i użyję „rozmiaru klastra” dla rozmiaru bloku systemu plików.

Rozmiar sektora to jednostki, którymi zajmuje się sprzęt. Różni się to między różnymi typami sprzętu, ale większość sprzętu w stylu komputera (dyskietki, dyski IDE itp.) Używa sektorów 512-bajtowych.

Rozmiar klastra jest jednostką alokacji używaną przez system plików i powoduje fragmentację - jestem pewien, że o tym wiesz. W systemie plików ext3 średniej wielkości jest to zwykle 4096 bajtów, ale można to sprawdzić za pomocą dumpe2fs. Pamiętaj, że są one zwykle nazywane „ blokami ”, tyle że nazywam je tutaj klastrami . Rozmiar klastra jest zwracany w st_blksizebuforze statystyk, aby programy mogły obliczyć faktyczne użycie dysku przez plik.

Rozmiar bloku to rozmiar buforów używanych przez jądro wewnętrznie podczas buforowania sektorów odczytanych z urządzeń pamięci masowej (stąd nazwa „urządzenie blokowe”). Ponieważ jest to najbardziej prymitywna forma przechowywania w jądrze, wszystkie rozmiary klastra systemu plików muszą być jego wielokrotnością. Ten rozmiar bloku jest również prawie zawsze określany przez programy przestrzeni użytkownika. Na przykład, jeśli uruchomisz dubez opcji -h lub -H, zwróci liczbę bloków, które zajmuje plik. dfbędzie również raportować rozmiary w tych blokach, kolumna „Bloki” na fdisk -lwyjściu jest tego typu i tak dalej. Jest to tak zwane „blok”. Dwa sektory dysku pasują do każdego bloku.

Rozmiar cylindra jest używany tylko w tabeli partycji i przez BIOS (a BIOS nie jest używany przez Linux).

Źródło: Rozmiar bloku dysku Linux ... proszę o pomoc

Sektory 0–31

Aby odpowiedzieć na pytanie dotyczące pierwszych 32 sektorów, ponieważ dysk flash jest urządzeniem sformatowanym w FAT, a następnie patrząc na definicję systemu plików FAT, można zauważyć, że system plików FAT składa się z czterech różnych sekcji:

a) Sektory zastrzeżone;
b) region Tablicy alokacji plików (FAT);
c) Region katalogu głównego oraz;
d) Region danych.

Przegląd tłuszczu

Sektory zarezerwowane , znajdujące się na samym początku, to (w tym przypadku) sektory 0–31:

Pierwszym zarezerwowanym sektorem (sektor logiczny 0) jest sektor rozruchowy (inaczej wolumin Boot Boot Record (VBR) ). Zawiera obszar zwany Blokiem Parametrów BIOS (z pewnymi podstawowymi informacjami o systemie plików, w szczególności jego typem i wskazówkami lokalizacji innych sekcji) i zwykle zawiera kod modułu ładującego rozruch systemu operacyjnego.

Ważne informacje z sektora rozruchowego są dostępne poprzez strukturę systemu operacyjnego zwaną blokiem parametrów napędu (DPB) w systemach DOS i OS / 2.

Całkowita liczba zarezerwowanych sektorów jest wskazywana przez pole wewnątrz sektora rozruchowego i zwykle wynosi 32 w systemach plików FAT32 .

W systemach plików FAT32 zarezerwowane sektory obejmują sektor informacji o systemie plików w sektorze logicznym 1 i sektor kopii zapasowych w sektorze logicznym 6.

Podczas gdy wielu innych dostawców nadal stosuje konfigurację jednosektorową (tylko sektor logiczny 0) dla modułu ładującego bootstrap, kod sektora startowego Microsoft rozrósł się do sektorów logicznych 0 i 2 od czasu wprowadzenia FAT32, z logicznym sektorem 0 zależnym od podprogramy w sektorze logicznym 2. Obszar Backup Boot Sector składa się również z trzech logicznych sektorów 6, 7 i 8. W niektórych przypadkach Microsoft używa również sektora 12 obszaru zarezerwowanych sektorów dla rozszerzonego programu ładującego.


Tylko dodatkowe informacje, niezwiązane z pytaniem PO

Region FAT będzie w sektorze 32:

Zwykle zawiera dwie kopie (mogą się różnić) Tabeli alokacji plików w celu sprawdzenia nadmiarowości, choć rzadko używane, nawet przez narzędzia do naprawy dysku.

Są to mapy regionu danych, wskazujące, które klastry są używane przez pliki i katalogi. W FAT12 i FAT16 natychmiast podążają za zarezerwowanymi sektorami.

Zazwyczaj dodatkowe kopie są trzymane w ścisłej synchronizacji podczas zapisów, a podczas odczytów są używane tylko wtedy, gdy wystąpią błędy w pierwszym FAT. W FAT32 możliwe jest przełączenie z domyślnego zachowania i wybranie jednego FAT spośród dostępnych, które zostaną użyte do celów diagnostycznych.

Pierwsze dwa klastry (klaster 0 i 1) na mapie zawierają wartości specjalne.

Region katalogu głównego :

Jest to tabela katalogów, która przechowuje informacje o plikach i katalogach znajdujących się w katalogu głównym. Jest używany tylko z FAT12 i FAT16 i nakłada na katalog główny stały maksymalny rozmiar, który jest wstępnie przydzielany podczas tworzenia tego woluminu. FAT32 przechowuje katalog główny w regionie danych wraz z plikami i innymi katalogami, umożliwiając jego rozwój bez takich ograniczeń. Dlatego w przypadku FAT32 region danych zaczyna się tutaj.

Region danych :

Tutaj przechowywane są rzeczywiste dane pliku i katalogu, które zajmują większość partycji. Tradycyjnie nieużywane części regionu danych są inicjowane wartością wypełniacza 0xF6 zgodnie z tabelą parametrów dysku INT 1Eh (DPT) podczas formatowania na komputerach kompatybilnych z IBM, ale również używane w portfolio Atari. 8-calowe dyskietki CP / M zwykle były wstępnie sformatowane z wartością 0xE5; za pomocą Digital Research wartość tę wykorzystano również na dyskietkach w formacie Atari ST. Zamiast tego Amstrad użył 0xF4. Niektóre nowoczesne formatery czyszczą dyski twarde o wartości 0x00, podczas gdy wartość 0xFF, domyślna wartość niezaprogramowanego bloku pamięci flash, jest używana na dyskach flash w celu zmniejszenia zużycia. Ta ostatnia wartość jest zwykle używana także na dyskach ROM. (Niektóre zaawansowane narzędzia formatowania pozwalają skonfigurować bajt wypełniacza formatu).

Rozmiar plików i podkatalogów można dowolnie zwiększyć (o ile istnieją wolne klastry), po prostu dodając więcej linków do łańcucha plików w FAT. Należy jednak pamiętać, że pliki są przydzielane w jednostkach klastrów, więc jeśli plik 1 KiB znajduje się w klastrze 32 KiB, marnuje się 31 KiB.

FAT32 zazwyczaj rozpoczyna tabelę katalogu głównego w klastrze nr 2: pierwszy klaster regionu danych.

Źródło: Wikipedia - Tabela alokacji plików

Greenonline
źródło
1

Zgaduję, że sektory 1-31 są zarezerwowane dla informacji o rozruchu i tablicy tablicy partycji. Partycja / dev / sdb1 rozpoczyna się w bloku / sektorze 32 i przechodzi do 249854. Jest to partycja logiczna na dysku fizycznym.

124911+ podaje liczbę bloków od 32 do 249854.

O geometrii dysku oto, co man fdsiko niej mówi:

Jeśli to możliwe, fdisk automatycznie uzyska geometrię dysku. To niekoniecznie jest fizyczna geometria dysku (w rzeczywistości współczesne dyski nie mają tak naprawdę fizycznej geometrii, z pewnością nie jest to coś, co można opisać w uproszczonej formie Cylindry / Głowy / Sektory), ale to jest geometria dysku, którą MS-DOS używa dla tablicy partycji.

Zwykle wszystko idzie dobrze i nie ma problemów, jeśli Linux jest jedynym systemem na dysku. Jeśli jednak dysk musi być współużytkowany z innymi systemami operacyjnymi, często dobrym pomysłem jest zezwolenie, aby fdisk z innego systemu operacyjnego utworzył co najmniej jedną partycję. Po uruchomieniu Linux patrzy na tablicę partycji i próbuje wydedukować, jaka (fałszywa) geometria jest wymagana do dobrej współpracy z innymi systemami.

J Baron
źródło