Пропустить навигацию.
Главная

Низкоуровневое форматирование (Flash).

Аватар пользователя helios

Дабы придать блогу(коллективному) некую степень практической полезности(да, интересно пообщаться, да приятно почитать записки Валерия Павловича, но нужны и "маны") публикую очередной кросс-пост со своего сайта по unix (UURU)

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

Зачем же нужно это: этот способ может понадобиться тогда, когда ничто иное не помогает или же лень разбираться в проблеме. К примеру, я к нему пришёл, когда ставил на флешь очередную операционку с помощью unetbootin и после чего вместо 8 гигабайт обнаружил 110 метров... Первое что пришло в голову не помогло.

А пришло в голову различное форматирование, но проблемки были ещё и с таблицами разделов, которые, как ни странно не хотели сноситься

Решение было одно: снести всё и построить "свой лунопарк с блэкджеком и шлюхами".

root@uuru:~# - говорит о том, что выполняем всё из под "рута".

Непосредственно решение:

root@uuru:~# lsusb<br>
<br>Bus 003 Device 006: ID 0930:6545 Toshiba Corp.
<br>Bus 003 Device 005: ID 0bda:0116 Realtek Semiconductor Corp.
<br>Bus 003 Device 004: ID 04f2:b012 Chicony Electronics Co., Ltd
<br>Bus 003 Device 002: ID 152d:2329 JMicron Technology Corp. / JMicron USA Technology Corp.
<br>Bus 003 Device 001: ID 0000:0000
<br>Bus 002 Device 002: ID 046d:c019 Logitech, Inc.
<br>Bus 002 Device 001: ID 0000:0000
<br>Bus 001 Device 001: ID 0000:0000 

- видим, что она "видна" операционке.
Ищем "адрес" нашего устройства, дабы не затереть ничего лишнего.
SCSI, SATA, IDE устройства можно глянуть утилитой hdparm (она покажет размер устройства).
Как вариант глянуть в /media/.hal-mtab . У меня там показано как примонтирована флешь
/dev/sdd1 0 0 vfat nosuid,nodev,uhelper=hal,shortname=mixed,uid=0,utf8,umask=077,exec,flush /media/disk
запись, что нам нужна - "/dev/sdd1"

Приготовления закончены, теперь можно и "убивать" :-)
root@uuru:~# dd if=/dev/zero of=/dev/sdd
"4 часа в морозилке и готово!" операция действительно долгая(у меня ушло минут 20 на неё).
Комментарии к происходящему: из "файла с нулями"(на самом деле это генератор нулей) в "файл устройства" на самом деле это как указатель\интерфейс устройства копируем содержимое(забиваем всё в устройстве нулями). Итого: ни таблиц, ни разделов, ни mbr ничего кроме нуля(почти как 0 градусов по Кельвину - никакой активности ;-) ) "А вдоль дорог мёртвые с косами стоят... И тишина!"

Ну а теперь "твой новый мир, твой храм на крови" пришло время воздвигнуть! А поможет нам в этом утилита fdisk:
root@uuru:~# fdisk /dev/sdd
можете нажать "m" и почитать что можно сделать с помощью этой утилиты, я же, не отвлекаясь на это, расскажу как нам вернуть разметку на диск.

Command (m for help): n
<br>Command action
<br>e extended
<br>p primary partition (1-4)
<br>

Нам нужен primary(жмём "p"). Вообще говоря можно и extended(если primary уже есть) итого более 2 разделов на флеши(предположим, у нас флешь), тогда стоит знать, что винда не будет воспринимать флешь как "живое" устройство, если первым разделом не будет виндовый(фат, нтфс)...
Но задача у нас сейчас другая, а именно создать один большой и рабочий раздел.
Partition number (1-4): 1
далее просто жмём enter(default значения нас устраивают)

First cylinder (1-1014, default 1):
<br>Using default value 1
<br>Last cylinder or +size or +sizeM or +sizeK (1-1014, default 1014):
<br>Using default value 1014

Теперь у нас есть раздел Linux. Для совместимости сделаем под что-нить виндовое:
Command (m for help): t
форматировать будем 1ый раздел

Selected partition 1
<br>Hex code (type L to list codes): с

я выбрал "c" т.к. у меня флешь на 8 гигов и оптимизировать я её хочу на чтение\копирование, поэтому система - ФАТ 32. Для устройств размера пол гига - 700 метров отлично подойдёт "6" - ФАТ 16. Для больших устройств с необходимостью оптимизации выполнения рекомендую НТФС(выбрать "7"). Чтобы глянуть полный список - жмём "L".

проверяем:

Command (m for help): p
<br>Диск /dev/sdd: 8127 МБ, 8127512576 байт
<br>251 heads, 62 sectors/track, 1020 cylinders
<br>Units = цилиндры of 15562 * 512 = 7967744 bytes
<br>Disk identifier: 0x247c4cc2

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdd1 1 1020 7936589 b W95 FAT32

Пишем изменения и выходим

Command (m for help): w
<br>The partition table has been altered!
<br>Calling ioctl() to re-read partition table.
<br>WARNING: If you have created or modified any DOS 6.x
<br>partitions, please see the fdisk manual page for additional
<br>information.
<br>Syncing disks.

Раздел есть - теперь форматируем:
root@uuru:~# mkdosfs /dev/sdd1
Флешь готова к эксплуатации

Re: Низкоуровневое форматирование (Flash).

Не смог разобраться с форматированием в месте root@uuru:~# lsusb. Извиняйте :)

Re: Низкоуровневое форматирование (Flash).

С низкоуровневым форматированием приходилось сталкиваться неоднократно. В 286х, 386х компьютерах, да позже, в составе BIOS была утилита низкоуровневого форматирования. Как правило, к её помощи прибегали тогда, когда хотелось чуда. Увы...Флэшки, очень часто подкидывают сюрпризы... Ежели даже не моргает светодиод, система никак не реагирует и не видит флэшку, то уж тут не обойтись без специализированного ПО. Впрочем и в описанном Вами случае, применение этих утилиток вполне оправдано, не требует специальных знаний и безопасно. MDTP, Transcend Jet Flash Recorvery Tool не раз выручали меня из подобных ситуаций. Правда нужна Windows... При всей своей простоте, флэшки могут служить темой для отдельного разговора... Удачи!