LINUX.ORG.RU

как убрать построение initrd для ядра, которое давно уже снесено из базы dpkg?

 


0

2

dpkg -al | grep pve ничего не находит

а после update-initramfs -k all появляется: initrd.img-2.6.32-20-pve

где нужно удалить/подчистить, чтобы оно не появлялось больше?

дистр: Debian Wheezy, 2.6.32-20-pve - это от старых экспериментов с Proxmox


а dpkg -a | grep 2.6.32 что-нибудь находит?

outsider ★★ ()

В /boot образ этого ядра есть? В /lib/modules модули этого ядра есть?

kostik87 ★★★★★ ()
Ответ на: комментарий от nooby

ничего не находит

2.6.32-20-pve - это от старых экспериментов с Proxmox

Ты его вручную компилял и ставил мимо dpkg? Тогда будет удивительно, если он его найдет. Не знаю, как ты его удалял, но если ставил мимо apt/dpkg, то вычищай вручную.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Ты его вручную компилял и ставил мимо dpkg? Тогда будет удивительно, если он его найдет. Не знаю, как ты его удалял, но если ставил мимо apt/dpkg, то вычищай вручную

ставил из deb пакетов proxmox вручную ничего не компилял вроде как dkms упоминается при update-initramfs

nooby ()
Ответ на: комментарий от kostik87

В /boot образ этого ядра есть? В /lib/modules модули этого ядра есть?

в /boot ядра нет

ls /lib/modules/ 3.16.0-0.bpo.4-amd64

nooby ()
Ответ на: комментарий от nooby

https://forum.proxmox.com/threads/remove-old-proxmox-versions.18223/

14:55 root@workstation /lib/modules > update-grub

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-3.16.0-0.bpo.4-amd64

Found initrd image: /boot/initrd.img-3.16.0-0.bpo.4-amd64

No volume groups found

done

14:58 root@workstation /lib/modules > update-initramfs -u -k all

update-initramfs: Generating /boot/initrd.img-3.16.0-0.bpo.4-amd64

cryptsetup: WARNING: could not determine root device from /etc/fstab

cryptsetup: WARNING: failed to detect canonical device of /dev/sda5

update-initramfs: Generating /boot/initrd.img-2.6.32-20-pve

WARNING: missing /lib/modules/2.6.32-20-pve

Device driver support needs thus be built-in linux image!

depmod: ERROR: could not open directory /lib/modules/2.6.32-20-pve: No such file or directory

depmod: FATAL: could not search modules: No such file or directory

cryptsetup: WARNING: could not determine root device from /etc/fstab

cryptsetup: WARNING: failed to detect canonical device of /dev/sda5

depmod: WARNING: could not open /var/tmp/mkinitramfs_bcII4b/lib/modules/2.6.32-20-pve/modules.order: No such file or directory

depmod: WARNING: could not open /var/tmp/mkinitramfs_bcII4b/lib/modules/2.6.32-20-pve/modules.builtin: No such file or directory

nooby ()
Ответ на: комментарий от nooby

теперь хотябы в /boot не появляется его initrd

но все равно сообщения о нем есть:

15:01 root@workstation /boot > update-initramfs -u -k all update-initramfs: Generating /boot/initrd.img-3.16.0-0.bpo.4-amd64

cryptsetup: WARNING: could not determine root device from /etc/fstab

cryptsetup: WARNING: failed to detect canonical device of /dev/sda5

/boot/initrd.img-2.6.32-20-pve does not exist. Cannot update.

как его полностью то выкорчевовать

nooby ()
Ответ на: комментарий от nooby

update-initramfs -u -k all

Так ты же update запускаешь (ключ -u). update-initramfs, если видит у тебя уже сгенеренный initrd, его перегенерирует. Сотри просто initrd ненужный из /boot и запусти снова update-initramfs. Появился снова?

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от nooby

boot/initrd.img-2.6.32-20-pve does not exist. Cannot update.

как его полностью то выкорчевовать

А, уже. Тогда смотри в /etc/initramfs-tools/

Или же тупо грепай /etc

# grep -R "2\.6\.32" /etc/*

Неизвестно, что ядро со стороннего ресурса притащило в систему и куда какие файлы положило.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Тогда смотри в /etc/initramfs-tools/

нет упоминаний pve ядра

