Недавно я много читал о поддельных картах MicroSD и флэш-накопителях USB, которые утверждают, что имеют много места (даже если вы спрашиваете компьютер), но физически предлагают намного меньше. Я недавно купил USB-накопитель SanDisk (заявлено 128 ГБ) и хочу проверить его размер. Это не куплено через ebay или что-то, но я действительно хочу проверить реальный размер прежде, чем использовать это продуктивно.
Я мог бы просто скопировать материал на него, скопировать обратно и посмотреть, все ли в порядке. Я мог бы также автоматизировать это с помощью хэшей и прочего. Но я надеялся, что есть более точное решение. Я читал, что для Windows H2testw делает свое дело. Есть ли простой способ проверить это на Ubuntu / Linux? Может быть, специализированный, хорошо работающий инструмент?
Обновление: просто чтобы прояснить, идея состоит в том, чтобы проверить, что размер, который система Linux сообщает контроллеру, является правильным ( поэтому никакие данные не будут потеряны ). Я не хочу видеть, получу ли я 128 ГБ вместо 127,3 ГБ. Я хочу проверить, будут ли все записанные мной данные снова доступны для чтения. К сожалению, я могу найти только немного информации об этом на английских технических сайтах. Хотя есть хорошие немецкие источники. Я на самом деле ищу такое приложение, но для Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-с-H2testw /
Update2: я попытался собрать некоторые источники на английском языке. Я не прочитал все их подробно, из-за нехватки времени.
- https://www.ebay.com/gds/All-About-Fake-Flash-Drives-2013-/10000000177553258/g.html
- https://en.wikipedia.org/wiki/USB_flash_drive#Counterfeit_products
- https://www.heise.de/newsticker/meldung/Verdaechtige-USB-Sticks-mit-2-Terabyte-bei-Amazon-Faelschungen-entlarven-Datenverluste-vermeiden-3915202.html
- http://www.pcgameshardware.de/USB-Stick-Hardware-255579/News/falsche-Speicherkapazitaet-bei-Amazon-1245682/
Обновление 3: объяснения
Из-за странных критиков ниже, некоторые объяснения.
В чем проблема и почему один дд не решает ее?
Это реакция на
«Четко определите, какую проблему вы пытаетесь решить, и каково определение« фальшивого драйва »».
Кажется, что некоторые люди не понимают проблему. Поэтому я попытаюсь объяснить это как можно более кратко, хотя я думаю, что это во многом зависит от моего вопроса.
Емкость USB-устройств, которые предоставляет вам ваша операционная система или инструменты Unix, может быть неправильной. Это фатально, так как ваша ОС регулирует объем данных, которые вы можете отправить. Если вы отправите больше данных, чем сможете, вы потеряете данные. Это проблема. Итак, почему это может произойти?
Вам не нужно хорошо знать USB-протокол, чтобы понять проблему. Последовательные интерфейсы имеют общее свойство: клиентскому устройству (USB-накопителю) необходимо сообщать свою собственную емкость через этот последовательный интерфейс. Это означает, что клиентскому устройству нужен собственный контроллер с некоторыми знаниями о назначении устройств и, в данном случае, его емкости. Он также решает, что сделано, когда получает команду на сохранение чего-либо. Если контроллер запрограммирован таким образом, он может просто игнорировать команду или что-то перезаписать данными.
Что это значит? Что бы ни говорили ваши инструменты Unix о емкости диска: это то, о чем инструменты спрашивали у диска, и больше ничего. Вот для чего был изобретен h2testw: он проверяет реальный размер с помощью метода, описанного ниже, и сравнивает его с тем, что говорит накопитель. Если это не то же самое, у вас может быть потеря данных, потому что все ваши общие операции по хранению данных зависят от информации вашей операционной системы, которая просто запрашивает контроллер. Почему просто спросить? Тестирование требует времени и перезаписывает все данные на диске. Поэтому естественно, что операционная система должна полагаться на эту информацию.
Чтобы проверить реальную емкость, такую как h2testw, вы действительно можете использовать dd
для записи данных на диск, чтения его еще раз и проверки того , что вы написали то же самое. Совершенно законно. Характер аппаратного обеспечения и привода делают его более сложным. Рассмотрим кеши для записи, например. Вы должны убедиться, что вы не читаете из кэша. Это только один пример того, почему это не так просто, как кажется. Также подумайте, что просто запись нулей означает низкую энтропию информации, которую можно восстановить при чтении. Это просто не так просто в деталях. Вы все еще можете сделать это вручную, конечно.
Но почему, когда вы можете автоматизировать вещи? Зачем работать? f3, как предложено в моем ответе ниже, реализует тонны мыслей многих участников (считают, что это своего рода расширенный h2testw), а также реализует несколько методов с различными компромиссами. Разработчик выяснил хитрости различных фальшивых дисков (подделок), которые они имели под рукой . Поэтому, хотя я понимаю теорию и проблему (по-видимому, поскольку проблемы хорошо объясняются в немецких технических СМИ, но не в англоязычных СМИ), я не претендую на то, что понимаю все, поэтому я упомянул об этом выше. Это просто теория, которую я понимаю, и я скорее программист. Но как студент, изучающий информатику, я понимаю это достаточно хорошо, чтобы увидеть проблему.
«Попытайтесь понять основные утилиты Unix»
На самом деле я уже ответил на этот вопрос, но чтобы прояснить: инструменты Unix просто используют USB-протокол (конечно, только для USB-устройств) для сбора информации. Нет смысла делать больше, чем это.
Помогает ли покупать только у поставщиков трестов?
tl; dr: это не так.
«Когда речь заходит о покупке товаров, как и о любой форме безопасности, подумайте о том, чтобы найти надежного продавца и покупать диски только у них».
Безопасность (и безопасность) не о доверии! Речь идет о проверке и валидации! Извините, но это так неправильно во многих отношениях.
Предположим, вы покупаете через доверенного продавца. Несколько вопросов:
Проверил ли поставщик оборудование, чтобы убедиться в отсутствии потери данных? Узнает ли он, когда он покупает поддельные диски и продает их? Не обязательно.
Возможно ли, что он покупает вещи, которые он не знает, подделка? В общем, посмотрите на недавние подделки рызенов: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/ , https://www.heise.de/newsticker/meldung/ Директ-фон-Амазонка-Faelschungen-фон-AMDs-Ryzen-Prozessoren-им-Umlauf-3772757.html
Если я потеряю свою презентацию в дисководе и испорчу презентацию, вернется ли мой проверенный поставщик вовремя и спасет меня? Это, вероятно, заменит двигатель, так как последний путешествующий во времени DeLorean был разрушен в 1885 году.
Другие вещи
«Этот вопрос действительно больше похож на« промо »в том, что нравится OP, и кажется, что OP гораздо меньше заинтересован в реальном тестировании накопителей».
Это смешно. Я искал специально подобный инструмент для h2testw, который также работает на Linux. И да, это то, что я "хотел бы", полезный ответ, извините. Я понятия не имел, что англоязычная пресса не слишком осведомлена о таких проблемах, и мне посчастливилось найти что-то подобное позже. Это не промо, но на самом деле вы можете использовать его.
df --block-size=M
. Ограничение в 4 ГБ предполагает, что это просто ограничение размера файла FAT32, а не емкость диска. Вы никогда не получите полную заявленную мощность, это просто среднее значение для классификации.Ответы:
F3 - Борьба с мошенничеством
Я нашел только одну альтернативу, но я думаю, что это даже лучше, чем оригинальный
h2testw
инструмент для MS Windows. К счастью, его действительно легко использовать даже из командной строки. Тем не менее, есть доступные графические интерфейсы. Также на веб-сайте инструментов много информации о реализации и проблемах с поддельными дисками.F3 предлагает два метода:
Метод f3probe (рекомендуется)
f3probe
Это один из способов проверки дисков, не такой точный, но более быстрый, поскольку он не записывает данные на весь диск. Вы можете прочитать больше об этом на веб-сайте инструментов. Если вы хотите быть уверены на 100%, лучше используйте метод h2testw. Как описывает разработчик на сайте:А также:
На сайте также есть пример использования:
Обратите внимание, что он также возвращает команду, которая позволяет вам использовать диск с его реальным размером, используя
f3fix
.Инструмент f3fix
Метод h2testw / Тестирование производительности с помощью f3read / f3write
F3 - это набор инструментов, которые работают с фальшивыми флешками. Два из них вместе реализуют
h2testw
метод:f3write
запросит требуемый размер устройства и заполнит его сгенерированными файлами размером 1 ГБ каждый.f3read
прочитает все эти файлы и увидит, что они завершены и не сломаны. В качестве примера команды, которые я использовал для проверки моего жесткого диска ~ 128 ГБ:Теперь, чтобы проверить, правильно ли хранятся файлы:
Тест для диска такого размера занимал около трех часов с этим методом и иногда вызывал большую нагрузку на мой компьютер, но он считается наиболее точным.
Установить в Ubuntu
На терминале:
Это принесет вам:
f3brew
,f3fix
,f3probe
,f3read
,f3write
с их человеком страниц.Эти инструменты являются частью
f3
пакета, который по крайней мере доступен в Ubuntu 15.10. Согласно веб-сайту, есть еще несколько инструментов, которые доступны. Чтобы получить их посмотрите на сайт.Пакет поставляется с короткими, но полезными справочными страницами, хотя я думаю, что они упускают некоторую информацию с веб-сайта о разнице, например, f3read / write и f3probe, поэтому этот ответ стал немного длиннее.
источник
apt-get
будет установленаf3read
иfwrite
только какf3probe
иf3fix
считается экспериментальной. Если вы хотите использовать их, вам нужно будет собрать их из исходного кодаmake experimental
после установки их зависимостейsudo apt-get install libudev1 libudev-dev libparted0-dev
. См. Github.com/AltraMayor/f3#the-extra-applications-for-linuxЯ написал простой инструмент для этого, он называется CapacityTester (скриншот) и имеет графический интерфейс и CLI.
Для загрузки доступен предварительно скомпилированный двоичный файл для Debian 7 , который, скорее всего, будет работать из коробки в современной системе Ubuntu.
Я написал это для личного пользования, потому что не смог найти графический инструмент для этой цели. Вам просто нужно сначала смонтировать пустой USB-накопитель, выбрать его и начать тестирование. Это очень тупой инструмент, потому что все, что он делает, - это заполняет диск файлами, а затем проверяет правильность данных на диске. Это прервет тест на первую ошибку (запись или чтение / проверка). Он сообщит о смещении фрагмента, который не может быть успешно записан или проверен, но это логическое смещение, поэтому эта информация может оказаться бесполезной, поскольку она зависит от файловой системы, в которой находятся файлы на диске. Однако когда накопитель заполнен данными и все можно прочитать и проверить, можно с уверенностью предположить, что заявленная емкость накопителя правильная. Как примечание стороны,
Опять же, это очень просто, так как работает только с файлами поверх существующей файловой системы. Таким образом, есть некоторые KB (+ 1M буфер), которые не могут быть протестированы. И это очень медленно, потому что он действительно заполняет всю файловую систему. F3, конечно, намного сложнее и быстрее, но не имеет графического интерфейса. Единственная причина, по которой существует CapacityTester, состоит в том, что он имеет графический интерфейс пользователя, поэтому его могут использовать пользователи, не знакомые с командной строкой или просто предпочитающие графический интерфейс.
Обратная связь приветствуется.
источник
Обращаясь к поведению ОП и «фальшивому драйву»
Я редактирую ответ, чтобы должным образом учесть несколько моментов, поскольку ОП был очень яростным (и, на мой взгляд, против большинства комментариев и ответов, кроме их собственных, что я нахожу подозрительным). В частности, многие утверждают, что существует «фальшивый драйв», но нет четкого определения того, что на земле это означает. ОП заявил:
Сами OP признали, что они «могут просто копировать материал» и проверять целостность данных, но были очень против всех других комментариев и ответов, которые предлагают что-то еще, а OP продолжал выдвигать F3 как «реальную сделку». Сам вопрос вначале касался размера диска, но затем OP по какой-либо причине упомянул хэши, чтобы «посмотреть, в порядке ли файлы», как будто существуют загадочные диски, которые имеют один размер и позволяют записать этот размер, но тогда данные повреждены. Поэтому я нахожу это очень подозрительным и считаю, что OP, продвигающий F3, является спам-вопросом и ответом.
Когда диск на самом деле поддельный диск
В этом вопросе очевидное определение ОП
Другими словами, согласно OP, контроллер запрашивает X данных, но USB может содержать только примерно 80-90% меньше, чем заявлено.
Пользователь sudodus предложил в комментариях (выделение добавлено): «Я обнаружил, что несколько USB-накопителей немного меньше номинального размера. Я называю их недопустимыми . Я думаю, что поддельные накопители « существенно меньше » (обычно половина номинального размера). или меньше ) Это определение прекрасно, однако, если мы примем это, поддельный диск определен на 50%. Диск, который требует 64 ГБ, но может вместить только 32 ГБ, технически теряет половину своей стоимости для владельца, и владелец может только положить половину того, что он намеревался на диск.
Я предлагаю более простое определение: фальшивое запоминающее устройство - это то, которое, как утверждается, имеет,
Claimed Size
но не превышает 15% (и допуск равенClaimed Size ± 15 %
).Это
± 15 %
очень разумно. Также учтите, что пользователи обычно путаются между организациями Unix, IEEE и IEC, использующими двоичный префикс вместо мощности 10 префиксов для размера хранилища данных. Разница составляет 20% на уровне префиксов yotta, однако USB-накопителей пока нет, поэтому в течение следующих 20 лет разумно будет использовать 15%. (См. Вопрос Askubuntu «Значение« i »в« MiB » и двоичный префикс )Тестирование диска
По сути, пользователю не нужны никакие специальные инструменты, кроме того, что уже поставляется с Ubuntu и большинством POSIX-совместимых систем Unix. Давайте подчеркнем и перефразируем определение снова:
Простой способ сделать это -
dd
просто перезаписать устройство нулями (и, конечно, не забудьте сохранить ваши файлы, прежде чем сделать это).Обратите внимание на
bs=1
размер блока 1 байт. Командаdd
обычно дает отчет о том, сколько написано.Мы попросили его написать 1024 байта, он написал 1024 байта.
Более точный список шагов, придерживающихся определения:
Выясните, сколько данных требует накопитель (если вы подозреваете,
df
что «ошиблись»). В этом примере предположим, что/dev/sdb1
это файл моего устройства для USB-накопителя:Обратите внимание, что
-P
флаг предназначен для переносимости POSIX, что означает, что размер блока данных будет 1024 байта, и это означает, что на этом диске 115247656 * 1024 байта.Выясните, какой допуск на 15% ниже заявленного диска (115247656), возможно, используйте утилиту, которая поддерживает вычисления с плавающей запятой, например
awk
:Создайте случайные данные на жестком диске того же размера, что и на предыдущем шаге, для использования в качестве эталона:
dd if=/dev/urandom of=./mytestfile.random bs=1024 count=97960507
Теперь напишите данные
dd if=./mytestfile.random of=/dev/sda1
. Если накопитель может выдержать так много, он «настоящий». Вы также можете взятьmd5sum
илиsha1sum
из./mytestfile.random
и сравнить с/dev/sda1
сейчас. Еще лучше было бы записатьmytestfile.random
точку монтирования файла, таким образом, сохраняя файловую систему на диске и не изменяя разбиение диска, другими словамиДля целостности то, что вы можете просто сделать любую проверку hashsum, такие как
md5sum
,sha1sum
,sha256sum
или другие. НапримерКлючевым моментом здесь является то, что, если количество записанных данных находится в пределах допуска и выдает правильную контрольную сумму до и после записи - диск, вероятно, в порядке.
Все это может быть помещено в хороший сценарий для удобства, если вы того пожелаете.
Вывод
Этот вопрос действительно больше напоминает «промо» в том, что нравится OP, и кажется, что OP гораздо меньше заинтересован в собственном тестировании дисков. Кроме того, проблема сама по себе более человечная, чем проблема «драйва». В комментариях OP сами заявили, что они на самом деле не понимают поведение USB, но неистово обвиняют «контроллер». Я оставлю этот вопрос с 3 баллами:
источник
dd
сообщает о количестве данных, которые оно записало / передало устройству, я не понимаю, как это можно подделать.dd
последующей проверкой md5sum должна проверить, сколько можно записать и правильно прочитать. (Я думаю, что специальные инструменты в ответе @ verpfeilt выглядят более привлекательно, но я их не проверял. У меня есть много USB-накопителей и карт памяти, я не думаю, что купил поддельную.)