Articles

Detailní Porozumění Linux Inody se Například

Linux a další Unix-jako Operační systémy udržovat konzistenci tím, brát všechno jako soubor (i hardwaru zařízení). Klávesnice, myš, tiskárny, monitor, pevný disk, procesy, dokonce i adresáře jsou považovány za soubory v Linuxu. Běžné soubory obsahují data, jako je text (textové soubory), hudba, videa (multimediální soubory) atd.

kromě běžných dat existují i další údaje o těchto souborech, jako je jejich velikost, vlastnictví, oprávnění, časové razítko atd. Tato metadata o souboru jsou spravována s datovou strukturou známou jako inode (indexový uzel).

co je inode v Linuxu?

Linux Každý soubor nebo adresář (z technického hlediska, není tam žádný skutečný rozdíl mezi nimi) má inode, a to inode obsahuje všechny souboru metadat (tj. všechny administrativní údaje potřebné k číst soubor je uložen v jeho inode).

například, inoda obsahuje seznam všech bloků, ve které je soubor uložen, informace o vlastníkovi souboru, oprávnění a všechny ostatní atributy, které jsou nastaveny pro soubor.

limity Inode je na souborový systém a je rozhodnuto v době vytvoření souborového systému. Maximální velikost adresáře závisí na souborovém systému a tím i přesný limit se liší.

pro lepší výkon zmenšete adresáře tříděním souborů do podadresářů, spíše s jedním velkým adresářem.

co je číslo inodu?

Inode číslo je také známé jako indexové číslo. Inode je jedinečné číslo přiřazené souborům a adresářům, zatímco je vytvořeno. Číslo inodu bude jedinečné pro celý souborový systém.

inode je datová struktura v tradičním unixovém souborovém systému, jako je ext3 nebo ext4. ukládání vlastností souboru a adresářů.

Linux rozšířené souborové systémy jako ext3 nebo ext4 udržovat pole tyto inody nazývá inode tabulky. Tato tabulka obsahuje seznam všech souborů v tomto souborovém systému. Jednotlivé inody v tabulce inode mají jedinečné číslo (jedinečné pro tento souborový systém) zvané inode number.

v inodu jsou uloženy následující informace:

  • typ souboru: běžný soubor, adresář, potrubí atd.
  • oprávnění k tomuto souboru: čtení, zápis, provedení
  • Link count: počet těžce relativní odkaz na inode
  • ID Uživatele: vlastník souboru
  • Skupina ID: vlastník skupiny
  • Velikost souboru: nebo major/minor číslo v případě, že některé speciální soubory
  • Časové razítko: čas přístupu, čas modifikace a (inode) změna času
  • Atributy: neměnný pro příklad
  • seznam řízení Přístupu: oprávnění pro speciální uživatele/skupiny
  • Odkaz na umístění souboru
  • Další metadata o souboru

Všimněte si, že inoda neobsahuje jméno souboru, ale jeho obsah.

Schéma inode datová struktura

Jak zkontrolovat inode v Linuxu

Pokud se chcete podívat na inody, na nějaké ext file system můžete použít níže uvedené příkazy podívejte se na vlastnosti systému souborů a souborů, které jsou v něm použity.

a. zobrazit informace o souborech

data inode v souboru nebo adresáři můžete zobrazit pomocí příkazu stat.

je třeba uvést následující název souboru:

výstup stat vám řekne různá časová razítka souboru, jeho vlastnictví a oprávnění a kde je uložen. Data souboru jsou uchovávána v bloku disku, který je zobrazen na výstupu příkazu stat inode.

můžete Si vybrat, do seznamu pouze inode číslo souboru pomocí --format možnost jak je uvedeno níže:

# stat --format=%i hello530461

b. Print index počet souborů

příkazu ls se používá k zobrazení seznamu souborů a adresářů informace. Volba -i s ls zobrazuje číslo inodu každého souboru. Můžeme ji kombinovat s -l možnost vypsat informace v detailu

# ls -iltotal 140984520170 dr-xrw-rw- 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1263206 -rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz519187 drwxr----- 2 root root 4096 Apr 13 01:35-rwSr--r-- 1 root root 5747 Apr 25 01:45 bootstrap655799 drwxr-xr-x 2 root root 4096 May 16 17:46 course528927 drwxr-xr-x 3 root root 4096 Apr 29 00:29 environments

první sloupec obsahuje inode číslo. Můžete zobrazit konkrétní soubor je inode, jak je uvedeno níže:

# ls -i continue.sh 519450 continue.sh

