CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
20.11.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

Что надо иметь
3. Базовые познания

CITKIT.ru

Страницы: предыдущая :: 1 :: 2

Содержание

Слайсы, разделы, файловые системы

Правильная разметка целевого диска, то есть создание на нём разделов под файловые системы, необходимые для размещения устанавливаемой ОС, — очень важный момент при инсталляции любой системы, даже Windows (хотя её-то пользователи часто не отдают себе в этом отчёта). А в случае с FreeBSD важность его усугубляется двумя факторами.

Первый — это значительные отличия схемы дисковой разметки BSD-систем вообще (и FreeBSD в частности) не только от принятой в DOS/Windows, но и в Linux. Причём различия эти проявляются как в терминологии, так и в сути явления.

Второй же фактор — разметка диска во FreeBSD это, пожалуй, чуть ли не единственный момент во всём процессе инсталляции, который по её завершении может быть изменён с большими трудозатратами: методов переразметки разделов без потери данных, как в ряде случаем возможно для Linux, во FreeBSD не предусмотрено. Так что ошибки при создании разделов на стадии установки крайне нежелательны. Дабы уменьшить их вероятность, ниже и даётся довольно подробное введение в принципы дисковой разметки.

Все, кому приходилось устанавливать какую-либо ОС собственноручно, знают, что диск (или диски) принято делить на разделы. В принципе, система может быть установлена и на цельный, никак не размеченный, диск (так называемое raw-устройство), однако этот метод применяется очень редко — в основном для носителей типа вымерших дискет или сменивших их флэшек.

Разделов на стандартном PC'шном диске может быть максимум четыре штуки - информация о большем количестве не помещается в главной загрузочной записи (MBR - Master Boot Record). Эти разделы в DOS/Windows и Linux принято называть первичными (Primary Partitions), или, не совсем точно, физическими. А во FreeBSD для них принят термин "слайс" (slice - в данном контексте это слово можно перевести как отрезок).

Представление о первичных дисковых разделах определяется архитектурой PC (вернее, исторически унаследованным от первых IBM-совместимых компьютеров устройством их BIOS). А вот дальнейшее их дробление уже определяется операционной системой, которая предполагается для установки на эти разделы. И тут уже вступают в силу ОС-специфичные стили разметки разделов, предопределенные присвоенными им идентификаторами типа файловой системы.

Пользователи как DOS/Windows/NT, так и Linux практически сталкиваются только с одним стилем разметки, который обычно называется DOS-стилем. Он основан на том, что один из первичных разделов объявляется разделом расширенным (Extended Partition) - то есть ему присваивается соответствующий численный идентификатор. Помеченный таким образом раздел выступает в качестве контейнера, который может быть поделен далее на логические диски по цепочечному принципу (или принципу матрешки). То есть внутри Extended-раздела выделяется две области, одна из которых объявляется логическим диском, пригодным для хранения данных, а другая определяется как расширенный раздел следующего уровня вложенности. Который, в свою очередь, также может содержать еще один логический диск и расширенный раздел, и так далее. Впрочем, к BSD-разметке, о которой у нас пойдет речь, это отношения не имеет.

Дисковый раздел, отведенный под BSD-систему, то есть слайс FreeBSD, также может быть поделен на логические разделы, которые в терминологии этой ОС так просто и именуются разделами (BSD partitions). Принцип деления слайса тут другой - он нарезается как бы линейно на серию разделов. Максимальное число разделов, которые могут быть использованы для размещения на них файловых систем, — шесть, хотя реально это количество достижимо только на одном слайсе одного физического диска данной машины.

Далее, в отличие от DOS-стиля разметки, разделы могут быть созданы внутри каждого из четырёх теоретически возможных BSD-слайсов - Extended-раздел, как известно, может присутствовать на физическом диске в единственном экземпляре (хотя причины этого остаются покрыты мраком неизвестности). Правда никто к этому не понуждает - как, впрочем, и к созданию максимально возможного количества разделов.

