Мой 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 всегда должен лежать в отдельной патриции, это следует затвердить, как догмат веры.

С файловыми системами - также никакой специфики. Для раздела под /boot практически обязательна классика жанра - ext2fs. Под корень, если сделать его небольшим, также рекомендуется отвести (не извести) ext2fs или, для страховки, ее журналируемый вариант ext3fs. Файловые системы на прочих разделах - в соответствии с пристрастиями, потребностями и возможностями (так, XFS не поддерживается в Lonix - но она и целесообразна для для больших разделов, например, под /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 - в него обязательно должен входить выбранный текстовый редактор). На этом подготовительный этап самостроя системы можно считать законченным.


К содержанию

. .