grep -R «2\.6\.32» /etc/*

15:20 root@workstation /utils/ssh/pfr/asv > grep -R «2\.6\.32» /etc/*

grep: warning: /etc/alternatives/libGL.so-master/libGL.so-

master: recursive directory loop /etc/init.d/udev: log_failure_msg «udev requires a kernel >= 2.6.32, not started»

grep: /etc/joe/editorrc: No such file or directory

grep: /etc/pam.d/.#common-auth: No such file or directory

grep: /etc/rc.d/rc6.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc4.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc4.d/S99SACSrv: No such file or directory

grep: /etc/rc.d/rc5.d/S99SACSrv: No such file or directory

grep: /etc/rc.d/rc5.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc1.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc0.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc2.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc2.d/S99SACSrv: No such file or directory

grep: /etc/rc.d/rc3.d/K99SACSrv: No such file or directory

grep: /etc/rc.d/rc3.d/S99SACSrv: No such file or directory

/etc/rcS.d/S02udev: log_failure_msg «udev requires a kernel >= 2.6.32, not started»

grep: /etc/udev/run_rules.d: No such file or directory /etc/udev/lib_rules.d/95-keyboard-force-release.rules:# release events, which can be configured via sysfs since 2.6.32.

тоже ничего интересного

если бы было все так просто я бы не спрашивал

nooby ()
Ответ на: комментарий от nooby

Сейчас гляну в пакет с ядром с proxmox.com, что он там притащил.

Zubok ★★★★★ ()
Ответ на: комментарий от nooby

А что в поддиректориях в /etc/kernel/? Есть что интересного?

Zubok ★★★★★ ()
Ответ на: комментарий от nooby

Да, и еще здесь глянь обязательно: /usr/share/initramfs-tools

Может, хук какой затесался.

P.S. Отрыл пакет pve-kernel-2.6.32-24-pve_2.6.32-111_amd64.deb, распаковал и не обнаружил ничего интересного.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

А что в поддиректориях в /etc/kernel/?

16:05 root@workstation /etc/kernel > ls -R * header_postinst.d: dkms postinst.d: dkms initramfs-tools pm-utils zz-update-grub postrm.d: initramfs-tools zz-update-grub

prerm.d: dkms

не нашел ничего подозрительного

nooby ()
Ответ на: комментарий от Zubok

Отрыл пакет pve-kernel-2.6.32-24-pve_2.6.32-111_amd64.deb, распаковал и не обнаружил ничего интересного.

наверно надо смотреть именно в версии: initrd.img-2.6.32-20-pve но у меня ее уже нет

nooby ()
Ответ на: комментарий от nooby

наверно надо смотреть именно в версии: initrd.img-2.6.32-20-pve но у меня ее уже нет

Да в нем тоже ничего интересного. Я так понял, что proxmox какой-то свои инсталлятор делает, который все ставит. Я не знаю, как ты ставил? Отдельно ядро? Попробуй снова его поставить и снести. Может, чего-то не удалилось?

http://download.proxmox.com/debian/dists/wheezy/pve/binary-amd64/pve-kernel-2...

Но я не вижу там ничего лишнего. Из служебных файлов ставится только файл postinst в /var/lib/dpkg/info. Остальное стандартное: /boot, /lib/modules, /usr/share/doc

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

после установки ядра ошибки при обновлении initrd исчезают

после сноса ядра опять появляются :)

nooby ()
Ответ на: комментарий от nooby

после сноса ядра опять появляются :)

Ну, то, что они появляются - это понятно. Он не удаляет initrd.img свой из /boot. Вместе с этим ядром идет только скрипт postinst (это выясняется после распаковки пакета c ядром с proxmox.com) и нет никаких postrm, prerm. поэтому этот пакет (pve-kernel) не прибирает за собой. initrd.img за него, конечно, надо самому удалять. Но это и выяснили. Он перестает его генерировать. А можно еще раз написать (или укажи на свои прежние ответы), какие ошибки происходят после удаления initrd.img этого ядра?

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 4)
Ответ на: комментарий от nooby

Так, глянул исходник update-initramfs. Он создает файлы с версиями в /var/lib/initramfs-tools , а так как нет удаления, то он там остается. Надо удалить просто.

Или же после удаления pve-kernel сделать update-initramfs с ключом "-d". По идее должен удалить все для этого ядра.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

после удаления pve-kernel сделать update-initramfs с ключом "-d"

огромное спасибо! помогло

nooby ()
Ответ на: комментарий от nooby

огромное спасибо! помогло

Реюмируем. Те, кто пакетировал pve-kernel, решили за собой не прибирать, как это делают все ядра, поставляемые в Debian. В составе пакета идет только скрипт postinst, который срабатывает после установки пакета с ядром. Там вызывается update-initramfs и update-grub.

#!/usr/bin/perl -w

use strict;

# Ignore all invocations except when called on to configure.
exit 0 unless $ARGV[0] =~ /configure/;

# do nothing if run from proxmox installer
exit 0 if -e "/proxmox_install_mode";

my $imagedir = "/boot";

my $version = "2.6.32-20-pve";

system("depmod $version");

system("update-initramfs -c -t -b $imagedir -k $version"); 

if (-x "/usr/sbin/update-grub") {
    system("/usr/sbin/update-grub");
}

exit 0

Скриптов prerm (перед удалением) и postrm (после удаления) нет в пакете. Все, что генерирует update-initramfs остается в системе. Это initrd.img и вот эти типа куки с контрольными суммами в /var/lib/initramfs-tools/ . поэтому надо это все вычищать вручную. Виноваты сопровождающие proxmox. :)

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Виноваты сопровождающие proxmox. :)

наверно поэтому они сделали его платным

чтобы хватало денег на создание скриптов :)

nooby ()
Ответ на: комментарий от Zubok

создает файлы с версиями в /var/lib/initramfs-tools , а так как нет удаления, то он там остается. Надо удалить просто.

Спасибо! Рецепт работает и с другими средами. У меня было стандартное ядро с патчами, поставленное по мутным инструкциям в интернет.

vl2017 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.