Введение
Алфавитное присвоение логических дисков на компьютерах (например, C:\)
В компьютерном хранилище данных присвоение букв дискам — это процесс назначения алфавитных идентификаторов томам. В отличие от концепции точек монтирования UNIX, где тома именуются и располагаются произвольно в едином иерархическом пространстве имен, присвоение букв дискам позволяет использовать несколько пространств имен верхнего уровня. Таким образом, присвоение букв дискам — это процесс использования букв для обозначения корней "леса", представляющего файловую систему; каждый том содержит независимое "дерево" (или, для неиерархических файловых систем, независимый список файлов).
Происхождение
Концепция букв дисков, используемая сегодня, предположительно, берет свое начало в семействе операционных систем VM IBM, начиная с CP/CMS в 1967 году (и его исследовательского предшественника CP 40), через CP/M от Digital Research (DRI). Концепция развивалась в несколько этапов:
CP/CMS использует буквы дисков для идентификации минидисков, подключенных к сеансу пользователя. Букве диска A: присваивается первый дисковод (диск 0), а букве B: – второй дисковод (диск 1). Если присутствует только одна физическая дискета, букве B: присваивается виртуальный дисковод, отображенный на тот же физический диск и динамически назначаемый либо A:, либо B: для упрощения работы с файлами на дискете. Если физического дисковода нет, DOS 4.0 присвоит и A:, и B: несуществующему диску, в то время как DOS 5.0 и более поздние версии сделают эти буквы дисков недействительными. Если присутствует более двух физических дисководов, версии DOS до 5.0 будут присваивать следующие буквы дисков, а DOS 5.0 и более поздние версии переназначат эти диски на более высокие буквы дисков на более позднем этапе; см. ниже. Букве диска присваивается первый активный первичный раздел, распознанный на первом физическом жестком диске. DOS 5.0 и более поздние версии гарантируют, что он станет диском C:, так что загрузочный диск будет иметь букву A: или C:. Последующие буквы дисков присваиваются первому первичному разделу на каждом последующем физическом жестком диске (версии DOS до 5.0 будут проверять только два физических жестких диска, в то время как DOS 5.0 и более поздние версии поддерживают восемь физических жестких дисков). Последующие буквы дисков присваиваются каждому распознанному логическому разделу, присутствующему в первом расширенном разделе, начиная с первого жесткого диска и продолжая через последующие физические жесткие диски. DOS 5.0 и более поздние версии: присваивают буквы дисков всем оставшимся первичным разделам, начиная с первого жесткого диска и продолжая через последующие физические жесткие диски. DOS 5.0 и более поздние версии: присваивают буквы дисков всем физическим дисководам, кроме второго физического дисковода. Последующие буквы дисков присваиваются любым драйверам блочных устройств, загруженным в CONFIG.SYS через инструкции DEVICE, например, RAM-дискам. Последующие буквы дисков присваиваются любым динамически загружаемым дискам через инструкции INSTALL в CONFIG.SYS, в AUTOEXEC.BAT или позже, то есть дополнительным оптическим дисководам (MSCDEX и т. д.), накопителям PCMCIA/PC Card, USB или Firewire, или сетевым дискам. Буквы присваиваются только разделам распознанных типов разделов. В частности, "скрытые разделы" (те, у которых идентификатор типа изменен на нераспознанное значение, обычно путем добавления 10h) не присваиваются. MS DOS/PC DOS версии 4.0 и более ранние присваивают буквы всем дисководам, прежде чем рассматривать жесткие диски, поэтому система с четырьмя дисководами будет называть первый жесткий диск E:. Начиная с DOS 5.0, система гарантирует, что диск C: всегда является жестким диском, даже если в системе более двух физических дисководов. Хотя без преднамеренного переназначения назначения букв дисков обычно фиксируются до следующей перезагрузки, Zenith MS DOS 3.21 будет обновлять назначения букв дисков при сбросе диска. Это может привести к изменению букв дисков без перезагрузки, если разбиение жесткого диска было изменено. MS DOS на Apricot PC присваивает буквы жестким дискам, начиная с A:, прежде чем рассматривать дискеты. Система с двумя дисками каждого типа будет называть жесткие диски A: и B:, а дискеты C: и D:. На японском PC 98, если система загружается с дискеты, специальная версия MS DOS присваивает буквы всем дискетам, прежде чем рассматривать жесткие диски; она делает обратное, если загружается с жесткого диска, то есть, если ОС была установлена на жесткий диск, MS DOS присваивает этому диску букву "A:", а потенциально существующей дискете – букву "B:". Японская версия программы установки Windows 95 поддерживает специальную опцию /AT, чтобы обеспечить установку Windows на диск C:. Некоторые версии DOS не присваивают букву диска, начинающуюся с C:, первому активному первичному разделу, распознанному на первом физическом жестком диске, а первому распознанному первичному разделу на первом жестком диске, даже если он не установлен как активный. Если в таблице разделов имеется более одного расширенного раздела, обрабатываются только логические диски первого распознанного типа расширенного раздела. Некоторые поздние версии DR DOS IBMBIO.COM предоставляют структуру конфигурации перед загрузкой, содержащую битовые флаги для выбора (помимо прочего) между различными стратегиями назначения букв дисков. Эти стратегии могут быть предварительно выбраны пользователем или OEM или изменены загрузчиком "на лету" при запуске DR DOS. В этих случаях загрузочный диск может отличаться от A: или C:. Порядок назначения букв дисков может зависеть от того, управляется ли данный диск драйвером времени загрузки или динамически загружаемым драйвером. Например, если второй или третий жесткий диск является SCSI и требует драйверов, загружаемых через файл CONFIG.SYS (например, контроллер не имеет встроенной BIOS или использование этой BIOS нецелесообразно), то первый первичный раздел SCSI появится после всех разделов IDE в DOS. Поэтому DOS и, например, OS/2 могут иметь разные буквы дисков, поскольку OS/2 загружает драйвер SCSI раньше. Решением было не использовать первичные разделы на таких жестких дисках. В Windows NT и OS/2 операционная система использует вышеупомянутый алгоритм для автоматического назначения букв дисководам, оптическим дисководам, загрузочному диску и другим распознанным томам, которые не были созданы администратором в операционной системе. Тома, созданные в операционной системе, указываются вручную, и некоторые автоматические буквы дисков можно изменить. Нераспознанные тома не получают букв и обычно остаются без изменений операционной системой. Распространенной проблемой, возникающей при назначении букв дисков, является то, что буква, присвоенная сетевому диску, может конфликтовать с буквой локального тома (например, недавно установленного CD/DVD-привода или USB-накопителя). Например, если последний локальный диск – D:, а сетевому диску была присвоена буква E:, то вновь подключенное USB-устройство хранения также получит букву E:, что приведет к потере связи либо с сетевым ресурсом, либо с USB-устройством. Пользователи с административными правами могут вручную назначить буквы дисков, чтобы решить эту проблему.