Сага о FreeBSD. Базовые познания


Автор: Алексей Федорчук

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

Вступление

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

Конечно, в принципе FreeBSD можно установить, не зная абсолютно ничего — просто поминутно заглядывая в распечатку соответствующей главы Handbook’а, а во всех неясных случаях полагаться на умолчания программы инсталляции. И для первого знакомства с системой такой метод может быть приемлем. Однако в этом случае пользователь просто откладывает процесс приобретения базовых знаний “на потом” — они ему обязательно потребуются, в том числе и для исправления ошибок, почти неизбежных при таком методе установки. И ещё следует помнить, что некоторые ошибки, допущенные на стадии установки, в дальнейшем можно будет скорректировать только с большими затратами времени и сил. Так что экономии оных ради лучше всё-таки ознакомиться с базовыми понятиями заранее.

Благо по настоящему необходимых на стадии инсталляции познаний требуется совсем не много. В их число входят:
представление о том, что же такое установка операционной системы;
самые общие представления о её загрузке;
понятие о дисковой разметке вообще и её специфике во FreeBSD в частности;
начальные сведения о файловых системах и файловой иерархии.

Начнем с рассмотрения вопроса,

Что такое установка операционной системы

Начинающему пользователю инсталляция любой системы кажется процессом таинственным и непонятным. В случае же с FreeBSD это усугубляется упорно циркулирующими в сети слухами о его особенной, по сравнению с установкой Linux, сложности. Однако, если посмотреть в корень, в инсталляции любой системы, в том числе и FreeBSD, ничего таинственного нет. Ибо в общем случае она распадается на ряд простых составляющих:
загрузку с установочного носителя;
подготовку к установке целевого носителя (как, правило, винчестера);
созданию родной для устанавливаемой ОС файловой системы (или систем);
переносу на соответствующую файловую систему базовых компонентов ОС;
обеспечению загрузки новоустановленной системы с целевого носителя.

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

Кроме обязательных функций, инсталлятор может обеспечивать и некоторые дополнительные, как то: установку приложений, не входящих в базовую систему, начальное конфигурирование ОС и, в некоторых случаях, настройку работы в графическом режиме (последнее в просторечии именуется настройкой оконной системы X, или просто Иксов).

Штатная программа — инсталлятор FreeBSD именуется sysinstall. Она обеспечивает все основные функции программ этого назначения, и большинство дополнительных. Вне сферы её компетенции остаётся загрузка с инсталляционного носителя — нетрудно догадаться, что успешная загрузка, будучи необходимым условием установки, собственно к процессу оной отношения не имеет.

Не предусматривает ныне sysinstall и настройки графического режима, то есть оконной системы X (хотя некогда и это входило в его прерогативу). Это тоже совершенно особая история — поскольку X и в Африке X, и от операционной системы зависит очень слабо.

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

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

Да, программа sysinstall — весьма древняя (как мы видели в историческом очерке, она была уже в первой “настоящей” версии FreeBSD, то есть 2.0). И потому она при установке не обеспечивает некоторых функций, появившихся позднее. Однако большинство её ограничений можно обойти, и в главе об инсталляции мы увидим, как это сделать.

Но прежде –

Пара слов о загрузке

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

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

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

Однако исключить некоторые неприятные неожиданности при загрузке с установочного носителя не может никто. Результат — процесс загрузки, дойдя до какой-то определённой стадии, стопорится или впадает в цикл опроса одного и того же устройства. И вывести машину из этого ступора можно только кнопкой Reset или отключением питания — никакие комбинации из трех пальцев в данной ситуации не помогают.

Тем не менее, невозможность загрузить FreeBSD с первой попытки — ещё не повод для отчаяния. Во-первых, главное меню загрузчика предлагает два штатных варианта загрузки, отличных от умолчальных — с отключением модулей контроля энергопотребления (ACPI disabled) и в так называемом безопасном режиме (Safe Mode), то есть без подключения модулей вообще. К первому варианту приходится прибегать при установке на некоторые ноутбуки, второй же остаётся как предпоследний резерв, задействуемый при неудаче загрузки по умолчанию или без ACPI.

Последний же резерв верховного главнокомандования — это переход в командную строку загрузчика и ручное включение и отключение тех или иных модулей. Процесс этот не столь сложен, как кажется — по своим интерактивным возможностям штатный загрузчик BSD-систем (который так и называется — BSD Loader), хотя и уступает GRUB’у, но существенно превосходит Lilo. Тем не менее, он требует некоторых знаний, выходящих за пределы базовых, и потому будет подробнее описан в соответствующей главе.

Всегда следует помнить, что “спотыкание” процесса загрузки на определении какого-либо устройства при установке вовсе не означает, что оно не опознаётся во FreeBSD в принципе: возможно, что его поддержка просто не включена в умолчальное ядро этой ОС, загружаемое с установочного носителя, и в этом случае его можно будет попытаться сконфигурировать в последствии, в уже установленной системе. А на стадии инсталляции критически важна поддержка лишь двух устройств — контроллера привода компакт-дисков и контроллера целевого носителя. А с этим, как мы видели в главе о “железе”, непреодолимые препятствия крайне маловероятны.

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

Правильная разметка целевого диска, то есть создание на нём разделов под файловые системы, необходимые для размещения устанавливаемой ОС, — очень важный момент при инсталляции любой системы, даже 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.

История поддержки NTFS в Linux очень драматична, но я ею специально не интересовался и потому знаю плохо. Замечу только, что все проблемы с чтением этой файловой системы и, особенно, записью на неё остались, как-будто, в прошлом. По крайней мере, до тех пор, пока Microsoft не внесёт в NTFS какой-нибудь очередной модификации…

Впрочем, всё это теория. А перед нами стоит узкая практическая задача. И в контексте её для нас важно, что parted обрел способность манипулировать разделами, несущими NTFS, графические фронт-энды сделали этот процесс простым и понятным, а Live CD позволяет использовать эти возможности на машине, на которой Linux еще только планируется установить.

Так что всё, что нужно для высвобождения пространства под Linux на полностью размеченном под NTFS диске — это любой Live CD, несущий на себе среди прочего и один из графических фронт-эндов к parted.Какой именно Live CD? С уверенностью могу сказать за тот же Knoppix (или, если вы предпочитаете читать по немецки, то вот сайт на языке Гёте), Install/Live CD различных вариантов Ubuntu, и многие другие. Существует и Live CD, специально предназначенный для решения поставленной перед нами задачи (наряду с некоторыми другими, родственными), именуемый Parted Magic, который был подробно описан в здесь. Сам по себе он очень интересен и полезен, но к теме настоящей книжки прямого отношения не имеет. И потому кровно заинтересованных отсылаю к указанному источнику.

Скажу только, что утилита parted может помочь и в случае, если требуется сократить раздел с большинством нативных файловых систем Linux, за исключением гипремодерновых, вроде brtfs или nilfs.

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

http://alv.me/?p=946

Обновлено: 13.03.2015