Làm cách nào để kiểm tra thẻ nhớ cho hiệu năng và các thành phần xấu?


10

Tôi vừa mua thẻ CF mới cho máy ảnh DSLR của mình. Tôi đã thử nghiệm nó bằng Xbench (Mac OS X) và nó hoạt động như mong đợi. Tuy nhiên, tôi muốn thực hiện "quét bề mặt" (thuật ngữ đĩa di chuyển) để kiểm tra "các thành phần xấu" (thuật ngữ đĩa di chuyển). Tôi có thể bash script một quy trình bằng cách sử dụng dd, nhưng tôi có cảm giác rằng có một cách tốt hơn ngoài kia. Mục tiêu của tôi là kết luận chắc chắn rằng thẻ nhớ (CF, SD, v.v.) an toàn để sử dụng khi chụp ảnh và không cần phải trả lại trước khi cửa sổ chính sách của nhà cung cấp hết hạn 30 ngày.

Tôi chắc chắn muốn các giải pháp Mac được đưa ra ở đây. Tôi cũng muốn nhận được một vài gợi ý về Linux. Thậm chí chúng ta hãy ném xương cho người dùng windows để câu hỏi này có thể đáp ứng nhu cầu của mọi người.


Tôi hiểu rằng bộ nhớ trạng thái rắn khác với quay đĩa. Tôi không cần một bài học về điều đó. Những gì tôi cần là một cách để xác minh các thiết bị tôi sở hữu. Quá trình này rất đơn giản: Điền vào thiết bị với nội dung biết. Đọc từ thiết bị và xác minh nội dung. Nếu bạn gặp lỗi đọc hoặc viết, thất bại rõ ràng. Nếu nội dung bạn đọc khác với nội dung bạn viết, đó là thất bại ít rõ ràng hơn. Ngày nên là ngẫu nhiên và nên sử dụng nhiều chu kỳ. Những gì tôi cần là một công cụ làm điều đó. Tôi đã viết một cái, nhưng nó là một bản hack.
Bruno Bronosky

Câu trả lời:


8

Vì bộ điều khiển có thể di chuyển các khối bất cứ nơi nào nó muốn (xem mức độ hao mòn), cơ hội duy nhất cho toàn bộ ist đọc / ghi kiểm tra để lấp đầy đĩa và sau đó so sánh. Một vài lần với các mẫu khác nhau của khóa học để chắc chắn.

Và bạn vẫn sẽ không bắt được các vùng bị lỗi, vì chúng cũng bị ẩn bởi bộ điều khiển miễn là anh ta có các phụ tùng.


6

Bộ nhớ flash không hoạt động giống như các đĩa có đĩa. Khái niệm "khu vực xấu" không thực sự tồn tại với bộ nhớ flash. Ngày nay, với bộ nhớ flash và SSD, bộ điều khiển tích hợp đảm nhiệm việc xác định và đánh dấu các khối bộ nhớ không sử dụng được, di chuyển dữ liệu xung quanh để giảm thiểu các hạn chế ghi khối, v.v. Các tính năng này phổ biến hơn nhiều trong SSD, nhưng một số tính năng khác tồn tại trong thẻ flash chất lượng (như SanDisk).

Hầu hết các công cụ kiểm tra hệ thống tệp đều đưa ra các giả định cụ thể về cấu trúc vật lý của thiết bị lưu trữ (nghĩa là dựa trên đĩa, với các trụ vật lý, cung, cụm, v.v.) hoặc làm việc ở mức trừu tượng và sửa chữa "hầu như" bằng cách sử dụng tệp hoặc thư mục những cái bàn. Bạn sẽ cần một công cụ được thiết kế đặc biệt để đánh dấu các khối xấu trên thiết bị bộ nhớ flash, vì mọi thứ khác sẽ gây ra nhiều vấn đề hơn (bằng cách giả sử nó có thể khắc phục các sự cố giống như với thiết bị dựa trên đĩa) hoặc tạo ảo các bản sửa lỗi không tính đến các tính năng cấp độ phần cứng động của flash. Ngay cả khi bạn có thể đánh dấu một "khu vực" hoặc "cụm" cụ thể là "xấu", thì nó cũng không nhất thiết phải làm gì cả, vì những khái niệm vật lý đó không thực sự tồn tại trong bộ nhớ flash. Nếu thiết bị flash tiên tiến hơn và tự động di chuyển dữ liệu xung quanh để tự động bỏ qua các khối xấu và giảm thiểu các giới hạn ghi, vị trí vật lý của dữ liệu có thể nằm trong một khối xấu trong giây lát và trong một khối tốt sau đó. (Lưu ý rằng ý tưởng về khối "xấu" trong bộ nhớ flash sẽ mờ hơn nhiều so với đĩa platter ... khối bộ nhớ flash có xu hướng chết chậm, thay vì đột ngột và có thể "nhấp nháy" giữa có thể đọc / không đọc được bit trước khi nó trở nên hoàn toàn không sử dụng được.)

