![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
В ходе этой главы Вы обеспечите возможность загрузки LFS. Эта глава
объяснит, как создать новый файл fstab, собрать новое ядро для системы LFS и
установить загрузчик Grub так, чтобы можно было выбрать загрузку LFS. Файл /etc/fstab используется рядом программ для определения того,
какие разделы будут смонтированы по умолчанию, какие файловые системы должны
быть проверены и т.д. Создайте новую таблицу файловых системм как здесь: Само собой, замените 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-устройств: Эти параметры, конечно, будут работать только в случае, если Вы собрали
ядро с поддержкой соответствующих систем. Ядро Linux является основой любой системы Linux. Это и есть Linux. Когда
компьютер включается и загружает Linux, первой из всех программ для Linux
загружается ядро. Ядро инициализирует аппаратные компоненты системы:
последовательные и параллельные порты, звуковые и сетевые карты, контроллеры
IDE и SCSI и многое другое. Если короче, то ядро делает доступным
оборудование системы для запускаемых в дальнейшем программ и
позволяет им запускаться. Устанавливаемые файлы: ядро и его заголовки. Linux зависит от Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep,
Gzip, Make, Modutils, Perl и Sed. Сборка ядра состоит из следующих этапов: конфигурирование, компиляция и
установка. Если Вам не нравится способ установки, описанный в этой книге, то
посмотрите файл README в каталоге с исходными текстами ядра на
предмет поиска альтернативы. Подготовьтесь к компиляции запуском следующей команды: Это позволит убедиться, что дерево исходных текстов будет абсолютно
чистым. Команда разработки ядра рекомендует запускать эту команду перед
каждой компиляцией ядра. Вы не можете быть абсолютно уверены в
отсутствии лишних файлов даже после распаковки архива. Сконфигурируйте ядро с помощью меню: make oldconfig может быть более полезно в ряде случаев.
Смотрите файл README для получения более полной информации. Если Вы хотите, то можете пропустить конфигурирование ядра и просто
скопировать файл .config из Вашей основной системы (если, конечно,
она доступна) в распакованный каталог linux-2.4.22. Но я не
рекомендую делать это. Намного лучше будет просмотреть все меню настроек ядра
и создать его конфигурацию с нуля. Для поддержки POSIX shared memory убедитесь, что параметр "Virtual memory
file system support" выбран. Он расположен в меню "File systems" и обычно
отмечен по умолчанию. Проверьте зависимости и создайте информационный файл о них: Скомпилируйте образ ядра: Скомпилируйте драйверы, доступные в виде модулей: Если Ваш intend использует модули ядра, то Вам нужен файл
/etc/modules.conf. Информацию относительно модулей и конфигурации
ядра в целом можно найти в документации на ядро, которая находится в каталоге
linux-2.4.22/Documentation. Man-страница по modules.conf и документ
kernel HOWTO на
http://www.tldp.org/HOWTO/Kernel-HOWTO.html также могут Вам пригодиться.
Установите модули: Создайте документацию по ядру: Теперь установите ее: Компиляция ядра закончена, но ряд файлов есть только в каталоге с
исходными текстами ядра. Для завершения установки надо скопировать два файла
оттуда в каталог /boot. Путь к файлам ядра зависит от типа используемой платформы. Используйте
следующую команду для установки ядра:
Файл System.map является файлом карты символов для ядра. Он
содержит карту точек входа всех функций в API ядра. Используйте следующую
команду для установки этого файла: Вы полностью установили новую систему LFS. Теперь надо обеспечить
возможность ее загрузки. Следующие инструкции применимы только для
компьютеров с архитектурой IA-32, то есть к большинству PC. Информация о
загрузке системы на других архитектурах может отличаться и
использовать другие ресурсы. Загрузка может быть комплексной задачей. Для начала, несколько
предостережений. Вы очень сильно зависите от текущего загрузчика, и любая
операционая система на жестком диске (дисках) может перестать загружаться.
Убедитесь в том, что у Вас есть резервная загрузочная дискета или диск, иначе
рискуете получить нерабочий компьютер (точнее, незагружающийся, что вообще-то
лишь немногим лучше). Вы скомпилировали и установили загрузчик Grub именно для этого шага.
Процедура включает запись определенных файлов Grub на специальное место на
жестком диске. Перед тем как Вы сделаете это, я крайне рекомендую создать
загрузочную дискету с 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, как и в обычной оболочке: Предупреждение! Нижеприведенные команды перезапишут текущий
загрузчик. Не запускайте эти команды, если Вам этого не надо. К примеру, Вы
можете использовать загрузку в несколько этапов путем манипуляций с MBR
(Master Boot Record). В этом случае стоит установить Grub в загрузочный
сектор раздела LFS, в нашем случае это делается командой
setup (hd0,3). Теперь дайте команду на установку загрузчика в MBR (Master Boot
Record) на hda: Если все в порядке, то Grub сообщит о том, что нашел файлы в
/boot/grub. В этом случае все сделано. Завершите работу: Теперь надо создать файл меню, для загрузчика Grub: Вы можете захотеть добавить пункт для основной системы.
Это делается примерно так: Также, если у Вас есть Windows, следующая команда добавит пункт
для ее загрузки: Если info grub не даст исчерпывающей информации, стоит посетить
страничку Grub по адресу:
http://www.gnu.org/software/grub.
Глава 8. Обеспечение возможности загрузки
LFS-системы
Вступление
Создание файла /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
usbfs /proc/bus/usb usbfs defaults 0 0
Установка Linux-2.4.22
Ожидаемое время сборки: При параметрах по умолчанию: 4.20 SBU
Ожидаемое место на диске: При параметрах по умолчанию: 180 MB
Описание Linux
Зависимости установки Linux
Установка ядра
make mrproper
make menuconfig
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
make CC=/opt/gcc-2.95.3/bin/gcc modules_install
make mandocs
cp -a Documentation/man /usr/share/man/man9
cp arch/i386/boot/bzImage /boot/lfskernel
cp System.map /boot
Обеспечение возможности загрузки LFS системы
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
root (hd0,3)
setup (hd0)
quit
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
cat >> /boot/grub/menu.lst << "EOF"
title Windows
rootnoverify (hd0,0)
chainloader +1
EOF
Найди своих коллег! |