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:
- Rozmiar bloku sprzętowego, „rozmiar sektora”
- Rozmiar bloku systemu plików, „rozmiar bloku”
- Rozmiar bloku bufora bufora jądra, „rozmiar bloku”
- 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_blksize
buforze 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
du
bez opcji -h lub -H, zwróci liczbę bloków, które zajmuje plik. df
będzie również raportować rozmiary w tych blokach, kolumna „Bloki” na fdisk -l
wyjś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.
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