Более того, физический диск может вообще не делиться на слайсы - в т.н. режиме эксклюзивного использования он может быть нарезан на разделы непосредственно. Правда, в нынешних версиях sysinstall штатно это не предусмотрено — такого результата можно добиться только мануально (о чем мы поговорим в одной из последующих глав).

Кроме слайсов и разделов, нам придётся иметь дело с так называемыми логическими томами (logical volumes) или пулами (pool). В них обычно объединяется по определённым правилам несколько дисковых разделов (реже слайсов или даже дисков в эксклюзивном режиме), после чего они выглядят для системы как единый накопитель, который, в свою очередь, может быть также поделен на разделы или уже непосредственно на файловые системы. Такие объединённые тома используются для создания программных RAID-массивов или надстраивания на них файловой системы ZFS, о чем мы со временем поговорим подробнее.

В своё время мы узнаем, что все, имеющееся в POSIX-системах, суть файлы. Не исключение и FreeBSD — диски, слайсы и разделы представляют собой специальные файлы — файлы устройств.

Номенклатура файлов устройств дисков, слайсов и партиций во FreeBSD подчиняется строгим и, в отличие от Linux, однозначным правилам. Файлы, соответствующие дискам с интерфесом PATA (IDE) именуются здесь ad#, где ad, как можно догадаться, - аббревиатура от ATA Disk, а # - номер дискового устройства в машине, начиная с 0 (табл. 1).

Таблица 1. Номенклатура дисковых накопителей во FreeBSD. Случай "чипсетного" контроллера PATA
Файл IDE-канал M/S
ad0 1-й Master
ad1 1-й Slave
ad2 2-й Master
ad3 2-й Slave

Во FreeBSD по умолчанию принята так называемая статичная нумерация дисковых накопителей. То есть файл ad3 всегда будет соответствовать слейву на втором IDE-канале, даже если этот диск является единственным в системе. Более того, даже при отсутствии не только дисков на разъемах основного ("чипсетного") PATA-контроллера, но и самого этого контроллера (как это имеет место быть на большинстве современных материнских плат с чипсетами от Intel), зарезервированные за этими устройствами имена (от ad0 до ad3) никаким другим накопителям присваиваться не будут.

В пору безраздельного господства параллельных дисковых интерфейсов основной ("чипсетный") контроллер PATA на материнских платах "вышесреднего" уровня нередко дополнялся вторым, от независимого производителя. Ведь любой PATA-контроллер в принципе может поддерживать не более четырёх подсоединённых к нему устройств, тогда как реально их могло потребоваться и больше, — это во-первых. А во-вторых, подключение дисков к разъёмам одной линии часто оказывалось нежелательным. Например, при построении программного RAID-массива нулевого уровня это вело к ощутимому снижению производительности дисковых операций.

Так вот, номенклатура дисков на разъемах дополнительного PATA-контроллера, если таковой присутствует, строится по тому же принципу, что и для дисков на контроллере "чипсетном", надстраивая "вверх" линейку имён: файл ad4 будет соответствовать мастер-диску на первом дополнительном IDE-канале, ad5 - слейву на нем же, и так далее.

Ныне диски PATA уверенно вытесняются дисками с интерфейсом SATA. Их номенклатура подчиняется почти тем же самым правилам: в соответствие со статической нумерацией файлов устройств, они будут получать имя вида ad[следующий свободный номер], правда, только чётный, например: ad4, ad6, ad8 (почему так — не очень понятно).

Это будет иметь место при наличии PATA-контроллера, резервирующего за собой имена ad0-ad3. Но мы знаем, что в южных мостах современных чипсетов от Intel, начиная с ICH8, родной поддержки PATA-интерфейса больше нет. Как это отражается на номенклатуре SATA-дисков?

Выясняется, что никак. Потому что практически на всех материнских платах с Intel'овскими чипсетами имеется PATA-контроллер какого-либо стороннего производителя. И он по прежнему держит за собой четыре "нижних" имени дисков. И делает это даже в том случае, если, как это нередко бывает, разъём для PATA-дисков всего один, то есть реально на нём может быть лишь два устройства с этим интерфейсом.

