Программы
Низкоуровневое форматирование устройств

Низкоуровневое форматирование устройств

Бывает, что программа форматирования в нашем уютном графическом интерфейсе говорит, что не может справиться, но на самом деле, сделать ещё можно многое!

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

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

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

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

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

Непосредственно решение:
root@uuru:~# lsusb
Bus 003 Device 006: ID 0930:6545 Toshiba Corp.
Bus 003 Device 005: ID 0bda:0116 Realtek Semiconductor Corp.
Bus 003 Device 004: ID 04f2:b012 Chicony Electronics Co., Ltd
Bus 003 Device 002: ID 152d:2329 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 046d:c019 Logitech, Inc.
Bus 002 Device 001: ID 0000:0000
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
Command action
e extended
p primary partition (1-4)
Нам нужен primary(жмём “p”). Вообще говоря можно и extended(если primary уже есть) итого более 2 разделов на флеши(предположим, у нас флешь), тогда стоит знать, что винда не будет воспринимать флешь как “живое” устройство, если первым разделом не будет виндовый(фат, нтфс)…
Но задача у нас сейчас другая, а именно создать один большой и рабочий раздел.
Partition number (1-4): 1
далее просто жмём enter(default значения нас устраивают)
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

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

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

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

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

Пишем изменения и выходим
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.

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

Изображение Шпаргалка по командам Linux, FreeBSD и MacOS