Anhtoitb
New Member
BAD SECTOR: bản chất, nguyên nhân và phòng tránh
Trong cuộc sống hiện đại ngày nay, ổ đĩa cứng(HardDisk Drive=HDD) trong các hệ thống máy vi tính ngày càng chiếm vị trí quan trọng. Chúng có thể chứa đựng tất cả các tủ hóa đơn, giấy tờ, chứng từ quan trọng của các doanh nghiệp, các xấp ảnh, các chồng đĩa phim ảnh giải trí riêng tư và ngay cả các cơ sở dữ liệu lớn cần sự truy cập không có giờ phút ngừng nghỉ của các máy chủ…Tuy nhiên, bất kể hệ thống mà chúng ta đang sử dụng là máy chủ, máy tính cá nhân hay máy tính xách tay với những loại ổ đĩa cứng tốt nhất được lắp bên trong, có lúc, chúng ta vẫn phải đối mặt với những sự cố hư hỏng. Các biểu hiện của những sự cố đó rất da dạng nhưng chúng ta thường gặp là: máy tính khởi động và kết thúc với màn hình xanh kèm theo thông báo lỗi “Physical memory dump…”, việc copy một file nhỏ nào đó diễn ra rất chậm rồi không thành công, việc cài đặt hệ điều hành không thực hiện được…Có rất nhiều nguyên nhân có thể dẫn đến tình trạng này và một trong số đó là BAD SECTOR.
Trong bài viết này, chúng ta hãy cùng nhau khám phá nguồn gốc của lỗi, cách phòng tránh và phương án xử lý. Vấn đề được đề cập trong bài viết này sẽ liên quan tới nhiều thuật ngữ và khái niệm khác nhau của phần cứng máy vi tính tuy nhiên, chúng ta sẽ bỏ qua hoặc xem xét một cách sơ lược mọi thứ để đi sâu vào vấn đề chính: BAD SECTOR.
1. Dẫn nhập:
Trước hết, chúng ta hãy cùng xem xét vấn đề nguồn gốc của sector. Cấu trúc vật lý của ổ đĩa cứng thông thường sẽ gồm 03 thành phần:
· Platter(đĩa hình tròn): nơi lưu trữ firmware-phần điều khiển cấp thấp của HDD và dữ liệu.
· Bộ đọc/ghi(Actuator): bộ phận truyền tải thông tin.
· Bảng mạch điều khiển điện tử(PrintedCir cuitBoard=PCB): thành phần chứa đựng các cổng giao tiếp và phần điều khiển cấp cao của HDD.
Mỗi platter của ổ cứng thường có 03 lớp: lớp nền tảng thường được chế tạo bằng hợp kim nhôm hoặc thủy tinh và có 02 bề mặt; lớp từ tính được phủ trên cả 02 bề mặt của lớp nền tảng và được cấu tạo từ các phần tử có thể nhiễm từ tính; lớp bảo vệ được phủ bên ngoài cùng cả 02 bề mặt. Tuân theo quy chuẩn chung về sản xuất HDD nên mỗi sản phẩm xuất xưởng, trên bề mặt platter đều có khuôn dạng lưu trữ là các vòng tròn đồng tâm mà chúng ta thường biết đến với tên gọi track hay cylinder. Các cylinders được chia cắt bởi các đường thẳng chạy từ tâm ra biên, chúng tạo nên các vùng lưu trữ data mà chúng ta vẫn quen nghe tên: sector.
Để đọc/ghi dữ liệu lên platter, HDD sử dụng bộ đọc/ghi (Actuator). Cấu tạo chung của Actuator gồm có: bộ chuyển động, bộ khung đầu đọc, mạch điều khiển đọc ghi chung và đầu đọc từ tính(magnetic head). Trong quá trình đọc/ghi, đầu đọc treo lơ lửng phía trên, cách bề mặt platter vài microns. Áp lực không khí sinh ra trong khi platter quay với tốc độ cao đã góp phần tạo ra khoảng cách an toàn này, giúp bảo vệ an toàn head và bề mặt platter.
Để đọc dữ liệu nào đó trên HDD, computer ra lệnh yêu cầu đọc data từ một sector cụ thể nằm trên ổ đĩa cứng với tham số chỉ định là một số nguyên dương. Bảng mạch điều khiển của ổ đĩa cứng khi tiếp nhận lệnh từ computer sẽ giải mã thông tin, định nghĩa bề mặt của platter có chứa đựng sector cần đọc, định nghĩa head của bề mặt đó, dịch chuyển head đến đúng vị trí của cylinder có chứa sector cần đọc và đọc dữ liệu từ tính tại đó. Tiếp theo, dữ liệu đó sẽ được chuyển về mạch đọc/ghi của bộ đọc ghi rồi dịch dữ liệu đó sang dạng bits và gửi các dữ liệu dạng bits đó về computer. Tiến trình ghi dữ liệu lên HDD cũng tương tự như tiến trình đọc ngoại trừ chút ít khác biệt: computer gửi lệnh ghi kèm theo 512 bytes dữ liệu cần ghi và HDD sẽ gửi trả lại kết quả của việc ghi dữ liệu. Đây là tính siêu đơn giản của phương án này, computer không cần biết bất cứ điều gì liên quan đến HDD ngoại trừ thông số về tổng số sector chứa đựng trong nó. Đây cũng chính là nguyên nhân dẫn đến hiện tượng lỗi mà đôi khi chúng ta gặp phải: ổ đĩa cứng có dectect trong BIOS, trong DOS nhưng sau đó hệ thống treo cứng, không khởi động được; hệ thống nhận diện được tên nhưng dung lượng báo sai hoặc sai tên; khi ra lệnh đọc ghi một file nào đó, hệ thống báo lỗi hoặc treo máy…
2. Nguyên nhân:
Đến đây, chắc hẳn mọi người chúng ta đều có cùng một câu hỏi: “Nguyên nhân nào đã gây ra bad sector của ổ đĩa cứng?”. Câu trả lời chính xác là có 7 nguyên nhân đã gây ra lỗi bad sector. Ba nguyên nhân đầu là do lỗi trong quá trình sản xuất, hai nguyên nhân tiếp theo là do người sử dụng và hai nguyên nhân cuối cùng là do lỗi logical. Duy nhất chỉ có hai nguyên nhân cuối là có thể khắc phục. Các nguyên nhân gây lỗi bad sector:
· 1 hole (hố) tạo ra do lỗi trong quá trình phủ lớp từ tính lên bề mặt platter.
· Sự liên kết yếu kém giữa lớp từ tính và lớp nền platter tại một vị trí tạo ra 1 hole.
· 1 hole được tạo ra trên bề mặt nền tảng của platter gây ra bởi thời gian.
· Lỗi gây ra bởi chuyển động cơ học của Actuator hoặc do người dùng gây va đập dẫn đến head bị va vào bề mặt platter.
· Theo nghiên cứu của HDDLABVN.COM, chất bôi trơn bên trong motor, do nhiệt độ cao của môi trường đã bốc hơi thoát ra ngoài, gặp nhiệt độ thấp hơn nên đông cứng thành hạt vật chất, va đập và phá hoại bề mặt platter.
· Nhiệt độ cao của môi trường sử dụng computer gây nên sự thoái hoá công năng của bề mặt từ tính.
· Lỗi về điện và/hoặc reset xảy ra trong tiến trình đọc/ghi data.
Trong quá trình sử dụng computer, chúng ta thường hay gặp thông báo lỗi dạng: “Can not copy file(s) or folder(s), ECC failure when reading sector xxxxxx”…ECC (“error correction [or correcting] code" or "error checking and correcting”) được sử dụng để kiểm tra và sửa lỗi trong quá trình đọc và truyền dữ liệu. ECC được sử dụng với các phương tiện lưu trữ (media storage) như RAM, HDD…Vậy ECC hoạt động như thế nào? Chúng ta đều biết, mỗi đơn vị data (or word) được lưu trữ dù là tạm thời trong RAM hay lâu dài trên HDD, chúng đều phải được “đính” kèm các thông tin quan trọng. Gần giống như một “thẻ kho”, mỗi thông tin này sẽ cho biết độ dài liên tục của bits dữ liệu có trong mỗi đơn vị data. Cứ mỗi 64 bits của một đơn vị data sẽ gắn kèm 7 bits mở rộng để lưu trữ ECC. Khi có một lệnh yêu cầu đọc data tại một vị trí lưu trữ 64 bits đó, code đã lưu trữ trong 7 bits mở rộng sẽ được đọc và đưa vào vế trái của lệnh so sánh. Vế phải sẽ là kết quả của một tiến trình: thông tin về độ dài của 64 bits sẽ được tính toán và trả về kết quả theo cùng một phương pháp như đã tạo ra code đã lưu trữ, tiếp đó sẽ ghi kết quả vào vị trí so sánh. Nếu kết quả so sánh khớp nhau, tiến trình kiểm tra lỗi kết thúc, data sẽ được truyền đi theo yêu cầu của lệnh. Nếu kết quả so sánh không khớp nhau, một hay nhiều bits bị thiếu hay lỗi sẽ được sửa hoặc thêm vào cho đến khi mọi thông tin đều khớp và tiến trình ECC kết thúc, data sẽ được truyền đi theo lệnh đọc. Chúng ta thấy ở đây có một vấn đề: một việc “sửa” đã được tạo ra, vậy thì nó có gây sai lệch các thông tin nguyên bản đã lưu trữ? Liệu các thông tin về tài chính, các tài liệu sống còn của doanh nghiệp chúng ta có bị mất đi hay sai lệch sau việc sửa chữa này? Câu trả lời sau đây sẽ khiến chúng ta an tâm: không có sự thay đổi gì với 64 bits của mỗi đơn vị data đã lưu trữ, tất cả dữ liệu của chúng ta vẫn nằm trên vùng từ tính đã lưu trữ nó. Việc sửa chữa chỉ xảy ra với 07 bits mở rộng có chứa code, ECC chỉ cố gắng giúp cho tiến trình thực hiện lệnh đọc được thực thi mà thôi. Các dữ liệu thuộc về 64 bits của đơn vị dữ liệu vẫn còn trên phương tiện lưu trữ chỉ có điều, nếu không có chuyên môn và thiết bị chuyên dụng, chúng ta không thể nào lấy chúng ra được. Đây chính là một trong những lý do mà HDDLABVN.COM được thành lập và tồn tại: giúp mọi người, mọi doanh nghiệp lấy lại dữ liệu, cứu lại các thương vụ. Có vài nguyên nhân gây ra lỗi với ECC và bad sector là một trong số đó.
Lỗi bad sector, xét về mặt vật lý là không thể sửa chữa (can not repaired). Đôi khi, chúng ta gặp một số quảng cáo như: “tẩy, cắt, sửa…bad sector”, đó là sự quảng cáo sai sự thật, thiếu chuyên môn. Thật vậy, chúng ta không thể có cách nào lấp đầy các “hố”(hole ) được tạo ra bởi quá trình sản xuất hay do sự va đập trong sử dụng; chúng ta cũng không thể nào khôi phục được khả năng từ tính tại một điểm nào đó trên bề mặt platter đã bị suy yếu sau một thời gian sử dụng…Tuy nhiên, chúng ta có thể khắc phục lỗi bad sector bằng cách ra lệnh cho hệ thống không sử dụng chúng. HDDLABVN.COM đã nhận được nhiều thư của các bạn hỏi về vấn đề có hay không cái gọi là “sector dự trữ trong HDD?”. Câu trả lời là: về mặt kỹ thuật, không hề có khái niệm đó, các sector trên các phương tiện lưu trữ như HDD không hề giống như các bài viết thiếu chuyên môn trên mạng cũng như báo, tạp chí về vấn đề “thay thế” bad sector bằng một “sector dự trữ”. Với trí tưởng tượng của mình, những người viết các thông tin sai lệch đó đã cho rằng các sector sẽ “giống như” những ngăn kéo của một cái tủ và bằng một cách nào đó, họ sẽ “rút” cái hỏng ra và thay thế bằng cái “tốt” đã được “dự trữ ở đâu đó” trong miền lưu trữ của thiết bị. Về mặt kỹ thuật, chúng ta có thể cùng xem xét một tiến trình chung cho việc khắc phục lỗi bad sector như sau: Khi một sector bị đánh dấu là bad, hệ thống sẽ không sử dụng nó cho mục đích đọc/ghi dữ liệu nữa và tổng dung lượng của ổ đĩa cứng sẽ bị giảm đi một lượng bằng với lượng mà một sector chiếm dụng trên không gian nhớ của thiết bị lưu trữ. Khi gặp hiện tượng bad sector, chúng ta nên sao lưu các dữ liệu quan trọng bởi chúng có thể sẽ nằm ngoài khả năng sử dụng của chúng ta. Nếu các bad sector hiện ra quá đột ngột mà ta không thể kịp sao lưu thì tốt hơn hết nên gửi phương tiện lưu trữ của mình đến những nơi chuyên nghiệp như HDDLABVN.COM, tránh tự làm vì có thể mất đi cơ hội lấy lại các dữ liệu quan trọng.Còn nếu các dữ liệu không quan trọng, hoặc giả dụ như bạn muốn tự làm để có thể tiếp tục sử dụng một HDD đã bị lỗi bad sector thì sao? Các biện pháp được mô tả dưới đây sẽ phần nào giúp chúng ta đạt được mục đích của mình.
3. Các biện pháp phòng tránh và khắc phục lỗi BAD SECTOR:
· Các biện pháp phòng tránh bad sector: Để hạn chế tối đa bad sector chúng ta nên lưu ý về vấn đề tản nhiệt cho các thiết bị lưu trữ như HDD. Đất nước chúng ta nằm trong một miền địa lý với khí hậu nóng ẩm và đó là một trong những nguyên nhân gây ra bad sector. Vấn đề điện nguồn cũng nên được lưu ý vì điện lưới sinh hoạt của chúng ta thường xuyên tăng-giảm hay mất đột ngột cộng với việc các thiết bị cung cấp điện nguồn cho computer như ổ cắm điện, phíc cắm điện…thiẠ ?u an toàn cũng sẽ rất dễ gây lỗi. Nên sử dụng các thiết bị lưu trữ của chính hãng và dùng kèm theo computer một bộ cung cấp nguồn ổn định, ví dụ như dùng UPS online. Tránh sử dụng các thiết bị ổn áp cơ học, chỉ có giá trị về mặt lý thuyết hoặc giá trị rất nhỏ cho việc sử dụng computer.
· Các biện pháp khắc phục lỗi bad sector: Chúng ta có thể sử dụng chính các công cụ miễn phí có trong hệ điều hành đã cài đặt sẵn. Với Windows XP chúng ta có thể làm như sau: chạy chương trình My Computer, click vào My Computer trong khung bên trái màn hình. Khung bên phải sẽ liệt kê các ổ đĩa có trong hệ thống, click chuột phải vào tên ổ đĩa muốn khắc phục lỗi bad sector và chọn Properties. Trên màn hình sẽ hiển thị khung Properties của ổ đĩa, click chuột vào tab Toolsàtrong khung Error-Checkingàclick Check Now…; Với các bạn thích sử dụng dòng lệnh, chúng ta làm như sau: bấm tổ hợp phím Windows+R để gọi lệnh thực thi RUN. Trong khung Open, gõ CMD và bấm Enter. Trong khung cửa sổ có dấu nhắc hiện ra, gõ chữ cái đại diện tên ổ đĩa có bad sector kèm theo dấu hai chấm, (ví dụ như D: ) và bấm phím Enter. Tại dấu nhắc, gõ lệnh CHKDSK và bấm Enter để bắt đầu tiến trình kiểm tra bad sector; Chúng ta cũng có thể sử dụng các chương trình tiện ích của hãng khác như Norton Disk Doctor, HDDRegenerator⠠??để đánh dấu không sử dụng các bad sector.4. Các bad sector được khắc phục như thế nào tại HDDLABVN.COM:
Như chúng ta đều biết, firmware là rất quan trọng đối với mỗi HDD, nó quyết định hoạt động quan trọng của ổ đĩa cứng: đọc và ghi. (Các bạn có thể tìm đọc thêm thông tin về firmware của HDD tại địa chỉ website: hddlabvn.com) Công nghệ HDD sử dụng nhiều modules để tạo nên firmware điều khiển các hoạt động căn bản cấp thấp của ổ đĩa cứng. Một số modules được sử dụng để điều khiển sự dịch chuyển đầu đọc/ghi, một số khác sẽ giúp chúng ta khắc phục các bad sector trong đó quan trọng nhất là 2 modules: P-List(Primary List) và G-List(General List). Mọi HDD đều có bad sector ngay từ khi xuất xưởng và P-List làm nhiệm vụ kiểm soát, ngăn không cho hệ thống sử dụng chúng. Nhà sản xuất sử dụng các phần cứng và phần mềm riêng để đưa các bad sector vào P-List, người dùng không thể can thiệp vào đây. Với các phần mềm tiện ích miễn phí và có phí, người dùng có thể đưa các bad sector vào G-List và như vậy là chúng ta đã an toàn, hệ thống sẽ không đọc/ghi vào sector đó nữa. Tuy nhiên, khi P-List và G-List bị lỗi, hỏng các bad sector không được kiểm soát và sự khó chịu không mong đợi đã xảy đến: “Mất dữ liệu”. Đây là một trong những lý do cho chúng ta thấy không hề có cái gọi là “cắt” hay “thay thế” bad sector…
(Bài viết đã đăng trên tạp chí Tự động hóa, số 91 tháng 3-2008)