GNU/Linux >> Znalost Linux >  >> Linux

Linux – po havárii Fs a spuštění Fsck byly některé soubory obnoveny, ale nebyly umístěny do ztracena a nalezeny?

Měl jsem I/O chybu na externím oddílu pevného disku sdb4 (jeho obvyklý přípojný bod je /run/media/yan/data).

Oddíl nereagoval, nebyl přístupný a odmítl se odpojit. Nevěděl jsem, co mám dělat, ale odpojit disk a znovu jej zapojit. Poté jsem měl chybu na jeho fs, takže jsem spustil fsck:

sudo e2fsck /dev/sdb4 -y -v

Chtělo to spoustu oprav (tisíce), ale protože data na tomto disku nejsou kritická, spustil jsem to s -y.

data contains a file system with errors, check forced.

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
# Fixed invalid inode numbers, incorrect filetypes, cleared links, deleted/unused inodes
Pass 3: Checking directory connectivity
# Connected unconnected directory inodes to /lost+found
Pass 4: Checking reference counts
#Fix inodes ref count, connected unattached inode to /lost+found
Pass 5: Checking group summary information
# Fix block bitmap differences, blocks count wrong for group
# Fix inode bitmap differences, directories count wrong for group, free inodes count wrong for group

data: ***** FILE SYSTEM WAS MODIFIED *****

       72955 inodes used (0.14%, out of 51200000)
        2390 non-contiguous files (3.3%)
          17 non-contiguous directories (0.0%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 72264/636/1
   186984621 blocks used (91.30%, out of 204800000)
           0 bad blocks
          34 large files

       70447 regular files
        2453 directories
           0 character device files
           0 block device files
           0 fifos
  4294966642 links
          46 symbolic links (46 fast symbolic links)
           0 sockets
------------
   71063 files

Takže jestli tomu dobře rozumím, fsck dokázal zachránit 70k souborů, takže většina souborů od té doby, co jsem měl na disku tak 75-80k souborů. Problém je v tom, že v „/run/media/yan/data/lost+found“ se objevuje pouze 20 000 souborů a na celém oddílu pouze 24 000.

[[email protected] ~]$ find /run/media/yan/data/lost+found | wc -l
19786
[[email protected] ~]$ find /run/media/yan/data | wc -l
23691

Znovu jsem spustil fsck, ale řekl mi, že oddíl je prázdný (a má 74k souborů?)

[[email protected] ~]$ sudo fsck /dev/sdb4
fsck from util-linux 2.28
e2fsck 1.42.13 (17-May-2015)
data: clean, 74200/51200000 files, 186685980/204800000 blocks[/cpp]

Také mám velmi odlišné využití disku podle df a du (vím, že by tam měl být rozdíl, ale tady se mi zdá příliš velký na to, aby to bylo normální):

[[email protected] ~]$ df -h /run/media/yan/data
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb4       769G  700G   31G  96% /run/media/yan/data

[[email protected] ~]$ du -sh /run/media/yan/data
586G    /run/media/yan/data

Hádám, že stále existují obnovená data, ke kterým nemám přístup.
Moje otázky jsou:

1) Je možné, aby obnovené soubory pomocí fsck nebyly umístěny do položky lost+found? V tom případě, kde jsou?

2) Existuje nějaký způsob, jak tyto chybějící soubory získat zpět?

3) Pokud ne, jak mohu uvolnit tento prostor?

EDIT:

Zkoušel jsem novější verzi e2fsck na doporučení sourcejedi:

[[email protected] build]$ sudo ./e2fsck/e2fsck -f /dev/sdb4
e2fsck 1.43.3 (04-Sep-2016)
Pass 1: Checking inodes, blocks, and sizes
Inode 40501578 extent tree (at level 2) could be narrower.  Fix<y>? yes

Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

data: ***** FILE SYSTEM WAS MODIFIED *****
data: 74200/51200000 files (3.2% non-contiguous), 186685964/204800000 blocks

Moc to neudělalo, lost+found má stále stejný počet a velikost souborů.

Související:Jak získat popisy dostupných možností `shopt`?

Přijatá odpověď:

Také jsem si všiml, že počet odkazů je velmi podezřelý (téměř 2^32).

můžete zkusit novější e2fsck a/nebo nahlásit chybu. to je určitě chyba.

skenování zařízení/oddílu pomocí photorec může obnovit více souborů, kde je formát podporován a jsou souvislé. protože váš FS je docela plný, mnoho souborů není souvislých. photorec neobnoví názvy souborů ani adresáře. (např. pokud jsou mp3, můžete použít něco jako picard použít názvy souborů z metadat mp3 alias ID3 tagů). poznámka photorec vyžaduje volné místo na jiném souborovém systému, aby bylo možné obnovit všechny soubory.


Linux
  1. Linux – proč používáme Su – a nejen Su?

  2. Účel složky Lost+found v Linuxu a Unixu?

  3. Linux Odstraňte soubory a adresáře

  1. Jak najít a odstranit soubory starší než určité časové období v Linuxu

  2. Skripty uživatelských dat neběží na mém vlastním AMI, ale fungují ve standardním Amazon linuxu

  3. Jak zjistit, které soubory a složky byly nedávno smazány v Linuxu?

  1. Jak archivovat a komprimovat soubory na Linuxu

  2. Odstraňování problémů se sítí Linux a ladění?

  3. Jak zkopíruji strom adresářů, ale ne soubory v Linuxu?