Linux прошивка контроллера флешки

Как «вылечить» поврежденный USB-накопитель в Linux?

Флэшки есть у всех. Маленькие, удобные – что может быть лучше для сохранения данных. Но бывает, что флэшки повреждаются или вообще отказываются работать. Если вы пользователь Linux и подобное случилось с вами, исправить все будет несложно.

Примечание: описанные методы работают не только для USB-накопителей, но и для жестких дисков тоже.

Интересно: Как отформатировать защищенную от записи флешку. Читаем здесь.

Удаление бэд-блоков с USB-накопитель с помощью fsck

Простой способ починить флэш-накопитель (и вообще любой накопитель) – инструмент fsck. Он удаляет поврежденные сектора, или «бэд-блоки», из-за которых чаще всего и возникают проблемы с чтением. Чтобы удалить поврежденные сектора с флэшки, откройте терминальное окно и введите следующие команды.

Сначала нужно узнать метки дисков. Сделайте это, введя команду lsblk. Появится список всех подключенных накопителей.

Примечание: по команде lsblk появляется список всех дисков, не только USB-накопителей. Будьте внимательны, чтобы не перепутать флэшку с жестким диском.

Чтобы удалить бэд-блок, запустите команду fsck либо в отдельном разделе (например, /dev/sdc1), либо на всем диске (например, /dev/sdc). По окончании процесса ваша флэшка будет снова полностью работоспособна в Linux.

sudo fsck /dev/sdc1

Примечание: здесь предполагается, что метка флэш-накопителя — /dev/sdc (или /dev/sdc1). У разных пользователей метки могут быть другими.

Полная очистка

Иногда USB-накопитель совершенно не читается, и спасти что-то с него уже не получится. Все, что остается в этой ситуации – очистить все данные и начать сначала. Лучший инструмент для этого – dd.

Возьмите метку накопителя, которую вы нашли прежде командой lsblk, и дальше действуйте по предыдущему алгоритму (/dev/sdc1 – раздел, /dev/sdc – весь диск):

sudo dd if=/dev/zero of=/dev/sdc

Создание новой файловой системы

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

sudo mkfs.msdos -f 32 /dev/sdc1

Ext4

sudo mkfs.ext4 -f /dev/sdc1

NTFS

sudo mkfs.ntfs -f /dev/sdc1

Заключение

USB-флэшки – полезные девайсы. С ними легко переносить данные с одного компьютера на другой вне зависимости от установленной ОС. Вот почему важно знать, что делать, если флэшка вдруг стала недоступной. К счастью у Linux есть мощные инструменты, способные легко «вылечить» флэш-накопитель.

Источник

Восстанавливаем флешки

Хотя со временем флешки становятся все дешевле и объемнее это не значит, что при любом сбое ее можно выбросить и приобрести другую. Хотя многие именно так и делают, даже на задумываясь о том, что ситуацию еще можно спасти. В свое время мы тряслись за каждую флоппи-дискету, почему же не поковыряться и с флешкой, чтобы дать ей вторую или даже не третью жизнь. Думаю, у многих в столе рядом с компьютером найдется какая-нибудь «мертвая» флешка-брелок, которую выбросить жалко из-за того, что она красивая или, хотя бы потому, что какое-то время назад она была полезна. Конечно, иногда флешки «умирают» раз и навсегда, но зачастую они находятся в состоянии «клинической смерти», а как известно, такое состояние обратимо.

Чаще всего, результатом сбоев является неаккуратное обращение с флешками, а именно небезопасное извлечение из компьютера. Некоторые контроллеры флеш-накопителей особенно хрупки в этом отношении. Но после программного сбоя контроллера можно без особого труда спасти ситуацию в домашних условиях. Если флешка отказывается форматироваться, не позволяет ничего скопировать или сообщает, что нужно вставить еще какой-то диск, то ситуация еще не совсем безвыходна. Даже когда флешка не воспринимается системой как накопитель — не все потеряно.
Что же нужно для того, чтобы заставить флешку снова быть в строю?

