Вернуться   Форумы Якутск Онлайн > Hi-Tech > Soft > Linux/BSD
Ответ
 
Опции темы Опции просмотра

Программный ремонт USB flash в Linuх
Старый 04.08.2009, 05:01   #1
-=Leon=-
Участник
 
Аватар для -=Leon=-
 
-=Leon=- вне форума
Регистрация: 25.03.2009
Сообщений: 483
-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию-=Leon=- имеет наиславнейшую репутацию
По умолчанию Программный ремонт USB flash в Linuх

http://rlab.ru
Существующие методы "излечения" этих болезней под ОС Microsoft Windows имеют ряд существенных недостатков, причиной которых является отсутствие в Windows достаточно функциональных средств дискменеджмента даже от сторонних производителей. Простой пример: после "заливки" флешки нулями, Windows форматирует её как super-floppy, т. е. без организации MBR, что для корректной работы флешки под разными ОС недопустимо.

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

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

Немного о форматировании: сейчас пойдут большие куски кода. Обычным моноширинным шрифтом мы будем показывать вывод консоли, жирным - наш ввод. Сразу за решеткой красным - #мои комментарии.
Итак, загрузились. Если вы не root, то станьте им , выполнив команду su и введя пароль , ибо борьба с ополоумевшим железом по праву только суперпользователю .
Подключаем флешку, смотрим список USB-устройств. Вводим lsusb, нажимаем Enter, смотрим вывод:

root@H84_103:~# 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. Попытаемся познакомиться с ней поближе:

root@H84_103:~# hdparm /dev/sdb

/dev/sdb:
#Защита от записи выключена
readonly = 0 (off)
readahead = 256 (on)
#Транслируемая геометрия соответсвует реальной: 1017856 секторов это ~512 МБ
geometry = 1014/17/59, sectors = 1017856, start = 0


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

root@H84_103:~# 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 минуты
Теперь "по-фирменному" создаём раздел.

root@H84_103:~# 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.

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 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
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 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
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

root@H84_103:~# mkdosfs /dev/sdb1
mkdosfs 2.11 (12 Mar 2005)
Линкусоиды могут тут же примонтировать новообретенный девайс и что-нибудь записать на него. Пользователи дружественной и удовлетворяющей все запросы пользователей ОС грузятся в Windows и радуются, что стали "настоящими" линуксоидами .


Автор не несет никакой ответственности за то, что счастливые обладатели SATA-дисков попутали буквы и постирали информацию со своих винчестеров (а такие будут, это я гарантирую ) . Если вы из статьи ничего не поняли, и проблеск мысли в мозгу не воссиял , то лучше статью сразу забыть, флешку выкинуть и идти в магазин за новой.
__________________
Just For Fun
inattack@conference.jabber.ru

Последний раз редактировалось -=Leon=-, 04.08.2009 в 05:07.
  Ответить с цитированием

Старый 12.01.2011, 17:44   #2
Maxik
Участник
 
Аватар для Maxik
 
Maxik вне форума
Регистрация: 17.05.2009
Сообщений: 250
Maxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутациюMaxik имеет наиславнейшую репутацию
По умолчанию

а не проще было её просто отформатировать ???
__________________
Только Maxik трали-вали гордо реет над пучиной...
  Ответить с цитированием

Старый 12.01.2011, 19:10   #3
rohard
Постоялец
 
Аватар для rohard
 
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
rohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутацию
Отправить сообщение для rohard с помощью ICQ
По умолчанию

Цитата:
Сообщение от Maxik Посмотреть сообщение
а не проще было её просто отформатировать ???
Ты не поверишь...
__________________
Почти.
  Ответить с цитированием

Старый 17.04.2011, 13:24   #4
sart
Заинтересовавшийся
 
Аватар для sart
 
sart вне форума
Регистрация: 27.11.2008
Сообщений: 152
sart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутациюsart имеет наиславнейшую репутацию
По умолчанию

Будьте добры, прикрепите тему Очень полезная информация )
  Ответить с цитированием

Старый 21.04.2011, 23:07   #5
Strelockk
Участник
 
Аватар для Strelockk
 
Strelockk вне форума
Регистрация: 15.11.2008
Сообщений: 238
Strelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутациюStrelockk имеет наиславнейшую репутацию
По умолчанию

даа метод действительно сработал на флехе Transend 8GB, ТС спасибо за полезную инфу!
  Ответить с цитированием

Старый 16.05.2011, 12:30   #6
RIP
Долгожитель
 
RIP вне форума
Регистрация: 26.02.2009
Сообщений: 3,077
RIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутацию
По умолчанию

Help линуксоид! Есть флешка a-data на 16 гб, в виндоусе пишет что флешку надо отформатировать - если попытаться форматировать, выдает "Форматирование не может быть завершено".
Вместо slax использовал knoppix.
Загрузился с флешки, попытался через этот dd набить флешку нуликами - но этот процесс идет бесконечно! Ни статусбара, ни вывода действий, ничего не выводит. Просто стоял так 8 часов и никакого результата. Набил ли нуликами, или нет - неизвестно.
Зашел в gparted, попытался удалить раздел - но процесс сразу же останавливается и выводит ошибку: "Процесс не может быть завершен"

а так, программно флешку видит - старые файлы там есть, но ничего не копируется, не удаляется. Какие подводные камни? Неужели так долго форматирует? Следует ли ждать больше 8 часов?
  Ответить с цитированием

Старый 16.05.2011, 14:05   #7
Jinc
Постоялец
 
Аватар для Jinc
 
Jinc вне форума
Регистрация: 10.01.2009
Сообщений: 1,268
Jinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутациюJinc имеет наиславнейшую репутацию
По умолчанию

попробуй форматнуть их консоли.
может флешка физически сломалась?
__________________
Сильные, умные, вольные...
  Ответить с цитированием

Старый 16.05.2011, 17:15   #8
RIP
Долгожитель
 
RIP вне форума
Регистрация: 26.02.2009
Сообщений: 3,077
RIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутациюRIP имеет наиславнейшую репутацию
По умолчанию

в терминале вбиваю sudo mkfs.vfat -I /dev/sdc (появляется надпись mkfs.vfat 3.0.8 (23 Jan 2010))
выдергиваю флешку, вставляю обратно - вижу, старые файлы на месте. Форматирования не происходит. Файлы еще даже проигрываются (там несколько видеофайлов)

видать флешке пришел полный экстерминатус.

Последний раз редактировалось RIP, 16.05.2011 в 19:06.
  Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +9, время: 12:01.


vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2024, Якутск-Online. Перевод: zCarot