LINUX.ORG.RU

Обход бага lvm в archlinux при помощи rc.local в systemd

 , ,


0

1

Здравствуйте!

Исходная проблема заключается в по-прежнему не решенном баге в арче FS#41833 - [lvm2] lvmetad in initrd hangs, blocking further lvm calls (грубо говоря, иногда LVM «виснет» при загрузке и смонтировать разделы не удаётся).

У меня в LVM сидит файлопомойка, что не критично для загрузки системы, однако если в fstab есть то, что невозможно смонтировать, система встаёт раком. Тогда я решил сделать монтирование опциональным через старый добрый rc.local:

$ cat /etc/systemd/system/multi-user.target.wants/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
#Type=oneshot
ExecStart=/etc/rc.local start
TimeoutSec=0
#StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

$ cat /etc/rc.local 
mount /dev/mapper/vgstorage-lvolstorage /home/eugene/.storage/ &> /tmp/rc.local.log  &

Теперь иногда (редко, но всё же), ~/.storage после загрузки оказывается несмонтированным, в файле /tmp/rc.local.log висит:

mount: special device /dev/mapper/vgstorage-lvolstorage does not exist

Но по факту, после загрузки системы /dev/mapper/vgstorage-lvolstorage есть. То есть, во время загрузки скрипт vgstorage-lvolstorage не видит, но после загрузки он уже есть и монтируется вручную успешно.

Получается, в сервис-файле rc.local ошибка и он стартует не последним?

P.S. Есть ещё обходной вариант перейти на automount для этой директории, но интересно мнение общества.

скайтуй феникса

он тебе расскажет, что системд тут не при чем :3

smilessss ★★★★★
()
Последнее исправление: smilessss (всего исправлений: 2)

Извини за оффтоп, но как можно пользоваться дистром со сломаным базовым функционалом? Мазохисты )

King_Carlo ★★★★★
()

очень странный баг. особенно так как я без системд и с корнем на лвм никогда такого не видел, вопреки тому что пишет brain0@. энивей, если ты так уж хочешь пользоваться системд, то ты можешь сделать полноценный сервис для файлопомойки, а не в rc.local, и настроить там рестарты и скрипт проверки alive. таким образом он будет рестартоваться пока не заработает, после загрузки.

val-amart ★★★★★
()

Кстати да, тоже впишусь. Например сдохни у меня 1 диск, у меня часть лвм тоже развалится. Допустим рут весь на живом диске, а все остальное на втором. Я же тоже не смогу грузиться дальше? Как правильно настроить этот системд или лвм? Что там что там - нуб.

matrixd
()

Твой модуль ничего не ждёт. (не зависимостей от других модулей). И systemd его может пустить сразу.

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

PS: Можно, например, пускать его после локальных ФС Т.е. Добавить After=local-fs.target или ещё чего.

BeerSeller ★★★★
()
Последнее исправление: BeerSeller (всего исправлений: 1)

эм....

однако если в fstab есть то, что невозможно смонтировать, система встаёт раком

это какойто баг на уровне проектировки

это у всех Арчей так?

что за бред

почему в «нормальных»(других) дистрибутивах все нормально-opensuse ubunta fedota...это лично проверено-просто не монтируется с выводом ошибки в лог,и все

что с арчем нетак?

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

Вообще, в любом случае с systemd - вы неправы. Если что-то не монтируется, то загрузка в нормальный режим не происходит, а запускается emergency shell (или rescue shell, не помню точно).

pod ★★
()

однако если в fstab есть то, что невозможно смонтировать, система встаёт раком

Я дико прошу прощения. А что, nofail уже не работает?

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