-
Grub, pygrub, xen i aktualizacja menu.lst
Nie wiem jak Wy, ale ja miałem problem na swoich wirtualkach opartych o XEN z aktualizacją pliku /boot/grub/menu.lst. Po każdorazowej aktualizacji kernela, musiałem ręcznie go dopisywać do konfigu. Niby nie robi się tego codziennie, ale była to pewna niedogodność. PyGrub jest bardzo wygodnym rozwiązaniem pod warunkiem, że działa prawidłowo w różnych konfiguracjach. Poniżej użyłem polecenia, które wyświetla jakie skrypty wykonują się tuż po instalacji danego pakietu (w tym przypadku kernela).
rpm -q --scripts kernel | less
postinstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –package kernel –install 3.10.0-327.36.3.el7.x86_64 || exit $?
preuninstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –rminitrd –rmmoddep –remove 3.10.0-327.36.3.el7.x86_64 || exit $?
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –remove-kernel 3.10.0-327.36.3.el7.x86_64 || exit $?
fi
posttrans scriptlet (using /bin/sh):
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –add-kernel 3.10.0-327.36.3.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg –package kernel –mkinitrd –dracut –depmod –update 3.10.0-327.36.3.el7.x86_64 || exit $?
/usr/sbin/new-kernel-pkg –package kernel –rpmposttrans 3.10.0-327.36.3.el7.x86_64 || exit $?
postinstall scriptlet (using /bin/sh):/usr/sbin/new-kernel-pkg –package kernel –install 3.10.0-514.6.2.el7.x86_64 || exit $?
preuninstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –rminitrd –rmmoddep –remove 3.10.0-514.6.2.el7.x86_64 || exit $?
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –remove-kernel 3.10.0-514.6.2.el7.x86_64 || exit $?
fi
posttrans scriptlet (using /bin/sh):
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –add-kernel 3.10.0-514.6.2.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg –package kernel –mkinitrd –dracut –depmod –update 3.10.0-514.6.2.el7.x86_64 || exit $?
/usr/sbin/new-kernel-pkg –package kernel –rpmposttrans 3.10.0-514.6.2.el7.x86_64 || exit $?
postinstall scriptlet (using /bin/sh):/usr/sbin/new-kernel-pkg –package kernel –install 3.10.0-514.6.1.el7.x86_64 || exit $?
preuninstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –rminitrd –rmmoddep –remove 3.10.0-514.6.1.el7.x86_64 || exit $?
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –remove-kernel 3.10.0-514.6.1.el7.x86_64 || exit $?
fi
posttrans scriptlet (using /bin/sh):
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –add-kernel 3.10.0-514.6.1.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg –package kernel –mkinitrd –dracut –depmod –update 3.10.0-514.6.1.el7.x86_64 || exit $?
/usr/sbin/new-kernel-pkg –package kernel –rpmposttrans 3.10.0-514.6.1.el7.x86_64 || exit $?
postinstall scriptlet (using /bin/sh):/usr/sbin/new-kernel-pkg –package kernel –install 3.10.0-514.2.2.el7.x86_64 || exit $?
preuninstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –rminitrd –rmmoddep –remove 3.10.0-514.2.2.el7.x86_64 || exit $?
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –remove-kernel 3.10.0-514.2.2.el7.x86_64 || exit $?
fi
posttrans scriptlet (using /bin/sh):
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –add-kernel 3.10.0-514.2.2.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg –package kernel –mkinitrd –dracut –depmod –update 3.10.0-514.2.2.el7.x86_64 || exit $?
/usr/sbin/new-kernel-pkg –package kernel –rpmposttrans 3.10.0-514.2.2.el7.x86_64 || exit $?
postinstall scriptlet (using /bin/sh):/usr/sbin/new-kernel-pkg –package kernel –install 3.10.0-514.10.2.el7.x86_64 || exit $?
preuninstall scriptlet (using /bin/sh):
/usr/sbin/new-kernel-pkg –rminitrd –rmmoddep –remove 3.10.0-514.10.2.el7.x86_64 || exit $?
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –remove-kernel 3.10.0-514.10.2.el7.x86_64 || exit $?
fi
posttrans scriptlet (using /bin/sh):
if [ -x /usr/sbin/weak-modules ]
then
/usr/sbin/weak-modules –add-kernel 3.10.0-514.10.2.el7.x86_64 || exit $?
fi
/usr/sbin/new-kernel-pkg –package kernel –mkinitrd –dracut –depmod –update 3.10.0-514.10.2.el7.x86_64 || exit $?
/usr/sbin/new-kernel-pkg –package kernel –rpmposttrans 3.10.0-514.10.2.el7.x86_64 || exit $?Z powyższego „ekranu” wyjściowego wyłuskałem polecenie „/usr/sbin/new-kernel-pkg -v –package kernel –install 3.10.0-123.4.2.el7.x86_64”
Poniżej wynik wydania tego polecenia:
initrdfile is /boot/initrd-3.10.0-123.4.2.el7.x86_64.img
making it the default based on config
/etc/grub.conf does not exist, not running grubby for grub 0.97
/etc/grub2.cfg does not exist, not running grubby for grub 2
/etc/grub2-efi.cfg does not exist, not running grubby for grub 2 with UEFI
/etc/lilo.conf does not exist, not running grubby
/etc/extlinux.conf does not exist, not running grubby for extlinuxWynika z niego, że brakuje nam pliku „/etc/grub.conf”, aby temu zaradzić wydajemy polecenie:
ln -s /boot/grub/menu.lst /etc/grub.conf
Sprawdzamy poleceniem „ls /etc/” i powinniśmy zobaczyć coś zblizonego do tego:
lrwxrwxrwx 1 root root 19 03-23 17:10 grub.conf -> /boot/grub/menu.lstTeraz wydajemy poprzednią komendę i widzimy:
initrdfile is /boot/initrd-3.10.0-123.4.2.el7.x86_64.img
making it the default based on config
adding 3.10.0-123.4.2.el7.x86_64 to /boot/grub/menu.lst
- Making a normal entry.
/etc/grub2.cfg does not exist, not running grubby for grub 2
/etc/grub2-efi.cfg does not exist, not running grubby for grub 2 with UEFI
/etc/lilo.conf does not exist, not running grubby
/etc/extlinux.conf does not exist, not running grubby for extlinux
Wszystko się udało. To by było na tyle 🙂
To jest CentOS 7?