Kiểm tra kích thước thật của ổ USB


28

Gần đây tôi đã đọc rất nhiều về thẻ MicroSD giả và ổ USB cho rằng có rất nhiều dung lượng (ngay cả khi bạn hỏi máy tính của bạn), trong khi thực tế cung cấp ít hơn. Gần đây tôi đã mua một ổ USB SanDisk (yêu cầu 128 GB) và muốn kiểm tra kích thước của nó. Nó không được mua qua ebay hoặc một cái gì đó, nhưng tôi thực sự muốn kiểm tra kích thước thật trước khi sử dụng nó một cách hiệu quả.

Tôi chỉ có thể sao chép nội dung trên đó, sao chép lại và xem các tập tin có ổn không. Tôi cũng có thể tự động hóa nó bằng Băm và các thứ. Nhưng tôi hy vọng có một giải pháp chính xác hơn. Tôi đọc nó cho Windows, H2testw thực hiện thủ thuật này. Có cách nào dễ dàng để kiểm tra điều này trên Ubuntu / Linux không? Một công cụ chuyên ngành, làm việc tốt có thể?

Cập nhật: Để rõ ràng, ý tưởng là để xác minh rằng kích thước mà hệ thống linux được bộ điều khiển nói là chính xác ( vì vậy sẽ không có dữ liệu nào bị mất ). Không giống như tôi muốn xem nếu tôi nhận được 128 GB thay vì 127,3 GB. Tôi muốn kiểm tra nếu tất cả dữ liệu tôi viết sẽ có thể đọc lại được. Thật không may, tôi chỉ có thể tìm thấy một vài thông tin về điều này trên các trang web công nghệ tiếng Anh. Có những nguồn tốt của Đức, mặc dù. Tôi thực sự đang tìm kiếm một ứng dụng như thế, nhưng cho Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-c gặpfeit-usb-flash-drive-buy-from -ebay-với-h2testw /

Update2: Tôi đã cố gắng tập hợp một số nguồn bằng tiếng Anh. Tôi đã không đọc tất cả chúng một cách chi tiết, do mất thời gian.

Cập nhật3: Giải thích

Do những chỉ trích kỳ lạ dưới đây, một số giải thích.

Vấn đề là gì và tại sao dd một mình không giải quyết nó?

Đây là một phản ứng với

"Rõ ràng tìm ra vấn đề bạn đang cố gắng giải quyết là gì và định nghĩa của" ổ đĩa giả "là gì."

Có vẻ như một số người không hiểu vấn đề. Vì vậy, tôi cố gắng giải thích nó ngắn nhất có thể, mặc dù tôi nghĩ rằng điều này rất nhiều cho câu hỏi của tôi.

Dung lượng của các thiết bị usb hệ điều hành của bạn hoặc các công cụ unix cung cấp cho bạn, có thể sai. Điều này gây tử vong, vì HĐH của bạn quy định lượng dữ liệu bạn có thể gửi đến. Gửi nhiều dữ liệu hơn mức thực sự có thể giữ, bạn sẽ bị mất dữ liệu. Đây là một vấn đề. Vì vậy, tại sao điều này có thể xảy ra?

Bạn không cần phải biết rõ về Giao thức USB để hiểu rõ vấn đề. Giao diện nối tiếp có đặc tính chung là thiết bị khách (ổ USB) sẽ cần cho biết dung lượng của chính nó thông qua giao diện nối tiếp này. Điều này có nghĩa là thiết bị khách cần bộ điều khiển riêng với một số kiến ​​thức về mục đích của thiết bị và trong trường hợp này là dung lượng. Nó cũng quyết định những gì được thực hiện, khi nó nhận được lệnh để lưu trữ một cái gì đó. Nếu bộ điều khiển được lập trình theo cách đó, nó có thể bỏ qua lệnh hoặc ghi đè lên một cái gì đó với dữ liệu.

