Приглашения оболочки Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ". "\s-\v\$ ". -значиние /v замените /u |
Обновление ядра
Установка нового ядра из rpm-пакета
Честно сказать, я довольно долгое время не решался браться за обновление ядра, поскольку первая из предпринятых мною попыток оказалась неудачной, причем до того неудачной, что мне пришлось полностью переустановить систему. Я тогда пытался установить ядро из исходных текстов. Но однажды я наткнулся в новостях на сообщение о том, что выпущен rpm -пакет с ядром 2.2.16-1. Поскольку мой опыт работы с rpm-пакетами был вполне положительным, я решился попытаться еще раз, и попытка эта оказалась вполне успешной!
Итак, вначале рассмотрим установку нового ядра, откомпилированного кем-то и представленного в виде rpm-пакета. Естественно, что первым делом надо скачать rpm-пакет с новым ядром. Если вы не ставите своей целью тестирование новшеств в ядре, то ищите rpm-пакет со стабильной версией, т. е. с четной второй цифрой в номере версии ядра (номер версии указывается в названии пакета). Я скачал ядро версии 2.2.16-1 с сервера http://rufus.w3.org/linux/RPM/.
Скачав ядро, запустите команду
[root]# rpm -i kernel-2.2.16-1.i386.rpm
По этой команде программа rpm установит в каталог /boot четыре файла: System.map-x.y.z-a, vmlinux-x.y.z-a, vmlinuz-x.y.z-a и module-info-x.y.z-a (где x.y.z-a - это номер версии нового ядра), создаст каталог /lib/modules/x.y.z-a, в котором разместит модули нового ядра, а также установит скрипт /sbin/installkernel.
Если у вас есть такое желание, вы можете предварительно (или потом) выполнить команду
[root]# rpm -qpl kernel-2.2.16-1.i386.rpm
которая выдаст полный список устанавливаемых из пакета файлов. Выполнение этих команд еще ничего не меняет в системе, только подготавливает файлы для запуска нового ядра.
Я после установки пакета с ядром решился сразу запустить скрипт /sbin/installkernel. Скрипт завис, его пришлось снимать комбинацией клавиш <Ctrl>+<C>. Тогда я стал разбираться с тем, что делает этот скрипт. Вот его полный текст:
#------------------- начало скрипта ------------------ #! /bin/sh # /sbin/installkernel - written by tyson@rwii.com # INSTALL_PATH=/boot KERNEL_VERSION=$1 BOOTIMAGE=$2 MAPFILE=$3 if [ -f $INSTALL_PATH/vmlinuz-$KERNEL_VERSION ]; then mv $INSTALL_PATH/vmlinuz-$KERNEL_VERSION \ $INSTALL_PATH/vmlinuz.old; fi if [ -f $INSTALL_PATH/System.map-$KERNEL_VERSION ]; then mv $INSTALL_PATH/System.map-$KERNEL_VERSION \ $INSTALL_PATH/System.map.old; fi cat $BOOTIMAGE > $INSTALL_PATH/vmlinuz-$KERNEL_VERSION cp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION ln -fs vmlinuz-$KERNEL_VERSION $INSTALL_PATH/vmlinuz ln -fs System.map-$KERNEL_VERSION $INSTALL_PATH/System.map if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi #------------------- конец скрипта ------------------
Как видите, скрипту требуются некоторые параметры, а я запускал его без аргументов. Однако, поскольку программа rpm уже разместила в /boot файлы vmlinux-2.2.16-1, vmlinuz-2.2.16-1 и System.map-2.2.16-1, а также создала ссылки с именами vmlinuz и System.map, я решил, что осталось только перезапустить lilo. Но прежде чем запускать lilo, я подредактировал файл /etc/lilo.conf, добавив туда секцию с указанием на ядро 2.2.16 (просто скопировал секцию с меткой linux, после чего подправил строки image и label ). Причем новую секцию поставил первой. Вот что у меня получилось:
#------------------- начало файла /etc/lilo.conf ----------- boot=/dev/hdb1 map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.16-1 label=linux-2.2.16 root=/dev/hdb1 read-only image=/boot/vmlinuz-2.2.11-4bc label=linux root=/dev/hdb1 read-only other=/dev/hda1 label=dos table=/dev/hda #------------------- конец файла /etc/lilo.conf ------------
Обратите внимание на то, что в данном случае Linux грузится со второго диска, поскольку на первом диске стоит Windows NT, и в качестве загрузчика используется NT Loader.
После этого я запустил команду /sbin/lilo, причем вначале с параметрами -t -v, чтобы посмотреть, что она будет делать, а только потом уже - без параметров, для реального исполнения. Когда команда отработала, я перезагрузился, однако на этапе загрузки система зависла, выведя строку LIL-. Пришлось воспользоваться загрузочной дискетой (заготовленной еще при установке системы) и выполнить команду
[root]# dd if=/dev/hdb1 of=/mnt/hda1/bootsect.lnx bs=512 count=1
Все правильно, команда lilo меняет загрузочный сектор, а я забыл "подсунуть" загрузчику его обновленный вариант.
Еще раз перезагружаюсь, и с радостью вижу сообщение о том, что загрузилось ядро 2.2.16-1.
Если у вас LILO является основным загрузчиком (установлен в MBR первого диска), то последнюю операцию (копирование загрузочного сектора в файл) выполнять, конечно, не нужно.