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

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

ОСТОРОЖНО: ВИНДОФИЛИЯ! (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

Всё имеет свое начало...
5. Инсталляция без инсталлятора

CITKIT.ru

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

Содержание

UFS или ZFS: где корень?

Опять-таки, вне зависимости от дальнейших планов, на разделе /dev/ad4s1 надо создать традиционную файловую системы UFS2:

Fixit# newfs /dev/ad0s1a

И вот теперь мы в который раз оказываемся перед вековечным русским вопросом: "что делать, блин?" Впрочем, ответ на второй вопрос — "и кто, блин, виноват?" — у нас уже есть: сами виноваты, надо было идти как все, по камушкам (описанным здесь и здесь) и не выпендриваться. Но коль уж

А широкая моя кость
И природная моя злость

заманила нас в дебри ZFS, на первый вопрос — выносить на неё корень файловой системы или нет, — отвечать придётся. И именно сейчас — от этого будет зависеть дальнейший порядок действий.

Для начала выражу своё глубокое ИМХО. На момент, когда пишутся эти строки, корневая файловая система на ZFS не имеет ни малейшего смысла. В первую очередь потому, что это — не более чем иллюзия: загрузить BSD loader и ядро системы с её модулями загрузчик boot1/boot2 в настоящий момент не способен. То есть нам придётся всё равно создавать подпорку в виде раздела с традиционной UFS для монтирования в него каталога /boot с loader.conf, ядром и модулями. А поскольку именно ядро и модули составляют единственный компонент базовой системы, объем которого, при активном экспериментировании, не поддаётся предварительному расчёту, мы теряем одно из главных преимуществ ZFS перед традиционными файловыми системами — возможность динамического перераспределения дискового пространства между отдельными ветвями файловой иерархии.

Более того, кроме отсутствия преимуществ, корень (точнее, ошмётки корня) на ZFS может только добавить некоторые сложности в аварийных ситуациях, требующих однопользовательского режима и доступа к каталогам /bin, /etc и /sbin. А оно нам надо?

Да, я знаю, что ныне во FreeBSD реализована поддержка ZFS версии 13 (сразу после 6-й). Которая предусматривает, в том числе, и возможность прямой загрузки с ZFS (некоторые подробности — здесь). Однако, по признанию самих разработчиков, она ещё Not finished. Что, конечно, флибустьера и авантюриста не остановило бы. Но: ни один из существующих дистрибутивов FreeBSD, даже снапшот 8-й ветки, на момент, когда пишутся эти строки (2008/11/23), такой возможности не поддерживает. А изготавливать такой дистрибутив собственными силами, да ещё без гарантии успеха, — это уже слишком даже для самого Билли Бонса.

Да и каталог /usr в "чистом" его виде, как было высказано iZEN'ом в обсуждении предыдущих глав этой книжки, возможно, имеет смысл оставить в составе корня. Правда, при этом нам надо было бы добавить к разделу /dev/ad4s1a пару сотен мегабайт под такие неотъемлемые ветви каталога /usr, как /usr/bin/, /usr/include/, /usr/lib/, /usr/libdata/, /usr/libexec/, /usr/sbin/, /usr/share. А в дальнейшем — не забыть создать файловые системы для изменяемых его ветвей, таких, как /usr/compat/, /usr/local/, /usr/obj/, /usr/ports/, /usr/src/, не говоря уже о /usr/home — но это у нас и так было в планах, не так ли?

Впрочем, как распорядиться каталогом /usr, каждый решит сам — хотя мне и кажется более удобным вынести его на ZFS (и в дальнейшем я буду исходить из этого), но и сохранение его на традиционной UFS тоже имеет свои плюсы..

Так что случай вернуться к обсуждению вопроса о файловой системе для корня, надеюсь, скоро представится. А пока на время "прощаемся мы с серебристой, самою заветною мечтой" о FreeBSD на сквозной ZFS и обратимся к более традиционной схеме. Желающим же примерить костыль Джона Сильвера в виде каталога /bootdir рекомендую обратиться к работе Павла Давидека, доступной также и в русском переводе. Следует только учесть, что описанный там метод не предполагает установки на "чистую" автономную машину. Но я думаю, что заинтересованный читатель и сам сообразит, как адаптировать написанное Павлом к этим условиям. А я же перехожу к установке системы в более традиционном варианте.

Развёртывание системы

Итак, судьбоносное решение о корне файловой иерархии принято. Остаётся выполнить два последних подготовительных мероприятия. Первое — создать в каталоге /mnt нашей "живой" файловой системы два подкаталога:

Fixit# mkdir /mnt/ad4s1a ; mkdir /mnt/flash

Как не трудно догадаться, первый предназначен для монтирования дискового раздела, которому в будущем суждено стать корневой файловой системой:

Fixit# mount /dev/ad4s1a /mnt/ad4s1a

Во второй же монтируем флэшку с архивами:

Fixit# mount_msdosfs /dev/da0s1 /mnt/flash

Обращаю внимание пользователей Linux'а: во FreeBSD просто команда mount, без указания типа файловой системы, предназначена только для монтирования разделов с UFS; для всех прочих файловых систем должны быть вызваны соответствующие её варианты (как в примере mount_msdosfs — для монтирования FAT любого рода); или посредством опции -t явным образом задан тип файловой системы. То есть для монтирования флэшки может быть использована такая форма:

Fixit# mount -t msdosfs /dev/da0s1 /mnt/flash

Теперь переходим в будущий корневой каталог

Fixit# cd /mnt/ad4s1a

и разворачиваем там архивы базовой системы и man-страниц (если последний у нас подготовлен):

Fixit# tar xzvf /mnt/flash/base.tgz
Fixit# tar xzvf /mnt/flash/manpages.tgz

Далее перемещаемся в загрузочный каталог грядущего корня:

Fixit# cd /mnt/ad4s1a/boot

и там уже разворачиваем архив ядра GENERIC:

Fixit# tar xzvf /mnt/dist/generic.tgz

Образовавшийся каталог /mnt/ad4s1a/boot/GENERIC переименовываем должным образом:

Fixit# mv GENERIC kernel

Вот почти и всё — прочие манипуляции откладываем до рестарта системы, который нам сейчас и надлежит обеспечить.

Для этого в первую очередь создаём (с помщью vi или ee, как душе будет угодно) файл loader.conf:

Fixit# ee /mnt/ad4s1a/boot/loader.conf

и вписываем в него пока единственную строку:

zfs_load = "YES"

Редактируем главный общесистемный конфиг:

Fixit# ee /mnt/ad4s1a/etc/rc.conf

В него также необходимо добавить только одну строку:

zfs_enable="YES"

Вкупе всё это после перезагрузки даст нам возможность использовать ZFS.

Отступление: конечно, нам есть чего ещё добавить в

Затем позаботимся о монтировании файловых систем при старте:

Fixit# ee /mnt/ad4s1a/etc/fstab

такого содержания:

/dev/ad0s4a  /		ufs     rw	1	1
/dev/ad0s4b	none	swap    sw	0	0

Последнее, что осталось — размонтировать отслужившие срок эпохи носители:

Fixit# umount /mnt/ad4s1a /mnt/flash

И вот теперь выходим из Fixit-среды, затем из программы sysinstall, извлекаем загрузочный носитель и перезагружаемся.

Всё очень просто, не правда ли? Не сложнее и дальше: действуем в соответствие с ранее описанным рецептом, а именно:

  • создаём пул ZFS и на нём — все необходимые файловые системы;
  • переносим туда содержимое каталогов /tmp, /var, /usr (по вкусу и потребностям);
  • обеспечиваем их монтирование в реальную файловую иерархию.

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




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

Новости:

Все новости на 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