Nói chung, khi nói đến flash, hãy để thiết bị tự quản lý từ góc độ khối xấu. Các nhà sản xuất khác nhau cấu trúc và lưu trữ dữ liệu theo những cách khác nhau và mỗi người có thể có mức độ và số lượng hành vi động khác nhau để di chuyển dữ liệu xung quanh để tránh một số hạn chế của bộ nhớ flash. Cố gắng tự quản lý nó có thể gây ra nhiều vấn đề hơn nó giải quyết và có thể khiến đĩa flash của bạn trở nên vô dụng trong thời gian dài.

Nếu bạn muốn tránh thẻ flash xấu, tôi khuyên bạn nên sử dụng các thương hiệu có uy tín. Tôi đã từng thử nhiều loại thẻ flash trong quá khứ, tuy nhiên SanDisk là nhãn hiệu duy nhất mà tôi đã sử dụng, ít nhất là cho đến nay, chưa bao giờ thất bại. Tôi có một số thẻ SDHC 4, 8 và 16 gig mà tôi sử dụng khá nhiều và thường xuyên lấy máy ảnh ra và nhét vào máy tính xách tay hoặc máy tính của tôi và chúng vẫn hoạt động hoàn hảo. (Một số đã vài tuổi.)


1
Các khối xấu có thể tồn tại với bất kỳ thiết bị khối nào: nếu tôi ghi một số dữ liệu vào một khối cụ thể, nhưng tôi không thể đọc lại, đó là một khối xấu. Bộ điều khiển có thể ẩn vấn đề này để ghi, bằng cách ghi dữ liệu ở nơi khác, nhưng không phải để đọc.
Vaddadi Kartick

3

Trong Linux, lệnh bạn muốn là badblocks. Dường như có một cổng này cho Mac OS X như một phần của cổng ext2-for-os-x này - cài đặt toàn bộ và bỏ qua mọi thứ trừ /usr/local/sbin/badblockslệnh.

Điều đó nói rằng, điều này sẽ giúp kiểm tra, nhưng tôi không nghĩ nó sẽ có kết luận, vì trước tiên như Leonidas nói, bạn không thực sự có quyền truy cập thô vào bộ nhớ flash nên rất khó để quét toàn bộ và cũng vì thất bại mới có thể xuất hiện sau khi thử nghiệm, thậm chí có thể được kích hoạt bởi nó.


1

Đọc bình luận của bạn bên dưới câu hỏi, tôi tin rằng F3 thực hiện chính xác những gì bạn muốn. Nó biên dịch trên Linux / Mac OS X và cũng có sẵn thông qua Homebrew.


-1

Tôi đã tìm thấy điều này trên google, tôi không sử dụng thẻ sd để lưu trữ máy ảnh mà thay vào đó, tôi đã nhận được lớp 10 32 gigs sdhc sandisk bị hỏng hoàn toàn sau chưa đầy 2 năm sử dụng trên samsung galaxy S2 của tôi.

Tôi đang sử dụng badblocks để xem nơi các badblocks đầu tiên bắt đầu và sau đó tôi sẽ tạo các phân vùng xung quanh khu vực đó nếu có thể. đây là giải pháp hiện tại rất rất xấu của tôi: /


bạn có thể giải thích về câu trả lời của bạn? Dựa trên một tìm kiếm nhanh, tôi đoán "badblocks" là một chương trình Linux? Liệu nó có làm những gì OP yêu cầu?
MikeW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.