GNU/Linux >> Znalost Linux >  >> Linux

Jak najít offset souborového systému Ext4?

Mám vadný pevný disk, který není schopen zapisovat nebo číst první sektory disku. Pouze dává I/O chyby a to je vše. Na disku jsou další oblasti, které se zdají (většinou) v pořádku.
Snažím se připojit oddíl (ext4) a zjistit, zda mám přístup k některým souborům, které bych chtěl obnovit. Od mount příkaz podporuje offset možnost, měl bych být schopen připojit souborový systém, i když je tabulka oddílů nečitelná a nezapisovatelná. Problém je, jak najít offset. Zdá se, že žádný z nástrojů ext4 tuto konkrétní funkci nemá.

Přijatá odpověď:

Neexistuje žádný standardní offset sám o sobě, protože samozřejmě můžete spustit oddíl, kde chcete. Předpokládejme však na chvíli, že hledáte první oddíl a ten byl vytvořen víceméně s výchozím nastavením. Pak jsou dvě místa, kde ji můžete najít, za předpokladu, že jste používali tradiční tabulku oddílů DOS:

  1. Začíná na (512bajtovém) sektoru 63. To byla tradice po velmi dlouhou dobu a fungovalo to, dokud někdo nepřišel s 4K disky…
  2. Počínaje sektorem (512 bajtů) 2048. Jedná se o novou tradici pro 4K disky.
  3. Bonusová možnost! Sarting v sektoru 56. To se stane, když někdo přesune oddíl s 63 starty, aby se zarovnal se sektorem 4K.

Nyní, abyste mohli pokračovat, budete chtít vyzvednout svůj oblíbený hex-dump nástroj a dozvědět se něco o rozložení disku ext4. Konkrétně to začíná 1024 byty výplně, které ext4 ignoruje. Následuje superblok. Superblok poznáte tak, že zkontrolujete magické číslo 0xEF53 na offsetu 0x38 (od začátku superbloku nebo 0x438 od začátku oddílu nebo 1080 v desítkové soustavě.) Magické číslo je little-endian. Takže je to vlastně uloženo na disku jako 0x53EF.

Zde je to, jak to vypadá s xxd -a :

0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
*
0000400: 0040 5d00 0084 7401 33a0 1200 33db a600 [email protected]]...t.3...3...
0000410: 4963 5300 0000 0000 0200 0000 0200 0000 IcS.............
0000420: 0080 0000 0080 0000 0020 0000 6637 0952 ......... ..f7.R
0000430: 6637 0952 0200 1600 53ef 0100 0100 0000 f7.R....S.......
0000440: 9938 f851 004e ed00 0000 0000 0100 0000 .8.Q.N..........

Všimněte si, že když dáte offset pro připojení (nebo Lostup), musíte zadat offset tam, kde začíná výplň – ne superblok.

Související:Nemůžete najít oznámení YouTube o komentářích?

Nyní, pokud to není první oddíl nebo se nenachází na jednom ze dvou (tří) očekávaných míst, v podstatě musíte hledat magické číslo 0xEF53. To je to, co testdisk (doporučeno v komentáři) dělá pro vás.


Linux
  1. Jak vytvořit souborový systém na linuxovém oddílu nebo logickém svazku

  2. Jak zvětšit velikost souborového systému, aby odpovídal oddílu?

  3. Jak zjistit velikost inodu souborového systému ext2/ext3/ext4?

  1. Jak najít možnosti připojení aktuálně připojeného souborového systému

  2. Jak přenést výsledky 'najít' do mv v Linuxu

  3. Jak zjistím UUID souborového systému

  1. Jak zjistím maximální velikost zásobníku?

  2. Jak najít výchozího správce souborů?

  3. Jak zjistím, co zabírá veškerý prostor na mém / oddílu?