Как я могу отформатировать флэш-память низкого уровня в Linux?


13

У моего друга были проблемы с флешкой, и я предложил ему сделать низкоуровневый формат. Затем мне пришло в голову, что я даже не знаю, как это сделать в Linux. Итак ... как я могу отформатировать низкоуровневую флэш-память в Linux? Мой друг попробовал «полный формат» на диске в Windows, и это не удалось.

Ответы:


12

«Низкоуровневое форматирование» было сделано на дискетах, где вы могли писать с разной плотностью, выбирая для организации дорожек и секторов по-разному. Но это не имеет смысла для большинства современных СМИ. Его представление о том, как организовать данные на устройстве, является фиксированным и неизменным. Это не имеет никакого смысла для вспышки, которая имеет дискретные биты, а не магнитные домены. Возможно форматирование на более высоком уровне, что mkfsв Unix-Land.


Так что, если файловая система на флешке моего друга испорчена, mkfsэто единственный вариант? Что если это не сработает? Больше ничего он не может попробовать?
bmaupin

@Bryan: ну, он мог бы попробовать fsck, эквивалентно DOS chkdsk.
Внуаз

3
@wnoise, если mkfsне получится , fsckне поможет.
Дероберт

2
Я проверяю тонны флэш-памяти USB на работе, и качество ее по всей карте, поэтому я не удивлюсь, если диск вашего друга просто сломался и больше не может работать. Эти вещи могут ломаться по-разному, и вы ничего не можете с этим поделать, кроме как покупать память из авторитетных источников, а затем, возможно, протестировать ее, f3чтобы убедиться, что она не сломана.
unfa

8

Низкоуровневое форматирование означает много разных вещей для разных людей и в разных контекстах.

Первоначальный смысл был шагом, необходимым для форматирования дисков - дискам нужны заголовок, синхронизация и другие шаблоны, записанные на носителе, прежде чем он сможет сохранить на нем данные. Таким образом, голова может определить, когда она находится на дорожке и B) на дорожке. Низкоуровневое форматирование дискеты подготавливает диск для чтения и записи блоков. Ранние жесткие диски MFM и RLL для ПК могли быть отформатированы на низком уровне, часто с использованием утилиты, встроенной в ПЗУ контроллера жесткого диска (на плате ISA). Современные жесткие диски IDE и SATA также отформатированы на низком уровне, но только на заводе.

Различные другие значения включают в себя запись нулей во все блоки, настройку диска для отключения «скрытых» областей, таких как HPA и DCO, а затем обнуление всех блоков или другие вещи, которые больше связаны с разделением, чем с форматированием.

Необработанная флэш-память нуждается в другом начальном подготовительном этапе на заводе-изготовителе - каждая флэш-память «eraseblock» (аналог «блочной» на дисках) должна быть проверена и помечена как плохая, если она действительно плохая. Каждый «eraseblock» имеет дополнительный маленький блок «OOB», который содержит информацию для исправления ошибок - и именно здесь он помечен как плохой. Вы НЕ хотите повторять этот шаг, так как процесс записи в плохой блок может помешать вам снова установить этот конкретный бит, который идентифицирует его как плохой.

Но вы не имеете дело с сырой вспышкой. Вы имеете дело с флешкой. Во всех флэш-накопителях имеется микросхема контроллера, которая принимает USB-команды от хоста и обращается к необработанной флэш-памяти внутри от имени хоста. Некоторые из этих контроллеров могут быть сконфигурированы так, чтобы сообщать о части флэш-памяти как отдельный раздел CD-ROM или действовать как два отдельных USB-устройства хранения данных. В зависимости от марки и модели микросхемы контроллера, вы можете найти утилиту для восстановления или настройки (вероятно, только для Windows), которая могла бы сбросить эту микросхему контроллера. Вы начнете с того, что откроете флеш-накопитель, отыщите меньший (вероятно) два чипа, которые находятся на маленькой печатной плате, и проведете некоторое гугление. Марка и модель, напечатанные на внешней стороне корпуса, вряд ли помогут вам определить, кто сделал контроллер внутри него.


7

Там нет никакого способа , чтобы сделать низкоуровневое форматирование на большинстве устройств флэш, так как они имеют дополнительный слой из перевода USB / ATA / SD / и т.д.. к МПД , который затемняет низкий уровень MTD устройств (которые могут быть низким уровнем отформатирован , если полученные непосредственно [который вы не может]).


6

используйте ddкоманду для этогоdd if=/dev/zero of=/dev/hda

Это уничтожит ВСЕ данные на жестком диске, всю информацию о загрузочном секторе и все данные на всех разделах. Однако он не сделает диск бесполезным, у вас просто будет чистый диск, для которого нужно только создать разделы и установить новый загрузочный сектор, что произойдет при установке любой ОС, включая Linux или Windows. Это хороший способ для очистки любых поврежденных разделов, вирусов, неудачных установок или данных, которые вы не хотите видеть.


4
Вы не хотите использовать, /dev/zeroчтобы стереть устройство флэш-памяти. Смотрите запись в моем блоге: fakkelbrigade.eu/chris/blog/2012/01/…
Крис Даун