c. Zobrazení souborového systému inode prostor informace

ve výchozím nastavení, příkaz df shrnuje dostupné a použité místo na disku. Můžete místo toho obdržet zprávu o dostupné a používané inody předáním -i nebo --inodes možnost.

tyto informace mohou být užitečné, pokud má oddíl velmi mnoho malých souborů, které mohou vyčerpat dostupné inody dříve, než vyčerpají dostupné místo na disku.

d. Seznam obsah superbloku souborového systému

můžete použít tune2fs -l příkaz zobrazí všechny informace týkající se inode.

# tune2fs -l /dev/sda6 | grep inodeFilesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isizeFree inodes: 2224350First inode: 11Journal inode: 8First orphan inode: 1575905Journal backup: inode blocks

e. Manipulovat souborový systém meta data

můžete vidět obsah inode, jak to existuje na Ext4 souborový systém debugfs příkaz. Musíte použít příkaz stat, který je k dispozici v souboru system debugger ukázat obsah inode. Po dokončení použijte exit k zavření prostředí debugfs.

ujistěte se, že soubory v systému souborů nelze přistupovat při práci v debugfs. Měli byste zvážit opětovné montáži systému souborů pomocí mount -o remount /yourfilesystem

můžete použít debugfs obnovit soubor pomocí jeho inode a označující soubor,

Inode struktury pro adresář

Jak je uvedeno výše, adresářů v Linuxu jsou také zacházet jako se soubory. Adresář je speciální soubor, který mapuje název souboru na jeho číslo inode (toto mapování se nazývá directory entry nebo denty). Takže když říkáme, že adresář obsahuje soubory a další adresáře, máme na mysli, že tento adresář je mapování těchto souborů a adresářů (adresáře jsou speciální soubory, tak oni také potřebují mapování jejich čísla inode), aby jejich čísla inode.

to je důvod, proč adresář nemůže obsahovat dva soubory se stejným názvem, protože nemůže mapovat jedno jméno se dvěma různými čísly inode.

# ls -ld test/drwxr-xr-x 3 root root 4096 Apr 13 01:43 test/

soubor je namapován na jeho inode tím, že jeho nadřazený adresář, tak jak je top nejvíce firem (tj. / directory) mapována na jeho inode? Číslo inodu adresáře / je pevné a je vždy 2.

odkazy a indexové číslo v Linuxu

ve výstupu ls -l je sloupec následující po oprávnění a před vlastníkem počet odkazů. Počet odkazů je počet pevných odkazů na soubor. Abychom porozuměli pevným odkazům, začneme odkazy. Odkaz je ukazatel na jiný soubor.

V Linux světě, dva typy vazeb existují:

. Symbolické odkazy (nebo měkké odkazy)

symbolický odkaz je samostatný soubor, jehož obsah přejděte na odkazované souboru. Chcete-li vytvořit symbolický odkaz, použijte příkaz ln s volbou -s. Při použití příkazu ln SE ujistěte, že nejprve odkazujete na název původního souboru a poté na název odkazu, který chcete vytvořit.

# ln -s /home/bobbin/sync.sh filesync

zde ‚filesync‘ je symbolický odkaz na ‚sync.sh“. Přemýšlejte o tom jako o zkratce. Editace ‚filesync‘ je jako přímo upravit původní soubor, ale je to opravdu to, co se stalo. Pokud odstraníme nebo přesuneme původní soubor, odkaz bude přerušen a náš soubor „filesync“ nebude již k dispozici.

příkaz ls -l ukazuje, že výsledný soubor je symbolický odkaz. To je označeno písmenem l v první poloze výstupu ls -l a také šipkou na konci výpisu, která označuje soubor, na který název odkazuje.

# ls -l filesync lrwxrwxrwx 1 root root 20 Apr 7 06:08 filesync -> /home/bobbin/sync.sh

obsah symbolického odkazu je pouze název cílového souboru. Vidíte, že oprávnění na symbolickém odkazu jsou zcela otevřená. Je to proto, že oprávnění nejsou spravována

při porovnání symbolického odkazu a původního souboru si všimnete jasného rozdílu mezi nimi.

původní soubor je pouze název, který je připojen přímo k inodu, a symbolický odkaz odkazuje na název. Velikost symbolického odkazu je počet bajtů v názvu souboru, na který odkazuje, protože v symbolickém odkazu nejsou k dispozici žádné další informace.

b. Pevné odkazy