Ценность информации

Если информация, которая находится на умершей флешке не очень важная, то можно сразу приступать к следующим действиям. Если же для вас важнее содержимое, чем сама флешка, то для начала нужно попробовать восстановить информацию, либо с помощью бесплатной консольной утилиты PhotoRec, либо с помощью платной программы R-Studio. Попытаться восстановить информацию можно, как до перепрошивки контроллера, так и после.

Определяем контроллер

Для того чтобы помочь флешке, нужно определить модель и производителя контроллера (VID и PID). Для этого существуют разные способы и утилиты. Чтобы не быть голословным, рассмотрим пример восстановление работоспособности самой капризной, на мой взгляд, флешки Pretec i-Disk Secure:

После недолгой жизни она отказалась копировать, записывать информацию (ошибка ввода/вывода) и при попытке форматировать Windows недружелюбно сообщает, что это сделать не удается. Специальные утилиты для форматирования тоже отказываются работать с «больной». Кажется, произошел программный сбой контроллера и нужно срочно узнать, что именно за контроллер находится внутри этой горе-флешки.
Для этого запускаем утилиту CheckUDisk (в качестве аналогов программы, стоит упомянуть об утилитах UsbIDCheck, ChipGenius и USBDeview):

Поиск утилиты для прошивки контроллера

Итак, необходимую информацию мы получили, а именно: VID (4146), PID (ba65) и производитель (Pretec). По этой информации нам необходимо найти утилиту для перепрошивки именно этого типа контроллеров. В этом нам поможет замечательный ресурс flashboot.ru, а именно раздел базы данных флешек iFlash:

Читайте также:  Writing windows file servers

В соответствующих полях указываем полученные данные и, в появившихся результатах поиска, ищем похожую флешку:

Благодаря добросовестным пользователям, которые в свое время не поленились занести информацию о восстановленной флешке, мы имеем то, что нам нужно. Но если вы не нашли именно вашу модель флешки, это не страшно, так как в разных моделях может быть установлен один и тот же контроллер. Поэтому, главное, чтобы совпадал производитель, VID и PID устройства. Теперь нас интересует информация из столбцов «Контроллер» и «Утилита», ведь именно с помощью указанной утилиты мы попытаемся восстановить нашу флешку. В данном случае это UT165 1.65.28.1. Идем в раздел Файлы и указываем в качестве критерия поиска название утилиты целиком. И в этот раз нам везет (на этом сайте мне везло почти всегда) и мы можем заполучить искомую утилиту, да еще и с подробной инструкцией.

Перепрошивка контроллера

Отключаем флэш от компьютера.
1. Установливаем утилиту (при установке будет запрос о установке нового драйвера, выбираем AUTO-CHECK или оставляем значение по умолчанию).
2. Запускаем утилиту, подтверждаем установку драйверов, отмечаем в меню утилиты Driver > Uninstall drivers (чтобы при закрытии программы автоматически удалялись спец. драйвера).
3. Подключаем флэш, Windows предложит установить драйвер на новое устройство, нажать «автоматически», установится драйвер на устройство FABULK.
4. Нажать на «Enum» (F3), на порту появится устройство.
4.1. Если устройство не определилось, а контроллер точно UT165, запустите файл С:\Program Files\MDPT\Driver\InfUpdate.exe, в котором нужно прописать VID&PID вашей флэш (VID&PID можно узнать с помощью программы ChipGenius).
5. Если флэшка определилась, нажимаем пробел (Start). Запустится процесс форматирования. Смотрим в статус, должно стать ОК. Если процесс форматирования закончится с ошибкой, то программа выдаст её код. Для расшифровки кода ошибки смотрим в меню Help -> Error Code List.
6. Затем закрываем прогамму или деинсталируем (должны удалиться драйвера устройства FABULK, без удаления драйвера FABULK, Windows не увидит вашу флэш!), переподключаем флэш.
7. Форматируем стандартными средствами Windows.

