Загрузка ядра linux вручную

Linux.yaroslavl.ru

Ядро размещается в arch/i386/boot/bzImage (или в zImage если вы использовали make zImage). Стандартным каталогом для установки ядра является /boot. Вам также нужно скопировать файл System.map чтобы обеспечить правильную работу некоторых программ (например top). Довольно полезно называть эти файлы по версии ядра. Предположим, что версия вашего ядра 2.4.10-foo. Вам следует сделать следующее:

$ cp arch/i386/boot/bzImage /boot/vmlinux-2.4.10-foo $ cp System.map /boot/System.map-2.4.10-foo

Теперь вам необходимо оповестить загрузчик системы о появлении нового ядра. Существует два варианта: вы используете grub или LILO. Примечание: Mandrake Linux по умолчанию сконфигурирован для использования LILO.

Перенастройка Grub

Очевидно, что важно сохранить возможность загрузки вашего старого ядра. Самый простой способ изменить настройки grub — это использовать drakboot (смотрите главу Изменение Загрузочной Конфигурации в книге Стартовое Руководство Пользователя). Альтернативой может служить изменение файла следующим образом.

Вам нужно изменить файл /boot/grub/menu.lst. Примерно так обычно выглядит файл menu.lst после инсталляции дистрибутива Mandrake Linux и до того, как вы что-то в нем поменяли:

timeout 5 color black/cyan yellow/cyan i18n (hd0,4)/boot/grub/messages keytable (hd0,4)/boot/fr-latin1.klt default 0 title linux kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 title failsafe kernel (hd0,4)/boot/vmlinuz root=/dev/hda5 failsafe title Windows root (hd0,0) makeactive chainloader +1 title floppy root (fd0) chainloader +1

Этот файл содержит две части: заголовок с общими настройками (первые пять строк), и образы, которые содержат информацию о различных ядрах GNU/Linux или о других операционных системах (OS) timeout 5 определяет задержку (в секундах) перед тем, как grub начнет автоматическую загрузку образа по умолчанию (он устанавливается строкой default 0 в общих настройках, то есть будет загружен первый образ в данном списке). Директива keytable определяет где найти раскладку (keymap) для вашей клавиатуры. В данном примере, это французская раскладка. Для установки русской раскладки нужно поставить какую-либо из русских, например keytable (hd0,4)/boot/ru4.klt. В случае, когда неопределена ни одна из раскладок, будет использована plain QWERTY. Надпись hd(x,y) обозначает ссылку на номер диска x (как в BIOS) и номер раздела на нем y.

Затем идут различные образы. В приведенном примере определено четыре образа: linux, failsafe, windows, и floppy.

  • Секция linux рассказывает grub про ядро, которое должно быть загружено (kernel hd(0,4)/boot/vmlinuz), тут же присутствуют опции, указывающие где найти ядро. В данном случае, root=/dev/hda5 корень файловой системы расположен на /dev/hda5. Фактически /dev/hda5 для grub является эквивалентом hd(0,4), но ничего не мешает ядру находится на разделе, отличном от корневого;
  • Секция failsafe похожа на предыдущую, за исключением того, что ядру передается параметр (failsafe) который заставляет ядро грузиться в “однопользовательском” режиме (single or rescue mode);
  • секция windows просто говорит grub загрузиться с первого сектора первого раздела, где содержится загрузочный сектор Windows;
  • секция floppy просто грузит систему с дискеты, находящейся в первом дисководе (конечно, если она там есть). Это может быть загрузочный диск Windows или ядро GNU/Linux, расположенное на дискете;
Читайте также:  Linux изменить пароль пользователя root

Замечание

В зависимости от уровня безопасности, который вы используете в вашей системе, в этом файле могут отсутствовать некоторые записи, описанные здесь.

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

title foo kernel (hd0,4)/boot/vmlinux-2.4.10-foo root=/dev/hda5

Не забудьте адаптировать этот файл к вашей конфигурации системы! В данном примере корневая файловая система GNU/Linux находится тут: /dev/hda5, Но в вашей системе это может быть совсем другое место.

Вот и все. В отличии от программы LILO (которая будет рассмотрена ниже), больше ничего делать не надо. Просто перезагрузите свой компьютер и новая запись, которую вы только что определили, уже появится. Теперь выберите новое ядро из меню и новое ядро должно загрузится.

Если вы скомпилировали ядро с поддержкой видеобуфера (framebuffer), вы вероятно захотите его использовать: в этом случае вам нужно добавить параметр ядру, указывающий разрешение в котором должна стартовать система. Список режимов можно вычитать в файле /usr/src/linux/Documentation/fb/vesafb.txt (это верно только если включен VESA framebuffer! Иначе обратитесь к соответствующему файлу). Для режима 800×600 32бита [34] , соответствует режим с номером 0x315, поэтому вам нужно добавить к параметрам ядра следующую директиву:

и ваша запись преобразится в:

title foo kernel (hd0,4)/boot/vmlinux-2.4.10-foo root=/dev/hda5 vga=0x315

Для получения более подробной информации обратитесь к справочной системе относительно grub (info grub).

Перенастройка LILO

Наиболее простой способ для перенастройки LILO это использование drakboot (смотрите главу Изменение Загрузочной Конфигурации в книге Стартовое Руководство Пользователя). Другой способ — вы можете отредактировать файл конфигурации вручную следующим образом.

