Lx4U-book/docs/prepare/create-dirs.md
Linuxoid85 7423fd1853 Дополнение #1074
- Добавлена информация об использовании split usr и systemd.
- Добавлен комментарий по поводу работы сети в chroot-окружении
2022-04-21 22:52:13 +03:00

5.0 KiB
Raw Permalink Blame History

Создание базовых директорий и символических ссылок

Создание каталога $LIN/tools

Все программы, которые будут скомпилированы в следующей части, будут установлены в каталог $LIN/tools, чтобы можно было оставить их отдельно от сборки конечной системы. Это временные инструменты, которые не будут входить в конечную сборку системы.

После использования кросс-компилятора, от него можно избавиться. Использование каталога $LIN/tools необходимо для того, чтобы не засорять рабочие каталоги хост-системы.

Кросс-компилятор будет установлен в директорию /tools, создайте её:

mkdir -pv $LIN/tools

Создание иерархии файловой системы

Теперь создайте базовую иерархию файловой системы. Мы предлагаем вам использовать упрощённую структуру каталогов, когда директории /bin, /sbin, /usr/sbin являются ссылками на /usr/bin, а /lib - на /usr/lib.

Подобную структуру использует всё больше дистрибутивов: Fedora, Arch, Ubuntu и др. Если вы хотите создать упрощённую иерархию файловой системы, выполните следующие команды:

{{ include('../scripts/file-system.sh') }}

Если вы хотите использовать "классическую" иерархию, в которой /bin, /sbin, /usr/bin, /usr/sbin, /lib и /usr/lib - разные каталоги, выполните следующие команды:

{{ include('../scripts/classic-file-system.sh') }}

Такой подход позволит вынести /usr в отдельный раздел, либо загружать его по сети. Так же может повыситься безопасность и надёжность ОС. Однако потребуется выполнить множество дополнительных действий при установке пакетов.

???+ bug "Внимание!" Использование раздельной структуры директорий не рекомендуется, если вы планируете собирать systemd. В этой системе инициализации планируют убрать поддержку раздельной структуры (split usr). Кроме того, в некоторых ситуациях, по утверждениям разработчиков, systemd в некоторых ситуациях может работать некорректно в системе с такой структурой директорий.

???+ note "Обратите внимание" Если вы не знаете что выбрать - используйте вариант с упрощенной структурой - он лучше протестирован и требует меньше действий при сборке пакетов.

Подробнее об иерархии каталогов можно узнать в спецификации FHS.

Подключение к сети из среды chroot

Для работы сети в среде chroot требуется скопировать файлы hosts и resolv.conf с хост-системы:

cp -v /etc/{hosts,resolv.conf} $LIN/etc

Это обязательно, если вы собираетесь собирать пакет make-ca в части "Сборка системы".

Для multilib

Создайте директорию для 32-битных библиотек:

mkdir -pv $LIN/usr/lib32

А также символическую ссылку на неё:

ln -sv usr/lib32 $LIN/lib32

???+ note "Обратите внимание"

В случае если вы используете классическую иерархию каталогов, разделение `/lib32` и `/usr/lib32` не имеет смысла, так как 32-битные библиотеки не требуются для запуска системы.

???+ warning "Предупреждение"

Обратите внимание, что указанная символическая ссылка правильная. Если указать `$LIN/usr/lib32`, то при входе в среду `chroot`, ссылка будет некорректная.