От себя лишь добавлю, что иногда флешка не определяется, в этом случае нужно попробовать использовать другие USB-порты. Так же, вполне возможно, придется покопаться с настройками программы. То есть, хочу предупредить вас, что не все может пойти гладко и нужно проявлять терпение и целеустремленность. Часто случалось, что пять попыток перепрошить флешку оказывались тщетными, и только на шестой раз получалось, хотя ничего нового в этот шестой раз не делал.
В случае с флешкой Pretec i-Disk Secure, она у меня отформатировалась, хоть и потеряла 1-2 гигабайта объема, но это не страшно. Зато теперь, я знаю, что с этой флешкой, несмотря на ее крепкий внешний вид, нужно обходиться особенно аккуратно и вынимать из компьютера безопасно.
За свою короткую жизнь, я восстановил 32 флешки из 34-х, попадавших мне в руки. Те, которые восстановить не удалось это флешки со сгоревшим контроллером и после подключения к компьютеру они быстро нагревались. Если информация на флешке очень вам ценна и вы не пожалеете никаких денег за ее восстановление, делать это уже придется не в домашних условиях и не бесплатно.

Источник

программный ремонт usb flash накопителей в linux

Довольно таки часто занимался программным восстановлением usb flash накопителей на Windows, ну и заинтересовался как можно это реализовать на Linux. Как раз под рукой лежала флэшка JetFlash TS4GJF160 на 4Gb, которая не хотела работать

И так для начала разберемся что же есть программный ремонт. В любой флэшке установлена микросхема-контроллер. Она отвечает за передачу данных между компьютером и флэш-памятью. В случае различных сбоев питания, неправильного извлечения и других причин – происходит сбой контроллера. В результате чего контроллер блокируется и не отвечает на запросы операционной системы. Также, блокировка может произойти из-за износа микросхемы памяти — появления дефектных блоков или превышения порога циклов записи (тогда контроллер сам метит блок как неиспользуемый и часто блокирует флэш на запись). И при попытке доступа к нему из операционной системы можно увидеть следующие сообщения «Вставьте диск» или «Нет доступа к диску», «Диск не отформатирован». Но при попытке отфарматировать выдается сообщение типа «Диск защищен от записи»

Так как же боротся с этим?! Весьма просто…

Вставляем usb flash накопитель в компьютер и определяем какое имя ему присваивается При подключении usb flash накопителя к компьютеру, Linux присваивает ему имя типа sdX (первому устройству присваивается sda, второму sdb и так далее. Но чтобы узнать какое имя он ему присвоил наверняка, используем 1 из способов:

Из этого всего нам нужна только 1 строка:

которая и говорит нам что присвоено имя устройству sdc1

Аналогично первой команде ищем среди последних строк:

Имхо самый оптимальный вариант, выведет весь список смонтированных устройств и в самом конце видим следующее:

Думаю тут все понятно, /dev/sdc1 то что нам и нужно

Забиваем usb flash накопитель нулевыми байтами, набирая:

После чего нам выдаст следующее:

На ошибку можете не обращать внимание, мы же не указали необходимый размер

Форматируем usb flash накопитель, командой:

Создаем новый раздел, командой n:

Просматриваем что получилось, командой p:

Так как Linux раздел нам никчему сменим его, командой t:

Смотрим результат, командой p:

Читайте также:  Install windows bluetooth software

Ну и записываем таблицу разделов на usb flash накопитель, командой w:

Форматируем usb flash накопитель, командой:

После форматирования в раздел FAT16, выведет следующее:

Команда для форматирования в FAT32:

После выполнения этих пунктов, в WinXP usb flash накопитель выдал «Диск не отформатирован» и только после того как я отформатировал стандартными средствами Win все заработало

Вот вообщем-то и все… Удачи в восстановлении!)

Для дополнительной информации об устройстве, введите:

Источник

Программный ремонт USB flash в Linux

