Fájlok: hogyan állíthatók vissza a véletlenül törölt fájlok ext2 fájlrendszer esetén

Terméktámogatási adatbázis (cg_rmfiles)
Következőkre vonatkozik

SuSE Linux: Minden verzió
Kernel: Verziók a következő dátum óta: 2.0

Szituáció

Szerencsétlen módon törölt egy vagy több fájlt a Linux ext2 fájlrendszerből. Nincsen semmilyen biztonsági másolata, és szeretné visszaállítani a fájlok tartalmát.

Háttér

Más operációs rendszerekhez hasonlóan a fájlok törlése a Linux ext2 fájlrendszerben úgy történik, hogy a mappafájlból a rá vonatkozó bejegyzések törlődnek. A törlés után a fájl helye felszabadul, és felülírható, viszont amíg nem kerül újabb adat a helyre, az továbbra is olvasható. A felszabadult adatblokkok csak akkor íródnak felül, amikor újabb fájlok jönnek létre.

Ezen felül a törlés után az ún. inode is létezik még, amely a blokkok logikai láncolatát tartalmazza a hozzáférési jogokkal együtt. Itt a törlés ideje is megtalálható. Tulajdonképpen a fájlnév az egyetlen dolog, amely ténylegesen elveszik a törlés pillanatában.

Hogy 'biztonságos' törlést hajthasson végre, amikor kiadja a törlés parancsot, használhatja a chattr parancs megfelelő kapcsolóját. Ekkor a törölt fájlokat a rendszermag teljesen felülírója nulla értékkel. Ezután még mindig lehetséges a törölt adatok visszaállítása, de csak speciális eszközökkel, viszont a lentebb ismertetett módon nem.

Figyelem: am debugfs parancs, amelyet lentebb ismertetünk, rendszerszinten fér hozzá a fájlrendszerhez. Éppen ezért veszélyes lehet a megmaradt adatok számára a kisérletezés a 'help'-ben leírt parancsokkal, ha nem ismeri mélyebben az ext2 fájlrendszert. Éppen ezért ajánljuk, hogy hozzon létre egy teszt partíciót kisérleti és tanulási célokra.

Eljárás

Soha NE futtasson írási jogosultsággal programot olyan fájlrendszeren, amelyet éppen karbantart. Adott esetben az új fájlok létrehozása a visszaállítani kívánt adatok végét jelenti. Ha a '/' partíciót használja, állítsa le a gépet és indítsa újra egy biztonsági rendszerrel. A karbantartott partíciókat az umount paranccsal csatolja le. A mount és umount parancsok használatával kapcsolatban olvassa el az Alapok kézikönyv ide vonatkozó fejezetét.

Tételezzük fel, hogy sikeresen törölte a következő fájlokat, és szeretné visszaállítani azokat.

earth:/mnt/attempt # ls -la  protocole_2009.txt
-rw-r--r--   1 cg       suse         1050 Dec 29 13:31 protocole_2009.txt
earth:/mnt/attempt # rm protocole_2009.txt

Először is csatolja le a partíciót.

earth:~# umount /mnt

A fenti példának megfelelően a partíció /dev/sdc1, amely a /mnt csatolási ponton volt. A példákban az 'eszköznév' részt kell kicserélnie a rendszerének megfelelően. Adja ki a debugfs eszköznév parancsot a fájlrendszer nyomkövetőjének elindításához. Miután elindult, bejelentkezik egy prompt kiséretében (debugfs: ). Itt megadhatja a fájlrendszer direkt eléréséhez szükséges adatokat.

earth:/# debugfs /dev/sdc1
debugfs 1.17, 26-Oct-1999 for EXT2 FS 0.5b, 95/08/09
debugfs: lsdel
1 deleted inodes found.
 Inode  Owner  Mode    Size    Blocks    Time deleted
 25794    515 100644   1050    2/   2 Wed Dec 29 13:32:32 1999

Az lsdel parancs megjeleníti a törölt inode-ok listáját. Ha több fájlt törölt, de csak egyetlen egyet szeretne visszaállítani, a fájl jogosultsági mód, tulajdoonos (itt egy numerikus azonosító szám), a törlés ideje, és a fájlméret teszi könnyebbé a visszaállítani kívánt fájl azonosítását. A 25794-es inode szám a fenti példa szerint fontos lehet az alább ismertetett dump parancsnál.

A következő parancs lehetővé teszi a törölt fájlok visszaállítását új fájlként a /tmp könyvtárban, azonos jogokka. Ne felejtse el megadni a < és > jeleket!

debugfs:  dump -p <25794> /tmp/saved
debugfs:  quit
earth:/# ls -l /tmp/saved
-rw-r--r--   1 cg       suse         1050 Dec 29 13:31 /tmp/saved
Most már újból csatolhatja a fájlrendszert és előhozhatja a fájlokat a /tmp könyvtárból.

Léteznek más módszerek ezen fájlok visszaállítására, de ennek előnye, hogy nem szükséges írási jog a debugfs-ben és nem zavarja meg a fájlrendszer ellenőrzését a fájlok visszaállítása.


Kulcsszavak: FILE SYSTEM, DELETED, UNDELETE, DELETE, DELETION, EXT2, TÖRLéS, JAJJ, TÖRÖLT FáJLOK, FáJL, VISSZAáLLíTáS

Kategóriák:

SDB-cg_rmfiles, Copyright SuSE Linux AG, Nürnberg, Germany - Verzió: 18. Jun 2002
SuSE Linux AG - Utoljára frissítve: 02. Jul 2002 feladó: comp (sdb_gen 1.40.0)