Читайте также:  Kali linux on android root

Конфигурационным файлом для LILO является /etc/lilo.conf. Мы приводим типичный файл конфигурации lilo.conf:

boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux keytable=/boot/fr-latin1.klt lba32 prompt timeout=50 message=/boot/message image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only other=/dev/hda2 label=dos table=/dev/hda

Файл lilo.conf состоит из основного раздела и дополнительных разделов для каждой из операционных систем. В приведенном выше примере основной раздел содержит следующие директивы:

boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux keytable=/boot/fr-latin1.klt lba32 prompt timeout=50 message=/boot/message

Директива boot= сообщает LILO где размещается загрузочный сектор; в данном случае в MBR (Master Boot Record) на первом жестком диске IDE. Если вы хотите чтобы LILO грузилось с дискеты, просто замените /dev/hda на /dev/fd0. Директива prompt заставляет LILO показывать меню при старте. Из установки времени задержки (пауза) следует, что LILO запустит образ по умолчанию через 5 секунд (timeout=50). Если вы уберете директиву timeout, то LILO будет ждать до бесконечности пока вы что нибудь не выберете.

image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only

Секция для загрузки ядра GNU/Linux всегда начинается с директивы image=, в которой указывается полный, правильный путь к ядру. Любой раздел содержит директиву с уникальным идентификатором label=, в данном случае это linux. Директива root= указывает LILO на каком разделе находится корневая файловая система для этого ядра. Разумеется, что в вашей конфигурации корневая файловая система может находится в другом месте. Директива read-only объясняет LILO, что в процессе загрузки корневую файловую систему нужно примонтировать в режиме только для чтения (read-only): если эта директива отсутствует — вы получите предупреждение.

Рассмотрим раздел Windows:

other=/dev/hda2 label=dos table=/dev/hda

Если раздел начинается с директивы other=, то фактически LILO может запускать любую операционную систему, отличную от GNU/Linux: аргументом этой директивы служит расположение загрузчика этой системы, в данном случае это загрузчик Windows. Для того чтобы найти начало раздела, содержащего загружаемую операционную систему GNU/Linux, также нужно знать где находится таблица разделов диска. Это указывается с помощью директивы table=. Как и в случае с разделом linux, директива label= содержит уникальный идентификатор раздела.

Теперь пришло время добавить раздел для вашего нового ядра. Вы можете разместить этот раздел где угодно, ниже основного раздела, но только не внутри другого раздела. Вообщем, для добавления в загрузчик нового ядра нужно вписать в файл /etc/lilo.conf что-то наподобие этого:

image=/boot/vmlinux-2.4.10-foo label=foo root=/dev/hda1 read-only

Не забудьте адаптировать этот пример для вашей конфигурации системы! Мы преднамеренно привели пример для ситуации отличной от той, что была рассмотрена в примере по настройке grub

Читайте также:  Linux terminal current path

Если вы скомпилировали ваше ядро с поддержкой видеобуфера (framebuffer), то нужно указать опции ядру аналогично, как это было показано для grub. Единственным отличием является то, что каждая опция ядра занимает отдельную строку:

Приводим вид файла /etc/lilo.conf после внесения изменений, с некоторыми комментариями для красоты (все строки, начинающиеся с #), будут игнорированы программой LILO):

# # Общий раздел # boot=/dev/hda map=/boot/map install=/boot/boot.b # во время запуска, мы хотим normal VGA. Framebuffer переключит разрешение # в случае если будет использовано это: vga=normal # сообщение, которое будет показано при старте системы. message=/boot/message # Что будет грузиться по умолчанию. # Внесем сюда наше свежеоткомпилированное ядро: default=foo # показать вопрос о том, что грузить. prompt # . ждать пять секунд timeout=50 # # Ваше новое ядро: будет грузится по умолчанию # image=/boot/vmlinux-2.4.10-foo label=foo root=/dev/hda1 read-only #если есть VESA framebuffer - используйте: vga=0x315 # # "родное" ядро # image=/boot/vmlinuz-2.4.8-17mdk label=linux root=/dev/hda1 read-only # # Windows . # other=/dev/hda2 label=dos table=/dev/hda

Примерно так должен выглядеть файл /etc/lilo.conf. но не забудьте адаптировать его к конфигурации своей системы.

Теперь, когда файл был изменен соответствующим образом, вы должны внести изменения в загрузочный сектор (этого не надо было делать в случае с grub):

$ lilo Added foo * Added linux Added dos $

Таким образом, вы можете скомпилировать сколько угодно ядер, и добавлять столько вариантов загрузки, сколько необходимо. Все, что теперь нужно — это перезагрузить машину и опробовать новое ядро.

[34] 8 бит поддерживает 2 8 цветов, то есть. 256; 16 бит поддерживает 2 16 цветов, то есть. 64k, или. 65536; 24 бита как и 32 кодируется при помощи 24 бит, то есть 2 24 возможных цветов, другими словами 16M, или немного больше чем 16 миллионов цветов.

linux samba mail postfix FreeBSD Unix doc linux howto ALTLinux PHP faq bind sendmail apache iptables firewall kernel rpm apt-get Slackware openssh Cisco debian vmware GNU oracle sun awk /etc/ passwd linux установка учебник книга скачать

Источник

Оцените статью
Adblock
detector