Preskočiť na hlavný obsah

Obnova vymazaných suborov

Mnohokrát som sa stretol s otázkou či je možné obnoviť vymazané súbory na disku, na USB kľúči či na pamäťovej karte. Moja odpoveď je vždy rovnaká: NIE!

Áno, ja viem klamať sa nemá ale je to lepšie pre obe strany. Ja sa s tým nemusím hrať a prehľadávať kadejaké staré USB disky a na druhej strane ľudia nie sú sklamaný keď sa mi to nepodarí.

Teraz keď vieme, že to ide tak si poďme ukázať jednoduchý spôsob ako sa to dá robiť. Počas ukážky si stiahnem logo softvéru TestDisk ktoré následne vymažem a pokúsim sa ho opäť obnoviť. Použijem na to softvér TestDisk.

user@pc:/media/user/USB $ wget http://www.cgsecurity.org/mw/images/Testdisklogo_clear_100.png
--2017-02-10 23:03:29--  http://www.cgsecurity.org/mw/images/Testdisklogo_clear_100.png
Prevádza sa www.cgsecurity.org (www.cgsecurity.org) na IP adresu... 193.168.50.236
Pripájanie k www.cgsecurity.org (www.cgsecurity.org)|193.168.50.236|:80... pripojené.
HTTP požiadavka odoslaná, čakám na odpoveď... 200 OK
Dĺžka:  1726 (1,7K) [image/png]
Ukladá sa do: „Testdisklogo_clear_100.png“
Testdisklogo_clear_100.png    100%[================================================>]   1,69K  --.-KB/s   za 0s      
2017-02-10 23:03:29 (4,31 MB/s) - „Testdisklogo_clear_100.png“ uložené [1726/1726] 
user@pc:/media/user/USB $ ll
celkom 4,0K
-rw-r--r-- 1 user group 1,7K júl  6  2009 Testdisklogo_clear_100.png
user@pc:/media/user/USB $ rm Testdisklogo_clear_100.png 
user@pc:/media/user/USB $ ll
celkom 0
user@pc:/media/user/USB $ 

V tejto chvíli sa na USB disku "nenachádza" žiaden súbor. Použijem preto softvér TestDisk aby som sa pokúsil o obnovenie tohto súboru.

user@pc:/media/user/USB $ testdisk

Zvolíme možnosť Create.

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

TestDisk is free data recovery software designed to help recover lost
partitions and/or make non-booting disks bootable again when these symptoms
are caused by faulty software, certain types of viruses or human error.
It can also be used to repair some filesystem errors.

Information gathered during TestDisk use can be recorded for later
review. If you choose to create the text file, testdisk.log , it
will contain TestDisk options, technical information and various
outputs; including any folder/file names TestDisk was used to find and
list onscreen.

Use arrow keys to select, then press Enter key:
>[ Create ] Create a new log file
 [ Append ] Append information to log file
 [ No Log ] Don't record anything

V tomto kroku vyberieme disk. V mojom prípade /dev/sdc

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

TestDisk is free software, and
comes with ABSOLUTELY NO WARRANTY.

Select a media (use Arrow keys, then press Enter):
 Disk /dev/sda - 1000 GB / 931 GiB - TOSHIBA MQ01ABD100
>Disk /dev/sdc - 7747 MB / 7388 MiB - Kingston DataTraveler 2.0

>[Proceed ]  [  Quit  ]

Note: Disk capacity must be correctly detected for a successful recovery.
If a disk listed above has incorrect size, check HD jumper settings, BIOS
detection, and install the latest OS patches and disk drivers.

Následne zvolíme druh partície. Pomôcka:v spodnej časti je nápoveda aká partícia bola detekovaná

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdc - 7747 MB / 7388 MiB - Kingston DataTraveler 2.0

Please select the partition table type, press Enter when done.
>[Intel  ] Intel/PC partition
 [EFI GPT] EFI GPT partition map (Mac i386, some x86_64...)
 [Humax  ] Humax partition table
 [Mac    ] Apple partition map
 [None   ] Non partitioned media
 [Sun    ] Sun Solaris partition
 [XBox   ] XBox partition
 [Return ] Return to disk selection

Hint: Intel partition table type has been detected.
Note: Do NOT select 'None' for media with only a single partition. It's very
rare for a drive to be 'Non-partitioned'.

Ďalej zvolíme možnosť Advanced.

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sdc - 7747 MB / 7388 MiB - Kingston DataTraveler 2.0
     CHS 1021 239 62 - sector size=512

 [ Analyse  ] Analyse current partition structure and search for lost partitions
