Ext4magic-Manpage





Ext4magic: Inode - Directory - Journal - Install - Time_Options - Histogram - Scenarios - Tips&Tricks - Manpage - Expert-Mode





ext4magic(8)                 Administrations Tool                 ext4magic(8)



NAME
       ext4magic - allows to recover deleted files on ext3/4 filesystems

SYNOPSIS
       ext4magic {-M|-m} [-j <journal_file>] [-d <target_dir>] <filesystem>

       ext4magic  [-S|-J|-H|-V|-T]  [-x]  [-j  <journal_file>]  [-B  n|-I n|-f
       <file_name>|-i <input_list>] [-t n|[[-a n][-b  n]]]  [-d  <target_dir>]
       [-R|-r|-L|-l] [-Q] <filesystem>                                        



DESCRIPTION
       The deletion of files in ext3/4 filesystems can not be easily reversed.
       Zero out of the block references in the Inodes makes  that  impossible.
       Experience  with  other  programs have proved, it is often possible, to
       restore sufficient information  for  a  recover  of  many  data  files,
       directly  from the filesystem Journal. ext4magic can extract the infor-
       mation from the Journal, and can  restore  files  in  entire  directory
       trees,  provided  that  the  information in the Journal are sufficient.                                                                               
       This tool can recover the most file types, can recover large and sparse                                                                               
       files, recovered files with orginal filename, with the orginal owner an                                                                               
       group, the orginal file mode bits, and also the old atime/mtime  stamp.                                                                               
                                                                                                                                                             
       The filesystem Journal has a very different purpose, and it will not be                                                                               
       possible to recover any file at any time. Many  factors  affects  which                                                                               
       data  and  how  long  the data store in the Journal. Read the ext4magic                                                                               
       documentation for more extensive information about the filesytem  Jour-                                                                               
       nal.                                                                                                                                                  
                                                                                                                                                             