Сегодня речь пойдет о так называемом «программном ремонте» USB flash накопителей. Вопросы аппаратного ремонта рассматриваться не будут по причине копеечной стоимости новых абсолютно исправных устройств; вопрос же снятия данных с неисправных флешей не рассматривается из-за отсутствия у автора желания публично его рассматривать.

Поводом для написания статьи послужило обилие на различных форумах советов по устранению программных глюков флешек с помощью различных утилит «низкоуровневого форматирования» и пр. Не отрицая существования утилит «от производителя», хочу заметить, что существует весьма простой и вполне надежный метод удаления софт-бэдов на флешках, устранения проблем с файловой системой, бутсектором и MBR, возникающих, как правило, при небезопасном извлечении этих устройств из компьютера, либо же из-за иных программных или аппаратных сбоев компьютера (одни только глючные южные мосты ICH5 от Intel чего стоят).

Существующие методы «излечения» этих болезней под ОС Microsoft Windows имеют ряд существенных недостатков, причиной которых является отсутствие в Windows достаточно функциональных средств дискменеджмента даже от сторонних производителей. Простой пример: после «заливки» флешки нулями, Windows форматирует её как super-floppy, т. е. без организации MBR, что для корректной работы флешки под разными ОС недопустимо. Сторонние дискменеджеры либо не умеют работать с USB-устройствами (Norton Partition Magic), либо работают некорректно (Paragon Partition Manager). Работа же с флешкой под различными ОС ведется именно как с жестким диском, поэтому и предъявляемые требования к организации логической структуры аналогичны винчестеру, а не дискете. Для этих целей воспользуемся правильной ОС и правильным софтом, который, как оказалось, к тому же абсолютно бесплатен, в отличие от недофункциональных платных поделок.

Итак. Имеет место флешка, которая либо виснет в Windows, либо просится быть отформатированной, но не форматируется («Виндовз не может завершить форматирование», о, ужас!), либо сыплет бэдами при сканировании тем же HDDScan’ом.

Если с Линуксом вы незнакомы, то я предложу для начала выкачать один из LiveCD-дистрибутивов и, предварительно записав образ на CD, загрузиться с него. Я, как Слаковод, естественно, предложу Slax — он невелик по размерам, несложен (впрочем, как и всякий LiveCD общего назначения) , быстро грузится и в нем есть всё необходимое для «ремонта». Если же какой-либо из Линуксов у вас уже стоит на HDD и вы с ним дружите, то буду рад добавить в вашу копилку знаний еще несколько советов.

Лично мной работа велась под локализованным неофициальным портом Slackware для 64-битных процессоров BlueWhite64.

Немного о форматировании: сейчас пойдут большие куски кода. Обычным моноширинным шрифтом мы будем показывать вывод консоли, жирным — наш ввод. Сразу за решеткой красным — #мои комментарии .

Итак, загрузились. Если вы не root, то станьте им , выполнив команду su и введя пароль , ибо борьба с ополоумевшим железом по праву только суперпользователю 🙂 .

Подключаем флешку, смотрим список USB-устройств. Вводим lsusb, нажимаем Enter, смотрим вывод:

# lsusb
#Наблюдаем вывод: вот она, родимая, даже, вроде «аппаратно» живая.
Bus 005 Device 003: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 / Astone USB Drive
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
#Это сканер, он нам не мешает.
Bus 001 Device 003: ID 04a5:20fc Acer Peripherals Inc. (now BenQ Corp.) Benq 5000
Bus 001 Device 001: ID 0000:0000

Флеш-накопители распознаются как SCSI-диски, т.е., устройства /dev/sdX, но работает с ними почему-то типично IDE-дисковая утилита hdparm 🙂 . Внимание. SATA-винчестеры у нас тоже обозначаются как /dev/sdX! У меня SATA-винчестер, потому ему по праву принадлежит /dev/sda, а флешке — следующая буква b, т. е. /dev/sdb. Попытаемся познакомиться с ней поближе:

# hdparm /dev/sdb