>[ Advanced ] Filesystem Utils
 [ Geometry ] Change disk geometry
 [ Options  ] Modify options
 [ MBR Code ] Write TestDisk MBR code to first sector
 [ Delete   ] Delete all data in the partition table
 [ Quit     ] Return to disk selection

Note: Correct disk geometry is required for a successful recovery. 'Analyse'
process may give some warnings if it thinks the logical geometry is mismatched.

Následne sa nám zobrazí jednoduchý prehliadač súborov a pomocou neho sa presunieme na požadované miesto kde by sa mal náš súbor nachádzať. Ak sa softvéru podarilo nájsť nejaké časti súboru či súborov tak sa nám zobrazia červene. Následne už len vyberieme súbor (_ESTDI~1.PNG) ktorý chceme obnoviť stlačíme klávesu c a vyberieme kam ho chceme obnoviť a opäť stlačíme klávesu c. Potom už len klávesou q ukončíme program a súbor by mal byt obnovený.

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
 1 P FAT32                    0  33  3  1021  23 20   15128576 [KINGSTON]
Directory /

 -rwxr-xr-x     0     0         0 10-Feb-2017 22:07 testdisk.log
>-rwxr-xr-x     0     0      1726 10-Feb-2017 21:03 _ESTDI~1.PNG

                                                   Next
Use Right to change directory, h to hide deleted files
    q to quit, : to select the current file, a to select all files
    C to copy the selected files, c to copy the current file

Permanentné vymazanie

Ak vymažem súbor bežným spôsobom tak je veľká šanca, že sa ho môže podariť obnoviť. Avšak ak chcem vymazať súbor natrvalo tak čo by som mal spraviť. Nedávno som našiel veľmi fajn nástroj ktorým sa dá súbor natrvalo vymazať. Tento príkaz sa volá shred. Použitie je jednoduché shred [názov súboru]. Toto volanie 25 krát prepíše súbor náhodnými dátami a tak už nie je možné zistiť čo sa pôvodne v súbore nachádzalo. Ja zvyknem doplniť volanie ešte o parameter -u ktorý zabezpečí, že po prepísaní súboru bude súbor aj vymazaný.

user@pc:~ $ shred -u file

Komentáre

Obľúbené príspevky z tohto blogu

Ako previesť .mp3 súbor do .wav v Linuxe

Počas Vianočných sviatkov som skúmal ako previesť pesničky ktoré mám v počítači vo formáte MP3 do formátu audio CD ktorý by bez problémov načítala aj moja postaršia veža. Samozrejme našiel som veľa spôsobov avšak asi najjednoduchším bol veľmi jednoduchý shell skript. Inštalácia je veľmi jednoduchá: # Ubuntu sudo apt-get install mpg123 # Fedora yum install mpg123 Používať tento shell skript sa dá dvoma spôsobmi. Buď budete prevádzať každý MP3 súbor samostatne pomocou tohto príkazu: mpg123 -w vystup.wav vstup.mp3 Alebo využijete jednoduchú funkciu ktorú vložíte do súboru .bashrc v vašom koreňovom adresári. mp3towav(){      [[ $# -eq 0 ]] && { echo "mp3wav mp3file"; exit 1; }      for i in "$@"      do           # create .wav file name           local out="${i%/*}.wav"           [[ -f "$i" ]] && { echo -n "Processing ${i}..."; mpg123 -w           "${out}" "$i" &>/dev/null && echo "don

Ako zálohovať všetky Postgre databázy naraz

Už dlhšiu dobu som si lámal hlavu ako zálohovať všetky PostgreSQL databázy v jednom kroku tak aby som to nemusel robiť po jednej. Na internete som našiel jedného chlapíka ktorý práve o tomto blogoval a ukázal tam aj riešenie. Riešením tohto problému je jednoduchý shell skript ktorý zavolá root databázy (zväčša postgres). A tento skript vytvorí z každej databázy súbor s príponou .backup. Shell skript ktorý som spomínal v mojom prípade nazvaný pg-backup-all-db.sh. #!/bin/sh # Posrgres executables CMD_PSQL=/usr/bin/psql CMD_DUMP=/usr/bin/pg_dump # prefix for backup filenames NAME_PREFIX=`date +%F` # directory where to save the database backup NAME_BACKUP_DIR=/srv/www/pgbackup/data # age of the older file to keep (in days) NB_DAYS_TO_KEEP=7 # Start backuping Databases=`$CMD_PSQL -tq -d template1 -c "select datname from pg_database"` echo "Starting backup of all databases..." for current_db in `echo $Databases`  do   if [ "$current_db" != "template0&qu