Hướng dẫn khôi phục các file đã xoá trên Linux với Foremost

Hướng dẫn khôi phục các file đã xoá trên Linux với Foremost | Chào các bạn, đến với bài viết này chúng ta sẽ cùng tìm hiểu có cách nào để khôi phục (restore) các file đã lỡ tay bị xoá mất trên Linux không nhé ?! May mắn thay chương trình công cụ Foremost đã xuất hiện và đem đến cơ hội nhất định để cứu vớt dữ liệu của bạn.

khôi phục file bị xoá trên linux

Thao tác khôi phục các file đã xoá trên Linux với Foremost

1. Tình huống giả định

Một ngày xấu trời, bạn – một nhân viên quản trị hệ thống Linux cho một công ty lớn thiệt lớn, vô tình xóa mất một file rất rất quan trọng trên hệ điều hành Linux của mình. Bạn hoang mang về thiệt hại này cũng như không có backup file vừa xoá.

Cuongquach.com sẽ hướng dẫn các bạn khôi phục file đã xóa trong bài viết này với tỉ lệ thành công cao (rủi ro không thành công vẫn có nhé). Với điều kiện ổ đĩa của bạn chưa bị format và ghi đè từ lúc xoá mất chương trình.

2. Foremost là gì?

Foremost là một chương trình forensic (hỗ trợ điều tra số) dùng để khôi phục những file đã bị xoá mất trên Linux dựa trên header, footer hoặc cấu trúc dữ liệu bên trong của file. Foremost có thể khôi phục các file hình ảnh, những file được tạo bởi lệnh dd, Safeback, Encase … hoặc trực tiếp trên ổ đĩa.

Hiện tại các loại file sau foremost có thể khôi phục đượcjpg gif png bmp avi exe mpg riff wmv mov pdf ole doc zip rar htm cpp

Lưu ý:
– Foremost hay bất cứ chương trình khôi phục dữ liệu nào cũng không thể đảm bảo 100% khả năng thành công.

3. Cài đặt Foremost

+ Trên Mint/Debian/Ubuntu

# apt-get install foremost

+ Trên CentOS/RHEL 7

# yum install https://forensics.cert.org/centos/cert/7/x86_64//foremost-1.5.7-13.1.el7.x86_64.rpm -y

+ Trên CentOS/RHEL 6
– Bạn phải compile từ source nếu muốn cài đặt cho CentOS 6. Các bạn tải source về theo link github sau: https://github.com/korczis/foremost

# wget https://github.com/korczis/foremost/archive/v1.5.7.tar.gz
# tar zxvf v1.5.7.tar.gz
# cd foremost-1.5.7
# make
# make install

4. Hướng dẫn sử dụng Foremost

Cú pháp:

foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t <type>] [-s <blocks>] [-k <size>] 
[-b <size>] [-c <file>] [-o <dir>] [-i <file]

Để biết rõ các option của foremost, các bạn sử dụng lệnh sau -h (help):

[root@localhost ~]# foremost -h
foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus.
$ foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t <type>] [-s <blocks>] [-k <size>] 
[-b <size>] [-c <file>] [-o <dir>] [-i <file]

-V - display copyright information and exit
-t - specify file type. (-t jpeg,pdf ...) 
-d - turn on indirect block detection (for UNIX file-systems) 
-i - specify input file (default is stdin) 
-a - Write all headers, perform no error detection (corrupted files) 
-w - Only write the audit file, do not write any detected files to the disk 
-o - set output directory (defaults to output)
-c - set configuration file to use (defaults to foremost.conf)
-q - enables quick mode. Search are performed on 512 byte boundaries.
-Q - enables quiet mode. Suppress output messages. 
-v - verbose mode. Logs all messages to screen

Trong đó các bạn cần quan tâm nhiều hơn tới các option sau:

  • -t: chỉ định loại file, ví dụ file hình là jpg, png. File pdf là pdf …
  • -i: chỉ định partition chứa file bị xóa, ví dụ /dev/sda1, /dev/sda2. Bạn sử dụng lệnh ‘df’ .
  • -h hoặc lệnh `mount` để xác định.
  • -o: chỉ định kết quả trả ra.

Ví dụ cụ thể:

Mình có 1 file hình như trong hình, file dạng jpg và mình check được md5 checksumbb75024b785783acdd9cdf08a5e329f8 .

foremost - 1

# md5sum canh-dep-thien-nhien-tai-italia.jpg
bb75024b785783acdd9cdf08a5e329f8  canh-dep-thien-nhien-tai-italia.jpg

Bây giờ mình sẽ dùng lệnh ‘rm‘ (Hướng dẫn xoá file hoặc thư mục trên Linux) để xóa file đi.

foremost - 2

# rm -f canh-dep-thien-nhien-tai-italia.jpg

Để khôi phục được, mình cần xác định partiton chứa file đã bị xoá. Như trong hình của mình là /dev/sda3 .

foremost 3

# pwd
/home/restore-file

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G   14G  3.6G  79% /
tmpfs           497M  112K  497M   1% /dev/shm
/dev/sda1       190M  121M   60M  67% /boot

Tiếp theo mình sẽ chạy lệnh sau để tiến hành restore lại, tất nhiên trước đó mình đã tạo thư mục restore để giá trị đầu ra được lưu trong file này.

# foremost -i /dev/sda3 -t jpg -o /home/restore-file/
Processing: /dev/sda3
|***************************************************************************************************************************************************************************************|

Sau khi lệnh chạy hoàn tất, bạn vào đường dẫn /home/restore-file/ để kiểm tra xem có gì trong đây.

# cd /home/restore-file/jpg/
# ll
...
4.0K -rw-r--r-- 1 root root 1.5K Mar  6 07:29 34854728.jpg
4.0K -rw-r--r-- 1 root root 2.1K Mar  6 07:29 34854944.jpg
4.0K -rw-r--r-- 1 root root 1.8K Mar  6 07:29 34854960.jpg
 20K -rw-r--r-- 1 root root  17K Mar  6 07:29 34856768.jpg
 24K -rw-r--r-- 1 root root  22K Mar  6 07:29 34856808.jpg
 44K -rw-r--r-- 1 root root  42K Mar  6 07:29 34856992.jpg
 92K -rw-r--r-- 1 root root  89K Mar  6 07:29 34926587.jpg

Bạn sẽ thấy rất là nhiều file .jpg khác nhau và được đánh tên theo số tịnh tiến, không thể nào có được thông tin tên chính xác như cũ. Lúc này bạn chỉ có thể download toàn bộ thư mục chứa hình ảnh đã được foremost khôi phục lại và kiểm tra. Còn trong bài lab này mình check md5 thử toàn bộ các file hình đã restore và đối chiếu với md5 checksum ban đầu.

# du -smd5sum * |  grep -i "0ee66a26d6d5206095b97162e26ae12f"
0ee66a26d6d5206095b97162e26ae12f  09476784.jpg

Đây rồi, có file mình cần rồi nè. Như vậy là restore thành công rồi đó.

5. Tổng kết

Như vậy qua bài hướng dẫn này mình đã hướng dẫn các bạn hoàn tất việc khôi phục (restore) file đã xóa trên Linux bằng cách sử dụng foremost. Hy vọng sẽ giúp ích cho các bạn, đặc biết các bạn đang vận hành các hệ thống quan trọng của tổ chức doanh nghiệp, có thêm phương án khôi phục ngoài việc phải đảm bảo backup thường xuyên. Thắc mắc gì các bạn commnet lại nhé, các ơn các bạn đã theo dõi.

Nguồn: https://cuongquach.com/

Previous article[Ebook] Tài liệu lập trình Android Full – FPT Software
Next articleJenkins: Thay đổi giao diện Jenkins UI với theme material
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !