Как вылечить флешку в линукс
Сегодня речь пойдет о так называемом «программном
 ремонте» 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, смотрим вывод:
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-дисков попутали буквы и постирали информацию
 со своих винчестеров (а такие будут, это я гарантирую 🙂 ) . Если вы из
 статьи ничего не поняли, и проблеск мысли в мозгу не воссиял 🙂 , то
 лучше статью сразу забыть, флешку выкинуть и идти в магазин за новой. Данная технология справедлива для флешек до 2 ГБ включительно.
     Автор искренне благодарит Алексея Хована за помощь в
 написании статьи и дополнительную проверку работоспособности метода.
Виталий Розизнаный, специально для rlab.ru.
Перепечатка или цитирование разрешены при условии сохранения ссылки вида R.LAВ восстановление данных на первоисточник.
| Отзывы о статье Программный ремонт USB flash в Linux jagger22.07.2007 | |
| Небольшое дополнение. Затем то же самое читаю из zero: После достаточно сравнить два полученных значения, если все верно, то контрольные суммы должны совпадать. Если они не совпадают, то увы, неисправность флэшки настоящая. Для надежности можно повторить запись нулей и вычисление контрольных сумм. Подобным образом мне удалось отбраковать несколько флэшек с симптомами искажения данных (контрольные суммы не совпали). Например, записали архив, а он не читается или читается, но в конце концов оказывается поврежденным. Dmitrii30.09.2007 | |
| Очень дельное дополнение. Спасибо. Таки да, насколько я знаю, контроля целостности данных во флешке нет.  Rozik02.10.2007 | |
| Статья хорошая… для линуксоводов.   Tomset03.10.2007 | |
| Опять двадцать пять… Дуб, орех или мочало — начинаем всё сначала. Опускаем и  Винхекс, и цену на него, и то что он в стандартной поставке виды почему-то не идёт  … Rozik03.10.2007 | |
| Не в Winhexe дело, жалко 1000р за него, можно например и бесплатным Tomset03.10.2007 | |
| Вы не ответили на мой вопрос Rozik03.10.2007 | |
| Вы не ответили на мой вопрос Этот? разметтьте под виндой мне флешку так, чтоб она была как с завода, и чтоб она корректно работала везде, а не только в винде. Стоп! если размеченная под win флешка в самой винде работает. То причем здесь другие OC. разьве M$ обещает какую либо совместимость с другими ОС своего формата. Это уж простите, чистая проблема стороних ОС, что они не понимают формата Win. Tomset04.10.2007 | |
| Сэр, Вас не смущает, к примеру, что на «сторонних» или как сейчас модно говорить «альтернативных» ОС стоит, согласно статистике, 80% серверов рунета и в них изредка бывает надо подоткнуть флеш с каким-нибудь патчиком (или руткитом, к примеру  ). Rozik04.10.2007 | |
| Сэр, Вас не смущает, к примеру, что на «сторонних» или как сейчас модно говорить «альтернативных» ОС стоит, согласно статистике, 80% серверов рунета и в них изредка бывает надо подоткнуть флеш с каким-нибудь патчиком (или руткитом, к примеру  ). Конечно, делаю как мне удобно. зачем же я буду устанавливать «альтернативную» ОС, чтоб восстановить флешку. Tomset04.10.2007 | |
Источник
Довольно таки часто занимался программным восстановлением usb flash
 накопителей на Windows, ну и заинтересовался как можно это
 реализовать на Linux. Как раз под рукой лежала флэшка JetFlash
 TS4GJF160 на 4Gb, которая не хотела работать
И так для начала разберемся что же есть программный ремонт. В любой
 флэшке установлена микросхема-контроллер. Она отвечает за передачу
 данных между компьютером и флэш-памятью. В случае различных сбоев
 питания, неправильного извлечения и других причин – происходит сбой
 контроллера. В результате чего контроллер блокируется и не отвечает на
 запросы операционной системы. Также, блокировка может произойти из-за
 износа микросхемы памяти — появления дефектных блоков или превышения
 порога циклов записи (тогда контроллер сам метит блок как неиспользуемый
 и часто блокирует флэш на запись). И при попытке доступа к нему из
 операционной системы можно увидеть следующие сообщения «Вставьте диск»
 или «Нет доступа к диску», «Диск не отформатирован». Но при попытке
 отфарматировать выдается сообщение типа «Диск защищен от записи»