OPTIONS
       Magic  Options:  (new  in version 0.2.0) These options are for a mulit-
       stage recover especially for file restore after a recursiv deletion  of
       parts  or  the  whole file system.  (third step currently available for
       ext3 by versions 0.2.x;  a  new  experimental  function  for  ext4  is
       included in version 0.3.0-pv0.)                                        

       Umount  the  file system directly after an accidentally destroy and use
       these options with the umount file system or with a copy of  this  file
       system.   The program automatically determines the correct time options
       if the deletion has only worked a short time (<  5  min)  .   For  very
       large deletions, you must use the " after time "                       

       In  the  first and second step files restored by copies of inodes.  The
       third step is trying to  restore  the  remaining  files  without  inode
       copies. This may take a long time                                      


       -M     Try  to  recover  all  files.  This option should be used if the
              entire Filessytem was deleted.                                  

       -m     Try to recover only all deleted files. Use this  option  with  a
              partially deleted Filesystem.                                   





       Information  Options: These options generate generic status information
       from the filesystem and the Journal.                                   


       -S     Print the filesystem superblock,  the  option.   -x  allows  the
              additional display of content of the group descriptor table.    

       -J     Print  the  content of the Journal superblock.  This option also
              can used to force loading the Journal. This has a  flow  control
              effect in ext4magic with some other options.                    

       -H     Output  a  histogram  of time stamps from all filesystem Inodes.
              Allows you to  determine  the  exact  time  of  changes  in  the
              filesystem.  In  connection with a directory name or a directory
              Inode, only the time stamps of this directory tree will be  dis-
              played. There are not evaluated any changes, only one per Inode.
              either the last change or the deletion time per Inode arrives to
              display. If present (ext4), it also create a histogram of create
              time stamps.                                                    

              The optional option -x allows additional a better resolution  of
              the time intervals.                                             


       -V     Print the version of ext4magic and libext2fs


       -T     Display the entire transaction list of all copies of data blocks
              in the Journal. In conjunction with the -B; -I and  -f  ,  only
              display  the  corresponding  data  blocks  for  this  data . The
              optional option -x allows a additional transmission time of  the
              transactions,  but only if the block is a Inode block. The print
              is in the same order as the data in journal. You can  make  con-
              clusions  from  the  data  received  in  the Journal.  After the
              import of backups or after change of timestamps  of  files,  the
              additional  transmission  time  will display not always the real
              transmission time.  If here absolutely incorrect  time  entries,
              then check if you using a journal of a read-write open file sys-
              tem.                                                            


       -x     controls optional the output format and the information  content
              of certain commands. Affects the following options: -S; -H; -T
             ; -B; -I; -f; -L; -l Detailed description see there.        



       Selection Options: These options specify the exact files,  directories,
       and  data  blocks.  One hand, they produce specific information, and on
       the other hand, be used to address the data  for  the  Action  Options.
       ext4magic will accept only one of these options at command.            

       -B n   n  is  the  data block number of a filesystem datablock. Without
              further options it print a "one-byte" hex+ASCII  dump  from  the
              data block on the filesystem, like the "hexdump -C" command. The
              optional option -x produced a "four byte" hex+ASCII output.     

              With the option -t n it print a  copy  of  the  filesystem  data
              block with this transaction number from the Journal.            

              # ext4magic /dir/filesytem.iso -B 97 -t 22

              print  a  hexdump  of  the copy from filesystem block number 97,
              which has been writing to the Journal with the transaction  num-
              ber 22. All copies of a particular data block in the Journal and
              the  associated  transaction  numbers  you  can  find  with  the
              optional Option -T                                              

              # ext4magic /dir/filesystem.iso -B 97  -T

              will  print a list with all copies of filesystem block number 97
              with the transaction numbers. If this  data  block  is  a  Inode
              block,  print  out  the  exact time for the transaction with the
              optional option -x                                              



       -I n   n is the Inode number. Without any other option, the  output  is
              the  content  of  the  real filesystem Inode. With a optional -x
              additional output of a list of all data blocks addressed by this
              Inode.  If Inode is a directory Inode, the content of the direc-
              tory entrys also printed.                                       


              Together with one of the following option -T; -J the output  is
              not  the  content from the real filesystem Inode. The content of
              all differend Inode copies found in the Journal are printed.    


              with the option -t n only the content of the Inode from transac-
              tion " n " are printed.                                         


              the option -I n can also be used in conjunction with the options
              -L; -l; -r or -R (show there)                                 




       -f <filename>
              the function is the same as -I n only  here  is  the  <filename>
              given  instead the Inode number. ext4magic search the filesystem
              to find the Inode number.  The filename can be a directory or  a
              filename  and  must be specified here from the root directory of
              this filesystem, and not from the root directory  of  the  LINUX
              system.                                                         

              An  example: the mount point for this filesystem is " /home " an
              the filename for Linux is " /home/usr1/Document "  you  can  use
              now                                                             
               # ext4magic /dev/sda3 -f usr1/Document                         

              The root directory of the filesystem you can use

              -f /
               or 

              -f ""
               for ext4magic this is the same.

              you  should  specify  no leading "/" for all other filename. And
              directory names you should specify without final "/" .          




       Expert Options: (new 0.2.1) The optional Expert-Mode  must  be  enabled
       with the option "--enable-expert-mode" by configure. This makes it pos-
       sible to open and recover front corrupted file systems.  In the current
       version it is possible to address backup superblocks and the attempt to
       recover of the Journal address from the data of the  super  block,  and
       recover  all  undamaged files after the filesytem was partially damaged
       or overwritten.                                                        


       -s blocksize -n blocknumber
              with this options you can select the backup superblock.   block-
              size can be 1024, 2048 or 4096.  blocknumber is the block number
              of the backup superblock this depends on the block size. Use the
              same  values  as  with  "fsck" or "debugfs" or use the output of
              "mkfs -n .."  to determine the correct value.                   

              Use the options necessarily in the order "-s ... -n ..."


       -c     This will attempt to find the journal  using  the  data  of  the
              superblock.  Can help if the first inode blocks of the file sys-
              tem are damaged.                                                


       -D     trying a restore of all files from a badly damaged file  system.
              The  combination  of  all these Expert Options try a file system
              restore if the superblock broken and the beginning of  the  file
              system  is  corrupted  or  overwritten.   This  can only work if
              e2fsck has not yet changed the faulty file system.              

              Example: the first few megabytes of the file system  are  over-
              written.  The  following  tries a copy of all undamaged files of
              the filesystem. Target directory is "/tmp/recoverdir"           

              # ext4magic /dev/sda1 -s 4096 -n 32768 -c -D -d /tmp/recoverdir



       -Q     This is a optional high quality  Option  for  recover  and  only
              impact  with  "  -r " and " -R ". Without this option, any valid
              file name restored from the directories and you can  set  the  "
              before " time stamp to a time in which all files are deleted. So
              you will find the maximum possible number of files.  It need not
              necessarily  be  found old directory data blocks in the Journal.
              However, there are some files found too much. In this mode,  re-
              used  file name and reused Inode can not be noticed. As a result
              some file will be created with the extension " "#" or some files
              created with wrong content. You have to check the files and find
              bad files and delete itself.                                    

              With option " -Q " works  ext4magic  more  accurately,  and  can
              avoid  such  false  and  duplicate files. This requires old data
              blocks of the directories in the Journal. You will not  find  of
              all  directories  those old blocks in the Journal. Only directo-
              ries in which files have been previously created or deleted, but
              not  of directories in which no change has been a long time. You
              should set the time stamp " before " immediately before destruc-
              tion time of the files. Are not sufficient directory data avail-
              able, may be, ext4magic can't  found  deleted  files  or  entire
              directory content. This option should be used very carefully and
              will achieve good results only in a few directories.            






       Time Options: With this options you specify a time window at which  the
       program  searches  for  matching  time  stamps  in  the  Journal  data.
       ext4magic required for most  internaly  functions  two  times.  A  time
       "after" and a time "before".                                           

       Found  Inode  only  accepted,  if not deleted and there time stamp less
       than "before". If the delete time is less then "after", the  Inode  are
       also  not  used.  ext4magic is still trying to find for valid directory
       Inode also  a  time-matching  directory  data.  For  a  recover  action
       "before" set to a value at which the data deleted, and "after" set to a
       value at which the data available. Inodes and directory data with other
       timestamps will be skipped and not used.                               

       Default,  without any time option, ext4magic will search with "now" for
       the internal time "before", and "now -24 hour" for  the  internal  time
       "after".  If  you try to recover without any time option, so you search
       only over the last 24 hours. If you wait a couple of  days  before  you
       try  to  recover deleted data, you must always use time options, or you
       find nothing                                                           


       -a n   with this option you can set the " after " time

       -b n   with this option you can set the " before " time

              n is the number of seconds since 1970-01-01 00:00:00  UTC.  This
              time  information  can you find in many prints of ext4magic, and
              you can it produce on the console with the  command  "date"  and
              also insert directly in the ext4magic command line.             

              -a $(date -d "-3day" +%s) -b $(date -d "-2day" +%s)

              this example set "after=now-36h" and "before=now-24h"


       -t n   is an indirect time option. you can use it with the options -B;
              -I; -f The value n is the transaction number. With this  option
              you  can  print, list, or recover the data from this transaction
              number.  you can find the transaction numbers with the option -T
              or in the print of the Inode content.                           





       File-,  IN-  and  OUT-Options: With these options group, you select the
       filesystem, and other optional file input and  output  for  control  of
       ext4magic.                                                             

       <filesystem>
              selects the filesystem and must always be set.  <filesystem> can
              be a blockdevice with ext3/4 filesystem, it can also be a uncom-
              pressed file image of such a partition.                         



       -j <journal_file>
              optional  you  can  select  a external copy of the Journal file.
              Without this option, automatically the internal Journal  or,  if
              configured, the external Journal on a block device will used.   



       -d <target_dir>
              select  the  output  directory.  There, the recovered files were
              written. If it does not exist, it is created. By  default,  cre-
              ated files are written to the subdirectory " RECOVERDIR " in the
              workpath of the actual shell. This output directory can  not  be
              on  the  same filesystem to be tested filesytem, and should have
              sufficient space to write the recovered files. The filesystem on
              this  directory should be also ext3/4, otherwise, not LINUX like
              filesytems  generate  some  errors  while   writing   the   file
              properties.   Either  you  must  first changed with the shell in
              such a suitable filesystem, or you must specify the  -d  with  a
              target to such a directory                                      



       -i <input_list>
              input_list  is  a  input  file. Must contain a list with double-
              quoted filenames. The files from the list will be restored  with
              option -r or -R                                                 

              Blank  lines,  not cleanly double quoted filenames and all areas
              before and after " will be ignored.  Such a  double-quoted  list
              of  file  names  can  create  with  options  -l  -x  or -L -x by
              ext4magic and edited by script or by hand.                      




       Action Options: This option group includes list  and  recover  options.
       All  functions  together,  they  work  recursiv  controlled by the time
       options through directory trees.  The  starting  point  for  search  is
       determined  by a directory name or a directory Inode number. Default is
       root of this Filesystem. Matching  the  time  options,  the  filesystem
       data,  inclusive  directory  data, taken from the Journal. If good data
       from the file system sections available in Journal, it is  possible  to
       see or recover the state of the filesystem at different times.         



       -L     Prints  the  list  of  all  filenames  and  Inode  number of the
              selected directory tree. Included here also  are  deleted  files
              and  deleted  directory  trees.  With the additional option.  -x
              the file names are printed double-quoted. You can use it  for  a
              "Input list" with option -i                                     



       -l     Prints  a  list  of  all filenames which have not allocated data
              blocks. At the beginning of the line are the percentage of unal-
              located  data blocks.  After deletion you find here all the file
              names you can recover with the Journal data. If you use  a  very
              old  value for the "before" time, it is possible there are files
              whose data blocks reused and these files  in  the  interim  also
              been  deleted.  Also included in the list all files without data
              blocks, symbolic links, empty and other special files.          

              Likewise double-quoted file names with optional -x



       -r     applied to directories, all files  without  conflicts  with  the
              occupied  blocks  will  recovered. This are all you can sea with
              the option -l and be 100% unallocated. This options only recover
              deleted  files  and  files without data blocks, in example: sym-
              bolic links or empty files.                                     

              The recovered files written to the RECOVERDIR/ This can also set
              to an alternate <target_dir> with the option -d                 

              All  files become the old filename and if possible, also the old
              file properties. A subdirectory tree can set with  "-f  dirname"
              oder  "-I  inodenumber"  If  use  with a given Inode number, the
              directory name is set to <inodenumber>                          

              The Time options affect the  search.  If  a  file  name  already
              exists,  or you recover again, it not overwrite files, and a new
              filename by added a final "#" will created. The maximum ist  the
              extension " ##### " for a filename.                             

              single  files  also  can  recovered,  possible search with time-
              stamps or transaction number.                                   


              (new 0.2.1): Starts this function from the  root  directory  the
              first stage of the magic functions will follow.                 

              This  starts  "lost directory search" and "lost file search" and
              recovers all the deleted inode that can not  be  assigned  to  a
              file  name.  These files you can find in the directories MAGIC-1
              and MAGIC-2                                                     



       -R     recovers directory tree, is the same as -r

              But two very  important  differences:  Recover  of  all  matched
              Inodes,  even  if  the blocks allocated, and recover if possible
              the old directory properties.  Also  empty  dirctories  will  be
              restored.   This  recovers  all deleted and all undeleted files,
              and it's possible to recover older file  versions  or  directory
              versions.                                                       

              In completely deleted directories the behavior " -R " and " -r "
              is identical. The difference is there only the complete  recover
              of  all  directories  with  option " -R ".  You can also restore
              individual files with time options or a transaction number.     




       For all recover cases ACL, SEL and other  extended  attribute  can  not
       recovered in the current version.                                      

       The output starts at line with a string "--------" before the recovered
       file name. This is a sign of successful recover. Are not enough permis-
       sions to write the recovered files, then you will see there some "x" in
       the string.                                                            

       At the end of the process, possibly an issue comes  from  the  hardlink
       database.  A  positive  number before a file name means: not found all
       hardlinks to this file. A negative number means: it created  too  many
       hardlinks  to  this  file  (possible  are,  reused  filenames or reused
       Inodes, and so, too many or wrong old filenames for  this  hardlink.  -
       But  also possible - all files for this hardlink are correct, the time-
       options was not set correct and because of that, the selected inode for
       the recover was not up to date.  You should check such reports.)       

       Re-used data blocks can't realize and so it's possible, it ends in some
       corrupted files.  Check in any case, all the recoverd files before  you
       use them.                                                              




