LINUX.ORG.RU

Как systemd монтирует lvm-разделы? (хочу без fstab)

 ,


1

3

разделы lvm не монтируются при загрузке, с сообщением (для mount-юнита) в логе о том, что зависимость подкачала. А для device-юнита в логе пишет, что таймаут.

примерно так: https://unix.stackexchange.com/questions/556819/systemd-time-out-waiting-for-device-dev-mapper-vg

По совету со stackoverflow я сделал device-юниты в виде явных файлов, однако пример со стековерфлоу содержит секцию [Service] а моя система ругается, и говорит, что в device-юнитах такой секции быть не должно и она проигнорирована.

я создал 1 файл mount, 1 файл device, добавил их командами systemctl enable, и мой lvm-раздел всё ещё не монтируется (корень тоже lvm-раздел, но он монтируется, потому что он монтируется по-другому из initramfs).

читал то - https://www.freedesktop.org/software/systemd/man/systemd.mount.html и это - https://www.freedesktop.org/software/systemd/man/systemd.device.html

Были такие темы и на LOR - Монтирование lvm разделов вsystemd интересно, разобрались ли с ними по-существу, а не обходными манёврами, как здесь - Запуск системы с разделами на LVM ?

Пробовал выполнять запуск юнитов из консоли без перезагрузки. Поведение такое же - таймаут у device, не монтируется у mount-юнит. Если руками выполнить команду mount, то systemd индицирует, что mount-unit запущен. Его можно остановить и он размонтируется. А сразу после этого обратно запустить не получается.

Что и куда мне надо прописать в этом вашем systemd, чтобы стало хорошо?

★★☆

Последнее исправление: Einstok_Fair (всего исправлений: 4)

может добавишь сюда какие нибудь листинги? содержимое файлов, которые ты создал, логи? телепатов нет.

eternal_sorrow ★★★★★
()
  • man mount;
  • man systemd-mount;
  • man systemd-service;
  • man lvm (или lvm2, как там правильно).

Или $50 за каждый готовый юнит.

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

может добавишь сюда какие нибудь листинги? содержимое файлов, которые ты создал, логи? телепатов нет.

Этот регистрант хочет чтобы его без объяснений понимали и всё за него делали.

Его (удалённый) тред для ознакомления:

https://www.linux.org.ru/forum/desktop/15629062

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

systemd-mount

Но зачем?

