Quản Trị Mạng - Những chiếc đĩa CD/DVD dữ liệu – đặc biệt là đĩa người dùng tự ghi, thông thường có tuổi thọ khá ngắn do chất lượng đĩa, chương trình sử dụng và cách bảo quản của chúng ta. Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn phương pháp khôi phục dữ liệu từ những chiếc đĩa như vậy sử dụng Ubuntu Live CD, và công cụ được sử dụng chính ở đây là ddrescue. Ứng dụng này có thể tạo ra các file *.iso, định dạng phổ biến nhất hiện nay, sau đó chúng ta sẽ ghi dữ liệu ra đĩa từ những file *.iso này.
Khởi độngt ừ Ubuntu Live CD từ ổ CD hoặc thiết bị USB cắm ngoài. Trước tiên, chúng ta phải cài đặt ddrescue. Mở Synaptic Package Manager tại System > Administration > Synaptic Package Manager > Settings > Repositories:
Đánh dấu vào những ô có tựa đề kết thúc với từ universe để kích hoạt universe repository của Ubuntu. Sau đó nhấn Close:
Quay trở lại cửa sổ chính của Synaptic, bấm nút Reload để tải lại danh sách các gói hỗ trợ:
Sau đó, gõ từ khóa ddrescue vào ô tìm kiếm nhanh, sẽ mang lại 2 kết quả cho người sử dụng. Hãy lựa chọn đúng gói gddrescue chứ không phải ddrescue:
Kích chuột phải lên biểu tượng của gddrescue và đánh dấu để cài, nhấn Apply và theo hướng dẫn để hoàn tất quá trình. Sau đó, chúng ta cần xác định ví trí để lưu file *.iso sau khi sử dụng ddrescue. Trong bài thử nghiệm này, chúng tôi sử dụng ổ cứng cắm ngoài định dạng NTFS:
Và hầu hết phần còn lại của quá trình tiếp theo đều được tiến hành bằng Terminal (Applications > Accessories > Terminal). Di chuyển tới thư mục hoặc ổ đĩa bạn muốn lưu file *.iso (trong trường hợp này là ổ cứng cắm ngoài):
Khi đã chuyển tới đúng thư mục, bạn hãy sẵn sàng để chạy ddrescue. Hãy thật cẩn thận vì mỗi khi thực hiện lệnh sao chép dữ liệu từ đĩa CD một hoặc nhiều lần, với mỗi lần đó thì ddrescue sẽ tự động sao lưu lượng dữ liệu tương đương lên ổ lưu trữ mà không cần biết dữ liệu đó đã tồn tại hay chưa. Do vậy, chúng ta hãy cùng thực hiện các công đoạn từ dễ tới khó, toàn bộ quá trình thường chia ra làm nhiều phần tương ứng.
Với phần đầu tiên, cú pháp câu lệnh như sau:
ddrescue –n –b 2048 /dev/cdrom <ISO file> <log file>
Trong bài thí nghiệm này, chúng ta sử dụng chiếc đĩa CD Red Hat Linux 4.2 với 13 năm “tuổi thọ” do đó, sẽ đặt tên là RedHat.iso, và file log là RedHat.log:
Ký tự -n để đảm bảo rằng quá trình đầu tiên này không diễn ra quá lâu, nhưng vẫn có thể khôi phục được những phần dễ đọc nhất còn lại của chiếc đĩa CD. Phần bắt đầu với -b là rất quan trọng, vì thông thường đĩa CD có kích thước khối tương đương 2048 byte. Cuối cùng, ddrescue vẫn hoàn thành, nhưng có thể có lỗi xảy ra:
Khi hoàn thành bước trên, chúng ta còn lại khoảng 80 MB dữ liệu chưa khôi phục được do lỗi, phần còn lại này chúng ta sẽ tiếp tục thử lại lần thứ 2. Nhưng lần tiếp theo này, quá trình sẽ thực hiện kỹ càng hơn để khôi phục được càng nhiều càng tốt.
Câu lệnh sử dụng vẫn tương đương như trên, nhưng thay vì -n chúng ta sẽ sử dụng -d để chỉ định ddrescue di chuyển thẳng tới các vị trí trọng điểm trên đĩa, và cố gắng đọc dữ liệu ở mức “sâu” nhất có thể. Chi tiết về cách sử dụng và cú pháp của ddrescue, các bạn có thể tham khảo thêm tại đây:
ddrescue –d –b 2048 /dev/cdrom <ISO file> <log file>
Hãy đảm bảo rằng file *.iso và *.log được đặt chung 1 thư mục. Thông thường quá trình này sẽ hoạt động trong nhiều giờ, do vậy hãy để máy tính ở đó và … đi ngủ. Sáng hôm sau dậy bạn sẽ thấy kết quả như thế này:
Và trong lần này, chúng ta chỉ còn lại 55 MB chưa khôi phục được. Tùy vào khoảng thời gian chúng ta cho ddrescue hoạt động thì lượng dữ liệu cứu được sẽ nhiều hoặc ít.
Chúc các bạn thành công!