Главная Скачать Регистрация Плагины Изменения Поддержка Разное Гостевая книга
Авторы Внешний вид Документация Вопросы и Ответы Форум Ссылки Статьи Новости
Russian English German Система Orphus

Владимир Дашевский


Монтирование дисков в DOS и Windows 95/98/ME

В данной статье я постараюсь изложить некоторые сведения, касающиеся использования файловых систем в DOS и Windows 95/98/ME. Рассмотрим по порядку следующие вопросы:

  1. Что такое логический диск?
  2. Сколько логических дисков может быть в системе?
  3. Как назначаются имена логических дисков?
  4. Как использовать под логические диски более 4х PRIMARY разделов?
  5. Как бороться со сдвигом названий логических дисков при подключении дополнительных жестких дисков?
  6. Как изменить порядок монтирования дисков из расширенного раздела?
  7. Каковы правила пользования утилитой mount.exe?
  8. Где взять утилиту mount.exe?

Итак, попробуем разобраться со всеми этими вопросами.

Что такое логический диск?

Логический диск представляет из себя продолжение идеи физического диска. В далекие времена первой версии системы DOS, когда еще не было жестких дисков и файловая система не имела понятия подкаталога, все пространство секторов одной дискеты (а других носителей тогда и не было) отождествлялось с одной файловой системой. Сейчас мы можем сказать, что тогда просто логический диск совпадал с физическим диском, но тогда об этом еще никто и не задумывался, так как в логических дисках не было потребности.

Но вот эта потребность настала. Вначале у компьютера появился второй дисковод, и это обстоятельство привело к изобретению букв, обозначающих физические диски. Об этом свидетельствует тот факт, что до сих пор буквы A: и B: соответствуют дисководам, даже если ни одного реального дисковода к компьютеру не подключено. Кстати, до сих пор дискеты не разбиваются на разделы и представляют из себя тождество логического и физического дисков.

С развитием жестких дисков у системы появилась новая буковка C:. Жесткие диски поначалу тоже были крохотными и не отличались сильно от дискет по способу размещения файлов. Поначалу и жесткий диск содержал всего одну файловую систему, то есть буква С: обозначала только физическое устройство, как и у дисководов. Однако размер жестких дисков быстро рос, и рано или поздно должна была наступить ситуация, когда файловая система FAT уже не могла охватить целиком весь диск. Первой была система FAT12, рассчитанная на 4096 кластеров, что ограничивало размер диска несколькими мегабайтами. Какой наиболее простой выход можно было предложить в условиях быстрого роста ёмкости винчестеров?

А выход как раз и заключался в изобретении логических дисков. Жесткий диск был поделен на разделы, в каждом из которых помещался отдельный псевдофизический диск, который и был назван логическим. Новое место на выросших жестких дисках было освоено путем размещения на них нескольких файловых систем. Благо буквы, обозначающие диски были уже изобретены и от пользователя того времени не потребовалось никаких дополнительных знаний, чтобы пользоваться всем дисковым пространством. Вдобавок, несколько логических дисков обещали новые возможности по администрированию находящейся на них информации.

Современные файловые системы вообще, и FAT32 в частности, обладают возможностью использовать целиком емкость современных жестких дисков, так что, казалось бы, потребность в логических дисках снова отходит на второй план, можно снова отождествить букву диска с физическим устройством. Однако дело уже сделано – логические диски возникли в ходе исторического развития, и теперь именно они являются основными объектами администрирования ОС, а отнюдь не физические диски.

Таким образом, логические диски следует прежде всего отождествлять с контейнерами файловых систем, имеющих свой собственный корневой каталог и таблицу FAT. На одном физическом диске их может быть несколько, но во избежание ошибок они не должны накладываться друг на друга.

Сколько логических дисков может быть в системе?

Главным ограничением количества логических дисков является количество букв латинского алфавита, то есть 26. Однако, на практике это все же довольно большое число.

Вторым ограничением, играющим на практике также важную роль, является количество памяти, резервируемой под системные таблицы описания логических дисков. Чем больше дисков Вы собираетесь использовать, тем больше таблица нужна. В целях экономии памяти под таблицу в DOS была введена команда LASTDRIVE, которая указывала последний диск, для которого резервировалась запись в таблице. В системе Windows 95 или 98 это ограничение снято и таблица всегда создается на 26 дисков.

