* КОМПЬЮТЕРЫ *

* КОМПЛЕКТУЮЩИЕ * СЕТЕВОЕ ОБОРУДОВАНИЕ *

на главную страницу карта сайта железо - справочник HDD - характеристики
 
 

Жесткий диск



      Жесткий диск состоит из нескольких металлических пластин, головок чтения-записи и механизма их позиционирования, помещенных в герметичную коробку (банку). К нему прикреплена печатная плата с контроллером и буферной памятью (кэшем), которая посредством шлейфа (40 или 80 жил) соединяется с материнской платой или отдельным контроллером.
      Металлические пластины условно разбиты на концентрические дорожки, а дорожки разделены на секторы.
      Дорожки на равном расстоянии от центра на всех поверхностях пластин объединяются в цилиндры. Таким образом, для чтения определенного сектора данных (его емкость принята равной 512 байт) нужно:
      1. Отвести головки на нужное расстояние от центра, то есть позиционировать на нужный цилиндр;
      2. Начать просмотр дорожки на нужной пластине, активировав нужную головку;
      3. Производить чтение всей информации до появления заголовка сектора, номер которого (содержится в этом заголовке) совпадает с нужным нам для операции чтения или записи.
      В соответствии с такой схемой метод нахождения нужной информации на жестком диске называется CHS-адресацией (Cylinder-Head-Sector).
      BIOS (базовая система ввода-вывода) является набором системных подпрограмм (функций), среди которых есть и программа чтения-записи данных на жестком диске. Для получения содержимого одного сектора требуется указать его CHS-адрес. Число секторов, цилиндров и головок BIOS'у должно быть известно, для этого и существует автодетект в Setup.
      Впрочем, информация о геометрии, используемая для работы функций доступа к диску, даже близко не соответствует реальной геометрии современного жесткого диска. У него 1-3 пластины, одна из которых может использоваться только с одной стороны, и 1-6 головок. Поэтому контроллер жесткого диска производит трансляцию поступающих адресов, такую же трансляцию производит и BIOS, работая по механизму LBA (Logical Block Addressing).
      В соответствии с идеологией MS-DOS жесткий диск может состоять из так называемых "разделов" - независимых областей диска, которые могут быть построены по схеме любой операционной системы, то есть использовать любую файловую систему.
      Таких разделов должно быть два - основной (Primary), с которого обычно осуществляется загрузка, и расширенный (Extended), который может быть разделен на несколько частей-подразделов (логических дисков).
      Первый раздел диска самостоятелен, остальные объединяются в группу. Каждый раздел имеет принадлежность к той или иной файловой системе.
      В рамках DOS (и основанных на этой же операционной системе Windows3.x/95/98/ME) существуют три файловых системы - FAT12, FAT16 и FAT32.

      Системные секторы
      Самый первый сектор любого жесткого диска имеет название Master Boot Record, MBR. Он состоит из двух частей - программы начального загрузчика и таблицы разделов (Disk Partition Table, DPT). DPT состоит из четырех записей, обозначающих адрес начала раздела, его размер в секторах, адрес конца и тип файловой системы. Конечно, используется только две записи - для основного и расширенного раздела, потому что каждый подраздел (логический диск) имеет такую же DPT с указанием адреса следующего подраздела. Задача загрузчика в MBR - дать возможность загрузки с нужного раздела (т.е. использовать несколько операционных систем). Стандартный загрузчик DOS предоставляет весьма ограниченный механизм выбора - загрузка возможна с того раздела, у которого установлен флаг активности таблице DPT.
      Самый первый сектор раздела называется Boot Sector. В его составе также есть загрузочная программа и таблица BIOS Parameter Block, BPB. В этой таблице есть информация о местонахождении и размере другой важной области - таблицы размещения файлов, FAT. По своей сути FAT - это большой массив элементов, каждый элемент соответствует каждому кластеру. Кластер - блок секторов (от 8 до 128), элемент распределения всего дискового пространства раздела. Каждому файлу при его создании выделяется нужное число кластеров. Номер первого кластера заносится в каталог (директорий, папку), а соответствующий этому кластеру элемент FAT содержит номер второго кластера. Элемент FAT, соответствующий второму кластеру, содержит номер третьего кластера и т.д. Весь FAT состоит из таких цепочек (Chains).
      Если элемент FAT не связан ни в одну цепочку, и при этом не равен 0, он называется "потерянным" (Lost Cluster). "Потеря" кластеров происходит при перезагрузке в момент записи цепочки в FAT, например, при создании/изменении файла, когда операция записи прерывается. Конечно, это не самые страшные последствия неожиданной перезагрузки, но все же терять место на диске не очень хочется. Программисты из Microsoft хорошо знали о "стабильности" своей Windows, поэтому и запускается Scandisk автоматически.
      Если файл впоследствии увеличивается в размерах, ему назначаются новые кластеры из числа свободных, причем чаще всего они находятся в другом месте диска. Цепочка "перепрыгивает" другие цепочки - вот вам и фрагментация, которую устраняют программы-дефрагментаторы, переносящие файлы так, чтобы их кластеры шли друг за другом по порядку.
      Хотя система цепочек и является достаточно эффективной и простой, у нее есть недостатки:
      1. Низкая надежность - при исчезновении одного элемента весь файл будет нечитаемым, а порча FAT означает потерю большого количества (если не всех) файлов. Для устранения этого недостатка существует две одинаковых копии FAT.
      2. Если размер файла не кратен размеру кластера, образуется Слек (Slack) - часть кластера, не занятая полезной информацией. Чем больше размер кластера, тем большая часть диска занята слеком. Для файла длиной 1 байт вы теряете весь кластер, а если он имеет большой размер (32 Кбайта, например), то потери на слек могут составлять 30-50% от общей емкости диска (кстати, проверить их можно программой Sandra - модуль Drive Information).
      Размер элемента FAT дает название самой файловой системе. FAT12 имеет 12-битные элементы, которые позволяют организовать на диске около 4-х тысяч кластеров. FAT16 имеет 16-битные элементы, число кластеров - 65530. FAT32 - 32-битные элементы, около 4 млрд. кластеров.
      Чем больше на диске будет кластеров, тем меньше можно сделать размер самого кластера и тем самым меньше потерять места. По этому FAT12 используется только для гибких дисков, FAT16 - для дисков емкостью до 500 Мб (в принципе можно и до 2 Гб).

      Начальная загрузка
      Загрузка операционной системы происходит следующим образом:
      1. BIOS, после проведения первичной самодиагностики (POST, Power-On Self-Test), считывает самый первый сектор с того устройства, которое задано первым в Setup (Advanced Features, Boot Sequence или First Boot Device) и начинает его выполнение;
      2. Загрузчик, который был в этом секторе, просматривает свою таблицу разделов на предмет наличия активного (загрузочного) раздела, вычисляет адрес загрузочного сектора активного раздела, считывает и запускает этот сектор;
      3. Загрузчик из boot-сектора выполняет считывание и запуск файлов операционной системы;
      Для DOS 7.1, входящей в состав Windows95/98, это всего один файл - IO.SYS;
      4. IO.SYS сначала просматривает файл CONFIG.SYS - ищет там загрузочное меню, устанавливает драйвера устройств, которые там могут быть заданы (кроме того, HIMEM.SYS, IFSHLP.SYS и SETVER.EXE загружаются в любом случае), после чего запускает обработчик командной строки COMMAND.COM;
      5. COMMAND.COM выполняет пакетный файл AUTOEXEC.BAT, после чего вызывает программу WIN.COM; впрочем, если подправить файл MSDOS.SYS (бывший компонент операционной системы, сейчас просто конфигурационный файл), COMMAND.COM не начнет загрузку Windows, перейдя в режим диалога.
      Все эти операции происходят без участия программы кэширования дисковых операций (SMARTDRV.EXE - стандартная программа кэширования), поэтому происходит постоянное обращение к FAT за информацией о кластерах каждого файла. Значит, при проведении дефрагментации загрузочного раздела жесткого диска следует предусмотреть расположение перечисленных файлов как можно ближе к началу диска. Первым на диске должен быть файл подкачки WIN386.SWP, потом - директории (или каталоги, папки - кто как привык их называть), после них нужно располагать файлы, участвующие в загрузке. Конечно, стандартный Defrag этого не может, но есть много других хороших программ дефрагментации.
      Если вы еще не пользуетесь ими, подумайте, может быть, есть смысл установить Norton Utilities 2000, в составе которых имеется дефрагментатор Speed Disk.

      Boot virus
      Так называется разновидность вирусов, внедряющихся на одном из этапов начальной загрузки, обычно на самом первом.
      Boot-вирус записывает в MBR свой загрузчик вместо исходного. Тем самым вместо операционной системы первым загружается вирус. Он размещает в памяти свое тело, которое хранит в неиспользованных секторах, идущих после MBR, но до первого загрузочного сектора раздела. Перехватив обращения к дискам, вирус продолжает загрузку операционной системы. В случае обращения к дискете вирус изменит ее boot-сектор, заменив в нем программу-загрузчик.
      Если пользователь загрузится с такой дискеты, вирус получит управление и сразу же заразит MBR жесткого диска.
      Если boot-вирус не умеет заражать файлы, обходясь только системными секторами, он не представляет большой опасности:
      1. Заразиться можно только при загрузке с дискеты (или второго жесткого диска);
      2. Можно просто включить "Virus Warning" в Setup - вы получите предупреждение о попытке вторжения в загрузочный сектор (вопреки распространенному мнению, эта опция должна выключаться только при инсталляции Windows);
      3. вылечить жесткий диск можно всего одной командой - "fdisk /mbr", которая записывает в MBR оригинальную программу-загрузчик.

      Проблемы при загрузке
      Нарушение процесса загрузки может произойти на любом из этапов. Чтобы определить причину и "виновника", нужно обратить внимание на появляющиеся сообщения:
      Если все сообщение - в верхнем регистре (т.е. заглавными буквами), то это BIOS не находит MBR на указанном ему в Setup устройстве, что свидетельствует об ошибке чтения либо об отсутствии признака системного сектора у первого сектора диска (т.е. диск не размечен). Чтобы убедиться, что с диском все нормально, нужно зайти в BIOS Setup и запустить Autodetect.
      Сообщения "Invalid partition table" и "Error loading operating system" принадлежат загрузчику из MBR; загрузочный сектор активного раздела либо не читается, либо его еще (или уже) нет;
      Сообщения "Invalid system disk" и "Disk I/O error" выдает загрузчик из boot-сектора, сообщая об отсутствии файлов операционной системы или об ошибке на диске.

      Что делать в случаях, когда загрузка не происходит?
      1. Если проблема не связана с самим диском, нужно серьезно разбираться с тем, куда делись системные сектора.
      2. Налицо либо нарушения таблицы DPT, либо разрушение загрузочного сектора. Лечить диск запуском NDD или Scandisk с дискеты не рекомендуется - можно все окончательно загубить и добавить работы тем, кто будет потом восстанавливать информацию на диске;
      3. Системные файлы могли быть удалены или испорчены, можно попытаться исправить ситуацию загрузкой с дискеты и вводом команды "sys c:". NDD, Scandisk, fdisk…
      Прежде всего, при возникновении серьезных проблем с системными секторами никогда не пользуйтесь программами диагностики NDD или Scandisk. Назначение таких программ - отыскание "потерянных" кластеров и "отвязанных" длинных имен, все остальное им не под силу.
      Для "ручной" работы с диском обычно используется Diskedit из комплекта Norton Utilities - не потому что он самый продвинутый и удобный, а в силу привычки, так как Нортоновские утилиты существуют с незапамятных времен. Если вы не владеете глубокими знаниями о структуре и механизмах работы системных секторов и загрузчиков, вам лучше не пытаться экспериментировать с этой программой. Хотя иметь ее, безусловно, необходимо.
      А вот уметь пользоваться fdisk должен каждый. Если вы хотите выделить первый раздел диска исключительно под Windows, лучше задать ему размер 1-2 Гб и поставить туда FAT16 - быстрее будет грузиться, легче будет, в случае чего, восстанавливать. Известно, что fdisk по умолчанию устанавливает FAT32 на раздел больше 500 Мб. Чтобы "переубедить" его, выберите "N" в "начальной заставке" fdisk (там, где говорится о поддержке больших разделов).
      Размечайте первый раздел (больше 2 Гб не получится), запускайте fdisk снова, выбрав уже "Y".
      После разметки и форматирования нового диска не поленитесь создать загрузочную дискету, на которую с помощью diskedit запишите MBR (Alt-A, Alt-W, выбрать имя файла), загрузочный сектор первого раздела (Alt-B, Alt-W, имя файла), diskedit, unerase, fdisk, sys, format, himem.sys, какой-нибудь русификатор (если DOS русифицирована). В случае сбоя такая дискета позволит сэкономить массу времени и нервов.

 
 
на главную страницу карта сайта железо - справочник HDD - характеристики