PC-3000 Flash: Khôi phục dữ liệu từ thiết bị NAND Flash 

Bài viết dưới đây là quy trình khôi phục dữ liệu NAND Flash hiệu quả và chính xác nhất, với kinh nghiệm từ đội ngũ chuyên gia ACELab và được tổng hợp bởi Cứu dữ liệu Bách Khoa. Chúng tôi sẽ hướng đến những phương pháp quan trọng, hữu ích không chỉ đối với kỹ thuật viên mà còn với người dùng phổ thông.

1. Tìm hiểu về ECC

Cách sửa lỗi cơ bản trong RAM là thuật toán ECC –  cách sửa dữ liệu đơn giản nhất. Thông thường, bộ điều khiển đưa vào mỗi trang thông tin bổ sung, được gọi là Khu vực dự phòng (SA – Spare Area). Nó chứa một số điểm đánh dấu (ví dụ: điểm đánh dấu để xây dựng hình ảnh), các màu khác nhau và Mã sửa lỗi (ECC). ECC là dữ liệu mở rộng đặc biệt dựa trên thông tin người dùng được viết ban đầu. Dữ liệu mở rộng này giúp tìm kiếm các lỗi bit trong các sector hoặc vùng và sửa chúng thông qua một công thức toán học đặc biệt. Thông thường, mã ECC có độ dài đặc biệt là số byte được chọn để sửa lỗi. Số byte ECC lớn nhất cho phép bạn sửa nhiều lỗi hơn trong từng sector và vùng lưu trữ.

Khoi phuc du lieu tu thiet bi NAND Flash 1

Trong quá trình đọc chip bộ nhớ NAND, một số lỗi bit có thể xuất hiện. Số lượng bit lỗi phụ thuộc vào các yếu tố sau:

  • Loại chip bộ nhớ NAND (SLC, MLC, TLC, QLC)SLC, MLC, TLC, QLC).
  • Độ sạch của các điểm tiếp xúc: các chip bẩn thường đọc tệ hơn
  • Ảnh hưởng của nhiệt độ: Nhiệt độ cao trong quá trình tháo chip có thể làm hỏng các cell.
  • Mức độ hao mòn của tế bào NAND: Nếu thông tin trên thiết bị NAND được viết lại hàng trăm lần thì chất lượng của cell nhỏ sẽ giảm và chúng được đọc với rất nhiều lỗi.
  • Chất lượng chip thấp: Ngày nay các nhà sản xuất thường cắt giảm chi phí sản xuất. Ví dụ: một quy trình công nghệ nhỏ để nén kích thước của một cell, dẫn đến lỗi xuất hiện trong các ổ Flash mới.

Nếu bạn muốn đạt được tốc độ khôi phục tối đa từ ổ Flash, trước hết, bạn cần sửa càng nhiều lỗi ECC (Error correction code) càng tốt. Nếu không, tất cả dữ liệu sẽ bị hỏng, không thể hoạt động được hoặc bị hỏng một phần:

Khu vực MBR phổ biến từ chip SLC NAND cũ có kích thước trang là 2112 byte và kích thước sector là 528 byte:

Khoi phuc du lieu tu thiet bi NAND Flash 2

  • Màu vàng: vùng DA – 512 byte
  • Màu xanh dương: các điểm đánh dấu thứ tự khối trong logic hình ảnh của số khối để xây dựng lại hình ảnh – 6 byte
  • Màu xanh lục: mã sửa lỗi ECC – 10 byte

Khoi phuc du lieu tu thiet bi NAND Flash 3

PC-3000 đang cố gắng tìm tất cả các lỗi bit:

Khoi phuc du lieu tu thiet bi NAND Flash 4

Và áp dụng ECC để sửa lỗi:

Khoi phuc du lieu tu thiet bi NAND Flash 5

Dưới đây là trường hợp thực tế về chip Micron 4GB, ID là 0x2C44444B

Lưu ý bạn chỉ nên để tự động phát hiện ECC trên biểu đồ chuyển đổi (không phải trên chip). Nếu bạn tự sửa ECC trên chip có thể phát sinh các lỗi khác nhau. Đừng lãng phí thời gian để sửa ECC trên các chip.

Khoi phuc du lieu tu thiet bi NAND Flash 6

Khoi phuc du lieu tu thiet bi NAND Flash 8

Khoi phuc du lieu tu thiet bi NAND Flash 7

Trong một số trường hợp trước khi phát hiện và sửa ECC, bạn nên kiểm tra kết xuất của mình để tìm byte xấu hoặc áp dụng XOR (chủ yếu dành cho bộ điều khiển ITE, SSS, AU) và chỉ sau đó mới phát hiện ECC trên biểu đồ.Trong trường hợp SLC và MLC NAND cũ thì việc chỉnh sửa ECC sẽ không thể thực hiện được cho đến khi bạn thực hiện Chuyển đổi trang.

