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

Príklad paralelného výpočtu v Jave s využitím Fork/Join frameworku

JDK 7 prišlo s novou možnosťou paralelného programovania. Java bola rozšírené o balíček java.util.concurrent v ktorom sa nachádzajú nové triedy ktoré umožňujú jednoduchšie paralelné programovanie nad viac ako jedným (jednovláknovým) jadrom procesora. Hlavné triedy frameworku Fork/Join ktorý uľahčuje paralelné programovanie sú: ForkJoinTask<V> – abstraktná trieda definujúca úlohu ForkJoinPool – trieda riadiaca vykonávanie úloh typu ForkJoinTask<V> RecursiveAction – podtrieda triedy ForkJoinTask<V> určená pre úlohy nevracajúce hodnoty RecursiveTask<V> – podtrieda triedy ForkJoinTask<V> určená pre úlohy vracajúce hodnoty Príklad V príklade bude zotrieďované pole celých čísel troma triediacimi algoritmami (Bubble sort, Selection sort a Insertion sort) so zložitosťou O(n 2 ) . Na lepšiu ukážku budú použité len 2 jadrá procesora čím dosiahneme, že jedna z úloh bude musieť čakať na dokončenie inej. Trieda Main.java : import java.util.ArrayList;

XSLT transformacia v Jave

XSLT ( Extensible Stylesheet Language Transformations ) je jazyk určený na transformovanie XML dokumentov na iné XML dokumenty, alebo iné formáty ako napríklad HTML pre web, obyčajný text alebo do XSL Formatting Objects, ktoré môžu byť zkonvertované do iných formátov, ako napríklad PDF, PostScript, RTF či PNG. Originálny dokument nie je zmenený, namiesto toho sa vytvorí nový dokument na základe už existujúceho. Vstupné dokumenty sú zväčša typu XML, ale môže byt použité čokoľvek, z čoho procesor dokáže zostaviť XQuery a XPath Data Model. [1] V jednoduchom príklade ukazujem XSLT transformaciu pomocou programovacieho jazyka Java. Súbor: library.xml <?xml version="1.0" encoding="utf-8" ?> <library> <book> <id>1</id> <name>Java 7</name> </book> <book> <id>2</id> <name>Java 8</name> </book> </library> Súbor: library_stylesheet

Java - Súčet Listu s objektami BigDecimal

Pri používaní typu BigDecimal som narazil na zaujímavú úlohu a to sčítanie všetkých hodnôt v Liste. Majmä nasledovne definovaný list: List < BigDecimal > listOfBigDecimals = new LinkedList (); 1. spôsob je klasicke preiterovanie celého listu: BigDecimal sum = BigDecimal . ZERO ; for ( BigDecimal number : listOfBigDecimals ) { sum = sum . add ( number ); } 2. spôsobom je využitie stream.reduce() : BigDecimal sum = listOfBigDecimals . stream () . reduce ( BigDecimal . ZERO , BigDecimal :: add ); BONUS: spôsob s použitím reduce() v Kotline : val sum : BigDecimal = listOfBigDecimal . reduce { a , n -> a . add ( n ) }