ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Денис Смирнов" <mithraen@freesource.info>
To: devel@lists.altlinux.org
Subject: [devel] systemd & проблемы с mount блокируют загрузку
Date: Tue, 5 Aug 2014 23:16:34 +0400
Message-ID: <20140805191634.GA22105@mw.mithraen.ru> (raw)

[-- Attachment #1: Type: text/plain, Size: 2171 bytes --]

У нас сейчас с systemd есть проблема. Одна из тех, что вызывает массовое
неприятие systemd у пользователей.

Суть проблемы: при невозможности смонтировать любой из разделов
упомянутый в /etc/fstab система останавливает загрузку, и далее уже
требуются специальные знания для восстановления работоспособности системы.

Причем проблема одинаково воспроизводится при невозможности смонтировать,
к примеру /usr и какой-нибудь /home/user/films или /media/films.

Предлагаю следующее решение и прошу комментариев.

Зависимости на смонтированные FS
================================

Сейчас монтирование *всех* разделов упомянутых в /etc/fstab происходит до
собственно запуска большинства сервисов -- ибо они имеют зависимость на
basic.target, который зависит от local-fs.target, которая зависит от
монтирования всех разделов из /etc/fstab.

В systemd есть встроенный метод делать зависимости конкретных сервисов на
смонтированные FS: RequiresMountsFor.

Для сервисов, которые имеют эту директиву в unit-файле зависимость на
local-fs.target не требуется. Однако прописывать ее корректно всем
мантейнерам было, есть и будет лень и некогда.

Решения:

1. Нам никто не мешает сгенерировать её автоматически, еще на этапе сборки
rpm-пакета: мы можем автоматически добавить в нее все каталоги,
присутствующие в собираемом пакете.

Насколько я понял, для этого нужно просто создать соответствующий
/usr/lib/rpm/fixup-(something)?

2. Для SYSV скриптов предлагаю оставить то поведение, которое было раньше
(система ругается, но пытается загрузиться). Соответственно в генераторе
systemd сервисов для sysv-скриптов:

- зависимости с local-fs.target на соответствующие mounts вместо
  'requires' делаем 'wants'.
- добавляем в After local-fs.target

После чего убираем local-fs.target из basic.target вообще.

Итог:

- для SYSV скриптов ничего не изменится по сравнению с "до systemd"
  временем
- systemd сервисы будут запускаться только после монтирования необходимых
  им для работы каталогов

Соответственно недоступность очередного "/media/films" не будет
останавливать загрузку.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

             reply	other threads:[~2014-08-05 19:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 19:16 Денис Смирнов [this message]
2014-08-06 16:47 ` Alexey Shabalin
2014-08-06 21:46   ` Денис Смирнов

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140805191634.GA22105@mw.mithraen.ru \
    --to=mithraen@freesource.info \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git