НИЗКОУРОВНЕВОЕ ФОРМАТИРОВАНИЕ ФЛЕШКИ (LINUX)

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

fdisk -l

Диск /dev/sda: 1000.2 Гб, 1000204886016 байт
255 головок, 63 секторов/треков, 121601 цилиндров, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0x0000f492
/dev/sda1 * 2048 1951956991 975977472 83 Linux
/dev/sda2 1951959038 1953523711 782337 5 Расширенный
Раздел 2 начинается не на границе физического сектора.
/dev/sda5 1951959040 1953523711 782336 82 Linux своп / Solaris
Диск /dev/sdb: 7742 МБ, 7742685184 байт
...

Флешка у меня распознается как /dev/sdb

Теперь приступает к низкоуровневому форматированию, суть низкоуровневого форматирования в том, чтобы при помощи команды заполнить всё пространство нулевыми байтами. После выполнения команды все данные будут безвозвратно потеряны! Зато мы избавимся от программных бэдов, поврежденных таблиц, загрузочного сектора и т.д.

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

Процедура форматирования достаточно долгая, у меня на 8Гб флешку ушло 60 минут.

15122433+0 записей получено
15122432+0 записей отправлено
скопировано 7742685184 байта (7,7 GB), 3693,12 c, 2,1 MB/c

Проверим что у нас получилось:

fdisk -l

Диск /dev/sdb: 7742 МБ, 7742685184 байт
239 головок, 62 секторов/треков, 1020 цилиндров, всего 15122432 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x00000000

На диске /dev/sdb отсутствует верная таблица разделов

Теперь надо создать раздел:

sudo fdisk /dev/sdb

Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF
Building a new DOS disklabel with disk identifier 0xa08b6888.
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 будет исправлен записью

Команда (m для справки): 

Действие команды

a переключение флага загрузки
b редактирование метки диска bsd
c переключение флага dos-совместимости
d удаление раздела
l список известных типов файловых систем
m вывод этого меню
n добавление нового раздела
o создание новой пустой таблицы разделов DOS
p вывод таблицы разделов
q выход без сохранения изменений
s создание новой чистой метки диска Sun
t изменение id системы раздела
u изменение единиц измерения экрана/содержимого
v проверка таблицы разделов
w запись таблицы разделов на диск и выход
x дополнительная функциональность (только для экспертов)

Выберите n для создания нового раздела:

Команда (m для справки): n
Partition type:
 p primary (0 primary, 0 extended, 4 free)
 e расширенный
Select (default p): (выберите p) 
Номер раздела (1-4, по умолчанию 1): (Enter)
Используется значение по умолчанию 1
Первый сектор (2048-15122431, по умолчанию 2048): (Enter)
Используется значение по умолчанию 2048
Last сектор, +секторы or +size{K,M,G} (2048-15122431, по умолчанию 15122431): 
Используется значение по умолчанию 15122431

Дальше изменим id системы раздела нажав t

Команда (m для справки): t
Выбранный раздел 1
Шестнадцатеричный код (введите L для получения списка кодов): l
0 Пустой 24 NEC DOS 81 Minix / старый bf Solaris 
 1 FAT12 27 Hidden NTFS Win 82 Linux своп / So c1 DRDOS/sec (FAT-
 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
 3 XENIX usr 3c PartitionMagic 84 OS/2 скрытый ди c6 DRDOS/sec (FAT-
 4 FAT16 <32M 40 Venix 80286 85 Linux расширен c7 Syrinx 
 5 Расширенный 41 PPC PReP Boot 86 NTFS набор томо da Данные не ФС 
 6 FAT16 42 SFS 87 NTFS набор томо db CP/M / CTOS / .
 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 
 8 AIX 4e QNX4.x 2-я част 8e Linux LVM df BootIt 
 9 AIX загрузочный 4f QNX4.x 3-я част 93 Amoeba e1 DOS access 
 a OS/2 Boot-менед 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O 
 b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor 
 c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS фс 
 e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT 
 f W95 расшир. (LBА) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC з
11 Скрытый FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 
12 Compaq диагност 5c Priam Edisk a9 NetBSD f4 SpeedStor 
14 Скрытый FAT16 < 61 SpeedStor ab Darwin загрузоч f2 DOS вторичный 
16 Скрытый FAT16 63 GNU HURD или Sy af HFS / HFS+ fb VMware VMFS 
17 Скрытый HPFS/NT 64 Novell Netware b7 BSDI фс fc VMware VMKCORE 
18 AST SmartSleep 65 Novell Netware b8 BSDI своп fd Автоопределение
1b Скрытый W95 FAT 70 DiskSecure Mult bb Boot Wizard скр fe LANstep 
1c Скрытый W95 FAT 75 PC/IX be Solaris загр. ff BBT 
1e Скрытый W95 FAT 80 Old Minix

Мне необходим раздел W95 FAT32, поэтому я выбираю его нажав b

Шестнадцатеричный код (введите L для получения списка кодов): b
Системный тип раздела 1 изменен на b (W95 FAT32)

Все теперь можно записать таблицы разделов и выйти нажав w:

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

ПРЕДУПРЕЖДЕНИЕ: Если вы создали или изменили
какие-либо разделы DOS 6.x, пожалуйста, прочтите страницу руководства fdisk для получения дополнительной информации.
Синхронизируются диски.

Командой fdisk -l смотрим что у нас получилось:

fdisk -l

Диск /dev/sdb: 7742 МБ, 7742685184 байт
131 головок, 12 секторов/треков, 9619 цилиндров, всего 15122432 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0xa08b6888

Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 2048 15122431 7560192 b W95 FAT32

Осталось отформатировать флешку, мы создали раздел /dev/sdb1 поэтому указываем его:

sudo mkfs.vfat -F32 /dev/sdb1

mkfs.fat 3.0.24 (2013-11-23)

14102474


Фруктовая ферма

Comments

  1. Вот такая реакция флешки на команду.
    hdparm /dev/sdc

    /dev/sdc:
    SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    multcount = 0 (off)
    readonly = 1 (on)
    readahead = 256 (on)
    geometry = 1024/0/62, sectors = 0, start = 0

    Как мне кажется кроме hex редактора ничего не поможет. На все один ответ — Файловая система только для чтения. Может посоветуете че?

Добавить комментарий