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

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

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

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

Статьи

Дискуссионный клуб
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 :: следующая

Содержание

Вступление

В предыдущих главах мы ознакомились с разными методами установки FreeBSD — и стандартной инсталляцией через sysinstall, и несколькими не вполне стандартными вариантами, основанными на той же программе, получили представление о возможных альтернативах последней (пусть и не вполне законченных), и даже самой ОС FreeBSD. Однако что делать тем читателям, которым не пришелся по душе ни один из описанных методов? К их услугам — Ultima Ratio записных берклианцев, оно же их абсолютное оружие: инсталляция без инсталлятора. Этому и будет посвящена настоящая глава.

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

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

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

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

В-четвёртых, ручное развёртывание системы можно использовать для экстренного обновления при смене версий её и даже веток, вместо обычно пропагандируемой пересборки ядра и "мира", хотя здесь и надо соблюдать некоторую осторожность.

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

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

Ну и конечно, потребуется некоторая предварительная

Подготовка

Первое, что нужно сделать перед началом ручной установки — обзавестись диском livefs.iso, позволяющим не только загрузить ядро FreeBSD, но и получить "живую" файловую систему и некоторую среду обитания, именуемую Fixit. Причём версия и архитектура диска вовсе не обязательно должны соответствовать таковым целевой системы, которую мы хотим получить в итоге. С понятными, разумеется, ограничениями: 64-битная версия просто не загрузится на 32-разрядной машине, а для использования ZFS потребуется версия не ниже 7.0, так что в последнем случае не подойдёт и Frenzy.

Далее, необходимо скачать с ftp-сервеа проекта или его зеркал некоторое количество файлов. То, что нам потребуется, лежит там в каталоге /pub/FreeBSD/releases/[архитектура]/[версия], например:

ftp://ftp.no.freebsd.org/pub/FreeBSD/releases/amd64/7.1-BETA2/

Перейдя по указанной ссылке, мы увидим дерево каталогов примерно следующего вида:

Из этого дерева нам наверняка и сразу потребуются следующие подкаталоги — base и kernels. Так что скачиваем их вместе с содержимым. На машине под Linux'ом это можно сделать с помощью wget:

% wget -rc ftp://ftp.no.freebsd.org/pub/FreeBSD/releases/amd64/7.1-BETA2/base/
...

и так далее. Можно прибегнуть к помощи lftp — лично мне этот способ нравится больше. Для этого даём команду:

% lftp ftp://ftp.no.freebsd.org/pub/FreeBSD/releases/amd64/7.1-BETA2/




После чего в появившемся приглашении командой строки этого ftp-клиента последовательно

lftp ftp.no.freebsd.org:/.../7.1-BETA2> mirror base
lftp ftp.no.freebsd.org:/.../7.1-BETA2> mirror kernels

Разумеется, можно воспользоваться и любыми иными ftp-клиентами или менеджерами закачек. Так, в KDE указанные каталоги можно просто скопировать в Konqueror'е, как обычные локальные (желательно перед этим подключить к нему kget). Ну а что делать в Windows — пользователи этой ОС знают лучше меня.

Из остальных каталогов со временем нужны будут ports, src, возможно lib32 и, разумеется, manpages, но их можно будет получить и позднее. Впрочем, manpages можно прихватить и сразу, много веса они не добавят.

Суммарный объём полученных каталогов "первой очереди" составит несколько больше 100 Мбайт; если мы не хотим остаться без помощи на начальном этапе, к ним следует приплюсовать ещё без малого 10 Мбайт manpages. Внутри каталогов мы увидим примерно следующее (на примере base):

CHECKSUM.MD5
CHECKSUM.SHA256
base.aa
base.ab
...
base.bk
base.inf
base.mtree
install.sh*

Аналогичная картина будет и в каталоге kernels, разумеется, с заменой имён файлов:

CHECKSUM.MD5
CHECKSUM.SHA256
generic.aa
generic.ab
...
generic.bq
generic.inf
generic.mtree
install.sh*

С первыми двумя файлами в каждом каталоге всё ясно — это контрольные суммы в соответствующих форматах. Файлы вида *.aa и так далее — это фрагменты компрессированного архива *.tar.gz, разбитого утилитой split на части, равные объему трехдюймовой дискеты (1425408 байт) — наследие тех времён, когда означенный девайс был стандартным компонентом любого компьютера, а соответствующие носители использовались для распространения самых разных дистрибутивов. Слияние этих фрагментов с восстановлением первозданного архивного файла может быть выполнено утилитой cat.

В файле *.inf содержится информация о количестве таких "кусков" (Pieces) вообще и о каждом из них в отдельности — о его контрольной сумме и размере (очевидно, что размер будет одинаков для всех "кусков", кроме последнего).

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

И, наконец, install.sh — исполняемый сценарий, который и обеспечивает автоматическое выполнение всех перечисленных выше операций — слияние фрагментов в единый архив, его распаковку, копирование его составляющих в нужные места и установку для них соответствующих атрибутов.

Так что можно просто поместить скачанные каталоги base, kernels и, возможно, manpages на какой-либо внешний носитель, например, на флэшку, и на время забыть думать об их содержимом.

Можно поступить и иначе — слить фрагменты архивов воедино вручную командами следующего вида:

% cat path2/base/base.?? > base.tgz
% cat path2/base/kernels.?? > kernels.tgz

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

Надо заметить, что находящаяся в последнем пре-релизном градусе версия 6.4, а также разрабатываемая 8-я ветка, помимо традиционного набора компактов, описанных в главе о выборе дистрибутива, представлена также в виде DVD-диска, включающего как компоненты для инсталляции, так и "живую" систему. Можно предполагать, что это станет обычной практикой в грядущих релизных версиях всех ветвей. Что, казалось бы, делает ненужным перенос архивных файлов базовой системы и ядра на внешний носитель.

Однако это не совсем так. Как мы скоро увидим, среда Fixit, в которой нам придётся выполнять установку, отнюдь не являет собой верх удобства, и время, затраченное на копирование конкатенированных архивов на флэшку, сторицей окупится. Не говоря уже о том, что, как только что было отмечено, они вполне могут пригодиться и в перспективе.

Да, чуть не забыл: кроме загрузочного компакта с LiveFS и флэшки с архивами системы, нам понадобится еще средство для выполнения расчётов. А будет ли это калькулятор на втором компьютере, просто калькулятор или, наконец, ручка с клочком бумаги для вычислений в столбик, не так уж и важно.

Вот, собственно, и вся подготовка. Остаётся только вставить диск, "сболваненный" с livefs.iso или dvd.iso, и выполнить процедуру, имя которой —




Страницы: 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