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é.