Страницы:
0 1 2 3 4 |Все сразу|
Часть IV
Мы еще разберем подробнее все подводные камни которые
могут
тебя ожидать в п.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 на том диске
который ты задумал
создать практически голыми руками - или у тебя даже есть
время
чтобы пообедать.
Приятного аппетита !