[sisyphus] Re: bootloader-utils and default records
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Июн 24 06:50:45 MSD 2004
On Wed, Jun 23, 2004 at 10:14:15PM -0400, Ivan Adzhubey wrote:
> Работает, за исключением непереноса строки "vga=788", что раньше
> работало всегда. Судя по сообщениям в треде, и другие параметры
> предыдущего ядра теперь не переносятся. Аргументы про невозможность
> определить предыдущее ядро мне не кажутся убедительными. В стандартной
Да, параметры из каких-либо других ядер не переносятся, так и было
задумано начиная с 0.2-alt1.
> ситуации - это очевидно ядро которое было указано как дефолтное в том же
> конфигурационном файле. А уж в нестандартных ситуациях типа загрузки с
> левого носителя в режиме rescue совершенно понятна необходимость вручную
> проверить и отредактировать этот файл, да и initrd пересобрать руками, и
> желательно mkinitrd запускать с -v...
Сейчас запускается
"$MKINITRD" mkinitrd -f --ifneeded "$BOOTDIR/initrd-$VERSION.img" "$VERSION"
> Удалялись строки vga=788, initrd (hd0,4)/initrd..., последняя - из
> пункта старого ядра! Видимо где-то s/// промахивается. Воспроизвести не
> могу.
Этого не может быть, и даже ничего похожего. :(
s/// вообще нигде никакого нет.
Старые записи принципиально остаются как есть: либо добавляется вся
запись целиком, либо удаляется вся запись целиком.
С добавлением вообще никаких подозрений нет:
sub add_kernel {
local $_ = shift;
/\/vmlinuz-\Q$version\E\b/
or $_ .= <<EOF;
title $version
kernel $grub_part$boot/vmlinuz-$version root=$root
initrd $grub_part$boot/initrd-$version.img
EOF
return $_;
}
С удалением то же самое:
sub remove_kernel {
local $_ = shift;
my @sections = split /^(?=title\s)/m;
@sections = grep { !/\/vmlinuz-\Q$version\E\b/ } @sections;
return join "" => @sections;
}
Единственное, что здесь может нехорошее случиться, это если одна версия
ядра является подстрокой другой версии ядра, причем раздел по границе
слова не помогает; т.е. типа
2.4.22-alt1 и
2.4.22-alt1.1
Тогда при добавлении 2.4.22-alt1 новая запись добавлена не будет (но
зачем устанавливать alt1 после alt1.1?); а при удалении 2.4.22-alt1
будет удалено сразу две записи. Это уже исправил.
> Молча не создавалось initrd для нового ядра, при этом в соотв. пункт
> конфигурации несуществующий initrd прописывался. Повторялось два раза.
> Как воспроизвести - не знаю. Оба раза это было с lilo в качестве
> загрузчика.
В конфигурацию (не)существующий initrd прописывается просто по шаблону,
как в коде выше. Конечно, шаблон не проверяет, существует ли этот
initrd. Достаточно того, что был вызван mkinitrd.
> Новое ядро прописывалось только в одном из двух конф. файлов, причем - в
> неиспользуемом (текущий загрузчик - grub, ядро добавлялось только в
> lilo.conf).
В штатной ситуации этого не может быть. :(
Скрипты модификации конфигов grub и lilo вызываются последовательно.
> Чисто филосовски - скрипты уровня base system должны отлаживаться и
> обвешиваться сотнями прверок всех мыслимых и немыслимых ситуаций (а не
> по принципу - у меня работает) и выводить разумную диагностику
> пользователю в случае даже слабых подозрений на нештатную отработку.
У меня действительно работает, что же тут сделаешь... <...>
> --
> Иван
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20040624/3c51032d/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus