Действия: 1. Установил workstation 9.2 2. Обновил ядро (до 5.10.81-un-def-alt1) 3. s/p9/p10/g в /etc/apt/sources.list.d/* 4. apt-get dist-upgrade Последнее, что увидел в консоли: 936: systemd-boot-efi-1:249.5-alt2 ################################# [ 33%] 937: systemd-services-1:249.5-alt2 ################################# [ 33%] 938: systemd-sysvinit-1:249.5-alt2 ################################# [ 33%] 939: systemd-1:249.5-alt2 ################################# [ 33%] [ 1058.381277] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 [ 1058.388959] CPU: 4 PID: 1 Comm: systemd Not tainted 5.10.81-un-def-alt1 #1 [ 1058.395847] Hardware name: Edelweiss TF307-MB-S-D/BM1BM1-D, BIOS 5.3 09/09/2021 [ 1058.395851] Call trace: [ 1058.395861] dump_backtrace+0x0/0x1e8 [ 1058.395866] show_stack+0x20/0x30 [ 1058.395874] dump_stack+0xd8/0x134 [ 1058.395878] panic+0x16c/0x37c [ 1058.395883] do_exit+0xa94/0xab0 [ 1058.395886] do_group_exit+0x4c/0xb0 [ 1058.395890] __wake_up_parent+0x0/0x38 [ 1058.395896] el0_svc_common.constprop.4+0x94/0x188 [ 1058.395900] do_el0_svc+0x2c/0x98 [ 1058.395905] el0_svc+0x20/0x30 [ 1058.395909] el0_sync_handler+0x90/0xb8 [ 1058.395914] el0_sync+0x164/0x180 [ 1058.395928] SMP: stopping secondary CPUs [ 1058.395938] Kernel Offset: disabled [ 1058.395942] CPU features: 0x0240022,21002008 [ 1058.395945] Memory Limit: none [ 1058.531712] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 ]---
При последующей перезагрузке снова получаю segfault при попытке запуска systemd: [ 8.398611] Moving filesystem [/dev]: [ DONE ] [ 8.516405] Moving filesystem [/run]: [ DONE ] [ 8.662697] Unmounting filesystem [/sys]: [ DONE ] [ 8.844277] Stopping shell service: stopped rdshell (pid 183) [ DONE ] [ 9.042572] Asking all remaining processes to terminate: [ DONE ] [ 9.112627] Killing all remaining processes: [PASSED] [ 9.212526] INIT: Running init (/sbin/init) /sbin/init: erro[ 9.876621] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 [ 9.885645] CPU: 0 PID: 1 Comm: init Not tainted 5.10.81-un-def-alt1 #1 [ 9.892273] Hardware name: Edelweiss TF307-MB-S-D/BM1BM1-D, BIOS 5.3 09/09/2021 [ 9.899595] Call trace: [ 9.902056] dump_backtrace+0x0/0x1e8 [ 9.905727] show_stack+0x20/0x30 [ 9.909054] dump_stack+0xd8/0x134 [ 9.912465] panic+0x16c/0x37c [ 9.915529] do_exit+0xa94/0xab0 [ 9.918765] do_group_exit+0x4c/0xb0 [ 9.922348] __wake_up_parent+0x0/0x38 [ 9.926107] el0_svc_common.constprop.4+0x94/0x188 [ 9.930909] do_el0_svc+0x2c/0x98 [ 9.934232] el0_svc+0x20/0x30 [ 9.937296] el0_sync_handler+0x90/0xb8 [ 9.941141] el0_sync+0x164/0x180 [ 9.944474] SMP: stopping secondary CPUs [ 9.948414] Kernel Offset: disabled [ 9.951912] CPU features: 0x0240022,21002008 [ 9.956190] Memory Limit: none [ 9.959258] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 ]--- error while loading shared libraries: libsystemd-shared-249.so: cannot open shared object file: No such file or directory
У меня такое же было две недели назад на x86_64. Celeron J1900.
libsystemd-shared-249.so находится в пакете systemd-utils. В ходе dist-upgrade пакет systemd обновляется *до* обновления systemd-utils. После обновления происходит попытка перезапуска systemd (systemctl daemon-reload), которая завершается неудачно из-за того, что не хватает библиотеки libsystemd-shared-249.so. Падение init приводит к kernel panic, в результате чего повреждаются другие библиотеки (привет тем, кто забывает вызывать fsync), в том числе libblake2, необходимая для работы rpm и apt: ls -l /usr/lib64/libblake2.so.* -rw-r--r-- 1 root root 0 Aug 5 11:42 /usr/lib64/libblake2.so.0.0.0 Починить систему в этом состоянии - задача не для слабонервных.
Created attachment 9983 [details] Лог обновления
(In reply to Антон Мидюков from comment #2) > У меня такое же было две недели назад на x86_64. Celeron J1900
Зависимости циклические: systemd -> systemd-utils; systemd-utils -> systemd-sysctl-common; systemd-sysctl-common -> startup; startup -> systemd-utils; startup -> systemd-sysvinit; systemd-sysvinit -> systemd; Интересно, как apt разрывает такие циклы. (Судя по результату - "не стреляйте в пианиста - играет, как умеет").
libsystemd-shared-NNN.so - это неотъемлемая часть systemd, паковать её в отдельный пакет (systemd-utils) - очень ненадёжно.
Вот и пришла пора слить все подпакеты в один пакет systemd.
У меня такая же ерунда на всех компьютерах в лаборатории. И ноутбуках и моноблоках и на интерактивной доске. Удалось обновиться загрузив LiveCD и там через чрут.
Надеюсь вы не забыли перед обновление поправить priority_distbranch ?
(Ответ для Anton Farygin на комментарий #10) > Надеюсь вы не забыли перед обновление поправить priority_distbranch ? Я делал apt-repo set p10 Артём тоже.
Для p10 таск #290888. Смержил пакет utils и services в основой systemd.
(Ответ для Alexey Shabalin на комментарий #12) > Для p10 таск #290888. > Смержил пакет utils и services в основой systemd. Такой мерж вреден для систем на sysv. Иначе вместо не более семидесяти файлов, в системе на sysv будет болтаться больше 650-ти файлов ненужного и бесполезного мусора: $ rpm -qpvl ./systemd-249.7-alt4.x86_64.rpm | grep -v '^drwx' | wc -l 731 $ rpm -qpvl ./systemd-249.5-alt2.x86_64.rpm | grep -v ^drwx | wc -l 558 $ rpm -qpvl ./systemd-services-249.5-alt2.x86_64.rpm | grep -v ^drwx | wc -l 111 $ echo '731-558-111' | bc 62 Лучше мержить эти пакеты, - в системах на sysv, их установка блокируется пакетом apt-conf-ignore-systemd: $ cat /etc/apt/apt.conf.d/ignore-systemd.conf /* * This is the apt configuration file for systems on sysvinit, * to ignore the installation of systemd packages, * see http://apt-rpm.org/tricks.shtml for details. */ RPM { Ignore { // systemd packages. "systemd"; "systemd-services"; "systemd-sysvinit"; }; }; systemd-utils мержить с systemd нельзя. Иначе система на sysv сильно забьётся мусором: apt-cache rdepends systemd-utils | grep 'startup\|udev' udev startup udev startup-rescue Текущее в системе на sysv: $ rpm -qa | grep systemd libsystemd-246.16-alt1.x86_64 systemd-utils-246.16-alt1.x86_64 apt-conf-ignore-systemd-0.1-alt2.noarch $ grep -r systemd-tmpfiles /etc/ 2>/dev/null /etc/rc.d/init.d/udevd:systemd_tmpfiles=/sbin/systemd-tmpfiles /etc/rc.d/scripts/cleanup:systemd-tmpfiles --clean /etc/rc.d/scripts/cleanup:systemd-tmpfiles --remove --create --boot --exclude-prefix=/dev # rpm -qf $(which systemd-tmpfiles) systemd-utils-246.16-alt1.x86_64
(Ответ для Speccyfighter на комментарий #13) > (Ответ для Alexey Shabalin на комментарий #12) > > Для p10 таск #290888. > > Смержил пакет utils и services в основой systemd. > > Такой мерж вреден для систем на sysv. > Иначе вместо не более семидесяти файлов, в системе на sysv будет болтаться > больше 650-ти файлов ненужного и бесполезного мусора: Всё гораздо хуже, при условии, что в системе на sysv установлен, systemd-utils. При обновлении установится systemd, а это приводит к поломке авторизации пользователей, кроме root. Чинится установкой systemd-utils-standalone и удалением пакетов systemd, pam_systemd, libnss-systemd. Если же вместо systemd-utils на sysv установлен systemd-utils-standalone, то всё будет хорошо. В выпущенных стартеркитах p10 на sysv systemd-utils-standalone установлен вместо systemd-utils. Так что проблема будет только у тех, кто обновляется с p9 или уже обновился до p10. А при установленном apt-conf-ignore-systemd systemd-utils заменится systemd-utils-standalone и проблемы не будет вообще.
(In reply to Speccyfighter from comment #13) > (Ответ для Alexey Shabalin на комментарий #12) > > Для p10 таск #290888. > > Смержил пакет utils и services в основой systemd. > > Такой мерж вреден для систем на sysv. > Иначе вместо не более семидесяти файлов, в системе на sysv будет болтаться > больше 650-ти файлов ненужного и бесполезного мусора: Система с sysv - сама по себе "ненужный бесполезный мусор".
> Лучше мержить эти пакеты, - в системах на sysv, их установка блокируется > пакетом apt-conf-ignore-systemd: А в чём смысл? Ещё раз поясню суть проблемы.Бинарник /lib/systemd/systemd и "библиотека" /lib/systemd/libsystemd-shared-NNN.so - единое целое, и должны быть в одном пакете. В этом же пакете должны быть и другие бинарники, которые используют libsystemd-shared-NNN.so (systemd-logind, systemd-resolved, и т.п.). Потому и придётся прекратить дробить единое целое на куски. > systemd-utils мержить с systemd нельзя. Нужно. Потому что иное не поддерживается. Хотите сделать поддержку - ждём Ваших патчей здесь: https://github.com/systemd/systemd
(Ответ для Alexey Sheplyakov на комментарий #15) > (In reply to Speccyfighter from comment #13) > > Такой мерж вреден для систем на sysv. > > Иначе вместо не более семидесяти файлов, в системе на sysv будет болтаться > > больше 650-ти файлов ненужного и бесполезного мусора: > > Система с sysv - сама по себе "ненужный бесполезный мусор". Интересное утверждение. Я лишь сказал, что бинарники, которые не могут быть использованы в системе даже теоретически, считются как минимум бесполезными. Независимо от того, на чём базируется система. И от них в системе нужно избавляться. И для чистоты системы, и для надёжности, и для безопасности.
(In reply to Alexey Sheplyakov from comment #15) > Система с sysv - сама по себе "ненужный бесполезный мусор". На самом деле мусор - это система с systemd, как минимум в серверном сегменте, но apt-conf-ignore-systemd вариант приемлимый.
Починили: https://git.altlinux.org/tasks/archive/done/_284/290888/ * Sat Nov 27 2021 Alexey Shabalin <shaba@altlinux.org> 1:249.7-alt3 - Merge services files to main systemd package. - Merge utils files to main systemd package.
(Ответ для Антон Мидюков на комментарий #19) > Починили: > https://git.altlinux.org/tasks/archive/done/_284/290888/ > * Sat Nov 27 2021 Alexey Shabalin <shaba@altlinux.org> 1:249.7-alt3 > - Merge services files to main systemd package. > - Merge utils files to main systemd package. Спасибо!