Мы еще разберем подробнее все подводные камни которые
могут тебя ожидать в п.4-7, а сейчас вернемся к поиску чистого ( то есть -
чистого от сбойных секторов ) места для системной области загрузочного диска
ДОС. Количество секторов которое тебе нужно для этого пройти вручную легко
подсчитать - во-первых - корневой каталог на 512 записей получится если
отвести для него 32 сектора размером в 512 байт каждый ( одна запись занимает
32 байта - ну по-крайней мере - в стандарте ДОС, WINDOWS потом сама
установится :). Подсчитать нужный размер FAT чуточку сложней - для начала ты
должен знать точно сколько секторов на твоем диске ты хочешь отвести
под данный логический раздел, а главное - остановить свой выбор
на оптимальном значении размера кластера - то есть группы
секторов объединенных общей пометкой в FAT. Чтоб ты не мучался - скажу по
секрету - ДОС не поймет чего ты хочешь, если ты попытаешься задать количество
кластеров более чем 65536 - в этой системе так глупо все устроено что FAT
читается в память вся целиком - а там для нее отведено только вот столечко
места. Конечно, если диск не маленький - то чтобы осилить его весь без
остатка тебе придется увеличить и размер кластера, но увеличивать его
более чем необходимо для этого я тебе не советую - хотя бы потому
что каждому файлу система может отвести не менее одного кластера. То есть
- черт возьми - я сам это только что сообразил ! - на одном логическом диске
ДОС не может быть более чем 65536 файлов и каталогов... Как жаль... Ну ладно,
утешься тем что в других операционных системах это по-другому. Существуют
12-тибитная, 16-тибитная и 32-битная версии FAT. Это означает что для пометки
одного кластера в секторах, отведенных под FAT, используется 12 или 16 или 32
бита данных. Поскольку 12-тибитная FAT используется в основном на дискетах (
а также - пи автоматической разбивке диска на логические разделы
объема меньшего, чем 16 МБайт), а 32-хбитная в ДОС не используется - то мы
будем говорить только о 16-ти битной. 16 бит равно двум байтам, значит в
одном секторе, отведенном под FAT, помещается таблица расположения 256
кластеров. И для максимально возможного в ДОС количества кластеров - 65535 -
понадобится всего лишь 256 секторов. Я не ошибся на единицу ? - Ах, да, я
ошибся в первый раз - когда сказал что кластеров может быть 65536 - нет, на
один меньше, так как первые два байта первого сектора FAT занимает код,
означающий для операционной системы просто начало 16-битной FAT. ( Лишнее
напоминание о необходимости точно выполнять все расчеты - никаких округлений
и ошибок, хотя если ты отведешь под FAT пару-тройку лишних секторов, то
система этого скорее всего не заметит, - они просто никогда не будут ею
использованы. Тут возникает один большой соблазн - использовать такой метод
для того чтобы спрятать какие-то важные данные так чтобы никто их не мог
найти. Ну, много данных так не спрятать, однако если ты купишь уже
отформатированный кем-то до тебя диск - проверь на всякий случай, а не сидит
ли в таком укромном месте какой-нибудь "подарочек". Насколько я знаю,
даже Касперский ничего в этой области не проверяет. ) ...ВИРУСОПИСАТЕЛИ -
ВСЕ СЮДА ! ( Я надеюсь, еженедельное обновление антивирусных
программ является действительно еженедельным, только в этот раз
обновлять кое-кому придется скорее всего не базы :) Ну, и последнее -
размер системных файлов подсчитать уж совсем просто, таким образом мы кажется
ничего не забыли. Если тебе лень считать на калькуляторе (или на клочке
газеты - что кстати надежнее - потом можно проследить собственные ошибки ) -
то можешь просто пройти пару тысяч секторов, чем больше диск - тем
больше нужно пройти. Диск-эдитор так уж устроен что если ему
попадается сбойный сектор, то он сам на нем остановится, и чтобы
перешагнуть через него, тебе придется отменить пару раз чтение, выбрав в
меню соответствующий пункт. Обычно стоит прислушиваться к
системному динамику машины - пока все нормально, он не издаст ни звука. А
если сбой - то перепрыгиваешь на пару ( или пару десятков ) цилиндров вглубь
и продолжаешь поиск достаточно хорошего места для системной области. По
существу, FDISK делает то же самое, она только с очень плохими областями не в
состоянии работать. Есть один интересный момент который позволяет ускорить
процесс по крайней мере в несколько раз: Когда ты в первый раз запускаешь
диск-эдитор с загрузочной дискеты, а жесткий диск еще не отформатирован ( или
просто с ним что-то не то:) то конечно в твоей системе еще как бы и нет
никакого логического раздела жесткого диска - ни C ни D и т.д. тут еще и не
пахнет. Хотя диск исправно жужжит и даже обнаруживается биосом без
проблем. Ты просто нажимаешь Enter - и диск-эдитор читает логическую
структуру твоей дискеты с которой ты его запустил. Сразу после запуска и
парочки предупреждений он показывает тебе корневой каталог дискеты. Далее
ты должен нажать клавишу Alt и в первой выпавшей простынке главного меню
выбрать режим чтения дисков - при этом диск-эдитор перечитает все имеющиеся в
системе ЛОГИЧЕСКИЕ диски. Конечно, если ты не умудришься подключить второй
дисковод или даже второй жесткий диск, то кроме диска A он тебе ничего и не
предложит - ОДНАКО ... Если ты не будешь слишком торопиться, то сможешь
прочитать варианты режимов чтения дисков в правой половинке развернувшейся
таблички - и вот тут-то надо аккуратно клавишей Tab ( или можно стрелками
) перейти в эту самую половинку и пробелом выставить точку там где тебе
нужно - а нужно конечно чтение физических дисков. И О ЧУДО ! - В левой
половинке таблички сразу появится диск C - или просто Hard Disk 1 - если он у
тебя один :-). Он-то тебе и нужен. Остается только установить точку напротив
него - и нажать Enter. Если начальный сектор диска исправен - то он
прочитается сразу, причем - в режиме чтения дампа данных, приблизительно так,
как показывает данные в любом файле большинство операционных оболочек при
нажатии после клавиши F3 клавиши F4 - по крайней мере FAR, ДОС-навигатор и
Norton-Commander предоставляют такой сервис. Конечно, мы можем просматривать
просто дамп диска - при этом - как сказал известный герой нашего с тобой
любимого фильма "Трое в одной лодке, не считая собаки" - что поймано, о том
и рассказано. Но он ведь добавил еще и пару слов, сделавших всю фразу
афоризмом : "ГЛАВНОЕ - КАК !". Вот тут - самое время вспомнить что
диск-эдитор кроме просто просмотра данных на диске в виде дампа способен еще
и по-разному интерпретировать эти самые данные - причем ему опять же в
большинстве случаев ( исключения я оговорю особо ) абсолютно НАПЛЕВАТЬ, какой
именно в действительности сектор диска ты просматриваешь и что в нем записано
- он будет очень послушно интерпретировать эти данные так как тебе того
захочется. А более всего тебе сейчас должно хотеться только одно -
нажать на клавишу - F6 ;-). Если ты не понял - повторю еще раз - F6. Дошло
? - Нет, я вижу. Тебе ведь сейчас нужно будет пролистать громадное
количество секторов - а при выводе их содержимого на экран программа
DE.EXE ( или все ее близнецы-братья ) пользуется функциями БИОС
напрямую, это тебе не игрушка которая обходит функции биос и пишет данные
прямо в нужную область видеопамяти - тогда, когда Нортон писал свой
диск- эдитор, таких игрушек еще может даже и не было. Точно не было - даже
DOOM появился в 1993 году ( у них ). А функции вывода на экран, встроенные в
биос, очень тормозят работу - ну еще бы, ведь они не менялись бог знает
сколько лет, еще с времен первых машин. Да и менять никто не собирается особо
- ну зачем обижать священную корову? - Поэтому в нашей ситуации приходится
приспосабливаться - выводить на экран как можно меньше информации в расчете
на сектор. Сравним количество символов на сектор которое должно быть
выведено на экран в режиме чтения ( тьфу - ПОКАЗА ) дампа ( читает он
все одно и то же ) - с количеством, которое приходится на сектор в режиме
ПОКАЗА Partition - ну подсчитать это просто : Пускай 0000:0000 A0 A1
........... AE AF АБВГДЕЖЗИЙКЛМНОП - это одна строка из 32-х, которыми
512-байтный сектор выводится на экран в стандартном режиме. Всего в строке
16x3+8=56 символов - таким образом при просмотре одного сектора в этом режиме
через биос прогоняется 56x32=64x32-8x32=... ого ! - Почти два
килобайта. Ну конечно - а что ты хотел, если сначала в строке
выводится шестнадцатеричное смещение первого в строке байта от
начала сектора ( при просмотре файла - от начала файла ), затем
идут шестнадцать байт в шестнадцатеричной же записи - то есть 32 знака, и
еще шестнадцать байт в нормальном виде ( при этом, конечно, управляющие
символы с кодом до 31 и еще некоторые при показе заменяются точками - а то
биос не так может понять попытку прогнать некоторые из этих кодов - например,
код 07 вызовет писк динамика - и это еще будут только цветочки ). На самом
деле я еще сделал большую скидку - ведь выводится еще и номер сектора от
начала диска и много другой служебной информации. Может быть даже, что на
прогон одного только сектора через видео- -функции биос расходуется целых три
килобайта данных, которые нуждаются в обновлении в каждой строке, которая
ползет вверх по экрану когда ты давишь на кнопку PageDown или просто
"стрелку вниз". Не будем залезать в такие дебри - и так ясно что много. А
что происходит когда ты включаешь режим показа ( интерпретации ) Partition
? - Ну тут все гораздо проще - ведь выводится всего четыре строки - - при
любом подсчете не более 320-ти символов - то есть практически вдвое меньше
чем в самом секторе. ( там еще рамки - но они не в счет) Таким образом самый
быстрый режим просмотра - именно этот, при этом через биос прогоняется грубо
говоря в десять раз меньше информации, значит то же количество секторов ты
сможешь пролистать в десять раз быстрее ( если конечно, ты дочитал до этого
места и не умер с голоду - или со скуки :). Ну, думаю ты все понял и уже
приготовил спичку чтобы заклинить клавишу PageDown в нужном месте
диска. Больше я не буду так подробно все расписывать, тебе просто
надо будет воспринимать все, что я пишу, на веру, хотя если ты
немного пошевелишь мозгами то обнаружишь что все именно так как я
это описал. И давай пока листается диск, сделаем перерыв. ( Только не
вздумай бросать его на произвол судьбы - ты должен убавить
громкость своего телевизора чтобы не пропустить писк системного
динамика если в выбранной тобой области диска окажется плохой сектор
- динамик запищит как только спичка до него дойдет :). Так что если тебе
хочется посмотреть боевик - то это не самая лучшая идея. Уж лучше попить кофе
- или, в зависимости от твоего аппетита относительно размера FAT на том диске
который ты задумал создать практически голыми руками - или у тебя даже есть
время чтобы пообедать. Приятного аппетита !