Portál AbcLinuxu, 13. května 2025 16:15

Dotaz: Po pádu velikost souboru 0 bytů (ext4)

15.8.2009 21:23 Blaazen
Po pádu velikost souboru 0 bytů (ext4)
Přečteno: 286×
Odpovědět | Admin
Známý bug ext4 filesystému. Je to (nebo spíš byl) zdrojový kód, ten soubor se přepisuje při každé kompilaci - docela často, tak si myslím, že data tam fyzicky budou, alespoň první alokovaný blok by se snad dal zachránit (tuším, že ext4 má default 4kB). Existuje tedy nějaká utilita nebo příkaz (něco jako "touch", akorát pro velikost souboru)? Prostě bych změnil velikost toho souboru z 0 na něco a třeba v Kate bych se podíval, co tam je. Díky za každou pomoc. P.S.: Tohle je patchované snad už v jádře ...30, které jsem zkoušel, ale měl jsem s ním problémy, tak jsem zůstal u ...28.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 15.8.2009 21:34 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Odpovědět | | Sbalit | Link | Blokovat | Admin
v novejch coreutils je truncate, utilita s popisem
Shrink or extend the size of each FILE to the specified size
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.8.2009 22:41 Blaazen
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
TRUNCATE nepomohlo, on tu zvětšenou část vyplní nulama. No nevadí, mám zálohu dva dny zpět a zas tak moc jsem na tom souboru nepracoval, tak to přežiju. To víte, KDE4, ext4, ATI ovladač, u mě to se stabilitou není nejslavnější :-).
16.8.2009 10:57 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Odpovědět | | Sbalit | Link | Blokovat | Admin
To je dost blbost. I pokud nastavíte velikost souboru na co chcete, tak se automaticky nestane to, že bude mít alokované původní místo na disku.
In Ada the typical infinite loop would normally be terminated by detonation.
16.8.2009 15:56 Blaazen
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Myslím, že ne. Pokud má původní soubor velikost větší než je velikost bloku a po pádu je z něj 0B, tak tam teoreticky první blok musí být. Neříkejete mi, že pokud přepisujete pořád ten stejný soubor, a má +- pořád stejnou velikost, tak že ho linux pokaždé ukládá jinam. Jaký by to mělo důvod. Že se následující bloky (druhý, třetí atd.) přepíšou nějakými novými daty, se stát může. Ale i tak je tam určitá pravděpodobnost, že tam zůstanou, protože mám každou přípojnou jednotku extra formátovanou a tyto data jsou v /home, kam si systém sám od sebe nic nezapisuje. Ale stejně nic nepomohlo, svůj zdrojáček jsem už oplakal a ext4 proklel :-).
16.8.2009 17:18 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Pokud má původní soubor velikost větší než je velikost bloku a po pádu je z něj 0B, tak tam teoreticky první blok musí být.
První blok tam je ale v něm nejsou data, jen metadata. Struktura souboru na FS vypadá takto:
{[info o souboru]}-->{[data]}
     inode blok        extent .... 
A stalo se vám to že se vynuloval inode, tj. soubor má 0B a žádné alokované extenty s daty.
Neříkejete mi, že pokud přepisujete pořád ten stejný soubor, a má +- pořád stejnou velikost, tak že ho linux pokaždé ukládá jinam.
Pokud přepisujete soubor s daty, tak přepisujete ty alokované extenty. To ale se současnou situací vůbec nesouvisí.
Ale i tak je tam určitá pravděpodobnost, že tam zůstanou, protože mám každou přípojnou jednotku extra formátovanou a tyto data jsou v /home, kam si systém sám od sebe nic nezapisuje.
Data na disku samozřejmě zůstala, ale nevede k nim žádná cesta z inode bloku a tudíž ani z žádného pojmenovaného souboru. Pro potřeby FS je ta oblast disku nevyužitá. Pokud je chcete získat zpět, musíte použít dd a nějaký forenzní nástroj např. foremost.

In Ada the typical infinite loop would normally be terminated by detonation.
16.8.2009 17:26 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Pokud přepisujete soubor s daty, tak přepisujete ty alokované extenty. To ale se současnou situací vůbec nesouvisí.
Neplatí to náhodou len pri určitom nastavení (prípadne pri nepoužívaní) žurnálovania (a len pri niektorých FS)?
16.8.2009 21:28 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Po pádu velikost souboru 0 bytů (ext4)
Nechápu, jak by s tím žurnálování mohlo souviset.
In Ada the typical infinite loop would normally be terminated by detonation.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.