Điều đó có nghĩa là gì? Bất cứ công cụ unix nào của bạn cho bạn biết về dung lượng của ổ đĩa: Đó là những gì các công cụ yêu cầu ổ đĩa, không có gì nữa. Đây là những gì h2testw đã được phát minh ra: Nó kiểm tra kích thước thật bằng một phương pháp được giải thích sau đó và so sánh nó với những gì ổ đĩa nói. Nếu điều này không giống nhau, bạn có thể bị mất dữ liệu, bởi vì tất cả các hoạt động chung của bạn để lưu trữ dữ liệu, dựa vào thông tin của hệ điều hành của bạn, chỉ cần hỏi bộ điều khiển. Tại sao chỉ hỏi? Kiểm tra cần thời gian và ghi đè tất cả dữ liệu trên ổ đĩa. Vì vậy, điều tự nhiên là một Hệ điều hành cần phải dựa vào thông tin này.

Để kiểm tra dung lượng thực như h2testw, bạn thực sự có thể sử dụng ddđể ghi dữ liệu trên ổ đĩa, đọc lại và xem nó có giống như bạn đã viết không. Hoàn toàn hợp pháp. Bản chất của phần cứng và ổ đĩa làm cho nó phức tạp hơn. Hãy xem xét các bộ đệm ghi chẳng hạn. Bạn cần đảm bảo rằng bạn không đọc từ bộ đệm. Đây chỉ là một ví dụ về lý do tại sao nó không dễ dàng như vẻ ngoài của nó. Cũng nghĩ rằng chỉ viết số không có nghĩa là một entropy thông tin thấp, có thể được xây dựng lại khi đọc. Nó không dễ dàng đến từng chi tiết. Bạn vẫn có thể làm nó bằng tay, tất nhiên.

Nhưng tại sao, khi bạn có thể tự động hóa mọi thứ? Tại sao phải làm việc? f3 như được đề xuất trong câu trả lời của tôi dưới đây, thực hiện hàng tấn suy nghĩ của nhiều người đóng góp (xem xét rằng đó là loại h2testw mở rộng) và nó cũng thực hiện một số phương pháp với sự đánh đổi khác nhau. Nhà phát triển đã tìm ra các thủ thuật của các ổ đĩa giả khác nhau (còn gọi là ổ đĩa giả) mà họ có trong tay . Vì vậy, trong khi tôi hiểu lý thuyết và vấn đề (dường như các vấn đề được giải thích rõ trên phương tiện công nghệ Đức, nhưng không phải trong phương tiện nói tiếng Anh), tôi không giả vờ hiểu mọi thứ, đó là lý do tại sao tôi đề cập đến nó ở trên. Đó chỉ là lý thuyết mà tôi hiểu, và tôi là một người làm phần mềm nhiều hơn. Nhưng là một sinh viên tin học, tôi hiểu nó đủ rõ để thấy vấn đề.

"Cố gắng hiểu các tiện ích Unix cơ bản"

Trên thực tế tôi đã trả lời câu hỏi này rồi, nhưng để làm rõ: các công cụ Unix chỉ sử dụng Giao thức USB (tất nhiên chỉ dành cho thiết bị USB) để thu thập thông tin. Nó không có ý nghĩa để làm nhiều hơn thế.

Nó có giúp chỉ mua từ các nhà cung cấp tin tưởng?

tl; dr: Không.

"Khi nói đến việc mua hàng hóa, giống như bất kỳ hình thức bảo mật nào, hãy xem xét việc tìm một người bán đáng tin cậy và chỉ mua các ổ đĩa từ họ."

Bảo mật (và an toàn) KHÔNG phải là về niềm tin! Đó là về xác minh và xác nhận! Xin lỗi nhưng điều này là sai theo nhiều cách.