2. Đọc lại dữ liệu – Rereading

Từ ví dụ bên dưới, bạn có thể thấy rằng việc điều chỉnh ECC diễn ra không tốt lắm trong trường hợp này. Chất lượng chỉnh sửa phụ thuộc vào nhiều yếu tố – và đó là lý do tại sao khi quá trình chỉnh sửa ECC kết thúc, bạn phải luôn xây dựng bản đồ bằng thông tin ECC để kiểm tra xem có bao nhiêu lĩnh vực vẫn chưa được sửa.

Khoi phuc du lieu tu thiet bi NAND Flash 9

Khoi phuc du lieu tu thiet bi NAND Flash 11

Khoi phuc du lieu tu thiet bi NAND Flash 10

Như có thể thấy từ ảnh trên, có 3,93GB các sector không hợp lệ trong tổng số 4GB, đồng nghĩa là toàn bộ kết xuất có lỗi. Các tệp đều sẽ bị hỏng. Để có được kết quả khôi phục thô lỗi bit tốt, tỷ lệ lỗi phải nhỏ hơn 5% và số lượng chuỗi phải nhỏ hơn 100 – 500. Nếu không chú ý đến số lượng chuỗi, bạn có thể phải đối mặt với thực tế là các tệp của mình đều bị hỏng mặc dù thực tế là bạn chỉ có vài MB lỗi.

Do đó, việc đọc lại dữ liệu rất hữu ích. Sau khi sửa dữ liệu bằng ECC, các lỗi còn lại sẽ được khắc phục bằng phương pháp bổ sung – Readout.

Để bắt đầu quá trình Readout, bạn cần thực hiện các bước sau:

Khoi phuc du lieu tu thiet bi NAND Flash 12

Chọn Execute tốt hơn là Run in the background (Shift) để xem lỗi đang sửa với thời gian thực.

Khoi phuc du lieu tu thiet bi NAND Flash 13

Để tất cả cài đặt theo mặc định là tốt nhất. Số lần readout tương ứng với số lần rereading (đọc lại) và tốt hơn nên để 1. Phần if success là số lần đọc lại bổ sung trong trường hợp quá trình đó giúp bạn khắc phục một vài lỗi. 

Khoi phuc du lieu tu thiet bi NAND Flash 14

Kết quả trả về rất nhanh. Một số vùng đã được sửa lỗi báo màu xanh lục và còn lại màu đỏ – vùng chưa được sửa.

Khoi phuc du lieu tu thiet bi NAND Flash 15

3. Đọc thử lại dữ liệu – ReadRetry

Rereading chưa giúp bạn sửa lỗi hoàn toàn, hãy thử Read Retry (đọc thử lại). ây là một lệnh chip NAND đặc biệt cho phép chip bộ nhớ NAND tự thay đổi điện áp. Lõi NAND bắt đầu sử dụng các mức điện áp khác nhau để sửa dữ liệu. Đó là một hệ thống tự sửa lỗi đặc biệt được trang bị trong tất cả các chip QLC/TLC và trong một số chip MLC hiện đại. Hiện tại, PC-3000 Flash hỗ trợ nhiều chế độ ReadRetry cho nhiều chip bộ nhớ QLC/TLC/MLC. Với mỗi bản cập nhật tài nguyên Flash PC-3000 hàng tuần mới, các nhà phát triển sẽ bổ sung thêm các thuật toán mới cho phần mềm này.

Khoi phuc du lieu tu thiet bi NAND Flash 16

Chọn maximal mode và nếu ReadRetry hoạt động, kết quả trả về sẽ khiến bạn bất ngờ:

Khoi phuc du lieu tu thiet bi NAND Flash 17

4. Tối ưu chip với Complex operations

Bạn có thể tiết kiệm một chút thời gian bằng cách sử dụng tính năng Hoạt động phức tạp – Complex operations. Nếu bạn chọn nó, phần mềm PC-3000 sẽ tự động tạo bản đồ các khu vực không hợp lệ và hỏi bạn về các tùy chọn đọc lại – rereading. Tuy nhiên, bạn sẽ không thể chọn số lượng chuỗi, thứ tự của chúng, v.v. Vì vậy, mặc dù nó sẽ tiết kiệm thời gian của bạn bằng quá trình tự động, nhưng cuối cùng, bạn có thể thấy rằng các chuỗi cần thiết vẫn chưa được sửa.

Khoi phuc du lieu tu thiet bi NAND Flash 18

Khoi phuc du lieu tu thiet bi NAND Flash 20

Khoi phuc du lieu tu thiet bi NAND Flash 19

