[sisyphus] Re: философия bootloader-utils

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Июн 23 14:03:47 MSD 2004


On Wed, Jun 23, 2004 at 02:18:21PM +0700, Denis G. Samsonenko wrote:
> Время от времени приходится ставить новые ядра (apt-get install), как
> правило из апдейтов. Так вот, картина, которую я наблюдаю такова
> (использую груб): в menu.lst появляется новая запись с параметрами
> загрузки нового ядра, а в /boot тем временем переопределяются симлинки
> дефолтного ядра на свеже установленное. Т.о. какой бы пункт меню в
> грубе не выбрал бы после перезагрузки, всё равно будет грузиться новое
> ядро. 

Вы правы.  Сейчас это уже исправлено: перед добавлением новой записи в
конфиги предпринимается попытка добавить ещё одну запись, которая
соответствует /boot/vmlinuz:

if OLD_KERNEL=`realpath "$BOOTDIR/vmlinuz" 2>/dev/null`; then
	OLD_VERSION="${OLD_KERNEL##*/vmlinuz-}"
fi

...

# modify lilo config
if [ -f "$LILO_CONF" -a -x "$SHARFILE/lilo" ]; then
	if [ -z "$REMOVE" -a -z "$MEMTEST" -a -n "$OLD_VERSION" ]; then
		"$PERL" "$SHARFILE/lilo" "$OLD_VERSION"
	fi
	"$PERL" "$SHARFILE/lilo" $MEMTEST $REMOVE "$VERSION"
fi

# modify grub config
if [ -f "$GRUB_MENU_LST" -a -f "$GRUB_DEVICE_MAP" -a -x "$SHARFILE/grub" ]; then
	if [ -z "$REMOVE" -a -z "$MEMTEST" -a -n "$OLD_VERSION" ]; then
		"$PERL" "$SHARFILE/grub" "$OLD_VERSION"
	fi
	"$PERL" "$SHARFILE/grub" $MEMTEST $REMOVE "$VERSION"
fi

> Описанное выше поведение мне кажется очень не логичным. Если уж
> переопределяюся симлинки, то зачем тогда создавать лишнюю запись в
> menu.lst, ведь она в этом случае совсем не нужна. А если уж создаётся
> новая запись в menu.lst, то тогда не надо переопределять симлинки,
> чтобы можно было грузиться как с прежним ядром, так и со свеже
> установленным. А уж когда прошла проверка перезагрузкой на новом ядре,
> то перенаправить симлинки на новое ядро и убрать лишнюю строку из
> menu.lst можно уже и руками.

Иными словами, если в конфиге была всего одна дефолтная запись, то после
обновления будет уже три записи: дефолтная -- симлинки смотрят на новое
ядро; запись для старого ядра и запись для нового ядра.

> А сейчас всё равно приходится в menu.lst и наводить там порядок. При
> этом у меня в последнее время как-то initrd никак не хочет создаваться
> при установке нового ядра, приходится генерить его вручную, да
> симлинки на него и Sistem.map перенаправлять.

vsu пишет здесь:
http://lists.altlinux.ru/pipermail/sisyphus/2003-November/031144.html
что 
	System.map обновляется при загрузке системы.
	Эта ссылка должна указывать на файл именно для текущего
	загруженного ядра -- System.map используется некоторыми
	программами (например, ps) для преобразования адресов функций
	ядра в имена.

Однако же:

$ rpm -qf /etc/rc.d/rc.sysinit --lastchange | egrep '^\*|System'
* Sat Feb 07 2004 Dmitry V. Levin <ldv на altlinux> 0.8.3-alt1
  + removed support for obsolete /boot/System.map;
$

Так что насчет System.map вопрос не ко мне.

> Всего доброго,
> Денис.
> 
> ---------------
> earthsea на ngs.ru
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20040623/0c83b036/attachment-0003.bin>


Подробная информация о списке рассылки Sisyphus