Библиотека сайта rus-linux.net
Форматирование
Форматирование (Formatting) это процесс записи специальных отметок на магнитную поверхность, которые используются для разделения дорожек и секторов. Перед форматированием диска его поверхность состоит из смеси различных магнитных сигналов. При форматировании эти сигналы упорядочиваются и происходит формирование дорожек и секторов. В действительности, все намного сложнее и выходит за рамки этой книги. Нужно знать только то, что диск не может использоваться, до тех пор пока он не будет отформатирован.
При работе в MS-DOS, форматирование также включает в себя процесс создания файловой системы. Там часто эти два процесса совмещены, особенно при работе с гибкими дисками. Но если нужно сделать разграничение, то действительным форматированием называют форматированием на низком уровне (low-level formatting) , а создание файловой системы форматированием на высоком уровне (high-level formatting). При работе в системе UNIX (а также в этой книге) вместо этих двух понятий будут использоваться понятия форматирование и, соответственно, формирование файловой системы.
Для IDE и некоторых SCSI дисков форматирование производится при их изготовлении и, обычно, не требуется повторения этой процедуры, поэтому большинство людей редко об этом задумываются. В действительности, форматирование диска может привести к ухудшению его работы, например, по причине того, что диск должен быть отформатирован специальным образом для обеспечения возможности замены плохих секторов.
Форматируемые диски часто поставляются со специальной программой, потому как внутренние интерфейсы у разных приводов различны. Эта программа обычно раположена в микросхеме BIOS контроллера или поставляется отдельно как программа для MS-DOS. Ни одни из них не могут быть использованы для системы Linux.
Во время форматирования могут быть обнаружены плохие блоки или плохие сектора, которые не должны быть использованы при дальнейшей работе. Эти функции возлагаются на файловую систему. Хотя можно создать небольшой раздел диска, который включает в себя только плохие блоки. Это эффективно при большом количестве плохих блоков, так как при работе файловой системы могут возникнуть некоторые трудности, связанные с размером неиспользуемой области.
Если для форматирования используется автоматическое устройство (например,$
fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
/dev/fd0
), то сначала нужно
указать параметры этого устройства с помощью программы
setfdprm. Для получения такого же результата, как в предыдущем примере,
нужно выполнить следующие действия:
Обычно проще указать точный файл устройства, который соответствует типу форматируемого диска.$
setfdprm /dev/fd0 1440/1440
$
fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
/usr/adm/messages
. fdformat
не сообщает специфику ошибки (обычно это не имеет значения, так как дисководы
это довольно дешевые устройства и их замена не составляет проблем).
Команда badblocks используется для поиска плохих блоков на любом диске или разделе диска (включая гибкие диски). Она не форматирует диск, поэтому может быть использована для проверки даже существующих файловых систем. В следующем примере рассматривается проверка 3.5 дюймовой дискеты с двумя плохими блоками.$
fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
$
Программа выводит номера найденных плохих блоков. Во многих файловых системах есть средства, позволяющие избежать использования таких блоков. Для таких целей существует список известных плохих блоков, который инициализируется при установке файловой системы и может быть модифицирован в дальнейшем. Первичный поиск плохих блоков производится при выполнении команды mkfs (которая инициализирует файловую систему), в последующем проверка производится с помощью программы badblocks, а модификация списка при помощи команды fsck. Эти команды будут рассмотрены ниже.$
badblocks /dev/fd0H1440 1440
718
719
$
Много современных дисков автоматически обращают внимание на плохие блоки, и предпринимают попытку переместить их, используя специально зарезервированные хорошие блоки вместо плохих. Это невидимо для операционной системы. Это свойство должно быть зарегистрировать в руководстве на диск. Даже такие диски могут отказать, если количество плохих блоки станет слишком большими, хотя к тому времени диск скорее всего просто развалится.