LINUX.ORG.RU

Запуск скрипта после обновления ядра

 , , ,


0

1

Arch, когда pacman выполняет обновления пакета linux - автоматически запускается mkinitcpio. Только этот запуск бесполезен, т.к. новое ядро всегда именуется /boot/vmlinuz-linux, в то время, как мой загрузчик будет искать его по пути /boot/EFI/Linux/arch-vmlinuz. Получается при обновление я должен руками файл переложить и запустить mkinitcpio.

Можно ли этот процесс автоматизировать? Может юнит для systemd можно использовать? На что он тогда должен тригериться и какой тип юнита использовать? В общем основной вопрос - как мне мой скрипт засунуть между пакманом и запуском mkinitcpio.

Ну и дополнительные - могу ли я оставлять старое ядро в каталоге загрузчика после обновления пакета linux? Новой ядро я бы создавал с суффиксом "-new" и создавал скриптом для него новую запись в загрузчике, для тестирования.


Ответ на: комментарий от anonymous

там я сразу все пути на /boot/EFI/Linux/ поменял. pacman кладет новое ядро в /boot/, запускается mkinitcpio и ругается, что в /boot/EFI/Linux/ ядро другой версии лежит.

Updating linux initcpios
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/EFI/Linux/arch-vmlinuz -c /etc/mkinitcpio.conf -g /boot/EFI/Linux/arch-initramfs.img
==> ERROR: '/lib/modules/4.13.3-1-ARCH' is not a valid kernel module directory
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/EFI/Linux/arch-vmlinuz -c /etc/mkinitcpio.conf -g /boot/EFI/Linux/arch-initramfs-fallback.img -S autodetect
==> ERROR: '/lib/modules/4.13.3-1-ARCH' is not a valid kernel module directory
error: command failed to execute correctly
hxss
() автор топика
Ответ на: комментарий от hxss

я так понимаю, запуск mkinitcpio происходит не по приказу пакмана, а прописан в самом пакете linux и между этими двумя процессами я не смогу уместиться. Но хотя бы после установки запустить мой скрипт..

hxss
() автор топика
Ответ на: комментарий от anonymous

а по поводу нескольких ядер? Могут быть проблемы, если после обновления пакета linux, я загружусь со старым ядром?

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

Не должно, в нормальных дистрибутивах каждая версия ядра — отдельный пакет, и они отдельно прописываются в меню загрузчика.

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

конечно ничего страшного не будет, но учти, что также придётся хранить модули к нему, initramfs и хедеры/исходники, если ты что-то планируешь компилировать от них зависящее. инфраструктура арча рассчитана на одну текущую версию ядра, так что тебе самому придётся обо всём этом заботится. в простейшем случае достаточно перед обновлением забекапить ядро и initramfs из /boot (или где у тебя там) и потом грузиться с них, но какое-то оборудование может не заработать, из-за того, что в initramfs не будет нужных модулей. в fallback-версии initramfs модулей побольше, лучше копировать её.

anonymous
()

Можно hook'и использовать, видел на реддите такое

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