This is explained in english here
Jeg skulle laste ned og slette noen bilder fra et digitalkamera (vha digikam), og så må jeg enten ha klart å trykke på merk alle eller slett alle i stedet for slett valgte… Plutselig var det skremmende god plass på minnebrikken, for å gjøre det hele helt vellykket var de bildene som var slettet uten å være lastet ned noen bilder som Hanne hadde tatt ifm jobben… Så nære skilsmisse har vi knapt vært noen gang…
Det var ikke lettest å finne noe for undeleting i linux, om enn det jo burde være enkelt (siden filsletting i fat i første omgang bare er å endre navnet for å vise at plassen er ledig) men til slutt kom jeg over fsck.vfat:
carex:/home/morten# fsck.vfat -r -y -u /dcim/100_fuji/dscf2389.jpg /dev/sda1 dosfsck 2.11, 12 Mar 2005, FAT32, LFN Undeleting DSCF2389.JPG Performing changes. /dev/sda1: 69 files, 3343/15994 clusters
Jeg begynte med siste slettede fil og arbeidet meg bakover til den til slutt ikke ville gi meg noe… En farlig ting var imidlertid da jeg kom til å grave opp igjen samme fil to ganger. Da ble filen trunkert til 0 bytes, men lettelsen var stor da jeg fant igjen filen i roten på kortet:
[morten@carex ~]$ ls -l /mnt/cam/fsck000* -rwxr-xr-x 1 morten morten 868352 1979-12-31 23:00 /mnt/cam/fsck0000.rec -rwxr-xr-x 1 morten morten 868352 1979-12-31 23:00 /mnt/cam/fsck0001.rec -rwxr-xr-x 1 morten morten 851968 1979-12-31 23:00 /mnt/cam/fsck0002.rec
Tre små mver senere og alt var i orden….
Imidlertid. jeg prøvde jo å scripte dette, men det fungerte overhodet ikke:
carex:/home/morten# for i in 9 8 7 6 5 4 3 2 1 0; do >fsck.vfat -y -r -u /mnt/cam/dcim/100_fuji/dscf242$i.jpg /dev/sda1 >done dosfsck 2.11, 12 Mar 2005, FAT32, LFN Warning: did not undelete file DSCF2429.JPG /dev/sda1: 27 files, 1303/15994 clusters dosfsck 2.11, 12 Mar 2005, FAT32, LFN Warning: did not undelete file DSCF2428.JPG /dev/sda1: 27 files, 1303/15994 clusters
Noen som kan forklare dette? Nøyaktig samme kommando fungerte da jeg skrev den rett inn i et shell.
Åja, forresten, må selvfølgelig være root for å få lov til dette…