Khôi phục nhanh dữ liệu bị mất
Trong một thế giới chưa thật hoàn thiện, cần phải hiểu được những nguyên nhân gây ra lỗi cho đĩa cứng của bạn và cách khắc phục chúng
Bộ phận nào đáng giá nhất trong máy tính của bạn? Ðó không là CPU, đầu đọc CD-ROM, màn hình hay hay ổ đĩa, mà là dữ liệu và chương trình ghi trên đĩa. Khi đột nhiên dữ liệu nào đó biến mất hoặc không truy cập được nữa, người ta có cảm giác như đánh rơi một chiếc cốc pha lê quí giá. Nhưng ai cũng biết rằng đó chỉ là cảm giác thoáng qua vì khôi phục lại tập tin dễ hơn nhiều, với điều kiện là bạn có trong tay công cụ thích hợp và kiến thức cần thiết.
Cách tốt nhất để lấy lại những gì đã mất là thường xuyên sao lưu hệ thống. Chi phí cho hệ thống sao lưu là rất nhỏ so với dữ liệu quí giá, do đó bạn không nên tiếc tiền đầu tư cho ổ băng hoặc ổ Zip. Nhưng ngay cả khi không có bản lưu mới nhất, vẫn có thể khôi phục được tập tin, và đó là chủ đề của bài này.
Cách tổ chức trên đĩa
Ðơn vị nhớ cơ bản trên đĩa là cung (sector), thường với kích cỡ 512 byte, nhưng không nhất thiết phải như vậy. Nhiều đĩa RAM và thiết bị nhớ dùng sector cỡ 256 byte. Mỗi cung có số hiệu riêng, thuộc mặt (head) đĩa bào rãnh (từ trụ) nào. Ví dụ, đĩa mềm 3,5 inch có 2 mặt, 80 rãnh, 18 cung/rãnh và 512 byte/cung, do đó ghi được 1474560 (tức 1440 KB) đơn vị thông tin.
Quá trình chuẩn bị đĩa để có khả năng ghi được dữ liệu được gọi là định dạng mức thấp. Tất cả các ổ IDE, rất phổ biến hiện nay, nếu được định dạng sẵn tại nơi sản xuất ra chúng. Dùng phần mềm không thích hợp để làm điều đó có thể làm cho đĩa IDE hoặc EIDE (Enhanced IDE) không còn dùng được nữa.
Bước thứ hai phải làm với một đĩa mới là dùng trình FDISK.EXE của DOS để chia nội dung của nói thành các vùng luân lý gọi là các phân hoạch (partitions). Fdisk xử lý dữ liệu trong phần đĩa gọi là bảng phân hoạch hoặc là master boot record (MBR). Mỗi vùng DOS mà bạn tạo trở thành ổ luận lý riêng biệt kho boot ấy. Ví dụ, đĩa cứng có thể chia thành 3 ổ luận lý là C,D và E. Nếu bạn tạo các phân hoạch cho OS/2, Linux, Window NT hoặc các hệ điều hành khác (sử dụng phiên bản thích ứng của Fdisk), các vùng ”ngoại lai“ thưòng không nhìn thấy được khi bạn boot vào DOS hoặc Win95.
Thực hiện lệnh FORMAT.COM trong mỗi vùng phân hoạch là bước thứ 3 của việc chuẩn bị đĩa cứng. Format tạo boot record mang thông tin về các đặc tính của phân hoạch; 2 phiên bản của bảng FAT (File Allocation Table), vùng dùng để theo dõi các phân đĩa ấn định cho các tập tin, thư mực gốc mà từ đó tạo ra các tư mực con. Dùng lệnh Format IS sẽ là cho đĩa có thể boot được (đĩa hệ thống).
Các secter đầu tiên trên đĩa dùng cho mục đích hệ thống. Cung đầu tiên là bảng phân hoạch. Sau boot record là bảng FAT. Có 2 bảng FAT là để khi cần thiết có đĩa thay thế cho nhau. DOS không có tiện ích sao chép bảng FAT này sang bảng FAT kia, do đó với phần lớn chúng ta, bảng thứ 2 là dư thừa. Sau bảng FAT là thư mực gốc chứa từng đầu mực (entry) cho mỗi tập tin thuộc thư mục gốc và cho mỗi thư mục con mức 1.
Thư mục gốc bị hạn chế về dung lượng này phụ thuộc vào loại đĩa cụ thể. Ðĩa mềm không có bảng phân hoạch, phần còn lại có cấu trúc như của đĩa cứng.
Thế giới của các liên cung
Phần dữ liệu của các đĩa là nơi người dùng quan tâm nhất. Nó chia thành các liên cung (cluster). Mỗi liên cung bao gồm một số lượng xác định các cung liên tiếp. Số cùng/cluster phụ thuộc vào dung lượng đĩa, bao giờ cũng là luỹ thừa của 2. Mỗi liên cung trên đĩa mềm thường chỉ gồm 1 sector tức 64 KB/cluster. Liên cung nhỏ sẽ tiết kiệm được nhiều bộ nhớ hơn vì liên cung cuối cùng của tập tin chỉ có ít phần nhớ dùng vô ích. Liên cung lớn hơn sẽ đảm bảo tốc độ truy xuất cao hơn.
Mỗi đầu mục trong bảng FAT đại diện cho 1 liên cung của vùng dữ liệu. FAT có thể dùng 12 hoặc 16 bit cho mỗi đầu thư mục. Mười hai bít đủ để ghi số từ 0 đến 4095, còn 16 bít tới 65535. Phần lớn đĩa mềm dùng cluster với 1 sector và bảng FAT 12 bít. Một số phiên bản OEM mới nhất của Win 95 có thể dùng FAT 32 bít để có được cluster nhỏ trên ổ đĩa cực lớn.
Khi DOS cấp phát bộ nhớ cho tập tin, hệ ghi số hiệu của liên cung đầu tiên vào đầu mục của tập tin. Sau đó sử dụng FAT để theo dõi các cluster bổ sung. Ví dụ, giả sử tập tin được cấp phát liên cung thứ 2, 4 và 5 trên đĩa. Ðầu mục cho biết tập tin bắt đầu từ liên cung số 2. Dòng thứ 2 của bảng FAT cho thấytập tin tiếp tục ở liên cung 4. Dòng thứ 4 của FAT chỉ ra rằng tập tin còn có dữ liệu trong liên cung 5. Dòng thứ 5 của FAT còn có dấu hiệu cuối tập tin (EOF) báo rằng không có liên cung tiếp theo nào nữa (ta giả htiết rằng tập tin khác sử dụng liên cung 3).
Bảng FAT còn đánh dấu liên cung nào ”bị hỏng“, không còn tin cậy để cấp phát nữa.
Ðể xoá bỏ tập tin, DOS thay ký tự đầu tiên trong tên tập tin bằng ký tự đặc biệt, tiếp theo sửa bảng FAT để giải phóng các liên cung tương ứng cho tập tin khác. Phần còn laị của đầu mục không thay đổi và tồn tại trên đĩa cho đến khi tập tin mới ghi đè lên.
Hệ thống FAT khá hiệu quả với các đĩa mềm và điã cứng cỡ 10-20 MB, ngày nay không còn hữu hiệu cho đĩa cứng dung lượng cao nữa, do đó OS/2 và Windows NT sự dụng hệ thống tổ chức tập tin thích hợp hơn.
Giải quyết sự cố
Sự cố có thể xảy ra do virus, do không đóng tập tin hoặc hệ thống bị treo trước khi DOS hoàn tất cập nhất các thư mục và bảng FAT.
* Vấn đề 1: Bảng phân hoạch bị hỏng
Máy của bạn không thể boot được nữa do bảng phân hoạch hoặc MBR bị hỏng. Có thể khi cài đặt đĩa mới hoặc phân hoạch lại đĩa cứng bạn quên đánh dấu một vùng phân hoạch trên ổ C là ”active“. Nên xem trước trạng thái phân hoạch bằng lệnh FDISK/ STATUS. Trước đó pải boot bằng đĩa mềm. Dùng lệnh FDISK/MBR để tạo lại bảng phân hoạch.
Bạn có thể định dạng lại ổ C để tạo lại boot record hoặc thực hiện lệnh SYS C: tại dấu nhắc A:\> của DOS. Trình SYS.COM ghi lại boot record và sao chép một số tập tin hệ thống từ đĩa mềm lên ổ C.
Chú ý rằng để tạo đĩa mềm hệ thống (có khả năng boot được), cần lắp đĩa mới vào ổ A và định dạng nó bằng lệnh FORMAT A:/S. Tiếp theo chép FDISK.EXE, SYS.COM và các tiện chí khác từ thư mục \DOS hoặc, nếu bạn làm việc trong Win 95, từ \WINDOWS\COMMAND.
* Vấn đề 2: Mất các đơn vị cấp phát
Ðể tránh những rắc rối với các đầu mực và bảng FAT, nên chạy phần mềm quét đĩa của Microsoft là SCANDISK.EXE hoặc người anh em cũ kỹ hơn là CHKDSK.EXE. Nên làm công việc như vậy mỗi tuần một lần, ngay sau khi định dạng đĩa hoặc nén đĩa bằng DBLSPACE.EXE, bằng DRVSPACE.EXE hoặc trình thứ ba của Stac Electronics. Trình ScanDisk có từ DOS6.2x và trong Win95, hãy dùng nó thay cho Chkdsd. Phần lớn lỗi mà bạn thường gặp là ”lost allocations units“ hoặc ”lost chains“. Mất một số liên cung có thể do tắt máy giữa chừng, reboot lại máy khi máy treo hoặc rút đĩa mềm khi DOS đang làm việc với chính đĩa này.
Chkdsd khắc phục những lối như vậy bằng cách tạo ra các tập tin FILEnnnn. CHK trong thư mục gốc, chứa các chuỗi liên cung bị mất của tập tin. Scan Disk cũng làm như vậy, nhưng còn có thêm tính năng ”undo“. Nếu bạn thực hiện lệnh SCANDISK/UNDO A:, thông tin undo được ghi ra đĩa mềm sẽ được sử dụng để khôi phục lại trạng thái đĩa như trước khi ScanDisk sửa chữa. Tất nhiên, kể từ lần quét đĩa gần nhất bạn không được xoá, tạo mới, hay nén bất kỳ tập tin nào, vì như vậy bạn đã thay đổi bảng FAT, và thông tin ”undo“ không còn giá trị gì nữa.
Có thể dùng một trình soạn thảo, lệnh Type, tiện ích Debug để xem các tập tin*.CHK. Thuận lợi nhất là những gì đã mất ở dưới dạng văn bản, còn dạng nhị phân thì chẳng giúp ích gì nhiều.
* Vấn đề 3: Các tập tin chập chéo nhau
Hiện tượng chập chéo nhau (cross-linked files) nghĩa là khi hai tập tin, vì lý do nào đó, cùng chung chuỗi liên cung ổ cuối, ví dụ tập tin A dùng các liên cung 2, 3, 4, 5 và tập tin B nằm trên 6, 7, 4 và 5. Các liên cung 4, 5 cùng chung cả hai tập tin. Với những trường hợp như vậy, tốt nhất hãy khôi phục cả A lẫn B từ các bản lưu. Nếu không được như vậy, bằng Chkdsd hãy theo các bước sau:
1. Khôi phục tất cả các đơn vị cấp phát bị mất, sau đó thoát khỏi Chkdsk.
2. Tạo các bản sao của A và B với các tên mới không còn chấp chéo nhau nữa những chứa những dữ liệu giống nhau.
3. Xoá bỏ A và B để làm sạch bảng FAT.
4. Dùng ứng dụng tạo ta các tập tin kể trên để xem nội dung trong các bản sao của chúng. Những gì không cần thiết (thừa), mạnh dạn xoá bỏ.
5. Xem từng tập tin FILEnnnn. CHK trong thư mực gốc để tìm những gì bị mất của các tập tin hỏng, Dùng ứng dụng để cắt/dán với mục đích tu chỉnh lại các bản sao của A và B cho thích hợp.
6. Ðổi tên các bản sao của A và B về các tên ban đầu. Loại bỏ các tập tin *.CHK không còn cần thiết nữa.
ScanDisk mạnh hơn vì thực hiện các bước 2, 3 cho bạn. Rõ ràng là khôi phục các tập tin văn bản thì dễ dành hơn so với tập tin ảnh, âm thanh hoặc các chương trình.
* Vấn đề 4: Lỗi cấp phát
Nếu chuỗi FAT dài hơn hoặc ngắn hơn chỉ định trong đầu thư mục của tập tin, bạn gặp lỗi ”allocation error“. Cả Chkdsk lẫn ScanDisk đều thay đổi kích cỡ tập tin cho thích hợp. Nếu chuỗi FAT quá dài, tập tin sẽ chứa dữ liệu không cần thiết, còn trường hợp quá ngắn,phần cuối bị gạt mất. Bạn có thể tìm thấy những gì bị mất trong các liên cung chưa cấp phát cho tập tin nào cả.
* Vấn đề 5: Các đơn vị cấp phát bị hỏng
Ðó là lỗi ”Invalid allocation units“, xảy ra khỏi một phần bảng FAT chứa số 0 (liên cung chưa cấp phát), số 1 (liên cung không tồn tại) hoặc dấu hiệu liên cung hỏng. Hai tiện ích trên đều đánh dấu liên cung cuối cùng còn tốt chứa dấu hiệu kết thúc file.
* Vấn đề 6: Cung hệ thống hỏng
Cả Chkdsk và ScanDisk đều phát hiện vấn đề xảy ra với vùng hệ thống trên đĩa. Chkdsk đơn giản là đưa ra thông báo “ Bad Sector in FAT” hoặc “ Probably non-DOS disk”. ScanDisk còn chỉ chính xác lỗi ở đâu. Cả hai trình đầu không chừa vùng hệ thống. Bạn có thể dùng SYS.COM để ghi lại vùng hệ thống hoặc định dạng lại đĩa (trước đó cần sao chép dữ liệu ra đĩa mềm).
Những công cụ cao cấp
Chkdsk và ScanDisk rất thích hợp để tìm lại những liên cung bị mất, trong đó ScanDisk ít gây sự cố hơn do được thử rất kỹ càng và có khả năng tạo tập tin undo. Có một số tiện ích còn tiên tiến hơn nữa. Trước hết phải kể đến Norton Utilities (79USD). Với Disk Editor trong bộ phần mềm này, bạn có thể xem và chỉnh lý từng sector một theo nhiều cách. Bạn có thể tự sửa bảng FAT để thí nghiệm và thử khả năng của các trình khôi phục thứ ba.
Dùng SpinRite (89USD) của Gibson Research Corp để qúet đĩa cũng là một ý tưởng hay.
Cuối cùng, giải pháp tốt nhất để bảo đảm an toàn cho dữ liệu của bạn lại không ở các tiện ích siêu việc mà chỉ ở chế độ sao lưu thường xuyên một cách nghiêm chỉnh. Trong khi đồng nghiệp phải vắt óc trước những thông báo đưa ra bởi Chkdsk, ScanDisk hoặc các tiện ích khác, bạn chỉ mất vài giây để sao chép lại những gì bị hỏng hay thất lạc