RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Глава 8. Обеспечение возможности загрузки LFS-системы

Содержание
Вступление
Создание файла /etc/fstab
Установка Linux-2.4.22
Обеспечение возможности загрузки LFS-системы

Вступление

В ходе этой главы Вы обеспечите возможность загрузки LFS. Эта глава объяснит, как создать новый файл fstab, собрать новое ядро для системы LFS и установить загрузчик Grub так, чтобы можно было выбрать загрузку LFS.

Создание файла /etc/fstab

Файл /etc/fstab используется рядом программ для определения того, какие разделы будут смонтированы по умолчанию, какие файловые системы должны быть проверены и т.д. Создайте новую таблицу файловых системм как здесь:

cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# filesystem  mount-point  fs-type  options         dump  fsck-order
/dev/xxx      /            fff      defaults        1     1
/dev/yyy      swap         swap     pri=1           0     0
proc          /proc        proc     defaults        0     0
devpts        /dev/pts     devpts   gid=4,mode=620  0     0
shm           /dev/shm     tmpfs    defaults        0     0
# End /etc/fstab
EOF

Само собой, замените xxx, yyy и fff на значения, соответствующие Вашей системе, к примеру, на hda2, hda5 и reiserfs. За более полной информацией обратитесь к man 5 fstab.

При использовании раздела reiserfs, 1 1 в конце строк надо будет заменить на 0 0, поскольку этой файловой системе не нужны дампы или проверки.

Точка монтирования /dev/shm для tmpfs включена для возможности использования POSIX shared memory. Ваше ядро должно быть собрано с поддержкой этой системы, более подробно об этом смотрите в следующем разделе. Имейте в виду, что небольшое количество аппаратного обеспечения использует POSIX shared memory. Поэтому надо знать, нужна ли Вам точка монтирования /dev/shm. Для получения более подробной информации смотрите файл Documentation/filesystems/tmpfs.txt в каталоге с исходными текстами ядра.

Также Вы можете добавлять другие строки в файл fstab. Вот пример строки, использующейся intend для поддержки USB-устройств:

usbfs       /proc/bus/usb  usbfs    defaults    0     0

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

Установка Linux-2.4.22

Ожидаемое время сборки:           При параметрах по умолчанию: 4.20 SBU
Ожидаемое место на диске:         При параметрах по умолчанию: 180 MB

Описание Linux

Ядро Linux является основой любой системы Linux. Это и есть Linux. Когда компьютер включается и загружает Linux, первой из всех программ для Linux загружается ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. Если короче, то ядро делает доступным оборудование системы для запускаемых в дальнейшем программ и позволяет им запускаться.

Устанавливаемые файлы: ядро и его заголовки.

Зависимости установки Linux

Linux зависит от Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl и Sed.

Установка ядра

Сборка ядра состоит из следующих этапов: конфигурирование, компиляция и установка. Если Вам не нравится способ установки, описанный в этой книге, то посмотрите файл README в каталоге с исходными текстами ядра на предмет поиска альтернативы.

Подготовьтесь к компиляции запуском следующей команды:

make mrproper

Это позволит убедиться, что дерево исходных текстов будет абсолютно чистым. Команда разработки ядра рекомендует запускать эту команду перед каждой компиляцией ядра. Вы не можете быть абсолютно уверены в отсутствии лишних файлов даже после распаковки архива.

Сконфигурируйте ядро с помощью меню:

make menuconfig

make oldconfig может быть более полезно в ряде случаев. Смотрите файл README для получения более полной информации.

Если Вы хотите, то можете пропустить конфигурирование ядра и просто скопировать файл .config из Вашей основной системы (если, конечно, она доступна) в распакованный каталог linux-2.4.22. Но я не рекомендую делать это. Намного лучше будет просмотреть все меню настроек ядра и создать его конфигурацию с нуля.

Для поддержки POSIX shared memory убедитесь, что параметр "Virtual memory file system support" выбран. Он расположен в меню "File systems" и обычно отмечен по умолчанию.

Проверьте зависимости и создайте информационный файл о них:

make CC=/opt/gcc-2.95.3/bin/gcc dep

Скомпилируйте образ ядра:

make CC=/opt/gcc-2.95.3/bin/gcc bzImage

Скомпилируйте драйверы, доступные в виде модулей:

make CC=/opt/gcc-2.95.3/bin/gcc modules

Если Ваш intend использует модули ядра, то Вам нужен файл /etc/modules.conf. Информацию относительно модулей и конфигурации ядра в целом можно найти в документации на ядро, которая находится в каталоге linux-2.4.22/Documentation. Man-страница по modules.conf и документ kernel HOWTO на http://www.tldp.org/HOWTO/Kernel-HOWTO.html также могут Вам пригодиться.