В качестве примера приведу имена файлов дисковых устройств для машины, на которой пишутся эти строки (табл. 2), имеющей PATA-контроллер с одним разъёмом на два устройства, не только не задействованный, но и отключённый на уровне BIOS, и четыре разъёма SATA.

Таблица 2. Номенклатура дисковых накопителей во FreeBSD. Случай "чипсетного" контроллера SATA
Файл Устройство
ad4 1-й диск SATA
ad6 2-й диск SATA
ad8 3-й диск SATA
acd0 СD-привод

Некоторое осложнение в описанную стройную систему именования ATA-накопителей вносят диски, подсоединенные к аппаратным контроллерам ATA RAID (в том числе и SATA). Так вот, они существуют как бы в двух ипостасях. С одной стороны, им соответствуют обычные файлы вида ad#, с другой - файлы RAID-устройств, именуемые - ar0, ar1 и т.д. Впрочем, больших неудобств это не доставляет. Хотя и требует некоторой внимательности при разбиении на стадии установки. Каковая, впрочем, будет нелишней в любом случае.

Накопители CD-ROM, CD-R/RW и CD/DVD, как классические ATAPI, так и идущие им на смену SATA, не подчиняются правилам именования ATA-дисков. Имена соответствующих им файлов всегда будут acd0 (от ATAPI CD, нужно полагать) и, если таковых устройств более одного, acd1 (а больше двух их, скорее всего, и не будет).

Если диск был разбит на слайсы, каждому из них ставится в соответствие собственный файл устройства. Обозначаются они так: ad#s1, ad#s2, ad#s3, ad#s4. Здесь # - это все тот же номер дискового устройства, s символизирует, что мы имеем дело именно со слайсом (как вскользь было замечено выше, диск не обязан быть поделенным на слайсы), а цифра - порядковый номер оного (обращаю внимание, что слайсы, в отличие от дисков, нумеруются начиная с единицы).

Файлы BSD-разделов, на которые делится слайс, маркируются буквами латинского алфавита. Всего в таблице BSD-разметки под разделы отведено 8 записей, и соответственно буквы эти будут - от a до h, например: ad0s1a, ad0s1b, и так далее. Причем некоторые литеры зарезервированы за разделами под совершенно определённые файловые системы.

Так, файл с именем ad0s1c не соответствует никакому разделу вообще, а описывает весь слайс целиком - своего рода аналог Extended-раздела при DOS-стиле разметки (в BSD-таблице разделов этот раздел помечен как неиспользуемый - unused). Раздел, которому соответствует файл ad0s1a, предназначен исключительно для корневой файловой системы. Назначение же раздела, файл которого именуется ad0s1b, - служить областью подкачки (своппинга). Прочие партиции, файлы которых помечены литерами от d до h, могут нести отдельные ветви файловой системы (см. табл. 3).

Таблица 3. Схема BSD-разделов и их назначение
Файл Назначение
ad0s1a Корневая файловая система
ad0s1b Раздел подкачки
ad0s1c Не используется
ad0s1[d-h] Ветви файловой системы

Остается сказать несколько слов о номенклатуре SCSI-накопителей. Маловероятно, что вы в домашних условиях являетесь счастливым обладателем дисков с этим интерфейсом. Однако во FreeBSD (как, впрочем, и в Linux), в качестве SCSI-винчестеров предстают весьма разные устройства хранения данных. Понять этого невозможно, поэтому просто запомните, что ими будут Zip-накопители на параллельном порту, флэшки с USB-разъемом (а также любые другие USB-драйвы) и даже цифровые камеры (конечно, не сами камеры, а встроенные в них носители, которые в большинстве случаев являют собой те же флэшки). Так что знание соответствующей терминологии нам понадобится непременно.

