Cứu phân vùng và dữ liệu Linux: Hướng dẫn thực chiến với TestDisk và PhotoRec

Linux tutorial - IT technology blog
Linux tutorial - IT technology blog

Mì ăn liền: Cài đặt và chạy ngay

Đang trong tình trạng “cháy nhà” và cần công cụ ngay? Bạn hãy mở terminal và cài đặt bộ kit này theo distro đang dùng:

# Ubuntu, Debian, Kali Linux
sudo apt update && sudo apt install testdisk -y

# CentOS, RHEL, AlmaLinux
sudo dnf install epel-release -y
sudo dnf install testdisk -y

# Arch Linux
sudo pacman -S testdisk

Sau khi xong, bạn sẽ có hai “vũ khí” chính: testdisk để hồi sinh phân vùng và photorec để bới lại file lẻ. Để bắt đầu, chỉ cần gõ lệnh với quyền sudo:

sudo testdisk

Hiểu đúng về bộ đôi TestDisk & PhotoRec

Nhiều anh em mới vào nghề thường nhầm lẫn công dụng của hai cái tên này. Dù đi chung một bộ, nhưng chúng giải quyết hai bài toán khác hẳn nhau:

  • TestDisk: Chuyên trị bảng phân vùng (partition table). Nếu bạn lỡ tay xóa một phân vùng hoặc ổ cứng đột nhiên báo “RAW”, TestDisk sẽ quét và dựng lại cấu trúc như cũ. Dữ liệu bên trong sẽ tự hiện lại mà không cần copy đi đâu.
  • PhotoRec: Tập trung quét từng block dữ liệu để tìm file. Nó lờ đi hệ thống file (filesystem) nên dù phân vùng bị format hay hỏng nặng, PhotoRec vẫn cứu được. Điểm trừ duy nhất là nó không giữ được tên file và cấu trúc thư mục gốc.

Khôi phục phân vùng bằng TestDisk

Giả sử bạn vừa lỡ tay xóa mất /dev/sdb1 chứa toàn bộ source code. Đừng hoảng, hãy bình tĩnh làm theo các bước này:

Bước 1: Tạo nhật ký
Mở sudo testdisk, chọn [ Create ] để tạo file log. Điều này cực kỳ hữu ích nếu quá trình quét gặp lỗi giữa chừng.

Bước 2: Chỉ định ổ đĩa
Dùng phím mũi tên chọn đúng ổ cứng đang bị mất phân vùng, sau đó nhấn [ Proceed ].

Bước 3: Nhận diện bảng phân vùng
Thông thường TestDisk sẽ tự chọn đúng (thường là [Intel] cho MBR hoặc [EFI GPT] cho máy đời mới). Bạn cứ để mặc định và Enter.

Bước 4: Quét nhanh (Quick Search)
Chọn [ Analyze ] rồi [ Quick Search ]. TestDisk sẽ lùng sục các dấu vết còn sót lại của phân vùng cũ trên bề mặt đĩa.

Bước 5: Soi lại và Ghi (Write)
Danh sách phân vùng tìm thấy sẽ hiện ra. Bạn hãy nhấn phím P để xem thử danh sách file bên trong. Nếu đúng dữ liệu mình cần, nhấn Enter rồi chọn [ Write ] để lưu lại bảng phân vùng.

Sau 3 năm quản lý hơn 10 VPS Linux, mình rút ra bài học xương máu: Luôn soi lại lệnh lần cuối trước khi nhấn Enter. Ở bước [ Write ], chỉ một giây lơ đãng chọn nhầm ổ là toàn bộ dữ liệu khách hàng sẽ “bay màu” ngay lập tức.

Cứu dữ liệu bằng PhotoRec

Nếu phân vùng đã hiện lại nhưng file vẫn biến mất, hoặc bạn lỡ tay chạy rm -rf, PhotoRec chính là hy vọng cuối cùng.

sudo photorec /dev/sdb
  1. Chọn mục tiêu: Chọn phân vùng nơi file từng tồn tại.
  2. Lọc định dạng: Nhấn phím s để bỏ chọn tất cả, sau đó chỉ tích những đuôi cần thiết (như .jpg, .pdf, .py). Việc này giúp tiết kiệm 70% thời gian chờ đợi.
  3. Bắt đầu tìm: Chọn [ Search ].
  4. Kiểu hệ thống file: Với Linux, hãy chọn [ ext2/ext3/ext4 ].
  5. Vị trí lưu: LƯU Ý SỐNG CÒN! Bạn phải lưu file cứu được sang một ổ đĩa KHÁC. Nếu lưu đè lên ổ đang cứu, dữ liệu cũ sẽ bị ghi đè và mất vĩnh viễn.

Kỹ thuật nâng cao cho các ca khó

Nếu Quick Search không ra kết quả, bạn đừng bỏ cuộc. Hãy dùng đến [ Deeper Search ]. Chế độ này quét tỉ mỉ từng sector. Dù tốn thời gian (có khi mất 3-4 tiếng cho ổ 1TB), nhưng nó có thể tìm thấy những phân vùng đã mất từ nhiều tháng trước.

Trường hợp khác là lỗi Superblock khiến Linux không thể mount ổ đĩa (thường do mất điện đột ngột). Bạn có thể khôi phục từ Superblock dự phòng:

# Truy cập: TestDisk -> Advanced -> Chọn phân vùng -> Superblock

Công cụ sẽ liệt kê các vị trí backup. Bạn hãy dùng lệnh fsck kết hợp với các địa chỉ này để sửa lỗi hệ thống file.

Kinh nghiệm thực chiến khi cứu hộ

Khi mất dữ liệu, ai cũng cuống. Nhưng là một kỹ thuật viên, bạn cần giữ cái đầu lạnh và tuân thủ các quy tắc sau:

  • Ưu tiên Read-only: Hãy umount phân vùng đó ngay. Càng để lâu, các tiến trình hệ thống càng dễ ghi đè dữ liệu mới lên các block trống, khiến cơ hội cứu hộ hẹp dần.
  • Clone ổ đĩa (Disk Image): Với dữ liệu cực kỳ quan trọng, đừng thao tác trực tiếp. Hãy dùng lệnh dd để tạo file image và thực hiện cứu hộ trên đó cho an toàn.
  • sudo dd if=/dev/sdb of=/home/user/disk_image.img conv=noerror,sync
  • Thủ sẵn Live USB: Luôn có một chiếc USB Boot (SystemRescue hoặc Ubuntu Live). Bạn không thể cứu phân vùng boot nếu đang chạy chính OS đó.
  • Check sức khỏe ổ cứng: Mất phân vùng đôi khi là điềm báo ổ bị Bad Sector. Bạn nên dùng smartctl kiểm tra trước khi cố gắng cứu dữ liệu lâu dài.

Thực tế, không có công cụ nào cam kết thành công 100%, nhất là với ổ SSD có cơ chế TRIM. Do đó, thay vì đặt cược vào TestDisk, hãy tập thói quen backup định kỳ cho các dữ liệu quan trọng.

Share: