Вышла стабильная версия systemd 255 с поддержкой ВSOD («синего экрана смерти») в Linux

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

7 декабря 2023 года состоялся релиз стабильной версии подсистемы инициализации и управления службами в Linux systemd 255, где добавлен компонент systemd-bsod, который обеспечивает поддержку ВSOD («синего экрана смерти») в Linux.

Новая утилита systemd-bsod позволяет выводить предупреждения (зарегистрированные сообщения об ошибках из журнала LOG_EMERG) в виде белых букв на синем фоне в полноэкранном режиме и QR-код с ошибкой, если загрузка компонентов Linux завершилась отказом.

Это добавление показа bsod в systemd было разработано в рамках обсуждения и внедрения улучшений взаимодействия с пользователем при ранних сбоях загрузки системы под названием Outreachy 2023.

Среди других улучшений и дополнений в systemd 255: поддержка экспорта накопителей через NVMe-TCP, компонент systemd-bsod для полноэкранного вывода сообщений об ошибках, утилита systemd-vmspawn для запуска виртуальных машин, утилита varlinkctl для управления сервисами Varlink, утилита systemd-pcrlock для анализа регистров TPM2 PCR и генерации правил доступа, модуль аутентификации pam_systemd_loadkey.so.

Согласно информации OpenNET, ключевые изменения дополнения в выпуске systemd 255:

  • добавлен компонент "systemd-storagetm", дающий возможность автоматически экспортировать все локальные блочные устройства при помощи драйвера NVMe-TCP (NVMe over TCP), позволяющего обращаться к NVMe-накопителям по сети (NVM Express over Fabrics), используя протокол TCP. За предоставление доступа в режиме NVMe over TCP отвечает новый юнит "storage-target-mode.target", который можно включить на стадии загрузки, указав в командной строке ядра "rd.systemd.unit=storage-target-mode.target", например, при необходимости удалённого обращения к накопителю в диагностических целях;

  • добавлена утилита "systemd-vmspawn", представляющая аналог утилиты systemd-nspawn для запуска образа операционной системы в виртуальной машине (утилита systemd-nspawn предназначена для запуска контейнеров, а systemd-vmspawn предоставляет похожий интерфейс для виртуальных машин). В настоящее время для запуска виртуальных машин доступен только бэкенд на базе QEMU;

  • добавлена утилита "varlinkctl" для вызова и интроспекции сервисов, использующих протокол Varlink;

  • добавлена утилита "systemd-pcrlock" для анализа и предсказания состояний регистров TPM2 PCR (Platform Configuration Register) и формирования сохраняемых в индексе TPM2 NV правил доступа, разрешающих обращение к объектам TPM2, таким как ключи шифрования диска, только из заверенных цифровой подписью компонентов, запускаемых на стадии верифицированной загрузки. В качестве входных данных для анализа может использоваться результат запроса состояния PCR в TPM2, выдаваемый прошивкой UEFI лог событий текущей загрузки (/sys/kernel/security/tpm0/binary_bios_measurements) или локально сохранённый лог TPM2 (/run/log/systemd/tpm2-measure.log). Поддержка сохраняемых правил доступа добавлена в systemd-cryptsetup, systemd-cryptenroll и systemd-repart;

  • добавлен PAM-модуль pam_systemd_loadkey.so, предназначенный для автоматического извлечения из хранилища ключей в ядре (keyring) парольной фразы, используемой в cryptsetup для разблокировки зашифрованной корневой ФС, и выставления этой парольной фразы в качестве токена аутентификации (PAM authtok). Модуль может применяться, например, для настройки авторазблокировки доступа к GNOME Keyring и KDE Wallet при включении автоматического входа в систему;

  • добавлена поддержка перехода в спящий режим (hibernation) с сохранением содержимого памяти в файлы подкачки, хранимые в ФС Btrfs;

  • в юниты добавлены свойства MemoryPeak, MemorySwapPeak, MemorySwapCurrent и MemoryZSwapCurrent, соответствующие доступным через cgroup v2 свойствам memory.peak, memory.swap.peak, memory.swap.current и memory.zswap.current. Информация о данных свойствах включена в вывод "systemctl status";

  • переработан способ запуска сервисов, который переведён на использование вызова posix_spawn с опциями CLONE_VM и CLONE_VFORK для запуска процесса и применения отдельного исполняемого файла systemd-executor для настройки запускаемого процесса. Ранее процессы ответвлялись функцией fork с копированием памяти управляющего процесса в режиме copy-on-write и выполнением необходимых настроек (монтирование пространств имён и выставление CGroup) до запуска целевого исполняемого файла через вызов exec, что приводило к проблемам из-за невозможности обращения к некоторым API Glibc на стадии между выполнением функций fork и exec;

  • код для отслеживания внутренних процессов переведён на использование PIDFD вместо PID в окружениях с ядром, поддерживающим PIDFD (PIDFD связывается с конкретным процессом и не меняется, в том время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID). Реализована возможность создания scope-юнитов, при использовании PIDFD вместо PID для выбора процессов;

  • прекращена поддержка раздельных иерархий каталогов (когда /usr монтируется отдельно от корня или разделены каталоги /bin и /usr/bin, /lib и /usr/lib). В будущем также решено прекратить поддержку cgroups v1, скриптов сервисов System V и EFI-переменных SystemdOptions;

  • команда "systemctl switch-root" ограничена для применения только в initrd. Для замены корневой ФС в обычном окружении следует использовать "systemctl soft-reboot";

  • объявлены устаревшими параметры SuspendMode, HybridSleepMode, HibernateStat и HybridSleepState в секции "[Sleep]" файла systemd-sleep.conf. Данные параметры теперь игнорируются и могут принимать только значения по умолчанию;

  • в юниты добавлена опция SurviveFinalKillSignal, позволяющая игнорировать финальный сигнал SIGTERM/SIGKILL, выдаваемый во время завершения работы, что может оказаться полезным для оставления запущенным юнита во время мягкой перезагрузки системы в режиме soft-reboot;

  • добавлена настройка NFTSet, позволяющая использовать идентификаторы cgroup для переключения логики в правилах межсетевого экрана;

  • добавлена опция ConditionSecurity=measured-uki, гарантирующая, что юнит может быть запущен только в системе, загруженной с верифицированного образа ядра в формате UKI;

  • в systemd-boot добавлены новые горячие клавиши "B" и "O" для перезагрузки и выключения системы из загрузочного меню. Добавлена настройка "menu-disabled" для отключения показа загрузочного меню;

  • в утилиту systemd-repart добавлены новые опции "--copy-from" для получения описаний раздела из указанного образа ФС, "--copy-source" для указания базового каталога для параметра CopyFiles, "--make-ddi=confext", "--make-ddi=sysext" и "--make-ddi=portable" для генерации разных типов DDI, и "--tpm2-device-key" для привязки диска к определённому открытому ключу TPM2;

  • в утилиту journalctl в параметр "--lines" добавлено значение "+N" для вывода N старейших записей;

  • в udevadm добавлен флаг "--json" для вывода в формате JSON;

  • в утилиты systemd-analyze, systemd-tmpfiles, systemd-sysusers, systemd-sysctl и systemd-binfmt добавлена опция "--tldr" для вывода только фактических параметров конфигурации без пробелов и комментариев;

  • в подсистему seccomp добавлена поддержка архитектуры LoongArch64. Разрешено использование seccomp для фильтрации системных вызовов в сервисах, выполняемых не под пользователем root без включения настройки NoNewPrivileges=yes;

  • в утилиту systemd-mount добавлена опция "--tmpfs" для монтирования нового экземпляра 'tmpfs'.

Источник: https://habr.com/ru/news/779242/


Интересные статьи

Интересные статьи

Глобальный каталог LDAP стал неотъемлемой частью современной ИТ инфраструктуры любой крупной организации. Сама технология каталога LDAP у большинства плотно ассоциируется с Active Directory от Майкрос...
Вот уже более года занимаюсь администрирование операционной системы Astra Linux, данная операционная система построена на базе операционной системе debian, но в плане администрирования данные операцио...
В статье рассмотрено понятие «соединение» для TCP и UDP протоколов в ядре операционной системы Linux на примере работы оборудования MikroTik. Дополнительно рассматриваются особенности работы техноло...
В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Kubernetes утилиты, так как у них есть своя подборка. Осторожно много скриншотов. ...
Чем дольше я пишу различные программы на tcl/tk, тем больше восхищаюсь его возможностями и продуманностью. Но была одна вещь, которая не давала мне покою до последнего времени. При разработке GU...