GNU/Linux >> Znalost Linux >  >> Linux

Superblock, Inode, Dentry a soubor?

Z článku Anatomie linuxového souborového systému od M. Tima Jonese jsem se dočetl, že Linux nahlíží na všechny souborové systémy z perspektivy společné sady objektů a tyto objekty jsou superblok , inode , dentry a soubor . I když zbytek odstavce vysvětluje výše uvedené, toto vysvětlení mi nebylo příliš příjemné.

Mohl by mi někdo vysvětlit tyto pojmy?

Přijatá odpověď:

V první řadě, a uvědomuji si, že to nebyl jeden z výrazů z vaší otázky, musíte rozumět metadatům . Stručně a ukradené z Wikipedie, metadata jsou data o datech. To znamená, že metadata obsahují informace o části dat. Pokud například vlastním auto, mám soubor informací o autě, které ale nejsou součástí samotného auta. Informace, jako je registrační číslo, značka, model, rok výroby, informace o pojištění atd. Všechny tyto informace jsou souhrnně označovány jako metadata. V systémech souborů Linux a UNIX existují metadata na několika úrovních organizace, jak uvidíte.

superblok je v podstatě metadata systému souborů a definuje typ systému souborů, velikost, stav a informace o dalších strukturách metadat (metadata metadat). Superblok je pro souborový systém velmi důležitý, a proto je uložen ve více redundantních kopiích pro každý souborový systém. Superblok je struktura metadat velmi „vysoké úrovně“ pro systém souborů. Pokud se například poškodí superblok oddílu /var, pak daný souborový systém (/var) nemůže být připojen operačním systémem. Obvykle v této události musíte spustit fsck který automaticky vybere alternativní záložní kopii superbloku a pokusí se obnovit systém souborů. Samotné záložní kopie jsou uloženy ve skupinách bloků rozmístěných v systému souborů, přičemž první je uložena s posunem o 1 blok od začátku oddílu. To je důležité v případě, že je nutné ruční obnovení. Informace o zálohách superbloku ext2/ext3/ext4 můžete zobrazit příkazem dumpe2fs /dev/foo | grep -i superblock což je užitečné v případě ručního pokusu o obnovení. Předpokládejme, že příkaz dumpe2fs vypíše řádek Backup superblock at 163840, Group descriptors at 163841-163841 . Tyto informace a další znalosti o struktuře systému souborů můžeme použít k pokusu o použití této zálohy superbloku:/sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo . Vezměte prosím na vědomí, že jsem v tomto příkladu předpokládal velikost bloku 1024 bajtů.

inode existuje v systému souborů nebo na něm a představuje metadata o souboru. Pro upřesnění, všechny objekty v systému Linux nebo UNIX jsou soubory; skutečné soubory, adresáře, zařízení a tak dále. Vezměte prosím na vědomí, že mezi metadaty obsaženými v inodu není žádný název souboru, jak si jej lidé představují, to bude důležité později. Inode obsahuje v podstatě informace o vlastnictví (uživatel, skupina), režimu přístupu (oprávnění ke čtení, zápisu, spouštění), typu souboru a datových blocích s obsahem souboru.

Související:Jak upravit výstup -f pomocí barev pouze pomocí Awk a zobrazit zbytek výstupu?

dentry je lepidlo, které drží inody a soubory pohromadě spojením čísel inodů s názvy souborů. Dentries také hrají roli při ukládání do mezipaměti adresářů, které v ideálním případě udržuje nejčastěji používané soubory po ruce pro rychlejší přístup. Procházení souborovým systémem je dalším aspektem dentry, protože udržuje vztah mezi adresáři a jejich soubory.

soubor , kromě toho, že je to, co si lidé obvykle představí, když se jim toto slovo představí, je ve skutečnosti jen blokem logicky souvisejících libovolných dat. Poměrně velmi nudné, vezmeme-li v úvahu veškerou práci (výše), abyste je mohli sledovat.

Plně si uvědomuji, že pár vět neposkytuje úplné vysvětlení žádného z těchto pojmů, takže se prosím neváhejte zeptat na další podrobnosti, kdykoli a kdekoli to bude nutné.


Linux
  1. Jak vytvořit a připojit souborový systém Btrfs (vysvětleno na příkladech)

  2. Co jsou měkké a pevné odkazy v systému souborů Linux

  3. Jak vytvořit a připojit souborové systémy v Linuxu

  1. Jak připojit a odpojit souborový systém v Linuxu

  2. Jak vytvořit a dotazovat souborový systém BTRFS

  3. Vytvořte izolaci prostředí a rozdíl v systému souborů

  1. Jak zvýšit počet diskových inodů v Linuxu

  2. Co je číslo inodu v Linuxu?

  3. Rozdíl mezi distribuovaným a klastrovým souborovým systémem?