Он хочет избавиться чтобы его избавили от одного файла /etc/fstab в пользу кучи /etc/systemd/system/*.mount + /etc/systemd/system/*.automount. Это ведь так модно-молодёжно!

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от mord0d

не вводи людей в заблуждение. У меня нет динамически подключаемых устройств с lvm (таких как флешки), поэтому мне не нужны *.automount

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от mord0d

У меня уже есть юнит-файлы, вот они:

cat -- /etc/systemd/system/$(systemd-escape home/user/.mozilla).mount

[Unit]
Description=firefox profiles

[Mount]
What=/dev/mapper/main-firefox
Where=/home/user/.mozilla
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

cat -- /etc/systemd/system/$(systemd-escape dev/mapper/main-firefox).device

[Unit]
Description=firefox folder

[Install]
WantedBy=local-fs.target
Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow
# mount /dev/mapper/main-firefox /home/user/.mozilla

# cat /proc/self/mountinfo | grep firefox
319 23 251:2 / /home/user/.mozilla rw,relatime shared:191 - ext4 /dev/mapper/main-firefox rw

# systemctl status -- $(systemd-escape home/user/.mozilla).mount
● home-user-.mozilla.mount - firefox profiles
     Loaded: loaded (/etc/systemd/system/home-user-.mozilla.mount; enabled; vendor preset: disabled)
     Active: active (mounted) since Mon 2020-04-27 10:23:19 -00; 11min ago
      Where: /home/user/.mozilla
       What: /dev/mapper/main-firefox

апр 27 10:23:19 hostname systemd[1]: Condition check resulted in firefox profiles being skipped.

# udevadm info /dev/mapper/main-firefox
P: /devices/virtual/block/dm-2
N: dm-2
L: 0
E: DEVPATH=/devices/virtual/block/dm-2
E: DEVNAME=/dev/dm-2
E: DEVTYPE=disk
E: MAJOR=251
E: MINOR=2
E: SUBSYSTEM=block
E: USEC_INITIALIZED=12495529
E: TAGS=:systemd:

# systemctl status -- $(systemd-escape dev/mapper/main-firefox).device
● dev-mapper-main\x2dfirefox.device - /dev/mapper/main-firefox
   Follow: unit currently follows state of sys-devices-virtual-block-dm\x2d2.device
     Loaded: loaded (/etc/systemd/system/dev-mapper-main\x2dfirefox.device; enabled; vendor preset: disabled)
     Active: activating (tentative) since Mon 2020-04-27 10:23:19 -00; 5min ago
     Device: /sys/devices/virtual/block/dm-2

апр 27 10:23:19 hostname systemd[1]: Unnecessary job for /dev/mapper/main-firefox was removed.

# systemctl stop -- $(systemd-escape home/user/.mozilla).mount

# systemctl status -- $(systemd-escape dev/mapper/main-firefox).device
● dev-mapper-main\x2dfirefox.device - /dev/mapper/main-firefox
     Loaded: loaded (/etc/systemd/system/dev-mapper-main\x2dfirefox.device; enabled; vendor preset: disabled)
     Active: inactive (dead) since Mon 2020-04-27 10:36:49 -00; 21s ago

# systemctl start -- $(systemd-escape home/user/.mozilla).mount
A dependency job for home-user-.mozilla.mount failed. See 'journalctl -xe' for details.

# systemctl start -- $(systemd-escape dev/mapper/main-firefox).device
Job for dev-mapper-main\x2dfirefox.device timed out.
Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow
# systemctl --version
systemd 244 (244)
+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP -LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL -XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified

Какие ещё логи нужны?

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

Не будет лишним напомнить, что из себя представляет топикстартер.

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

с .device явно что то не не так. он пустой, только мета-секции. должна быть хотя бы одна смысловая секция ([Device] или как то так, я не в курсе). да и нужен ли он вообще?

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

тебе же @mord0d написал, что надо читать man на systemd.device. Явно же он это не мне написал, так как у меня в стартовом топике написано, что я его уже прочёл. А там написано, цитирую:

A separate «[Device]» section does not exist, since no device-specific options may be configured.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

Да не корми ты его, видишь же что набрасывает. Все вокруг идиоты, один он белый и пушистый.

mord0d ★★★★★
()

Как systemd монтирует lvm-разделы?

Если совсем вкратце: ждёт доступные block devices предоставленные udev с pvscan и, после обработки fstab и .mount монтирует.

Начнём решать твою проблему с простых задач-вопросов:
1. монтирование нужно конкретному пользователю или?
2. через fstab монтируется автоматом? а вручную от пользователя с noauto?
3. ты уверен в правах и доступе с опциями монтирования defaults?

bass ★★★★★
()
Последнее исправление: bass (всего исправлений: 1)
Ответ на: комментарий от bass
  1. монтирование нужно конкретному пользователю или?

Монтирование нужно при старте машины. У машины вообще в принципе один мясной пользователь (он же user, он же root).

  1. через fstab монтируется автоматом?

Не знаю, с systemd не пробовал. Потому что монтировать через fstab не модно и не молодёжно.

а вручную от пользователя с noauto?

Да пусть от рута монтирует, мне не жалко.

  1. ты уверен в правах и доступе с опциями монтирования defaults?

ну мне главное, чтобы было rw, а не ro, и оно по-умолчанию rw

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair
[Unit]
Before=shutdown.target
After=lvm2-activation.service
DefaultDependencies=no
Conflicts=shutdown.target
bass ★★★★★
()
Ответ на: комментарий от Einstok_Fair

знаешь, так захотелось поучавствовать, что даже зарегался. Жаль, что тут какие-то правила есть

Потому что монтировать через fstab не модно и не молодёжно.

В общем, модно-молодежный, прописываешь, что тебе надо в fstab, или как-то по другому дергаешь не менее модно-молодежный systemd.

Проверяешь, что все смонтировалось правильно.

Идешь в /run/systemd/generator/ и ищешь нужные (mount) юниты и их зависимости, которые сгенерировал systemd.

Сохраняешь их куда надо и убираешь строку из fstab. Если надо, можешь что-нибудь в юниты дописать.

PS:

однако пример со стековерфлоу содержит секцию [Service] а моя система ругается, и говорит, что в device-юнитах такой секции быть не должно и она проигнорирована.

потому что на стэковерфлов показан пример с service, а не device юнитом

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

или как-то по другому дергаешь

ребутаешь или как-то по другому дергаешь

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