Як я можу отримати флеш-пам’ять низького рівня в Linux?


13

У мого друга були проблеми з флеш-накопичувачем USB, і я запропонував йому зробити формат низького рівня. Тоді мені спало на думку, що я навіть не знаю, як це зробити в Linux. Отже ... як я можу флеш-пам'ять формату низького рівня в Linux? Мій друг спробував "повний формат" на диску на Windows, і це не вдалося.

Відповіді:


12

"Форматування низького рівня" було зроблено на дискетах, де ви могли писати з різною щільністю, вибираючи по-різному організовувати доріжки та сектори. Але це не має сенсу для більшості сучасних ЗМІ. Поняття про те, як організувати дані на пристрої, є фіксованим і незмінним. Це зовсім не має сенсу для спалаху, який має дискретні біти, а не магнітні домени. Можливе форматування вищого рівня, яке є mkfsв unix-land.


Отже, якщо файлова система на флеш-пам’яті мого друга заплутана, mkfsце єдиний його варіант? Що робити, якщо це не працює? Нічого іншого він не може спробувати?
bmaupin

@Bryan: ну, він також міг би спробувати fsck, еквівалент dos chkdsk.
зажури

3
@wnoise якщо mkfsне вдасться, fsckдопомогти не збирається.
derobert

2
Я перевіряю тони флеш-пам’яті USB на роботі, і якість цього по всій карті, тому я не здивуюсь, якщо диск вашого друга просто порушений і більше не може працювати. Ці речі можуть зламатися різними способами, і ви не можете з цим зробити нічого, крім придбання пам'яті з авторитетних джерел, а потім, можливо, тестування, f3щоб переконатися, що вона не порушена.
невдало

8

Форматування на низькому рівні означає багато різних речей для різних людей і в різних контекстах.

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

Різні інші значення включають в себе записування нулів для всіх блоків, налаштування диска для відключення "прихованих" областей, таких як HPA і DCO, а потім обнулення всіх блоків або інші речі, більш пов'язані з розділенням, ніж форматуванням.

Сирому спалаху потрібен інший початковий підготовчий крок на заводі - кожен спалах "ерабелок" (аналог "блоку" на дисках) потрібно перевірити і позначити як поганий, якщо він справді поганий. Кожен "ерабезблок" має додатковий невеликий блок "OOB", який містить інформацію про виправлення помилок - і саме тут він позначається як поганий. Ви НЕ хочете повторювати цей крок, оскільки акт запису на поганий блок може перешкодити вам знову встановити цей конкретний біт, який ідентифікує його як поганий.

Але ви не маєте справу із сирим спалахом. Ви маєте справу з флеш-накопичувачем USB. На всіх флеш-накопичувачах є мікросхема контролера, яка приймає команди USB від хоста і розмовляє з необмеженою флешкою ​​всередині від імені хоста. Деякі з цих мікросхем контролера можна налаштувати так, щоб повідомляти про частину спалаху як окремий розділ CD-ROM або діяти як два окремі пристрої зберігання USB. Залежно від марки та моделі мікросхеми контролера, ви, можливо, зможете знайти утиліту відновлення чи конфігурації (можливо, лише для Windows), яка могла б скинути цю мікросхему контролера. Ви б почали з відкриття флешки, шукаючи менший (ймовірно) два мікросхеми, які є на невеликій друкованій платі, і робите Google. Марка та модель, надрукована на зовнішній стороні корпусу, швидше за все, не допоможе вам знайти, хто зробив контролер всередині нього.


7

Немає можливості зробити формат низького рівня на більшості флеш-пристроїв, оскільки вони мають додатковий шар перекладу з USB / ATA / SD / тощо. до MTD, що затінює низькорівневі пристрої MTD (які можуть бути відформатовані на низькому рівні, якщо потрапити безпосередньо [[що ви не можете]).


6

використовувати ddкоманду для цьогоdd if=/dev/zero of=/dev/hda

Це знищить ВСІ дані на жорсткому диску, всю інформацію про сектор завантаження та всі дані про всі розділи. Однак це не зробить диск непотрібним, у вас просто чистий диск, для якого потрібно лише створити розділи та встановити новий завантажувальний сектор, що станеться при встановленні будь-якої ОС, включаючи Linux або Windows. Це хороший спосіб очищення будь-яких поганих розділів, вірусів, запущених установок або даних, які ви не хочете бачити.


4
Ви не хочете використовувати /dev/zeroдля стирання пристрою флеш-пам’яті. Дивіться запис у моєму блозі: fakkelbrigade.eu/chris/blog/2012/01/…
Кріс Даун

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

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

2
@ChrisDown ваш запис у блозі став 404-сумісним.
дероберт

1
Якщо флеш всередині стирається з усіма, то шар перекладу повинен інвертувати біти, оскільки прийнято форматувати диски з усіма нулями.
psusi


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, що, ймовірно, призведе до повернення шару флеш-перекладу на заводський завод стан (як це зазвичай робиться з SSD).


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-recogising-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.