získat představu o tom, co se pevný odkaz je, je důležité pochopit, že identita je soubor jeho inode číslo, ne jeho jméno. Pevný odkaz je název, který odkazuje na inode. To znamená, že pokud má ‚file1‘ pevný odkaz s názvem ‚file2‘, pak oba tyto soubory odkazují na stejný inode. Takže když vytvoříte pevný odkaz pro soubor, vše, co opravdu uděláte, je Přidat nový název do iodu.

Chcete-li to provést, použijte příkaz ln bez volby.

# ls -l /home/bobbin/sync.sh -rw-r----- 1 root root 5 Apr 7 06:09 /home/bobbin/sync.sh
# ln /home/bobbin/sync.sh synchro

Teď pojďme porovnat dva soubory

zajímavá věc o tvrdé odkazy je, že neexistuje žádný rozdíl mezi původní soubor a odkaz: jsou jen dvě jména připojen na stejný inode.

jak jste si museli všimnout, na rozdíl od měkkých odkazů nejsou pevné odkazy žádné speciální soubory. Počet odkazů je číslo, které byl soubor pevně spojen. Takže počet odkazů se zvyšuje po vytvoření pevného odkazu, jak vidíte na obrázku výše. Tyto pevné odkazy mají dvě omezení:

  • adresáře nelze pevně propojit. Linux to neumožňuje udržovat acyklickou stromovou strukturu adresářů.
  • pevný odkaz nelze vytvořit napříč souborovými systémy. Oba soubory musí být na stejných souborových systémech, protože různé souborové systémy mají různé nezávislé inode tabulky (dva soubory na různých souborových systémech, ale se stejným číslem inode se budou lišit).

Jak najít pevný odkaz v Linuxu

můžete získat všechny názvem, které poukazují na inode číslo. To znamená, že můžete načíst pevné odkazy, protože je to jediný typ odkazu, kde můžeme mít nějaké názvy souborů, které odkazují na stejný obsah (inode). Můžete to udělat pomocí -inum možnost najít příkaz jak je uvedeno níže.

# find / -inum 517333/home/bobbin/sync.sh/root/synchro

S tímto, můžete vědět, který z názvů souborů, přejděte na data, informace, takže, získat všechny těžké relativní odkaz na konkrétní inode číslo,

Linux operace se soubory a jejího vztahu s inody

Většina operací (jako je kopírování) provádí se na měkké vazby bude mít vliv na skutečné propojený soubor (s výjimkou rm nebo mv příkazy, které odstranit (nebo přesunout) měkké odkaz sám)

Zde jsou některé operace soubor, ve kterém inody hrát svou důležitou roli:

. kopírovat soubory

když zkopírujeme soubor, vytvoří se nový soubor s novým inodem.

# cp myfile ..
# ls -li myfile ../myfile2501 -rw------- 1 raghu raghu 36 Jun 25 20:12 myfile3746 -rw------- 1 raghu raghu 36 Jan 11 12:05 ../myfile

b. přesunout soubory

Když se pohybuje přes souborové systémy, mv příkaz pokračuje jako příkaz cp výše, s výjimkou, že původní soubor je odstraněn z jeho umístění. Při pohybu v souborovém systému se však inode nezmění, změní se pouze mapování adresáře inodu, skutečná data na pevném disku (obsah souboru) se nepohybují.

# ls -li samplefile.txt2497 -rw------- 1 raghu raghu 22 Jun 25 20:12 samplefile.txt

Teď se pojďme přesunout soubor a zkontrolujte výsledek.

# mv samplefile.txt ..
# ls -li ../samplefile.txt2497 -rw------- 1 raghu raghu 22 Jun 25 20:12 ../samplefile.txt

c. odstranit soubory

Když rm je vydán příkaz, nejprve zkontroluje počet odkazů na soubor. Pokud je počet odkazů větší než 1, odstraní tuto položku adresáře a sníží počet odkazů. Přesto jsou data přítomna, ani inode není ovlivněn. A když odkaz je počet 1, inode je odstraněn z inode tabulky inode číslo se stává volný, a datové bloky, že tento soubor byl okupační jsou přidány do volného bloku dat seznamu.

# ls -li myfile myfile.hardlink2501 -rw------- 2 raghu raghu 36 Jun 25 2012 myfile2501 -rw------- 2 raghu raghu 36 Jun 25 2012 myfile.hardlink

odstranit soubor a zkontrolujte výsledek.

# rm myfile.hardlink
# ls -li myfile2501 -rw------- 1 raghu raghu 36 Jun 25 2012 myfile

můžete vidět, že počet inode je snížená.

závěr

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *