Форматирование

     Форматирование - это процесс записи специальных отметок на магнитную поверхность, которые используются для разделения дорожек и секторов. Перед форматированием диска его поверхность состоит из смеси различных магнитных сигналов. При форматировании эти сигналы упорядочиваются и происходит формирование дорожек и секторов. В действительности, все намного сложнее и выходит за рамки этой книги. Нужно знать только то, что диск не может использоваться, до тех пор пока он не будет отформатирован.

     При работе в MS-DOS, форматирование также включает в себя процесс создания файловой системы. Там часто эти два процесса совмещены, особенно при работе с гибкими дисками. Но если нужно сделать разграничение, то действительным форматированием называют форматированием на низком уровне, а создание файловой системы  форматированием на высоком уровне. При работе в системе UNIX (а также в этой книге) вместо этих двух понятий будут использоваться понятия форматирование и, соответственно, формировании файловой системы.

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

     Форматируемые диски часто поставляются со специальной программой, потому как внутренние интерфейсы у разных приводов различны. Эта программа обычно раположена в микросхеме BIOS контроллера или поставляется отдельно как программа для MS-DOS. Ни одни из них не могут быть использованы для системы Linux.

     Во время форматирования могут быть обнаружены плохие блоки или сектора, которые не должны быть использованы при дальнейшей работе. Эти функции возлагаются на файловую систему. Хотя можно создать небольшой раздел диска, который включает в себя только плохие блоки. Это эффективно при большом количестве плохих блоков, так как при работе файловой системы могут возникнуть некоторые трудности, связанные с размером неиспользуемой области.

     Для форматирования дискет используется программа fdformat(8) В качестве параметра указывается файл устройства. Например, следующая команда используется для форматирования обычной дискеты размером 3.5 дюйма высокой плотности в первом приводе для гибких дисков:
ttyp5 root ~ $ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
ttyp5 root ~ $

     Если для форматирования используется автоматическое устройство (например, /dev/fd0), то сначала нужно указать параметры этого устройства с помощью программы setfdprm(8). Для получения такого же результата, как в предыдущем примере, нужно выполнить следующие действия:
ttyp5 root ~ $ setfdprm /dev/fd0 1440/1440
ttyp5 root ~ $ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
ttyp5 root ~ $

     Обычно проще указать точный файл устройства, который соответствует типу форматируемого диска.

     Программа fdformat также используется для выявления плохих блоков. Она обрабатывает плохой блок несколько раз. Если проблема не очень серьезна (загрязненная рабочая поверхность считывающих/записывающих головок, плохой контакт в разъеме контроллера), то fdformat продолжит свою работу, но возникновение реальной ошибки прервет процесс проверки. Ядро отображает
появление каждой ошибки на терминале. Если используется syslog, то сообщение поступает в файл /usr/adm/messages. fdformat не сообщает специфику ошибки (обычно это не имеет значения, так как дисководы это довольно дешевые устройства и их замена не составляет проблем).
ttyp5 root ~ $ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
ttyp5 root ~ $

     Команда badblocks(8) используется для поиска плохих блоков на любом диске или разделе диска (включая гибкие диски). Она не форматирует диск, поэтому может быть использована для проверки даже существующих файловых систем. В следующем примере рассматривается проверка 3.5 дюймовой дискеты с двумя плохими блоками.
ttyp5 root ~ $ badblocks /dev/fd0H1440
718
719
ttyp5 root ~ $

     Программа выводит номера найденных плохих блоков. Во многих файловых системах есть средства, позволяющие избежать использования таких блоков. Для таких целей существует список известных плохих блоков, который инициализируется при установке файловой системы и может быть модифицирован в дальнейшем. Первичный поиск плохих блоков производится при выполнении команды
mkfs (которая инициализирует файловую систему), в последующем проверка производится с помощью программы badblocks, а модификация списка - при помощи команды fsck. Эти команды будут рассмотрены ниже.