Таким образом, операционные системы располагают возможностью работать хоть с 26 дисками, хотя такого количества вовсе не требуется, так как файловые системы способны занять все пространство на современном винчестере.

При загрузке компьютера логические диски должны быть смонтированы, то есть операционная система должна каким-либо образом определить расположение логических дисков внутри физического диска, прочитать дескрипторы файловых систем и зарегистрировать во внутренних таблицах, что некоторым буквам дисков соответствуют файловые системы. В результате этого пользователь получает возможность доступа к файловым системам, расположенным на этих логических дисках.

Основным средством для описания логических дисков является главная загрузочная запись - MBR, где описываются 4 раздела, на которые разбивается жесткий диск. Каждый раздел описывается своим положением внутри физического диска, и, кроме того, ему назначается тип (FSC – file system code), который определяет содержимое раздела. Тип кодируется одним байтом, в системах DOS используются следующие типы:

  • #01, #04 - разделы, содержащие логический диск с файловой системой FAT12, FAT16 (до 32М)
  • #06, #0E - разделы, содержащие логический диск с файловой системой FAT16
  • #0B, #0C - разделы, содержащие логический диск с файловой системой FAT32
  • #05, #0F - расширенные разделы

Поскольку таблица в MBR предоставляет не более 4 разделов, то, казалось бы, более 4х логических дисков описать нельзя. На самом деле в Microsoft ограничились описанием всего одного логического диска прямо в MBR. Раздел, описывающий такой логический диск был назван PRIMARY DOS PARTITION, и программа fdisk до сих пор позволяет создавать не более одного такого раздела, хотя ядро ОС монтирует все такие разделы, правда созданные не fdiskом. SyMon предоставляет Вам тут большую свободу.

Для организации всех остальных логических дисков фирма Microsoft стала использовать расширенный раздел – EXTENDED PARTITION. Fdisk также допускает не более одного такого раздела, хотя это тоже его личное ограничение. Расширенный раздел представляет из себя цепочку непересекающихся подразделов. Каждый подраздел описывается совершенно так же как и в MBR, поэтому в каждом подразделе с поддерживаемым типом файловой системы находится по логическому диску. Длина цепочки подразделов ограничена только размерами физического диска, хотя на практике, конечно, тут нужно скорее помнить про ограничение в 26 букв латинского алфавита.

Таким образом, расположив в MBR всего два раздела, PRIMARY и EXTENDED, имеется возможность использовать такое число логических дисков, какое поддерживается ядром ОС.

Как назначаются имена логических дисков?

На сегодняшний день логические диски – это преимущественно достояние систем, связанных с фирмой Microsoft. А это значит, что без ложки дегтя и тут не обошлось. Буквы дискам назначаются довольно скверным образом.

Прежде всего, системы DOS, Windows 95/98/ME назначают имена логических дисков жестким образом, этот порядок нельзя изменить. Порядок таков:

  1. Буквы назначаются PRIMARY разделам, которые помечены флажком активности на всех жестких дисках. Если на каком-либо диске ни один из PRIMARY разделов не помечен активным, то назначается первый найденный PRIMARY раздел.
  2. Буквы назначаются всем дискам с расширенных разделов, расширенные разделы обрабатываются в порядке их обнаружения на всех жестких дисках. Жесткие диски обрабатываются по очереди, начиная с первого.
  3. Буквы назначаются всем оставшимся PRIMARY разделам, не являющимся активными, в порядке их обнаружения на жестких дисках.

Такой алгоритм назначения приводит к тому, что при изменении числа подключенных к компьютеру жестких дисков одним и тем же логическим дискам назначаются разные буквы. К примеру, если на первом жестком диске расположен PRIMARY раздел с диском C: и расширенный раздел с дисками D: и E:, то при добавлении второго, к примеру, такого же жесткого диска буквы распределятся так:

  C: = C: с первого диска
  D: = C: со второго диска
  E: = D: с первого диска
  F: = E: с первого диска
  G: = D: со второго диска
  H: = E: со второго диска

Все это приводит к тому, что добавление жестких дисков как правило сбивает файловые настройки всех программ, которые были расположены не на диске C:. Это обстоятельство существенно затрудняет жизнь большинству пользователей, которые в какой-то момент решают обзавестись дополнительным жестким диском.