Giả sử bạn mua thông qua một người bán đáng tin cậy. Một số câu hỏi:

  1. Nhà cung cấp đã kiểm tra phần cứng để đảm bảo không có mất dữ liệu? Có nhận ra khi anh ta mua ổ đĩa giả và bán chúng? Không cần thiết.

  2. Có thể là anh ta mua những thứ anh ta không biết là giả? Hoàn toàn, hãy nhìn vào các giả mạo ryzen gần đây: https://www.pcgamer.com/bnterest-of-fake-ryzen- Processors-sell-on-amazon / , https://www.heise.de/newsticker/meldung/ Direkt-von-Amazon-Faelschungen-von-AMDs-Ryzen-Prozigatoren-im-Umlauf-3772757.html

  3. Nếu tôi thả bài thuyết trình của mình vào ổ đĩa và làm hỏng bài thuyết trình, liệu nhà cung cấp đáng tin cậy của tôi có quay ngược thời gian và giải cứu tôi không? Nó có thể sẽ thay thế ổ đĩa, vì DeLorean du hành thời gian cuối cùng đã bị phá hủy vào năm 1885.

Những thứ khác

"Câu hỏi này thực sự có vẻ giống như" quảng cáo "hơn cho những gì OP thích, và dường như OP ít quan tâm đến việc thực sự kiểm tra các ổ đĩa."

Chuyện này thật vớ vẩn. Tôi đã tìm kiếm cụ thể cho một công cụ tương tự như h2testw cũng chạy trên linux. Và vâng, đó là những gì tôi "thích", câu trả lời hữu ích, rất xin lỗi. Tôi không biết rằng báo chí nói tiếng Anh không biết về những vấn đề như vậy và thật may mắn khi tìm thấy một cái gì đó như thế sau này. Đây không phải là một quảng cáo, nhưng thực sự có vẻ như bạn có thể sử dụng nó.


2
Không có nhiều điểm để kiểm tra nó, đi theo những gì máy tính nói là có sẵn, hoặc df --block-size=M. Giới hạn 4GB sẽ đề xuất rằng đó chỉ là giới hạn kích thước tệp FAT32, không phải dung lượng ổ đĩa. Bạn sẽ không bao giờ có được toàn bộ công suất đã nêu, đó là mức trung bình chỉ để phân loại nó.
Sir_Scofferoff

6
Những gì máy tính nói là có sẵn chỉ là những gì anh ta nhận được bởi bộ điều khiển của ổ đĩa USB. Ổ đĩa giả đang nói dối. Nếu nó có dung lượng 4GB nhưng tuyên bố có 512GB, phần còn lại tôi viết sẽ bị vứt đi hoặc không gian cũ sẽ bị ghi đè, tùy thuộc vào bộ điều khiển. Vì vậy, thực sự có một điểm trong thử nghiệm nó.
xác nhận

hay đấy. ý nghĩ thậm chí chưa bao giờ xảy ra với tôi về việc làm giả kích thước của SSD, nhưng tôi thích ý tưởng về cách họ ghi dữ liệu và đọc lại từng byte theo từng byte để kiểm tra tính nhất quán. tôi có thể thấy làm thế nào điều này có thể là một vấn đề và một công cụ như thế này có thể hữu ích.

1
FakeFlashCheck cũng có một bản quét nhanh. Có bất kỳ OSALT cho điều đó?
neverMind9

PS: Tôi đã tìm thấy f3probe. Xem bình luận của tôi dưới đây.
neverMind9

Câu trả lời:


33

f3 - Chống gian lận Flash

Chỉ có một lựa chọn duy nhất tôi tìm thấy, nhưng tôi nghĩ rằng nó thậm chí còn tốt hơn h2testwcông cụ ban đầu cho MS Windows. May mắn thay, nó thực sự dễ sử dụng, ngay cả từ dòng lệnh. Có GUI có sẵn, mặc dù. Ngoài ra còn có rất nhiều thông tin về việc triển khai và vấn đề với các ổ đĩa giả trên trang web công cụ.

f3 cung cấp hai phương pháp:

  • Phương pháp f3probe: Nhanh hơn nhiều
  • Phương pháp h2testw: Chậm hơn. Cũng kiểm tra hiệu suất R / W. Có lẽ đáng tin cậy hơn.

Phương pháp f3probe (được khuyến nghị)

