Linux From Scratch
Шрифт:
Необходимые телодвижения, которые вы должны совершить, это взять файл .config из дистрибутива исходников ядра и скопировать его в $LFS/usr/src/linux-2.4.19. В этом случае вам нет необходимости конфигурировать отдельные опции, и воспользоваться значениями по умолчанию. Если вы хотите сделать так, то сначала запустите команду make mrproper затем скопируйте файл .config снова, и запустите make menuconfig; далее запустите команду make oldconfig (может быть лучше в некоторых ситуациях. Смотрите README для более детальной информации по использованию make oldconfig).
Если
Необходимо запустить следующие команды для построения нового ядра:
make mrproper && make menuconfig && make dep && make bzImage && make modules && make modules_install && cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot
Примечание: путь arch/i386/boot/bzImage может различаться в зависимости от платформы.
Зависимости Linux
Последняя проверка на версии 2.4.17.
Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail
Делаем систему LFS загрузочной.
Для того, что бы иметь возможность запускать LFS систему мы должны обновить наш загрузчик. Мы предполагаем, что ваша системы использует Lilo (наиболее распространенный загрузчик на данный момент).
Мы не будем запускать программу lilo из-под chroot. Запуск lilo под chroot может вызвать фатальные последствия с уничтожением или повреждением MBR, и мы будем использовать загрузочную дискету для запуска любых LFS систем .
Первое, мы должны выйти из режима chroot и скопировать файл ядра lfskernel в основную систему :
logout
cp $LFS/boot/lfskernel /boot
Следующий шаг – добавление записи в файл /etc/lilo.conf дабы мы могли выбрать нашу LFS систему при загрузке компьютера:
cat >> /etc/lilo.conf << «EOF»
image=/boot/lfskernel
label=lfs
root=<partition>
read-only
EOF
Значение <partition> должно быть заменено значением раздела на котором размещено ядро LFS .
Так же, если вы используете reiserfs для основного раздела, что значение read-only надо заменить на read-write.
Теперь обновим загрузчик запустив следующее:
/sbin/lilo -v
Последний шаг – синхронизация конфигурации lilo на дискете и на LFS системе:
cp /etc/lilo.conf $LFS/etc && cp $(grep «image.*=» /etc/lilo.conf | cut -f 2 -d "=") $LFS/boot
Глава 9. Заключение.
Заключение
Все!
Теперь пришло время убрать из вышей системы все отладочные данные из бинарников вашей LFS системы. Если вы не программист и не планируете использовать отладчик при отладке программ, то вы будете обрадованы возможностью убрать несколько десятков мегабайт, при удалении отладчиков. Перед запуском этого процесса убедитесь, что все необходимое вам ПО полностью настроено, и вы более не захотите его перекомпилировать или отлаживать .
ВНИМАНИЕ: 98% людей не испытывают проблем с методом описанным ниже. Но так или иначе, сделайте архив вашей LFS системы перед запуском этой команды. Это действительно хороший момент, дабы сделать бэкап всей системы и конфигов. После компиляции возможны некоторые необычные моменты (в основном повреждение модулей ядра, dynamic & shared libraries). Могут быть и другие проблемы вызванные данной командой.
Как уже говорилось, опция –strip-debug используется для удаления отладочной информации которая нам никогда не понадобится. Это не вырезает всю ее из файлов. Так же можно попробовать применить опцию –strip-all на обычных программах, не использующих библиотек (не используйте это на libraries – они могут быть уничтожены) но это не безопасно, да и место которое вы выиграете не стоит того. Но если вам важен каждый байт на диске, то используйте это на собственный страх и риск. Перечитайте 7 раз страницу man по strip (и его опциям которые вы хотите использовать). Главная идея не запускать strip на libraries (кроме как –strip-debug) и все будет нормально.
find $LFS/{,usr/,usr/local/}{bin,sbin,lib} -type f \ ааа-exec /usr/bin/strip –strip-debug '{}' ';'
Хорошая мысль создать файл $LFS/etc/lfs. Имея этот файл вы можете легко определить , какую версию LFS вы используете. Занесите в него текущий номер этого мануала, и вы всегда будете знать, по какой версии документа искать помощь в случае чего... ;-) Создайте файл используя следующую команду :
echo 4.0 > $LFS/etc/lfs
Вписываем себя в пользователи LFS
Хотите, что бы вас посчитали как пользователя LFS – загляните на страницу счетчикаи зарегистрируйтесь как пользователь LFS. Введите свое имя и версию вашей системы , которую вы создали и возможно будете пользоваться.
Теперь давайте перезагрузимся в нашу систему...
Перезагрузка системы
Теперь все по установлено, загрузочные скрипты созданы, и настало время перезагрузить компьютер Перед этим надо размонтировать $LFS/proc и сам $LFS раздел запустив следующее:
umount $LFS/proc && umount $LFS
Если вы создали систему со множеством разделов, вы должны размонтировать их тоже перед тем, как размонтируете раздел $LFS :
umount $LFS/proc && umount $LFS/usr && umount $LFS/home && umount $LFS