Установите модули:

make CC=/opt/gcc-2.95.3/bin/gcc modules_install

Создайте документацию по ядру:

make mandocs

Теперь установите ее:

cp -a Documentation/man /usr/share/man/man9

Компиляция ядра закончена, но ряд файлов есть только в каталоге с исходными текстами ядра. Для завершения установки надо скопировать два файла оттуда в каталог /boot.

Путь к файлам ядра зависит от типа используемой платформы. Используйте следующую команду для установки ядра:

cp arch/i386/boot/bzImage /boot/lfskernel

Файл System.map является файлом карты символов для ядра. Он содержит карту точек входа всех функций в API ядра. Используйте следующую команду для установки этого файла:

cp System.map /boot

Обеспечение возможности загрузки LFS системы

Вы полностью установили новую систему LFS. Теперь надо обеспечить возможность ее загрузки. Следующие инструкции применимы только для компьютеров с архитектурой IA-32, то есть к большинству PC. Информация о загрузке системы на других архитектурах может отличаться и использовать другие ресурсы.

Загрузка может быть комплексной задачей. Для начала, несколько предостережений. Вы очень сильно зависите от текущего загрузчика, и любая операционая система на жестком диске (дисках) может перестать загружаться. Убедитесь в том, что у Вас есть резервная загрузочная дискета или диск, иначе рискуете получить нерабочий компьютер (точнее, незагружающийся, что вообще-то лишь немногим лучше).

Вы скомпилировали и установили загрузчик Grub именно для этого шага. Процедура включает запись определенных файлов Grub на специальное место на жестком диске. Перед тем как Вы сделаете это, я крайне рекомендую создать загрузочную дискету с Grub. Вставьте пустую дискету и запустите следующие команды:

dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1

Выньте дискету и сохраните ее где-нибудь в надежном месте. Теперь запустите команду grub:

grub

Grub использует свою структуру имен для дисков и разделов в форме (hdn,m), где n является номером жесткого диска, а m номером раздела, которые начинаются с нуля. Таким образом, раздел hda1 будет (hd0,0), а hdb2 называется (hd1,1) для Grub. В отличие от Linux, Grub не считает CD-ROM приводы за жесткие диски, так что если у Вас есть CD на hdb, к примеру, а второй жесткий диск на hdc, то второй жесткий диск будет называться (hd1).

Используя приведенную информацию, определите правильное название для Вашего корневого раздела. В нижеприведенных примерах будем считать, что он находится на hda4.

Для начала, скажите Grub, где ему искать файлы stage{1,2}: Вы можете использовать клавишу Tab, как и в обычной оболочке:

root (hd0,3)

Предупреждение! Нижеприведенные команды перезапишут текущий загрузчик. Не запускайте эти команды, если Вам этого не надо. К примеру, Вы можете использовать загрузку в несколько этапов путем манипуляций с MBR (Master Boot Record). В этом случае стоит установить Grub в загрузочный сектор раздела LFS, в нашем случае это делается командой setup (hd0,3).

Теперь дайте команду на установку загрузчика в MBR (Master Boot Record) на hda:

setup (hd0)

Если все в порядке, то Grub сообщит о том, что нашел файлы в /boot/grub. В этом случае все сделано. Завершите работу:

quit

Теперь надо создать файл меню, для загрузчика Grub:

cat > /boot/grub/menu.lst << "EOF"
# Begin /boot/grub/menu.lst
# By default boot the first menu entry.
default 0

# Allow 30 seconds before booting the default.
timeout 30

# Use prettier colors.
color green/black light-green/black

# The first entry is for LFS.
title LFS 5.0
root (hd0,3)
kernel /boot/lfskernel root=/dev/hda4 ro
EOF

Вы можете захотеть добавить пункт для основной системы. Это делается примерно так:

cat >> /boot/grub/menu.lst << "EOF"
title Red Hat
root (hd0,2)
kernel /boot/kernel-2.4.20 root=/dev/hda3 ro
initrd /boot/initrd-2.4.20
EOF

Также, если у Вас есть Windows, следующая команда добавит пункт для ее загрузки:

cat >> /boot/grub/menu.lst << "EOF"
title Windows
rootnoverify (hd0,0)
chainloader +1
EOF

Если info grub не даст исчерпывающей информации, стоит посетить страничку Grub по адресу: http://www.gnu.org/software/grub.

Поиск

 

Найди своих коллег!