Мой LFS-2003. Часть 2, подготовительная. Начало всех начал
Абу Талиб сказал: все имеет свое начало, и все начинается с дороги. В нашем случае первый шаг по этой дороге - разметка диска.
Собственно, ничего необычного тут нет - стратегия и тактика разбиения диска описывалась многократно. Два обязательных раздела - корневой и под своппинг. Необходимый объем для установки Base Linux (включая архивы исходников, место для временной их распаковки, и так далее) превышает полтора гигабайта. Плюс некий запас свободного пространства (как известно, производительность файловых операций в любых Unix-системах резко деградирует, если объем такового падает ниже 10%) - итого 2 Гбайт абсолютного минимума. Ну а swap-раздел - стандартно, между 128 Мбайт и 2 Гбайт (рекомендуется - удвоенный объем ОЗУ).
Впрочем, своя рука - владыка, и мы имеем возможность гибкого варьирования разделов. Например, можно создать маленький загрузочный раздел под /boot - это настоятельно рекомендуется, если в планах у нас использование GRUB в качестве начального загрузчика (а в моих планах - всегда именно так, никаких преимуществ перед ним у Lilo нынче не осталось).
Далее, и корневой раздел можно сделать не очень большим, выделив из его состава такие каталоги, как /var, /usr/X11R6, /usr/local и /opt. Последние три раздела в данном случае очень даже целесообразно обособить, ведь именно в них будет по умолчанию устанавливаться весь софт из числа Base Linux inside - мы же не для того собираем собственную систему, чтобы ограничится спартанскими минимумом обязательных компонентов. С другой стороны, в обособлении раздела под /usr в данном случае не видно резона - ведь большая часть Base Linux соберется именно в нем, после чего он станет своего рода read only. При большом объеме оперативной памяти нет необходимости и в отдельном разделе под /tmp - лучше будет в дальнейшем подмонтировать в него файловую систему tmpfs. Ну и конечно, каталог /home всегда должен лежать в отдельной патриции, это следует затвердить, как догмат веры.
С файловыми системами - также никакой специфики
Теперь раздел, которому суждено стать корневым в нашей грядущей системе, следует подмонтировать к Live файловой системы, загруженной с нашего CD. Создав предварительно для этого соответствующую точку монтирования (в Lonix для этой цели служит каталог /fake/needwrite - прочие ветви файловой системы отнюдь не Live, а, напротив, очень даже read only). Ну и переходим в этот раздел - например, cd /fake/needwrite/basix.
Следующий шаг - развертывание файловой иерархии, что мы будем делать в полном соответствии с заветами документа, описывающего одноименный стандарт - Filesystem Hierarchy Standard (благодаря Виктору Костромину мы имеем возможность ознакомиться с ним и
$ mkdir bin boot dev etc home lib mnt opt root sbin usr/{X11R,local} var
Напомню - все пути даются относительно точки монтирования будущего корневого раздела, в данном примере - /fake/needwrite/basix. Далее, при необходимости, подмонтируем к соответствующим точкам - opt, tmp, usr/{X11R,local}, var, - предопределенные для них разделы:
$ mount /dev/hd?# opt
и так далее. В каталогах usr, usr/X11R, usr/local развертываем их внутреннюю иерархию - с подкаталогами ~/bin, ~/etc, ~/include, ~/lib, ~/sbin, ~/share, ~/src и еще глубже (типа ~/share/man, ~/share/man/man1 и так далее).
Проделываем ту же процедуру для каталога opt - здесь согласно стандарту следует выполнить нечто вроде
$ mkdir opt/{bin,doc,include,info,lib,man}
Далее - каталоги var и tmp. В первом случае нам потребуются подкаталоги
$ mkdir var/{cache,lib,local,lock,log,opt,run,spool}
А вот каталог tmp оставляем пустым - просто как точку монтирования для грядущей tmpfs после того, как будет собрано ядро с поддержкой оной.
Теперь создаем символические ссылки минимум одна, usr/tmp -> var/tmp, нам потребуется:
ln -s var/tmp usr
Наконец, изменяем атрибуты доступа для каталога /root - он должен быть закрыт для доступа обычных пользователей:
$ chmod 0750 root
То же - для хранилищ временных файлов: в них, напротив, любой пользователь должен иметь возможность записи, но не - удаления чужих файлов. Последнее достигается установкой дополнительного бита суидности:
$ chmod 1777 tmp var/tmp
Теперь можно приступить к развертыванию архивов исходников, предварительно скачав их из сети и разместив в каком-либо подходящем каталоге (например, usr/src - но обязательно в дереве каталога basix). Создаем каталог под собственно дерево исходников (скажем, usr/src/tmp) и переходим в него. Для статической сборки второго этапа все программы Base Linux нам не потребуются. Поэтому разворачиваем только необходимый минимум: bash, gcc, make, binutils и еще несколько (общим числом 18 - в него обязательно должен входить выбранный текстовый редактор). На этом подготовительный этап самостроя системы можно считать законченным.
К содержанию . .