Резонно возникает вопрос, кто виноват в таком абсолютно бестолковом способе назначения букв? А виновата тут так всеми любимая совместимость! Представим себе на секунду ход исторического процесса. На заре внедрения жестких дисков логические диски отождествлялись с физическими дисками. То есть, один жесткий диск имел имя C:, второй – D:. Теперь представим себе этаких деловых пользователей того времени, которые наработали кучу информации на этих дисках и пришло время их заменить более емкими. Однако проблема была в том, что новые более ёмкие диски были слишком велики для старых файловых систем, так что пришлось заводить новые логические диски на расширенных разделах. Но буквы C: и D: были уже заняты и настройки под них были уже сделаны! Единственным выходом было монтировать логические диски из расширенного раздела после логических дисков из PRIMARY разделов. Фирма Microsoft просто пошла на поводу у своих клиентов, которым нужна была совместимость!

Теперь мы можем только жалеть, что пути совместимости неисповедимы. Но можем и радоваться, так как, тем не менее, у нас есть повод для оптимизма – SyMon и утилиты его технической поддержки могут решить эти старые проблемы.

Как использовать под логические диски более 4х PRIMARY разделов?

Таблица разделов SyMon поддерживает до 36 разделов, все из которых могут быть сделаны PRIMARY разделами и содержать информацию о логических дисках. Однако трудность состоит в том, что в MBR могут быть отражены только 4 из них. Поэтому к SyMon’у прилагается утилита mount.exe, которая умеет монтировать логические диски со всех разделов из таблицы разделов SyMon.

Как бороться со сдвигом названий логических дисков при подключении дополнительных жестких дисков?

Та же утилита mount.exe обладает способностью привязки логических дисков к разделам с помощью конфигурационного файла fstab, который должен быть расположен в том же каталоге, что и исполняемый файл. Вы можете без труда назначить любой порядок букв, обозначающих логические диски на разных жестких дисках. В частности, это позволяет избежать сдвига букв.

Чтобы буквы логических дисков первого жесткого диска не сдвигались при добавлении второго диска, необходимо прежде всего очистить MBR второго жесткого диска от всех PRIMARY и EXTENDED разделов. Также можно в настройках SyMon убрать из MBR первого диска все разделы, кроме загружаемого. Эти действия позволят гарантировать, что стандартный механизм монтирования разделов DOS или Windows не испортит желаемого порядка логических дисков ввиду отсутствия информации о том, откуда их взять.

Затем, нужно отредактировать файл fstab и запустить утилиту mount.exe, которая зарегистрирует все диски под теми именами, которые Вас устраивают. И все.

Как изменить порядок монтирования дисков из расширенного раздела?

Утилита mount.exe позволяет также монтировать отдельные логические диски из расширенного раздела. Благодаря этому, вы можете при желании сменить порядок назначения букв этим дискам. По умолчанию диски располагаются по алфавиту в порядке их следования в расширенном разделе.

Каковы правила пользования утилитой mount.exe?

Правила пользования утилитой mount.exe довольно просты.

  1. Утилиту вместе с файлом fstab нужно скопировать в любой удобный для вас каталог диска C:. Затем нужно вписать вызов этой утилиты в файл AUTOEXEC.BAT.
  2. В файле fstab нужно описать все логические диски следующим способом:
          drive: hd(N) partition(M) subunit(L)
        

где:

  • N - номер жесткого диска, начиная с нуля
  • M - номер раздела в таблице разделов SyMon
  • L - номер подраздела внутри расширенного раздела, если раздел M является расширенным.

Каждому логическому диску нужно сопоставить одну строчку дескриптора.

В заключение приведем пример файла fstab для случая двух жестких дисков, на каждом из которых имеется основной раздел с диском C: и расширенный раздел с дисками D: и E:, но мы хотим избежать сдвига букв. Пусть основные разделы прописаны в строке 0 таблицы разделов SyMon, а расширенные – в строке 1.

fstab
  
   D: hd(0) partition(1) subunit(1)    
   E: hd(0) partition(1) subunit(2)    
   F: hd(1) partition(0) 
   G: hd(1) partition(1) subunit(1)    
   H: hd(1) partition(1) subunit(2)

Где взять утилиту mount.exe?

Утилиту mount.exe можно взять в разделе технической поддержки


ROS Research Labs, © 2017
Designed by Hoodwin
  Система Orphus Ошибка в тексте? Выделите её мышкой!
И нажмите: "Ctrl + Enter"
TopList