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 $_ .= < @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 должны отлаживаться и > обвешиваться сотнями прверок всех мыслимых и немыслимых ситуаций (а не > по принципу - у меня работает) и выводить разумную диагностику > пользователю в случае даже слабых подозрений на нештатную отработку. У меня действительно работает, что же тут сделаешь... <...> > -- > Иван