f3probelà một cách để kiểm tra các ổ đĩa, không chính xác nhưng nhanh hơn vì nó không ghi trên toàn bộ ổ đĩa. Bạn có thể đọc thêm về nó trên trang web công cụ. Nếu bạn muốn chắc chắn 100%, tốt hơn nên sử dụng phương pháp h2testw. Như nhà phát triển mô tả trên trang web:

f3probe là cách nhanh nhất để xác định ổ đĩa giả và kích thước thật của chúng.

Và:

Cuối cùng, nhờ f3probe là phần mềm miễn phí và một khi f3probe được chứng minh là trận chiến, f3probe có thể được nhúng trên điện thoại thông minh, máy ảnh, máy nghe nhạc MP3 và các thiết bị khác để dừng một lần và cho tất cả sự phát triển của đèn flash giả.

Ngoài ra còn có một ví dụ sử dụng trên trang web:

Cảnh báo : Điều này sẽ phá hủy mọi dữ liệu được lưu trữ trước đó trên đĩa của bạn!

$ sudo f3probe --destructive --time-ops /dev/sdb
[sudo] password for michel: 
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing may **demolish data,** so it is more suitable for flash drives out of the box, without files being stored yet. The process normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient. 

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=16477878 /dev/sdb

Device geometry:
             *Usable* size: 7.86 GB (16477879 blocks)
            Announced size: 15.33 GB (32155648 blocks)
                    Module: 16.00 GB (2^34 Bytes)
    Approximate cache size: 0.00 Byte (0 blocks), need-reset=yes
       Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'13"
 Operation: total time / count = avg time
      Read: 472.1ms / 4198 = 112us
     Write: 55.48s / 2158 = 25.7ms
     Reset: 17.88s / 14 = 1.27s

Lưu ý rằng nó cũng trả về một lệnh cho phép bạn sử dụng ổ đĩa với kích thước thật, sử dụng f3fix.

Công cụ f3fix

f3fix tạo một phân vùng phù hợp với kích thước thực của ổ đĩa giả. Sử dụng f3probeđầu ra để xác định các tham số cho i3fix

sudo f3fix --last-sec=16477878 /dev/sdb

Phương thức h2testw / Kiểm tra hiệu năng với f3read / f3write

F3 là tập hợp các công cụ xử lý các ổ đĩa flash giả. Hai trong số họ cùng thực hiện h2testw-Method:

f3write [--start-at=NUM] [--end-at=NUM] <PATH>
f3read  [--start-at=NUM] [--end-at=NUM] <PATH>

f3writesẽ yêu cầu các thiết bị có kích thước được yêu cầu và điền vào các tệp được tạo với kích thước 1gb mỗi tệp. f3readsẽ đọc tất cả các tập tin đó và xem chúng đã hoàn thành và không bị hỏng. Ví dụ, các lệnh tôi đã sử dụng để kiểm tra ổ ngón tay ~ 128gb của mình:

$ f3write /media/username/1EB8021AB801F0D7/
Free space: 117.94 GB
Creating file 1.h2w ... OK!                           
...
Creating file 118.h2w ... OK!                         
Free space: 0.00 Byte
Average writing speed: 11.67 MB/s

Bây giờ để kiểm tra xem các tập tin được lưu trữ chính xác:

$ f3read /media/username/1EB8021AB801F0D7/
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
...
Validating file 118.h2w ... 1979488/        0/      0/      0

  Data OK: 117.94 GB (247346272 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 32.38 MB/s

Thử nghiệm cho một ổ đĩa có kích thước này mất khoảng ba giờ với phương pháp này và đôi khi gây ra tải đĩa nặng trên máy tính của tôi, nhưng nó nói với tôi là chính xác nhất.

Cài đặt trong Ubuntu

Trên thiết bị đầu cuối:

sudo apt install f3

Điều này sẽ mang lại cho bạn: f3brew, f3fix, f3probe, f3read, f3writevới các trang người đàn ông của họ.

Công cụ này là một phần của f3gói, ít nhất có sẵn trên Ubuntu 15.10. Theo trang web, có một số công cụ có sẵn. Để có được họ hãy xem trang web.
Gói này đi kèm với các trang hướng dẫn ngắn nhưng hữu ích, mặc dù tôi nghĩ rằng họ bỏ lỡ một số thông tin từ trang web về sự khác biệt của f3read / write và f3probe chẳng hạn, đó là lý do tại sao câu trả lời này dài hơn một chút.


2
Cảm ơn đã giới thiệu công cụ tuyệt vời này. Chỉ muốn nói thêm rằng cài đặt sử dụng apt-getsẽ cài đặt f3readfwrite chỉ khi f3probef3fixđược coi là thực nghiệm. Nếu muốn sử dụng chúng, bạn sẽ phải xây dựng chúng từ nguồn sử dụng make experimentalsau khi cài đặt các phụ thuộc của chúng sudo apt-get install libudev1 libudev-dev libparted0-dev. Xem github.com/AltraMayor/f3#the-extra-appluggest-for-linux
Ahmed Essam

"[f3probe] không còn thử nghiệm nữa mà chỉ khả dụng trên Linux." github.com/AltraMayor/f3/issues/78#issuecomment-378599141
xác nhận

4

Tôi đã viết một công cụ đơn giản cho nó, nó được gọi là Dung lượng (ảnh chụp màn hình) và nó có GUI cũng như CLI.

Có sẵn tệp nhị phân được biên dịch sẵn cho Debian 7 , rất có khả năng hoạt động vượt trội trên hệ thống Ubuntu hiện đại.

Tôi đã viết nó cho mục đích sử dụng cá nhân của riêng tôi vì tôi không thể tìm thấy một công cụ đồ họa cho mục đích này. Bạn chỉ cần gắn ổ flash USB trống trước, chọn nó và bắt đầu kiểm tra. Đây là một công cụ rất ngu ngốc vì tất cả những gì nó làm là lấp đầy ổ đĩa bằng các tệp và sau đó xác minh rằng dữ liệu trên ổ đĩa là chính xác. Nó sẽ hủy bỏ bài kiểm tra về lỗi đầu tiên (viết hoặc đọc / xác minh). Nó sẽ báo cáo phần bù của đoạn không thể ghi hoặc xác minh thành công, nhưng đây là phần bù logic nên thông tin này có thể vô dụng vì nó phụ thuộc vào hệ thống tệp nơi tệp được đặt trên ổ đĩa. Tuy nhiên, khi ổ đĩa chứa đầy dữ liệu và mọi thứ có thể được đọc và xác minh, sẽ an toàn khi cho rằng dung lượng được báo cáo của ổ đĩa là chính xác. Như một lưu ý phụ,

Một lần nữa, nó rất đơn giản vì nó chỉ hoạt động với các tệp trên đầu một hệ thống tệp hiện có. Vì vậy, có một số KB (bộ đệm + 1M) không thể được kiểm tra. Và nó rất chậm vì nó thực sự lấp đầy toàn bộ hệ thống tập tin. F3 chắc chắn phức tạp hơn nhiều và cũng nhanh hơn, nhưng nó không có GUI. Lý do duy nhất có khả năng tồn tại là vì nó có GUI để người dùng không quen sử dụng dòng lệnh hoặc những người chỉ đơn giản thích GUI.

Phản hồi được đánh giá cao.


Như đã nêu trên trang web của nhà phát triển, có sẵn GUI GUI và GUI cho OSX (tôi đã không thử chúng). Tôi nghĩ rằng nó dựa trên QT4, mặc dù. Tại sao không sử dụng F3 như một phụ trợ quá? Nó sẽ không làm cho công cụ của bạn phức tạp hơn và nó có thể sẽ làm cho nó hoạt động hiệu quả hơn, sử dụng kiến ​​thức đã chi cho F3.
xác nhận

-6

Giải quyết hành vi của OP và "ổ đĩa giả"

Tôi đang chỉnh sửa câu trả lời để giải quyết đúng một vài điểm, vì OP đã rất kịch liệt (và theo tôi, phản đối hầu hết các bình luận và câu trả lời ngoại trừ chính họ, điều mà tôi thấy nghi ngờ). Đặc biệt, có rất nhiều tuyên bố rằng có tồn tại "ổ đĩa giả", nhưng không có định nghĩa rõ ràng về những gì trên trái đất thực sự có nghĩa là gì. OP tuyên bố:

Tôi chỉ có thể sao chép nội dung trên đó, sao chép lại và xem các tập tin có ổn không. Tôi cũng có thể tự động hóa nó bằng Băm và các thứ. Nhưng tôi hy vọng có một giải pháp chính xác hơn.

Bản thân OP thừa nhận rằng họ "chỉ có thể sao chép nội dung" và xác minh tính toàn vẹn dữ liệu, nhưng rất phản đối tất cả các nhận xét và câu trả lời khác đề xuất bất cứ điều gì khác và OP chỉ tiếp tục đẩy F3 là "thỏa thuận thực sự". Bản thân câu hỏi ban đầu bắt đầu về kích thước của ổ đĩa, nhưng sau đó OP vì bất kỳ lý do gì đã đề cập đến băm để "xem các tệp có ổn không", như thể có các ổ đĩa bí ẩn yêu cầu một kích thước và cho phép bạn viết kích thước đó, nhưng sau đó dữ liệu bị hỏng. Do đó, tôi thấy rất đáng ngờ và sẽ coi OP quảng bá F3 là câu hỏi và câu trả lời về thư rác.

Khi một ổ đĩa thực sự là ổ đĩa giả

Trong câu hỏi, định nghĩa rõ ràng của OP là

".. ổ đĩa tuyên bố rằng có nhiều dung lượng (thường được mang quá xa, như 128 GB), trong khi vật lý chỉ cung cấp 0,5 đến 4 GB."

Nói cách khác, theo OP, bộ điều khiển yêu cầu lượng dữ liệu X, nhưng USB chỉ có thể chứa thứ gì đó ít hơn 80-90% so với yêu cầu.

Người dùng sudodus đề xuất trong bình luận (nhấn mạnh thêm):. "Tôi đã tìm thấy rằng một số Pendrives USB là hơi nhỏ hơn so với kích thước danh nghĩa tôi gọi họ là cở Tôi nghĩ rằng ổ đĩa giả mạo được. 'Cở nhỏ đáng kể' (thường là một nửa kích thước danh nghĩa hoặc ít hơn ) ". Định nghĩa này là tuyệt vời, tuy nhiên nếu chúng ta thực hiện điều đó, ổ đĩa giả được xác định ở mức 50%. Một ổ đĩa yêu cầu 64 GB nhưng chỉ có thể chứa 32 GB, về mặt kỹ thuật sẽ mất một nửa giá trị của nó cho chủ sở hữu và chủ sở hữu chỉ có thể đặt một nửa những gì họ dự định vào ổ đĩa.

Tôi đề xuất một định nghĩa đơn giản hơn: thiết bị lưu trữ giả là thiết bị được cho là có Claimed Sizenhưng dung sai dưới 15% (và dung sai là Claimed Size ± 15 %).

Điều ± 15 %này rất hợp lý. Cũng xem xét rằng người dùng thường bị nhầm lẫn giữa các tổ chức Unix, IEEE và IEC sử dụng tiền tố nhị phân thay vì sức mạnh của 10 tiền tố cho kích thước lưu trữ dữ liệu. Sự khác biệt đạt được 20% ở mức tiền tố yotta, tuy nhiên ổ USB chưa có, vì vậy trong 20 năm tới, 15% là hợp lý. (Xem câu hỏi của Askubfox "Ý nghĩa của 'i' trong 'MiB'"Tiền tố nhị phân )

Kiểm tra ổ đĩa

Thực tế, người dùng không cần bất kỳ công cụ đặc biệt nào, ngoài những gì đã có với Ubuntu và hầu hết các hệ thống Unix tuân thủ POSIX. Hãy nhấn mạnh và viết lại định nghĩa một lần nữa:

Nếu chúng tôi không thể ghi lượng dữ liệu vào ổ đĩa và những gì chúng tôi viết nằm trong phạm vi dung sai 15%, thì ổ đĩa vẫn ổn

Cách đơn giản để thực hiện là ddchỉ cần ghi đè lên thiết bị bằng số không (và tất nhiên hãy nhớ lưu tệp của bạn trước khi bạn làm điều đó).

sudo dd if=/dev/zero of=/dev/sdb1 iflag=nocache oflag=direct bs=1                        

Lưu ý bs=1kích thước khối 1 byte. Các ddlệnh thường đưa ra một báo cáo như thế nào nhiều được viết.

$ dd if=/dev/zero of=/dev/null bs=1 count=1024
1024+0 records in
1024+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00261981 s, 391 kB/s

Chúng tôi yêu cầu nó viết 1024 byte, nó viết 1024 byte.

Danh sách chính xác hơn các bước tuân thủ định nghĩa sẽ là:

  • Chỉ ra bao nhiêu dữ liệu ổ đĩa yêu cầu (giả sử rằng bạn nghi ngờ dflà "nhầm"). Trong ví dụ này, giả sử /dev/sdb1là tệp thiết bị của tôi cho ổ USB:

    $ df -P /dev/sdb1 | awk 'NR==2{print $2}'
    115247656
    

    Lưu ý rằng -Pcờ dành cho tính di động POSIX, có nghĩa là kích thước khối dữ liệu sẽ là 1024 byte và điều đó có nghĩa là có 115247656 * 1024 byte trên ổ đĩa đó.

  • Chỉ ra mức dung sai 15% dưới mức yêu cầu ổ đĩa (115247656), có lẽ sử dụng tiện ích hỗ trợ tính toán dấu phẩy động như awk:

     $ awk 'BEGIN{printf "%d\n",115247656*(1-0.15)}'
     97960507
    
  • Tạo dữ liệu ngẫu nhiên trên ổ cứng có cùng kích thước với ổ đĩa ở bước trước để sử dụng làm điểm chuẩn: dd if=/dev/urandom of=./mytestfile.random bs=1024 count=97960507

  • Bây giờ viết dữ liệu dd if=./mytestfile.random of=/dev/sda1. Nếu ổ đĩa có thể chứa nhiều như vậy, nó là "thực". Bạn cũng có thể lấy md5sumhoặc sha1sumcủa ./mytestfile.randomvà so sánh với /dev/sda1bây giờ. Nói cách khác, cải thiện tốt hơn là ghi mytestfile.randomvào điểm gắn kết của tệp, do đó giữ cho hệ thống tệp trên ổ đĩa và phân vùng không thay đổi của ổ đĩa, nói cách khác

    dd if=./mytestfile.random of=/mountpoint/for/usb/drive/testfile.random
    
  • Đối với toàn vẹn sau đó, bạn chỉ có thể làm bất cứ kiểm tra hashsum, chẳng hạn như md5sum, sha1sum, sha256sumhoặc những người khác. Ví dụ

    md5sum ./mytestfile.random  /mountpoint/for/usb/drive/testfile.random
    

    Điểm mấu chốt ở đây là nếu lượng dữ liệu bằng văn bản nằm trong dung sai và tạo ra tổng kiểm tra chính xác trước và sau khi ghi - ổ đĩa có thể ổn.

Tất cả điều này có thể được đưa vào một kịch bản tốt đẹp cho thuận tiện, nếu ai đó mong muốn.

Phần kết luận

Câu hỏi này thực sự có vẻ giống như "quảng cáo" hơn cho những gì OP thích, và dường như OP ít quan tâm đến việc thực sự kiểm tra các ổ đĩa. Ngoài ra, vấn đề chính nó là con người hơn là vấn đề "ổ đĩa". Trong các bình luận, chính OP tuyên bố họ không thực sự hiểu hành vi của USB, nhưng kịch liệt đổ lỗi cho "bộ điều khiển". Tôi sẽ để lại câu hỏi này với 3 điểm:

  • Rõ ràng tìm ra vấn đề bạn đang cố gắng giải quyết là gì và định nghĩa của "ổ đĩa giả" là gì.
  • Cố gắng hiểu các tiện ích Unix cơ bản
  • Khi nói đến việc mua hàng hóa, giống như bất kỳ hình thức bảo mật nào, hãy xem xét việc tìm một người bán đáng tin cậy và chỉ mua các ổ đĩa từ họ.

1
Cảm ơn, nhưng tôi không chắc liệu dd có phát hiện ra kích thước thật hay không, bởi vì bộ điều khiển sẽ giả mạo rằng nó có nhiều không gian. Tôi nghĩ rằng bạn phải viết vào một tệp (hoặc nhiều tệp hơn) và kiểm tra xem bạn có thể lấy lại hoàn toàn không. Đoán có một lý do tại sao có các công cụ chuyên dụng để thử nghiệm, tiếc là chỉ có các cửa sổ. Đoán tôi sẽ phải sử dụng một VM. Vâng, nó là khá lớn trong các tin tức ở Đức một thời gian trước. (Nguồn tiếng Đức về chủ đề: heise.de/ct/ausgabe/
trộm

1
@verpfeilt Chà, tôi không nói tiếng Đức nên bài viết sẽ phải được ai đó tóm tắt hoặc dịch. Làm thế nào điều khiển giả mạo rằng nó có cùng dung lượng? ddbáo cáo lại số lượng dữ liệu mà nó đã ghi / đưa cho thiết bị, tôi không thấy nó có thể bị làm giả như thế nào.
Sergiy Kolodyazhnyy

2
Vâng, bạn có thể viết tất cả mọi thứ, nhưng điều đó không nói rằng máy khách usb sẽ lưu trữ nó. Nếu tôi hiểu chính xác, vấn đề nằm trực tiếp trong kiến ​​trúc usb. Bạn không thể chỉ gắn một số bộ nhớ flash vào nó, nhưng nó cần một con chip đáp ứng giao thức. Giống như một sơ khai ( en.wikipedia.org/wiki/Method_stub ) điều này cho phép bạn xây dựng bộ nhớ chỉ ghi (mặc dù ổ đĩa có một lượng bộ nhớ nhỏ để lưu trữ các tệp nhỏ). Đây là lý do tại sao các công cụ như h2testw tồn tại. Đây là một cái gì đó bằng tiếng Anh: myce.com/news/ từ
verpfeilt

1
@SergiyKolodyazhnyy, tôi đã thấy rằng một số ổ USB có kích thước nhỏ hơn một chút so với kích thước danh nghĩa. Tôi gọi họ là quá nhỏ . Tôi nghĩ rằng các ổ đĩa giả là "quá nhỏ" (thường là một nửa kích thước danh nghĩa hoặc ít hơn). Tôi đoán việc viết một cái gì đó vào ổ đĩa ddvà sau đó kiểm tra md5sum nên kiểm tra xem có thể viết và đọc chính xác bao nhiêu. (Tôi nghĩ rằng các công cụ đặc biệt trong @ verpfeilt của câu trả lời vẻ hấp dẫn hơn, nhưng tôi đã không kiểm tra chúng tôi có nhiều Pendrives USB và thẻ nhớ, tôi không nghĩ rằng tôi đã mua một giả nêu ra..)
sudodus

1
@SergiyKolodyazhnyy, tôi đồng ý với định nghĩa được cập nhật của bạn, 'thiết bị lưu trữ giả là thiết bị tuyên bố có Kích thước được xác nhận nhưng có dung sai dưới 15% (và dung sai là Kích thước được yêu cầu ± 15%)'. - Cảm ơn bạn đã cập nhật tuyệt vời câu trả lời của bạn :-)
sudodus 15/03/18
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.