/dev/sdb:
#Защита от записи выключена
readonly = 0 (off)
readahead = 256 (on)
#Транслируемая геометрия соответсвует реальной: 1017856 секторов это

512 МБ
geometry = 1014/17/59, sectors = 1017856, start = 0

Теперь сделаем ей «низкоуровневое форматирование», т. е. забъем всё пространства накопителями нулевыми байтами. Таким образом мы удалим софт-бэды, сотрем ошибочные таблицы FAT, загрузочный сектор, MBR. Внимание! Все оставшиеся данные на флешке будут безвозвратно утеряны!

# dd if=/dev/zero of=/dev/sdb
#dd вводили без параметров, теперь он ругается на нехватку места на флешке. И правильно, генератор нулей то у нас безразмерный 🙂
dd: запись в `/dev/sdb’: No space left on device
1017857+0 записей считано
1017856+0 записей написано
скопировано 521142272 байта (521 MB), 144,185 секунд, 3,6 MB/s

Флешка USB 2.0 на 512 МБ стиралась 2,5 минуты. Теперь «по-фирменному» создаём раздел.

# fdisk /dev/sdb
#fdisk ругается, что не нашел ни DOS-овской таблицы разделов, ни метки диска в стиле BSD. Оно и понятно — вся флеш забита нулями.
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won’t be recoverable.

Читайте также:  Vs code hotkeys linux

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

#Умный fdisk сразу предлагает помощь. Давим m
Command (m for help): m
#Вывод списка команд:
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

#Нам нужна новый раздел. Жмем n, как написано:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
#Естественно, первичный раздел. Жмем p
p
#И первый, естественно. Жмем 1
Partition number (1-4): 1
#Здесь соглашаемся со всем, что предлагает fdisk. Он умный, сам разберется 🙂
First cylinder (1-1014, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1014, default 1014):
Using default value 1014

#Смотрим, чего мы наваяли 🙂 . Жмем p
Command (m for help): p

Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 1014 508491+ 83 Linux

#По умолчанию фдиск создал, естественно, линуксовый раздел (ну не виндовый же ему создавать). Надо поменять ID раздела. Жмем t.
Command (m for help): t
#Выбираем первый раздел для изменения ID
Selected partition 1
#предусмотрительный fdisk предлагает посмотреть, на что мы можем поменять тип раздела
Hex code (type L to list codes): l

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX

#Елки-палки, а мы думали, что кроме Винды и ФАТ32 на свете ничего и нет 🙂 . Меняем ID партишна на ФАТ16 — топчем 6
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

#Еще раз посмотрим на дело рук своих
Command (m for help): p

Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 1014 508491+ 6 FAT16

#Всё ОК. Пишем изменения и выходим
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

И всё? Ан нет. Это создан раздел для FAT16. А его надо отформатировать, а по науке говоря, создать на нем чистую файловую систему. В Линуксе есть простая и прямая как рельс утилитка для этого — mkdosfs. Просто пишем, на каком разделе мы хотим создать чистую FAT16.

# mkdosfs /dev/sdb1
mkdosfs 2.11 (12 Mar 2005)

Линкусоиды могут тут же примонтировать новообретенный девайс и что-нибудь записать на него. Пользователи дружественной и удовлетворяющей все запросы пользователей ОС грузятся в Windows и радуются, что стали «настоящими» линуксоидами.

Необходимое послесловие

Автор не несет никакой ответственности за то, что счастливые обладатели SATA-дисков попутали буквы и постирали информацию со своих винчестеров (а такие будут, это я гарантирую 🙂 ) . Если вы из статьи ничего не поняли, и проблеск мысли в мозгу не воссиял 🙂 , то лучше статью сразу забыть, флешку выкинуть и идти в магазин за новой. Данная технология справедлива для флешек до 2 ГБ включительно. Автор искренне благодарит Алексея Хована за помощь в написании статьи и дополнительную проверку работоспособности метода.

Источник

Оцените статью