software:linux_server:lfs:chapter02
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:linux_server:lfs:chapter02 [2024/06/23 23:48] – [Подготовка к сборке] vladpolskiy | software:linux_server:lfs:chapter02 [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ======2. Подготовка к сборке====== | ||
- | =====2. Подготовка хост-системы===== | ||
- | Содержание | ||
- | * 2.1 Введение | ||
- | * 2.2 Требования к хост-системе | ||
- | * 2.3 Этапы сборки системы LFS | ||
- | * 2.4 Создание нового раздела | ||
- | * 2.5 Создание файловой системы на разделе | ||
- | * 2.6 Установка переменной $LFS | ||
- | * 2.7 Монтирование нового раздела | ||
- | =====2.1. Введение===== | ||
- | В этой главе проверяются и при необходимости устанавливаются основные инструменты, | ||
- | =====2.2. Требования к хост-системе===== | ||
- | ====2.2.1. Аппаратное обеспечение==== | ||
- | Редакторы LFS рекомендуют, | ||
- | |||
- | ====2.2.2. Программное обеспечение==== | ||
- | Ваша хост-система должна иметь следующее программное обеспечение с указанными минимальными версиями. Это не должно быть проблемой для большинства современных дистрибутивов Linux. Также обратите внимание на то, что многие дистрибутивы помещают заголовочные файлы в отдельные пакеты, | ||
- | |||
- | Более ранние версии перечисленных ниже пакетов могут работать, | ||
- | |||
- | * Bash-3.2 (/bin/sh должен быть символической или жесткой ссылкой на bash) | ||
- | * Binutils-2.13.1 (Версия выше 2.42 не рекомендуется, | ||
- | * Bison-2.7 (/ | ||
- | * Coreutils-8.1 | ||
- | * Diffutils-2.8.1 | ||
- | * Findutils-4.2.31 | ||
- | * Gawk-4.0.1 (/ | ||
- | * GCC-5.2, включая компилятор C++, g++ (версии выше 13.2.0 не рекомендуются, | ||
- | * Grep-2.5.1a | ||
- | * Gzip-1.3.12 | ||
- | * Linux Kernel-4.19 | ||
- | |||
- | Причиной, | ||
- | |||
- | Если версия ядра хоста более ранняя, | ||
- | |||
- | Для сборки LFS необходимо, | ||
- | |||
- | * M4-1.4.10 | ||
- | * Make-4.0 | ||
- | * Patch-2.5.4 | ||
- | * Perl-5.8.8 | ||
- | * Python-3.4 | ||
- | * Sed-4.1.5 | ||
- | * Tar-1.22 | ||
- | * Texinfo-5.0 | ||
- | * Xz-5.0.0 | ||
- | <WRAP left round tip 100%> | ||
- | Важно | ||
- | Обратите внимание, | ||
- | </ | ||
- | |||
- | Чтобы узнать, | ||
- | |||
- | < | ||
- | cat > version-check.sh << " | ||
- | #!/bin/bash | ||
- | # A script to list version numbers of critical development tools | ||
- | |||
- | # If you have tools installed in other directories, | ||
- | # in ~lfs/ | ||
- | |||
- | LC_ALL=C | ||
- | PATH=/ | ||
- | |||
- | bail() { echo " | ||
- | grep --version > /dev/null 2> /dev/null || bail "grep does not work" | ||
- | sed '' | ||
- | sort / | ||
- | |||
- | ver_check() | ||
- | { | ||
- | if ! type -p $2 &>/ | ||
- | | ||
- | echo " | ||
- | fi | ||
- | | ||
- | if printf ' | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | fi | ||
- | } | ||
- | |||
- | ver_kernel() | ||
- | { | ||
- | | ||
- | if printf ' | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | fi | ||
- | } | ||
- | |||
- | # Coreutils first because --version-sort needs Coreutils >= 7.0 | ||
- | ver_check Coreutils | ||
- | ver_check Bash | ||
- | ver_check Binutils | ||
- | ver_check Bison bison 2.7 | ||
- | ver_check Diffutils | ||
- | ver_check Findutils | ||
- | ver_check Gawk | ||
- | ver_check GCC gcc 5.2 | ||
- | ver_check "GCC (C++)" | ||
- | ver_check Grep | ||
- | ver_check Gzip | ||
- | ver_check M4 | ||
- | ver_check Make | ||
- | ver_check Patch patch 2.5.4 | ||
- | ver_check Perl | ||
- | ver_check Python | ||
- | ver_check Sed sed 4.1.5 | ||
- | ver_check Tar tar 1.22 | ||
- | ver_check Texinfo | ||
- | ver_check Xz | ||
- | ver_kernel 4.19 | ||
- | |||
- | if mount | grep -q ' | ||
- | then echo " | ||
- | else echo " | ||
- | |||
- | alias_check() { | ||
- | if $1 --version 2>&1 | grep -qi $2 | ||
- | then printf " | ||
- | else printf " | ||
- | } | ||
- | echo " | ||
- | alias_check awk GNU | ||
- | alias_check yacc Bison | ||
- | alias_check sh Bash | ||
- | |||
- | echo " | ||
- | if printf "int main(){}" | ||
- | then echo " | ||
- | else echo " | ||
- | rm -f a.out | ||
- | |||
- | if [ " | ||
- | echo " | ||
- | else | ||
- | echo "OK: nproc reports $(nproc) logical cores are available" | ||
- | fi | ||
- | EOF | ||
- | |||
- | bash version-check.sh | ||
- | </ | ||
- | |||
- | =====2.3. Этапы сборки системы LFS===== | ||
- | LFS разработан для сборки за один сеанс. То есть инструкция предполагает, | ||
- | |||
- | ====2.3.1. Главы 1–4==== | ||
- | Эти главы выполняются на хост-системе. После перезагрузки обратите внимание на следующее: | ||
- | |||
- | При выполнении операций, | ||
- | |||
- | ====2.3.2. Главы 5–6==== | ||
- | Раздел /mnt/lfs должен быть смонтирован. | ||
- | |||
- | Эти две главы должны быть выполнены из-под пользователя lfs. Перед выполнением любой задачи в этих главах необходимо выполнить команду su - lfs. В противном случае вы рискуете установить пакеты на хост и сделать его непригодным для использования. | ||
- | |||
- | Выполнение процедур из Общие инструкции по компиляции имеет решающее значение. Если есть какие-либо сомнения по поводу установки пакета, | ||
- | |||
- | ====2.3.3. Главы 7–10==== | ||
- | Раздел /mnt/lfs должен быть смонтирован. | ||
- | |||
- | Некоторые операции, | ||
- | |||
- | При входе в chroot переменная среды LFS должна быть установлена для пользователя root. Переменная LFS не используется после входа в среду chroot. | ||
- | |||
- | Виртуальные файловые системы должны быть смонтированы. Это можно сделать до или после входа в chroot, переключившись на виртуальный терминал хоста и от имени пользователя root выполнив команды, | ||
- | |||
- | =====2.4. Создание нового раздела===== | ||
- | Как и большинство других операционных систем, | ||
- | |||
- | Минимальная система требует раздел размером около 10 гигабайт (ГБ). Этого достаточно для хранения всех архивов с исходным кодом и компиляции пакетов. Однако, | ||
- | |||
- | Поскольку для компиляции не всегда достаточно оперативной памяти (ОЗУ), рекомендуется использовать небольшой раздел диска в качестве раздела подкачки. Он используется ядром для хранения редко используемых данных и оставляет больше памяти для активных процессов. Раздел подкачки для системы LFS может совпадать с разделом, | ||
- | |||
- | Запустите программу создания разделов диска, такую как cfdisk или fdisk, с параметром командной строки, | ||
- | |||
- | <WRAP left round box 100%> | ||
- | Примечание | ||
- | Для опытных пользователей возможны и другие схемы разбиения. Система LFS может располагаться на программном RAID-массиве или логическом томе LVM. Однако для некоторых опций требуется initramfs, что является сложной темой. Эти методы разбиения не рекомендуются начинающим пользователям LFS. | ||
- | </ | ||
- | |||
- | Запомните обозначение созданного раздела (например, | ||
- | |||
- | ====2.4.1. Другие вопросы по созданию разделов==== | ||
- | Рекомендации по созданию разделов системы часто публикуются в списках рассылки LFS. Это очень субъективная тема. По умолчанию для большинства дистрибутивов используется весь диск, за исключением небольшого раздела подкачки. Это не оптимально для LFS по нескольким причинам. Это снижает гибкость, | ||
- | |||
- | ===2.4.1.1. Корневой раздел=== | ||
- | Корневой раздел LFS (не путать с каталогом /root) размером в 20 гигабайт является хорошим компромиссом для большинства систем. Он обеспечивает достаточно места для построения LFS и большей части BLFS, но достаточно мал, чтобы можно было легко создать несколько разделов для экспериментов. | ||
- | |||
- | ===2.4.1.2. Раздел подкачки=== | ||
- | Большинство дистрибутивов автоматически создают раздел подкачки. Обычно рекомендуемый размер раздела подкачки примерно в два раза превышает объем физической памяти, | ||
- | |||
- | Если вы хотите использовать режим гибернации (suspend-to-disk) Linux, которая записывает содержимое ОЗУ в раздел подкачки перед выключением машины. Установите размер раздела подкачки не меньше объема установленной оперативной памяти. | ||
- | |||
- | Использование файла подкачки - это не очень хорошо. Для механических жестких дисков вы можете определить, | ||
- | |||
- | ===2.4.1.3. Раздел GRUB=== | ||
- | Если загрузочный диск размечен с помощью таблицы разделов GUID (GPT), необходимо создать небольшой раздел, | ||
- | |||
- | [Примечание] Примечание | ||
- | Раздел Grub Bios должен находиться на диске, который BIOS использует для загрузки системы. Это не обязательно тот же диск, на котором расположен корневой раздел LFS. Диски в системе могут использовать разные типы таблиц разделов. Наличие раздела Grub Bios зависит только от типа таблицы разделов на загрузочном диске. | ||
- | |||
- | ===2.4.1.4. Разделы, | ||
- | Есть несколько других разделов, | ||
- | |||
- | * /boot – Настоятельно рекомендуется. Используйте этот раздел для хранения ядер и другой загрузочной информации. Чтобы свести к минимуму возможные проблемы с загрузкой дисков большого размера, | ||
- | * /boot/efi – Системный раздел EFI, используемый для загрузки системы с помощью UEFI. Подробнее читайте на странице BLFS. | ||
- | * /home – Настоятельно рекомендуется. Предоставьте общий доступ к своему домашнему каталогу и пользовательским настройкам нескольким дистрибутивам или сборкам LFS. Размер, | ||
- | * /usr – в LFS, /bin, /lib, и /sbin являются символическими ссылками на их аналоги в /usr. Таким образом /usr содержит все двоичные файлы, необходимые для работы системы. Для LFS отдельный раздел /usr не требуется. Если он вам необходим, | ||
- | * /opt – Этот каталог наиболее полезен для BLFS, в него можно установить некоторые большие пакеты, | ||
- | * /tmp – По умолчанию, | ||
- | * /usr/src – Этот раздел очень удобен для хранения исходников BLFS и совместного использования их в сборках LFS. Его также можно использовать в качестве места для сборки пакетов BLFS. Размера в 30-50 гигабайт вполне достаточно. | ||
- | |||
- | Любой отдельный раздел, | ||
- | |||
- | =====2.5. Создание файловой системы на разделе===== | ||
- | Раздел - это всего лишь диапазон секторов на диске, указанный в таблице разделов. Прежде чем операционная система сможет использовать раздел для хранения каких-либо файлов, | ||
- | |||
- | LFS может использовать любую файловую систему, | ||
- | |||
- | |ext2|подходит для небольших разделов, | ||
- | |ext3|это обновленная файловая система ext2, которая включает в себя журнал, | ||
- | |ext4|является последней версией файловых систем семейства ext. Она предоставляет несколько новых возможностей, | ||
- | |||
- | Другие файловые системы, | ||
- | |||
- | LFS предполагает, | ||
- | |||
- | < | ||
- | mkfs -v -t ext4 / | ||
- | </ | ||
- | |||
- | Замените <xxx> именем раздела LFS | ||
- | |||
- | Если вы используете существующий раздел подкачки, | ||
- | |||
- | < | ||
- | mkswap / | ||
- | </ | ||
- | Замените <yyy> именем раздела подкачки. |
software/linux_server/lfs/chapter02.1719175728.txt.gz · Последнее изменение: — vladpolskiy