1
Нет ничего необычного в том, чтобы записать / dev / zero на флэш-устройство. Единственное преимущество, которое дает запись единиц на устройство, состоит в том, что вы можете получить немного более быстрое время записи при следующей записи на диск, поскольку его не нужно удалять сначала - и это зависит от того, насколько слой флеш-трансляции умный.
Шон Дж. Гофф

2
@ChrisDown, не уверен, как он сравнивается по производительности, но вы могли бы использовать badblocks -s -w -t 0xff /dev/?d??. Вы получаете все 1 написано и проверено тоже.
Zoredache

2
@ChrisDown Ваша запись в блоге стала 404-совместимой.
Дероберт

1
Если флэш-память внутренне стирается во все единицы, то слой перевода должен инвертировать биты, поскольку обычно форматируют диски со всеми нулями.
psusi 12.12.12


2

В прошлом я сталкивался с устройствами (хотя и ненадолго), которые реализуют команду SCSI FORMAT UNIT - из Linux вы можете использовать:

sg_format --format / dev / sdX

сбросить эти устройства до заводского состояния (спецификация USB-накопителя основана на более старых стандартах SCSI).

Я полагаю, что некоторые более новые устройства USB 3 также реализуют команды безопасности ATA, поэтому вы можете использовать https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase, что, вероятно, приведет к сбросу слоя флэш-перевода на его фабрику. состояние (как это обычно происходит с твердотельными накопителями).


1

Существует такая вещь, как низкоуровневый формат для флэш-памяти, но это делается на фабриках с программным обеспечением, ориентированным на конкретного поставщика.

Для этого нужно напрямую поговорить с чипом контроллера памяти. К сожалению, я не смог найти ни одной программы, способной сделать это в Linux.

Существуют инструменты производителя, которые выполняют низкоуровневое форматирование и могут записывать некоторые настройки (например, поведение индикатора, сделать диск доступным только для чтения) и данные (например, имя производителя, название модели, серийный номер) в набор микросхем контроллера памяти, но эти инструменты обычно сделаны только для Windows, и часто на китайском языке.

Один из таких инструментов называется «FC MP Tools». Насколько я могу судить, они разработаны Alcor Micro и изготовлены FirstChip (FC). Видимо, «МП» означает «Массовое производство».

Я использую версию, которую я нашел здесь: http://down.upantool.com/file/software/mass/FristChip/2018/iTe_MpTools_20171130.zip

Другие ссылки, по которым вы можете перейти: https://repusb.cubava.cu/?page_id=2052 https://www.rmprepusb.com/tutorials/repair-your-usb-flash-drive http://reboot.pro/topic / 20865-alcor-micro-usb-pen-drive-repair / http://reboot.pro/topic/19901-no-alcor-mptool-is-recognizing-my-usb/ https://www.elektroda.pl /rtvforum/topic3145335.html http://flashboot.ru/files/file/30/ http://www.flashdrive-repair.com/2014/05/download-fc-mptool-v402-for-fixing.html https : //www.cdrinfo.pl/download/356133849

Он работает в Wine, но не обнаруживает наборы микросхем накопителей (вероятно, для этого нужен прямой доступ к контроллеру USB).

Кроме того, чтобы это работало, у вас должна быть флешка с конкретным поддерживаемым чипсетом Alcor. Опять же - у каждого поставщика есть свое программное обеспечение, которое взаимодействует с чипами контроллера через USB.

У меня есть это:

введите описание изображения здесь

Запишите номер детали набора микросхем на микроконтроллере: FC1178 BC1 Программа FC MP Tools определит его как набор микросхем 1178BC :

введите описание изображения здесь

И программное обеспечение, которое я связал, работает с ним под Windows XP и 10. Тем не менее - оно потерпит крах, если вы переключите программу на английский язык! Установите свои предпочтения на английском языке, затем перезапустите программу и не меняйте язык - она ​​должна работать. Возможно, это будет исправлено в более новой версии.

В любом случае - у разных поставщиков разные инструменты, это кроличья нора, здесь нет стандарта AFAIK, и (по крайней мере, этот инструмент) будет работать только на Windows, к сожалению.

Из того, что я могу сказать, это будет проверять микросхему памяти и записывать карту неисправных секторов в микросхему контроллера, чтобы она могла предоставлять только хорошую память для ОС. Таким образом, даже частично поврежденные чипы можно использовать и продавать. Они, вероятно, отсортированы на заводе по качеству и низкоуровневому форматированию для разных мощностей. Это называется биннингом.

Может быть, если кто-то сможет собрать много этих инструментов, перепроектировать их и сделать универсальный инструмент с открытым исходным кодом для Linux, мы сможем это сделать - иначе я не ожидаю этого.


1

Хотя низкоуровневое форматирование, как это делалось на жестких дисках и гибких дисках, не имеет смысла для флеш-накопителя, существуют специальные утилиты производителя для «низкоуровневого» флэш-накопителя: это пример: утилита низкоуровневого форматирования Alcor

Я упал на этот вопрос, когда искал такую ​​утилиту, которая бы работала на Linux. Однако, похоже, что производители флешек не заботятся о том, чтобы нас порадовали.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.