Так вот, сами по себе SCSI-диски (точнее, конечно, файлы соответствующих им устройств) во FreeBSD именуются так: da0, da1 и так далее. Почему? Я предполагаю, что это - аббревиатура от Direct Access, то есть устройства прямого доступа. Соответственно, файлы слайсов на них будут выглядеть как da0s1, da0s2 и далее, а разделы будут маркироваться теми же литерами, что и ранее - da0s1(a-h), и с теми же предопределенными значениями. Впрочем, на разделы флэшки и камерные носители вряд ли кто разбивает. Да и первичные разделы на них имеют место быть не всегда - часто файловые системы на них создаются непосредственно на т.н. raw-устройстве - в этом случае к ним нужно обращаться как к da#

Файлы CD-приводов со SCSI-интерфесом также именуются иначе, чем их ATAPI-аналоги. Имя им будет - cd0 или cd1 (вероятно, наследие тех времен, когда CD были только SCSI'ёвыми). Наличие их в современной машине еще менее вероятно, чем SCSI-винчестеров. Однако в ряде случаев в качестве оных целесообразно представить обычные CD-R/RW с ATAPI-интерфейсом - этого может потребовать пакет записи cdrtools.

В отличие от Linux, где разделение диска на разделы, без разницы, первичные или логические, выполняется одной и той же утилитой fdisk (или её front-end'ом, cfdisk), во FreeBSD разметка диска осуществляется в два этапа: сначала утилитой fdisk создаются слайсы, потом, с помощью программы bsdlabel, они делятся на логические разделы. Впрочем, для пользователя при установке системы это происходит абсолютно прозрачно — заботу об обеих этих процедурах берет на себя программа sysinstall.

Выше вскользь упоминались логические тома, в которые могут быть объединены разделы, например, для создания на них программного RAID-массива или размещения файловой системы ZFS. И вот для этого sysinstall оказывается не приспособленной: эти действия придётся выполнить вручную, с помощью специальных инструментов — менеджеров логических томов, разных в каждом конкретном случае. Впрочем, при использовании ZFS инструментарий для создания логических томов оказывается совмещённым со средствами создания файловой системы. Но об этом мы подробно поговорим в одной из ближайших глав..

А в заключение главы нынешней заметим, что разделы на диске создаются для того, чтобы размещать на них файловые системы, которые должны быть инкорпорированы в единую иерархию файлов и каталогов. В отличие от Linux, с его изобилием "родных" файловых систем, во FreeBSD до недавнего времени была только одна нативная файловая система - UFS и её усовершенствованный вариант - UFS2. Последняя и используется ныне повсеместно — в частности, именно она создается по умолчанию программой sysinstall при установке. Забегая вперед, замечу, что файловые системы создаются командой newfs, но при первичной инсталляции это от пользователя скрыто.

Так что, казалось бы, ломать голову над проблемой выбора файловой системы пользователю FreeBSD не приходится. Однако это не совсем так: начиная с версии 7.0, в ней поддерживается файловая система ZFS, имеющая много достоинств и массу приятных особенностей. Однако проблема с ней в том, что через программу sysinstall обеспечить её использование не удастся. Так что желающих опробовать её (а должен предупредить, что поддержка ZFS во FreeBSD пока носит экспериментальный характер) придётся принять некоторые меры на стадии установки — о чём мы поговорим своевременно.

Методы высвобождения дискового пространства

И тут читатель вправе задать один из вопросов, столь же вечных, как разговоры о том, "что делать, блин? и кто, блин, виноват?". А именно, вслед за доном Тамео, сказать:

Всё это, конечно, очень бла-а-ародно, но как там насчет баб?

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

Если речь идёт об установке на "чистую" машину, не несущую никакой операционной системы, то всё просто: в нашем распоряжении вся мощь sysinstall и низкоуровневых утилит, дабы кроить диск по собственному велению и хотению.

Если на диске имеется первичный раздел достаточного объема, содержимым которого можно безболезненно пожертвовать, дело будет обстоять ничуть не сложнее: средствами sysinstall раздел удаляется и на его месте воссоздается слайс с последующей разметкой его на BSD-разделы.

Наконец, если на диске имеется неразмеченное пространство, порядок действий аналогичен предыдущему. Подчеркну — речь идёт именно о неразмеченном (то есть не приписанном ни к одному из существующих разделов) дисковом пространстве, а не просто о свободном месте на диске — начинающие пользователи иногда путают эти вещи. И ещё: текущая схема разметки должна допускать создание минимум ещё одного первичного раздела, то есть таковых должно быть не более трёх.

И последний случай, самый сложный: весь диск занят существующим разделом или разделами, несущими какую-либо из "неродных" для FreeBSD файловых систем (FAT любого рода, NTFS, какие-либо из файловых систем Linux). В этом случае встаёт задача высвобождения дискового пространства для создания нового первичного раздела. И если текущая схема разметки позволяет в принципе выполнить последнюю задачу (то есть на диске имеется не более трех первичных разделов), то проблема вполне решаема.

Правда, сразу скажу, что средствами FreeBSD, без обращения к стороннему инструментарию, она решается только в том случае, если подлежащий "усекновению" раздел несёт какую-либо из разновидностей файловой системы FAT. На сей предмет на сервере проекта лежит (в каталоге pub/FreeBSD/tools/ или pub/FreeBSD/tools.NEW/) лежит специальная утилита fips.exe. Ранее она требовала для своей работы "чистого DOS'а" и справлялась только с уменьшением разделов FAT16. Однако со временем обрела способность работать в DOS-окне Windows и "совершать обрезание" разделов VFAT и FAT32.

Однако ныне обе эти файловые системы практически изжиты с дисков пользовательских десктопов, и актуальность сохраняет только манипулирование с разделами, несущими файловую систему NTFS, средств для чего, насколько мне известно, FreeBSD не имеет. А потому её потенциальному пользователю, оказавшемуся в такой ситуации (а она достаточно обычна, например, при приобретении большинства современных ноутбуков), остаётся обратиться только к дружественному Linux'у в лице одного из его LiveCD дистрибутивов, имеющему в своём составе утилиту parted или какой-либо из графических её фронт-эндов - gparted или qtparted.

Проблема высвобождения дискового пространства в указанных условиях была подробно рассмотрена в книжке про Zenwalk. К сказанному там мне добавить нечего, и потому я просто отсылаю заинтересованного читателя к соответствующей её главе.

Скажу только, что утилита parted может помочь и в случае, если требуется сократить раздел с файловой системой Linux (по крайней мере ext2/ext3 — точно).

И последнее: после высвобождения дискового пространства и установки на него FreeBSD она вполне способна мирно сосуществовать как с Windows, так и с любым дистрибутивом Linux: в главе о загрузке и инициализации мы увидим, какими способами это можно обеспечить.




Страницы: предыдущая :: 1 :: 2

Комментарии

igoryu, Sat Jan 31 21:56:11 2009:
>аббревиатура от Direct Acsess

Правильно: Direct Access
Алексей Федорчук, Sun Dec 14 11:12:45 2008:
Фиксед
аноним, Sun Dec 14 09:19:50 2008:
ОС-специцичные стили :)
Алексей Федорчук, Wed Nov 5 21:51:24 2008:
2 аноним, среда, 5 ноября 2008 г. 17:03:36:
Спасибо, пофиксил
аноним, Wed Nov 5 17:03:36 2008:
Кажется, у вас маленькая опечатка (в печатном варианте этот символ '=' будет ещё более резать глаз)

> (так называемое raw=устройство)
Алексей Федорчук, Sat Nov 1 23:03:27 2008:
2 AVATAR
Именно так.
Спасибо за понимание
AVATAR, Sat Nov 1 22:04:32 2008:
про популярные оси и так инфы навалом, мне же кажется, что автору интереснее освещать вопросы о предметах в стороне от мейнстрима, но с хорошим потенциалом развития, не так ли?!!!
аноним, Tue Oct 28 23:59:54 2008:
Да чего там такого? BeOS в профиль...

И потом - софта и драйверов под неё так дофига, что просто вообще... нету.
AVATAR, Thu Oct 23 21:54:58 2008:
очень надеюсь что следующей книгой автора будет сага о Haiku OS

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds