SuSE Linux: Minden verzió
Kernel: Verziók a következő dátum óta: 2.0
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.
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.
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/savedMost 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.