EXAMPLES
       Print the content of a Inode, there are some possibilities.

               # ext4magic /dev/sda3 -f /

               # ext4magic /dev/sda3 -I 2

              the output is the actual filesystem root Inode. In first example
              input the pathname, second example Inode  2  is  also  the  root
              directory                                                       



               # ext4magic /tmp/filesystem.iso -f / -T -x

              use filesystem image "/tmp/filesystem.iso", search and print all
              transactions of the Block which included  the  root  Inode,  and
              print  all  differend Inode. Inclusiv the blocklist off the data
              blocks. If it's a directory, then print also for each individual
              Inode the content of the directory.                             



               #  ext4magic /tmp/filesystem.iso -j /tmp/journal.backup -I 8195
              -t 182                                                          

              Use filesystem image "/tmp/filesystem.iso" and read from  exter-
              nal  Journal in file "/tmp/journal.backup" and print the content
              of the Inode number 8195 from the journal transaction number 182



               #  ext4magic /dev/sda3 -f user1/Documents -a $(date -d "-3 day"
              +%s) -b $(date -d "-2 day" +%s)                                 

              print a undeleded Inode for pathname  "user1/Documents"  two  to
              three  days  back. If it's a directory, then also the content of
              this directory.  If can not found the old  directory  blocks  in
              Journal, the directory content would be the actual from filesys-
              tem.                                                            



       Examples of simple Recover

               # ext4magic /dev/sda3 -r -f user1/picture/cim01234.jpg -d /tmp

              Recover the file  "/home/user1/picture/cim01234.jpg"  which  has
              just  been  deleted.  The  file system is mounted normally under
              "/home".  Note the file path is specified from the  root  direc-
              tory  of  the  file  system  and not from the root of the entire
              Linux system. Whenever possible, umount the file system for  the
              recover.    The   file  will  be  written  as   "/tmp/user1/pic-
              ture/cim01234.jpg"                                              



               # ext4magic /dev/sda3 -r

              try to restore all files deleted last 24 hours. Write to  direc-
              tory "./RECOVERDIR/"                                            



               # ext4magic /dev/sda3 -R -a $(date -d "-5day" +%s)

              Attempts  to  recover  all  files, even if they are already par-
              tially overwritten, recover also all  not  deleted  files.   The
              erase time is 4 days ago.                                       



               # ext4magic /dev/sda3 -M -d /home/recover

              try  multi-stage  recover  of  all files after the filesystem is
              deleted with a "rm -rf *" . Write the files to  "/home/recover".
              (on ext4: in this version skipped the last step.)              



               #  ext4magic  /dev/sda3 -RQ -f user1/Dokuments -a 1274210280 -b
              1274211280 -d /mnt/testrecover

              try to restore the directory tree "user1/Dokuments/".  The  "-b"
              timestamp  you  must  set  just  before deleting files, the "-a"
              timestamp prevents found old file versions. This will only  work
              well,  if  you've  there created or deleted files bevor the "-b"
              timestamp. Write to the directory "/mnt/testrecover/". If only a
              few files recovers, attempts the same without the option -Q





               #  ext4magic  /home/filesystem.iso -Lx  -f user1 | grep "jpg" >
              ./tmpfile

               #   ext4magic   /home/filesystem.iso   -i   ./tmpfile   -r   -d
              /mnt/testrecover

              try  to  restore  only  all  deleted  files  from directory tree
              "user1/", and have "jpg" in filename. (last 24 hour)  and  write
              to  "/mnt/testrecover"  - use a temporary file "./tmpfile" for a
              list of filenames.




BUGS
       Direct use of the Journal of a  currently  read-write  open  filesystem
       produce  reading  of bad blocks. Such bad blocks provide program errors
       and false results. You shall therefore never use the Journal of such  a
       read-write  open file system directly.  Should it be necessary to use a
       mounted file system, create a copy of the file system journal and  used
       the option -j



AUTHOR
       Roberto Maar


SEE ALSO
       debugfs (8) , e2fsck (8)




version 0.2.3                      Oct 2011                       ext4magic(8)



Ext4magic: Inode - Directory - Journal - Install - Time_Options - Histogram - Scenarios - Tips&Tricks - Manpage - Expert-Mode