Алексей Федорчук
Как известно, все, имеющееся в POSIX-системах, суть файлы. Не исключение и DragonFly — диски, слайсы и разделы представляются в ней файлами специального типа, которые так и назваются — файлы устройств.
Номенклатура файлов устройств дисков, слайсов и партиций в DragonFly подчиняется определённым правилам правилам: выделяется два типа имён, относящихся к различным видам дисковых интерфейсов:
диски с интерфейсом PATA (он же IDE) именуются /dev/ad#
(от ATA Disk, надо полагать);
накопители со всеми прочими интерфейсами — SATA, SCSI/SAS, USB (в том числе внешние винчестеры и, флешки и SD-карточки), получают имена вида /dev/da#
(от Direct Access — устройства прямого доступа, изначально эти имена присваивались SCSI-дискам).
Здесь и далее #
— порядковый номер устройства, начиная с нуля.
В DragonFly по умолчанию принята так называемая статичная нумерация дисковых накопителей (это можно изменить при перекомпиляции ядра). То есть устройство /dev/da0
всегда будет соответствовать накопителю на первой SATA-линии, /dev/da1
— на второй, а /dev/da5
— на шестой (даже если в промежутке между 2-м и 6-м разъёмом не подключено никакое устройство).
А вот сменные накопители с USB-интерфейсом (флешки и SD-карты), напротив, получают имена с номером, соответствующим порядку подключения, вне зависимости от разъёма. И нумерация их начинается с цифры, следующей за номером самого последнего теоретически возможного внутреннего накопителя. Судя по тому, что в моей настольной (точнее, подстольной) машине встроенный кард-ридер с USB-интерфейсом является устройством с именем /dev/da8
, теоретически возможно восемь SATA-устройств — именно столько поддерживается чипсетами AMD A8X.
В DragonFly с некоторых пор поддерживается файловая система устройств devfs в той же реализации, что и во FreeBSD. Поэтому встроенные накопители получают свои имена при старте системы, в подключаемые — в момент «втыкания» в машину, о чём на системную консоль выводится соответствующее сообщение. К слову — автоматическое монтирование накопителей самой по себе DragonFly не поддерживается, но его можно прикрутить посредством механизма HAL (для FreeBSD аналогичный трюк описан здесь, но он применим и в DragonFly).
Статическая нумерация действует и для постепенно почти сошедших со сцены PATA-дисков, и для них помнить про это более важно, поскольку их целесообразно раносить на разные IDE-каналы. И тогда /dev/ad0
всегда будет мастером на 1-м канале, а /dev/ad2
— им же на втором, даже если слейвов в машине нет вообще:
/dev/ad0 1-й Master /dev/ad1 1-й Slave /dev/ad2 2-й Master /dev/ad3 2-й Slave
При установке DragonFly в виртуальной машине обычно эмулируется именно IDE-контроллер. Например, VirtualBox это будут PIIX4 или ICH6. Сообтветственно, виртуальный диск в этом случае будет именоваться по правилам PATA-накопителей — /dev/ad0
.
Ещё можно было бы порассуждать о номенклатуре дисков на всякого рода аппаратных и «не очень» аппаратных RAID-контроллеров, но тут базар можно резюмировать очень коротко: «чипсетные» RAID материнских плат (так называемые fake RAID) в DragonFly не поддерживаются от слова «никак» — в отличие от Linux’а, в котором их всё-таки можно (хотя есть сомнения, что нужно) заставить работать. То же самое относится и к устройствам типа OCZ Revo Drive. А матерински с отдельными контроллерами PATA-RAID (вроде Promise или HighPoint) нынче практически вышли из употребления. Что же до «всамделишних» RAID-контроллеров — их цена никак не оправдывается на настольной машине.
В заключение разговора о накопителях — пара слов об OD-приводах (CD/DVD и всех их вариациях): вне зависимости от интерфейса, они не подчиняются правилам именования дисков. Имена соответствующих им файлов всегда будут: /dev/acd#
для PATA (от ATAPI CD, нужно полагать) и /dev/cd#
для SATA. Нумерация опять же начинается с нуля — и, скорее всего, им же и заканчивается, потому как нынче и одного «сидюшника» в машине много. Внешний OD-привод с интерфейсом USB после подключения обретает имя /dev/cd8
— видимо, опять же с расчётом на того умника, который займёт сидюшниками все восемь существующих и несуществующих разъёмов SATA.
Переходим к номенклатуре слайсов и разделов. Каждый диск в BSD-системах разделяется на слайсы — или размечается как один слайс, потому что, согласно уже говорилось, диски как raw-устройства в BSD-системах нынче не используются.
Слайсам на диске, как обычно, ставятся в соответствие собственные файлы устройств, которые именуются так: /dev/da0s1
, /dev/da0s2
, /dev/da0s3
, /dev/da0s4
. Здесь #
— это все тот же номер дискового устройства, s
символизирует слайс, цифра — порядковый номер оного (обращаю внимание, что слайсы, в отличие от дисков, нумеруются начиная с единицы).
Далее слайсы, используемые в DragonFly, также непременно делятся на разделы, которые маркируются буквами (латинского, конечно же, алфавита). Как уже говорилось, в таблице разметки слайса в этой ОС может быть до 16 разделов, и соответствующием им файлы устройств будут именоваться: /dev/ad0s1a
, /dev/ad0s1b
, /dev/ad0s1c
и так далее, вплоть до /dev/ad0s1p
.
Однако не все из теоретически возможных разделов слайса могут быть реально задействованы. Так, файл с именем /dev/ad0s1c
соответствует не какому-то разделу, а слайсу вообще — это своего рода аналог Extended-раздела при DOS-разметке. Раздел, которому соответствует файл /dev/ad0s1a
, предназначен исключительно для корневой файловой системы, и очевидно, что он может быть только один, сколько бы дисков и слайсов на них не имелось бы в наличии. Назначение же раздела, файл которого именуется /dev/ad0s1b
, — служить областью подкачки (своппинга).
Прочие разделы могут нести отдельные ветви файловой иерархии. При необходимости можно подключить и разделы со другого слайса (или слайсов), также от /dev/ad0s2d
до /dev/ad0s2p
. Так что максимальное число теоретически доступных разделов составляет: 1+(13×4)=53. Да, в BSD-системах традиционно применяется весьма дробная разметка диска. Это свойственно и DragonFly при использовании файловой системы UFS. Однако полагаю, что рассчитанного их количества разделов хватит на все случаи жизни (смайлики по вкусу).
В реальности такого количества устройств, разумеется, не потребуется. Так, при установке DragonFly на файловую систему UFS дисковая разметка по умолчанию (в виртуальной машине) выглядит так:
$ ls -1 /dev/ad* /dev/ad0 /dev/ad0s1 /dev/ad0s1a /dev/ad0s1b /dev/ad0s1d /dev/ad0s1e /dev/ad0s1f /dev/ad0s1g
При использовании файловой системы Hammer всё гораздо проще: диск размечается как один-единственный слайс с разделами под /boot
(несущий файловую систему UFS), под swap и под корень файловой иерархии, внутри которого создаются псевдофайловые системы (PFS) под каталоги /var
, /usr
, /home
и всё, что потребуется впредь. Как можно видеть на странице, посвящённой инсталляции, это делается автоматически.
В итоге на моей машине разметка диска под Hammer выглядит следующим образом:
$ ls -1 /dev/da* /dev/da2 /dev/da2s1 /dev/da2s1a /dev/da2s1b /dev/da2s1d
В дальнейшем PFS, в отличие от обычных разделов слайса, могут быть перекроены по потребностям.
Предварение | Интермедия: содержание | Продолжение
Оглавление