Hãy nhớ rằng nếu bạn gặp trường hợp có nhiều hơn 1 con chip, bạn cần chắc chắn rằng mình đã đọc lại đúng con chip. Đôi khi, bạn có thể quên lắp lại chip đầu tiên vào PC-3000 Flash Reader sau khi đọc lại kết xuất xong. Vì vậy, khi quá trình hiệu chỉnh ECC kết thúc, bạn có thể thử đọc lại chip đầu tiên (phần 0 trên biểu đồ chuyển đổi) trong khi có chip thứ hai trong Reader. Vì vậy, cuối cùng, bạn sẽ nhận được hai phần tương tự nhưng khác nhau. Vì vậy hãy chú ý đến con chip bạn có trong đầu đọc trước khi bắt đầu quá trình đọc lại.

Khoi phuc du lieu tu thiet bi NAND Flash 21

5. Điều khiển điện áp vào

Điều khiển điện áp chỉ có thể trợ giúp trong những trường hợp khó khăn nhất khi số lượng lỗi bit vẫn rất cao ngay cả sau quy trình sửa và đọc lại ECC. Về cơ bản, điều khiển điện áp là một loại thao tác ReadRetry nhưng ở chế độ thủ công. Thay vì chip tự thiết lập điện áp, bạn tự đặt điện áp để đọc từng trang trong chip NAND bằng phần mềm điều khiển.

Khoi phuc du lieu tu thiet bi NAND Flash 22

Mỗi con chip đều có nhiệt độ mà nó đang hoạt động. Tùy thuộc vào nhiệt độ mà điện áp của chip cũng thay đổi. Ở đây bạn có thể xem bảng với giá trị gần đúng của nhiệt độ và điện áp. Đôi khi các giá trị trong bảng này có thể thay đổi do sự cố bên trong chip và do điện áp sai, bạn sẽ không thể đọc lại các sector.

Bạn chỉ có thể làm cách này trong trường hợp:

  • PC-3000 Flash Reader 3.0 + bộ đổi nguồn (thế hệ cũ)
  • PC-3000 Flash Reader 4.0 tích hợp sẵn bộ đổi nguồn

Khoi phuc du lieu tu thiet bi NAND Flash 23

Khi mọi việc chuẩn bị sửa lỗi có thể đã được thực hiện nhưng số lỗi vẫn còn khoảng vài trăm MB thì chúng ta nên thử sử dụng điều khiển điện áp. Thông thường, nếu chip bộ nhớ NAND hỗ trợ ReadRetry, chúng ta không nên sử dụng các mức điện áp khác nhau – kết quả tốt nhất sẽ luôn được cung cấp bởi ReadRetry!

Nhưng đôi khi có thể xảy ra trường hợp chip của bạn không hỗ trợ phương pháp ReadRetry. Đó là lý do tại sao bạn cần cố gắng đo lường dải điện áp và bắt đầu quy trình hiệu chỉnh.

Sau khi bạn đã sửa ECC, đọc và xây dựng bản đồ các bad sector, bạn cần vào menu đọc lại và chọn tính năng tiếp theo:

Khoi phuc du lieu tu thiet bi NAND Flash 24

Nếu bạn chọn More và chọn tiếp ReadRetry method checking, bạn có thể kiểm tra tỷ lệ đọc thử lại thành công và chọn phương án tốt nhất. Trong nhiều trường hợp, phần mềm tự chọn trường hợp tốt nhất nhưng thỉnh thoảng bạn sẽ phải tự làm việc đó.

Khoi phuc du lieu tu thiet bi NAND Flash 25

Khoi phuc du lieu tu thiet bi NAND Flash 27

Khoi phuc du lieu tu thiet bi NAND Flash 26

6. Kiểm soát nhiệt độ

Đôi khi việc điều khiển điện áp vào cũng không giúp bạn có kết quả đọc lại tốt. Vậy bạn nên làm gì tiếp theo?

Có thêm 1 cách khác để cải thiện kết quả sửa lỗi NAND Flash đó là kiểm soát nhiệt độ. Ở một số chip nhớ, nhiệt độ rất thấp (-15 đến -20 độ C) sẽ giúp điện dẫn vào chip nhanh và ổn định hơn, từ đó cung cấp kết quả tốt hơn.

Khoi phuc du lieu tu thiet bi NAND Flash 28

Ngược lại trong một số trường hợp, nếu bạn làm nóng chip lên 80 đến 140 độ C, bạn cũng nhận được một kết quả đọc lại tốt. Nhưng cần chú ý nhiệt độ quá cao có thể làm tan chảy nhựa bảo vệ và gây tổn hại tới đầu đọc.

Khoi phuc du lieu tu thiet bi NAND Flash 29

Hy vọng rằng bài chia sẻ về các phương pháp khôi phục dữ liệu từ NAND Flash trên đây sẽ giúp bạn có thêm phương án về xử lý khi dữ liệu trong ổ cứng bị tổn hại. Ngoài ra nếu gặp bất kì vấn đề gì với dữ liệu ổ cứng, USB hay các thiết bị lưu trữ khác, hãy liên hệ tới Cứu dữ liệu Bách Khoa qua số máy 1900 636 196 để được hỗ trợ nhé!.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1900636196