Так как же боротся с этим?! Весьма просто…
- Вставляем usb flash накопитель в компьютер и определяем какое имя 
 ему присваивается
 При подключении usb flash накопителя к компьютеру, Linux
 присваивает ему имя типа sdX (первому устройству присваивается
 sda, второму sdb и так далее. Но чтобы узнать какое имя он
 ему присвоил наверняка, используем 1 из способов:- Набираем команду: - dmesg - Выведет следующее: - [ 1676.752097] usb 1-1: new high speed USB device using ehci_hcd and address 2 
 [ 1676.885083] usb 1-1: configuration #1 chosen from 1 choice
 [ 1676.886065] scsi6 : SCSI emulation for USB Mass Storage devices
 [ 1676.886393] usb-storage: device found at 2
 [ 1676.886399] usb-storage: waiting for device to settle before scanning
 [ 1681.885333] usb-storage: device scan complete
 [ 1681.886555] scsi 6:0:0:0: Direct-Access JetFlash TS4GJF160 0.00 PQ: 0 ANSI: 2
 [ 1681.887796] sd 6:0:0:0: Attached scsi generic sg3 type 0
 [ 1681.892418] sd 6:0:0:0: [sdc] 8028160 512-byte logical blocks: (4.11 GB/3.82 GiB)
 [ 1681.893352] sd 6:0:0:0: [sdc] Write Protect is off
 [ 1681.893361] sd 6:0:0:0: [sdc] Mode Sense: 00 00 00 00
 [ 1681.893368] sd 6:0:0:0: [sdc] Assuming drive cache: write through
 [ 1681.895713] sd 6:0:0:0: [sdc] Assuming drive cache: write through
 [ 1681.895725] sdc: sdc1
 [ 1681.972724] sd 6:0:0:0: [sdc] Assuming drive cache: write through
 [ 1681.972738] sd 6:0:0:0: [sdc] Attached SCSI removable disk- Из этого всего нам нужна только 1 строка: - [ 1681.895725] sdc: sdc1 - которая и говорит нам что присвоено имя устройству sdc1 
- Набираем команду: - sudo tail /var/log/messages - Выведет следующее: - Nov 13 22:25:33 espera kernel: [ 1676.752097] usb 1-1: new high speed USB device using ehci_hcd and address 2 
 Nov 13 22:25:33 espera kernel: [ 1676.885083] usb 1-1: configuration #1 chosen from 1 choice
 Nov 13 22:25:33 espera kernel: [ 1676.886065] scsi6 : SCSI emulation for USB Mass Storage devices
 Nov 13 22:25:38 espera kernel: [ 1681.886555] scsi 6:0:0:0: Direct-Access JetFlash TS4GJF160 0.00 PQ: 0 ANSI: 2
 Nov 13 22:25:38 espera kernel: [ 1681.887796] sd 6:0:0:0: Attached scsi generic sg3 type 0
 Nov 13 22:25:38 espera kernel: [ 1681.892418] sd 6:0:0:0: [sdc] 8028160 512-byte logical blocks: (4.11 GB/3.82 GiB)
 Nov 13 22:25:38 espera kernel: [ 1681.893352] sd 6:0:0:0: [sdc] Write Protect is off
 Nov 13 22:25:38 espera kernel: [ 1681.895725] sdc: sdc1
 Nov 13 22:25:38 espera kernel: [ 1681.972738] sd 6:0:0:0: [sdc] Attached SCSI removable disk- Аналогично первой команде ищем среди последних строк: - Nov 13 22:25:38 espera kernel: [ 1681.895725] sdc: sdc1 
- Набираем команду: - mount | column -t - Имхо самый оптимальный вариант, выведет весь список 
 смонтированных устройств и в самом конце видим следующее:- /dev/sdc1 on /media/A47B-0D0E type vfat (rw, nosuid, nodev, uhelper=udisks, uid=1000, gid=1000, shortname=mixed, dmask=0077, utf8=1, flush) - Думаю тут все понятно, /dev/sdc1 то что нам и нужно 
 
- Забиваем usb flash накопитель нулевыми байтами, набирая: - sudo dd if=/dev/zero of=/dev/sdc1 - После чего нам выдаст следующее: - dd: запись в «/dev/sdc1»: На устройстве кончилось место 
 8028098+0 записей считано
 8028097+0 записей написано
 скопировано 4110385664 байта (4,1 GB), 97,692 c, 42,1 MB/c- На ошибку можете не обращать внимание, мы же не указали необходимый 
 размер
- Форматируем usb flash накопитель, командой: - sudo fdisk /dev/sdc1 - Выведет следующее: - Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF 
 Building a new DOS disklabel with disk identifier 0x1854766c.
 Changes will remain in memory only, until you decide to write them.
 After that, of course, the previous content won’t be recoverable.
 …
 Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью
 …
 WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
 switch off the mode (command ‘c’) and change display units to
 sectors (command ‘u’).
 …
 Команда (m для справки):- Создаем новый раздел, командой n: - Команда (m для справки): n 
 Действие команды
 e расширенный
 p основной раздел (1-4)
 p
 Номер раздела (1-4): 1
 Первый цилиндр (1-1019, по умолчанию 1): 1
 Last цилиндр, +цилиндры or +size{K,M,G} (1-1019, по умолчанию 1019): 1019- Просматриваем что получилось, командой p: - Команда (m для справки): p 
 …
 Диск /dev/sdc1: 4110 МБ, 4110385664 байт
 127 heads, 62 sectors/track, 1019 cylinders
 Units = цилиндры of 7874 * 512 = 4031488 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x1854766c
 …
 Устр-во Загр Начало Конец Блоки Id Система
 /dev/sdc1p1 1 1019 4011772 83 Linux- Так как Linux раздел нам никчему сменим его, командой t: - Команда (m для справки): t 
 Выбранный раздел 1
 Шестнадцатеричный код (введите L для получения списка кодов): l
 …
 0 Пустой 24 NEC DOS 81 Minix / ста bf Solaris
 1 FAT12 39 Plan 9 82 Linux своп c1 DRDOS/sec (FAT-
 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
 3 XENIX usr 40 Venix 80286 84 OS/2 скрыт c6 DRDOS/sec (FAT-
 4 FAT16 <32M 41 PPC PReP Boot 85 Linux расш c7 Syrinx
 5 Расшире 42 SFS 86 NTFS набор da Данные н
 6 FAT16 4d QNX4.x 87 NTFS набор db CP/M / CTOS / .
 7 HPFS/NTFS 4e QNX4.x 2-я ч 88 Linux plaintext de Dell Utility
 8 AIX 4f QNX4.x 3-я ч 8e Linux LVM df BootIt
 9 AIX загру 50 OnTrack DM 93 Amoeba e1 DOS access
 a OS/2 Boot-ме 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
 b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
 c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS фс
 e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
 f W95 расши 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC
 11 Скрытый 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
 12 Compaq диаг 61 SpeedStor a9 NetBSD f4 SpeedStor
 14 Скрытый 63 GNU HURD или ab Darwin загр f2 DOS втори
 16 Скрытый 64 Novell Netware af HFS / HFS+ fb VMware VMFS
 17 Скрытый 65 Novell Netware b7 BSDI фс fc VMware VMKCORE
 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI своп fd Автоопр
 1b Скрытый 75 PC/IX bb Boot Wizard с fe LANstep
 1c Скрытый 80 Old Minix be Solaris заг ff BBT
 1e Скрытый
 Шестнадцатеричный код (введите L для получения списка кодов): 6
 Системный тип раздела 1 изменен на 6 (FAT16)- Смотрим результат, командой p: - Команда (m для справки): p 
 …
 Диск /dev/sdc1: 4110 МБ, 4110385664 байт
 127 heads, 62 sectors/track, 1019 cylinders
 Units = цилиндры of 7874 * 512 = 4031488 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x1854766c
 …
 Устр-во Загр Начало Конец Блоки Id Система
 /dev/sdc1p1 1 1019 4011772 6 FAT16- Ну и записываем таблицу разделов на usb flash накопитель, командой 
 w:- Команда (m для справки): w 
 Таблица разделов была изменена!
 …
 Вызывается ioctl() для перечитывания таблицы разделов.
 …
 WARNING: Re-reading the partition table failed with error 22: Недопустимый аргумент.
 The kernel still uses the old table. The new table will be used at
 the next reboot or after you run partprobe(8) or kpartx(8)
 …
 ПРЕДУПРЕЖДЕНИЕ: Если вы создали или изменили
 какие-либо разделы DOS 6.x, пожалуйста, прочтите
 страницу руководства fdisk для получения
 дополнительной информации.
- Форматируем usb flash накопитель, командой: - sudo mkdosfs /dev/sdc1 - После форматирования в раздел FAT16, выведет следующее: - mkdosfs 3.0.7 (24 Dec 2009) - Команда для форматирования в FAT32: - sudo mkdosfs -F 32 /dev/sdc1 
- После выполнения этих пунктов, в WinXP usb flash накопитель выдал 
 «Диск не отформатирован» и только после того как я отформатировал
 стандартными средствами Win все заработало
Вот вообщем-то и все… Удачи в восстановлении!)
Для дополнительной информации об устройстве, введите:
sudo hdparm /dev/sdb
Выведет:
/dev/sdb:
 HDIO_DRIVE_CMD(identify) failed: Invalid exchange
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 1024/0/62, sectors = 0, start = 0
Источник
 
  
 