next up previous contents index
Дал╕: Розд╕ли Вгору: Використання диск╕в та ╕нших Назад: Стр╕чки

Форматування

Форматування - це процес запису спец╕альних позначок на магн╕тних нос╕ях, як╕ використовуються для позначення дор╕жок та сектор╕в. До форматування магн╕тна поверхня - це повна м╕шанина магн╕тних сигнал╕в. П╕сля цього в хаос вноситься певних порядок за рахунок проведення меж дор╕жок та магн╕тних позначок, як╕ розд╕ляють ╖х на сектори. Справжн╕й процес не наст╕льки простий, але це не стосу╓ться сут╕ справи. Що ╓ насправд╕ важливим - це, те, що диском неможливо користуватися без попереднього форматування.

Трохи вводить в оману терм╕ноло╜╕я, що застосову╓ться тут - в MS-DOS слово `форматування' в╕дноситься до процесу створення файлово╖ системи (про що йдеться трохи дал╕). Але насправд╕ ╕сну╓ два процеси, як╕ часто об'╓днуються, особливо для дискет. Тод╕, коли треба в╕др╕зняти ц╕ два процеси, те, що справд╕ ╓ форматуванням називають форматуванням низького р╕вня56, а про створення файлово╖ системи говорять, що це - форматування високого р╕вня57. В св╕т╕ Юн╕кса про ц╕ два процеси говорять `форматування' та `створення файлово╖ системи', отже це ╕ будуть т╕ терм╕ни, як╕ використовуються в ц╕й книжц╕. Для IDE та деяких SCSI диск╕в форматування фактично викону╓ться на завод╕ ╕ його не потр╕бно робити вдруге, тобто, б╕льш╕сть людей взагал╕ не повинн╕ турбуватися про форматування. Насправд╕, форматування може нав╕ть привести до того, що диск буде працювати г╕рше, наприклад, через те, що, можливо, форматувати необх╕дно якимось спец╕альним чином, так, щоб автоматично зам╕нювати дефектн╕ сектори.

Диски, як╕ потр╕бно або можна форматувати, часто вимагають спец╕ально╖ програми для цього - лог╕ка, що використову╓ться для форматування в╕др╕зня╓ться в╕д диску до диску. Форматуюча програма часто або знаходиться в BIOS'╕ контролера або постача╓ться у вигляд╕ програми для MS-DOS, н╕ тим, н╕ ╕ншим не просто користуватися ╕з Л╕накса.

П╕д час форматування можна пом╕тити деяк╕ дефектн╕ м╕сця на диску, що називаються дефектними блоками або дефектними секторами. В деяких випадках прив╕д турбу╓ться про них самост╕йно, але нав╕ть якщо це так, якщо к╕льк╕сть дефект╕в зб╕льшу╓ться, то щось треба з ними робити для того, щоб не користуватися дефектними м╕сцями на диску. Лог╕ка, що застосову╓ться для цього, вбудована в файлову систему. Дал╕ буде йтися про те, як додати таку ╕нформац╕ю до файлово╖ системи. Додатково можна створити невеликий розд╕л на диску, який буде покривати т╕льки дефектн╕ област╕, бо при занадто велик╕й к╕лькост╕ зб╕йних блок╕в нав╕ть файлова система може мати з ними певн╕ труднощ╕.

Дискети форматуються командою fdformat . Як параметр команд╕ повинна надаватися назва спец╕ального файлу дискети. Наприклад, для форматування 3.5-дюймово╖ дискети високо╖ щ╕льност╕ використову╓ться така команда:

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
В╕дм╕тимо, що якщо Ви хочете користуватися спец╕альним файлом з автоматичним визначенням типу дисекети, Ви повинн╕ встановити параметри дискети командою setfdprm  до цього. Наступн╕ команди будуть мати той ж результат, що й попередн╕:

$ setfdprm /dev/fd0 1440/1440
$ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$ $

Сл╕д користуватися типом спец╕ального файлу, що в╕дпов╕да╓ типу дискети ╕ не варто форматувати дискету на об'╓ми б╕льший, н╕ж той, на який вона розрахована.

fdformat  також перев╕рить дискету, тобто, пом╕тить зб╕йн╕ блоки. В╕н буде намагатися записати (в╕дформатувати) дефектн╕ блоки по к╕лька раз╕в (Ви це почу╓те, звук приводу при цьому зм╕ню╓ться сутт╓во). Якщо дискета не надто з╕псована (невелик╕ часточки бруду, що попали на записуючу головку, деяк╕ др╕бн╕ помилки читання, тощо), fdformat  пропустить ╖х, але сутт╓в╕ помилки спричинять зупинку процесу перев╕рки. Ядро надруку╓ пов╕домлення про кожну з помилок вводу/виводу, вс╕ вони будуть направлятися на консоль або в файл /usr/adm/messages 58 якщо працю╓ syslog . fdformat  однак не буде пов╕домляти, де саме трапилася помилка, але саму це якраз дуже мало кого хвилю╓ в наш час, оск╕льки при дешевизн╕ гнучких диск╕в зараз набагато легше (╕ часто дешевше -Д.К.) викинути зб╕йну дискету.

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
$

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

$ badblocks /dev/fd0H1440 1440
718
719
$

Команда badblocks  просто друку╓ номери знайдених нею зб╕йних блок╕в. Б╕льш╕сть файлових систем вм╕ють обходити зб╕йн╕ блоки. В файлов╕й систем╕ м╕ститься список ╕з зб╕йними блоками. Цей список створю╓ться при створенн╕ само╖ файлово╖ системи, але до нього можна додавати нов╕ блоки ╕ п╕зн╕ше. Спочатку список зб╕йних блок╕в створю╓ться командою mkfs  (Яка створю╓ файлову систему)59, але п╕сля цього перев╕ряти файлову систему потр╕бно командою badblocks  ╕ додавати нов╕ блоки до списку зб╕йних треба командою fsck . Опис команд mkfs  та fsck  ╕де дал╕. Б╕льш╕сть сучасних диск╕в достатньо "розумн╕" для того, щоб визначати сво╖ власн╕ зб╕йн╕ блоки ╕ щоб спробувати ╖х в╕дновити, використовуючи ╕нш╕ зарезерован╕ для ц╕╓╖ мети блоки. Ця операц╕я непом╕тна ("прозора") для операц╕йно╖ системи. Якщо Вас ц╕кавить, чи це ╓ под╕бна функц╕я у Ваших дисках, то, мабуть, ця функц╕я повинна бути описана в документац╕╖ до диск╕в. Але нав╕ть такий диск може в╕дмовити, коли число зб╕йних блок╕в зб╕льшу╓ться занадто. Але, напевне, що коли таке трапиться, то диск буде нарешт╕ вже наст╕льки застар╕лим, що, певне, у Вас не виникне нав╕ть ╕ бажання ним користуватися.


next up previous contents index
Дал╕: Розд╕ли Вгору: Використання диск╕в та ╕нших Назад: Стр╕чки
Dmytro Kovalev
1999-06-10