systemd и crypttab
Модераторы: Warderer, Модераторы разделов
-
Silender
- Сообщения: 23
systemd и crypttab
В crypttab прописана расшифровка ключем 10ти файлов, находящихся на диске, который монтируется при загрузке с помощью fstab.
В процессе загрузки рандомно запрашивает парольные фразы от некоторых файлов. Некоторые же расшифровывает нормально.
То что генерит юниты для systemd выглядит вменяемо. Юниты создаются одинаковыми и в них прописано ожидать монтирования диска и папки /root с ключом.
Это очередной баг глюченой системд ?
В процессе загрузки рандомно запрашивает парольные фразы от некоторых файлов. Некоторые же расшифровывает нормально.
То что генерит юниты для systemd выглядит вменяемо. Юниты создаются одинаковыми и в них прописано ожидать монтирования диска и папки /root с ключом.
Это очередной баг глюченой системд ?
-
Bizdelnick
- Модератор
- Сообщения: 21405
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: systemd и crypttab
Показывайте crypttab, fstab и юниты, а то совсем непонятно, о чём речь.
У Вас что, /root отдельно от корня? Так ещё до systemd не рекомендовалось делать. Он для того не в /home находится, чтобы быть всегда доступным.
У Вас что, /root отдельно от корня? Так ещё до systemd не рекомендовалось делать. Он для того не в /home находится, чтобы быть всегда доступным.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Silender
- Сообщения: 23
Re: systemd и crypttab
Bizdelnick писал(а): ↑10.05.2015 23:01ожидать монтирования диска и папки /root
У Вас что, /root отдельно от корня? Так ещё до systemd не рекомендовалось делать. Он для того не в /home находится, чтобы быть всегда доступным.
/root как обычно, но в юнитах, сгенеренных автоматически (их 10 штук), написано
RequiresMountsFor=/root/keyfile
RequiresMountsFor=/mnt/flash/cryptfile01.img
Вчера решил, что мой баг это именно баг и не лечится. Удалил все из crypttab и попробовал написать юнит с нуля, но ничего вообще не происходит. Никак не узнать, что что то выполняется, какие ошибки и т.д..
Сейчас восстановлю как было, чтобы выложить crypttab и юниты.
-
Bizdelnick
- Модератор
- Сообщения: 21405
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: systemd и crypttab
Именно так, две отдельных записи? Не уверен, что это правильно (хотя в systemd не силён, так что пусть более сведущие люди меня поправят, если что).
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Silender
- Сообщения: 23
Re: systemd и crypttab
Сейчас эксперементирую. Заметил, что нормально отрабатывает, когда в crypttab прописано расшифровать 2 файла (любых из 10ти). Если прописать 3, то рандомно спросит пароль от одного из трех.
Да, это копипаста из генеренки. из папки /run/systemd/generator/
Нам послали подставу прямиком из ада)) Учитывая "расторопность" дистрписателей, они эту посылку не разгребут никогда. Все ляжет на пользователей, каждый из которых будет сам заново проходить все грабли.
Да, это копипаста из генеренки. из папки /run/systemd/generator/
Bizdelnick писал(а): ↑11.05.2015 10:09Не уверен, что это правильно (хотя в systemd не силён, так что пусть более сведущие люди меня поправят, если что).
Нам послали подставу прямиком из ада)) Учитывая "расторопность" дистрписателей, они эту посылку не разгребут никогда. Все ляжет на пользователей, каждый из которых будет сам заново проходить все грабли.
-
Silender
- Сообщения: 23
Re: systemd и crypttab
Bizdelnick писал(а): ↑10.05.2015 23:01Показывайте crypttab, fstab и юниты, а то совсем непонятно, о чём речь.
crypttab
Код: Выделить всё
sda2_crypt UUID=405f5371-01c6-439f-9920-645a723fbf0a none luks
cf01 /mnt/flash/cryptedfile01.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf02 /mnt/flash/cryptedfile02.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf03 /mnt/flash/cryptedfile03.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf04 /mnt/flash/cryptedfile04.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf05 /mnt/flash/cryptedfile05.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf06 /mnt/flash/cryptedfile06.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf07 /mnt/flash/cryptedfile07.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf08 /mnt/flash/cryptedfile08.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf09 /mnt/flash/cryptedfile09.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64
cf10 /mnt/flash/cryptedfile10.img /root/keyfile size=512,hash=sha512,cipher=aes-xts-plain64fstab
Код: Выделить всё
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/sda2_crypt / btrfs noatime,nodiratime,compress,noacl,discard,nobarrier,nodatacow,ssd 0 1
# /boot was on /dev/sda3 during installation
UUID=1e538bbf-1871-4bba-a30b-f0083f58462e /boot ext2 defaults 0 2
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
UUID=21DB-7487 /mnt/flash vfat defaults 0 1Юниты
/run/systemd/generator/cf01.d
Код: Выделить всё
# Automatically generated by systemd-cryptsetup-generator
[Unit]
JobTimeoutSec=0/run/systemd/generator/cryptsetup.target.requires/@systemd-cryptsetup@cf01.service
Код: Выделить всё
# Automatically generated by systemd-cryptsetup-generator
[Unit]
Description=Cryptography Setup for %I
Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)
SourcePath=/etc/crypttab
DefaultDependencies=no
Conflicts=umount.target
BindsTo=dev-mapper-%i.device
IgnoreOnIsolate=true
After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target
Before=cryptsetup.target
RequiresMountsFor=/root/keyfile
RequiresMountsFor=/mnt/flash/cryptedfile01.img
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/lib/systemd/systemd-cryptsetup attach 'cf01' '/mnt/flash/cryptedfile01.img' '/root/keyfile' 'size=512,hash=sha512,cipher=aes-xts-plain64'
ExecStop=/lib/systemd/systemd-cryptsetup detach 'cf01'/run/systemd/generator/dev-mapper-cf01.device.requires/@systemd-cryptsetup@service
Код: Выделить всё
# Automatically generated by systemd-cryptsetup-generator
[Unit]
Description=Cryptography Setup for %I
Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)
SourcePath=/etc/crypttab
DefaultDependencies=no
Conflicts=umount.target
BindsTo=dev-mapper-%i.device
IgnoreOnIsolate=true
After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target
Before=cryptsetup.target
RequiresMountsFor=/root/keyfile
RequiresMountsFor=/mnt/flash/cryptedfile01.img
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/lib/systemd/systemd-cryptsetup attach 'cf01' '/mnt/flash/cryptedfile01.img' '/root/keyfile' 'size=512,hash=sha512,cipher=aes-xts-plain64'
ExecStop=/lib/systemd/systemd-cryptsetup detach 'cf01'/run/systemd/generator/local-fs.target.requires/@mnt-flash.mount
Код: Выделить всё
# Automatically generated by systemd-fstab-generator
[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
Before=local-fs.target
RequiresOverridable=systemd-fsck@dev-disk-by\x2duuid-21DB\x2d11FA.service
After=systemd-fsck@dev-disk-by\x2duuid-21DB\x2d11FA.service
[Mount]
What=/dev/disk/by-uuid/21DB-7487
Where=/mnt/flash
Type=vfat/run/systemd/generator/mnt-flash-cryptedfile01.img.device.wants/@systemd-cryptsetup@cf01.service
Код: Выделить всё
# Automatically generated by systemd-cryptsetup-generator
[Unit]
Description=Cryptography Setup for %I
Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)
SourcePath=/etc/crypttab
DefaultDependencies=no
Conflicts=umount.target
BindsTo=dev-mapper-%i.device
IgnoreOnIsolate=true
After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target
Before=cryptsetup.target
RequiresMountsFor=/root/keyfile
RequiresMountsFor=/mnt/flash/cryptedfile01.img
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/lib/systemd/systemd-cryptsetup attach 'cf01' '/mnt/flash/cryptedfile01.img' '/root/keyfile' 'size=512,hash=sha512,cipher=aes-xts-plain64'
ExecStop=/lib/systemd/systemd-cryptsetup detach 'cf01'/run/systemd/generator/mnt-flash.mount
Код: Выделить всё
# Automatically generated by systemd-fstab-generator
[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
Before=local-fs.target
RequiresOverridable=systemd-fsck@dev-disk-by\x2duuid-21DB\x2d11FA.service
After=systemd-fsck@dev-disk-by\x2duuid-21DB\x2d11FA.service
[Mount]
What=/dev/disk/by-uuid/21DB-7487
Where=/mnt/flash
Type=vfat/run/systemd/generator/systemd-cryptsetup@cf01.service
Код: Выделить всё
# Automatically generated by systemd-cryptsetup-generator
[Unit]
Description=Cryptography Setup for %I
Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)
SourcePath=/etc/crypttab
DefaultDependencies=no
Conflicts=umount.target
BindsTo=dev-mapper-%i.device
IgnoreOnIsolate=true
After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target
Before=cryptsetup.target
RequiresMountsFor=/root/keyfile
RequiresMountsFor=/mnt/flash/cryptedfile01.img
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/lib/systemd/systemd-cryptsetup attach 'cf01' '/mnt/flash/cryptedfile01.img' '/root/keyfile' 'size=512,hash=sha512,cipher=aes-xts-plain64'
ExecStop=/lib/systemd/systemd-cryptsetup detach 'cf01'-
Bizdelnick
- Модератор
- Сообщения: 21405
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: systemd и crypttab
А если попробовать прописать в одну строчку?
Код: Выделить всё
RequiresMountsFor=/root/keyfile /mnt/flash/cryptedfile01.imgПишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Silender
- Сообщения: 23
Re: systemd и crypttab
А это не так просто сделать. В /run/systemd/generator/ что либо править бесполезно, т.к. там все перезаписывается в процессе загрузки, а если скопировать юниты в /etc/systemd/system, то они не запускаются, непонятно почему.
Я то знаю, что нужно делать. Нужно, чтобы процесс обработки десяти файлов выполнялся последовательно, а не параллельно. И чтобы занимался этим нормальный /sbin/cryptsetup, а не этот /lib/systemd/systemd-cryptsetup.
Для этого нужно написать юнит, который бы выполнял мой баш скрипт, но как это сделать, если самописные юниты не работают ?
Я то знаю, что нужно делать. Нужно, чтобы процесс обработки десяти файлов выполнялся последовательно, а не параллельно. И чтобы занимался этим нормальный /sbin/cryptsetup, а не этот /lib/systemd/systemd-cryptsetup.
Для этого нужно написать юнит, который бы выполнял мой баш скрипт, но как это сделать, если самописные юниты не работают ?
-
Kopilov
- Сообщения: 957
- ОС: [K]Ubuntu, Debian
-
Silender
- Сообщения: 23
Re: systemd и crypttab
Ампутация, это крайняя мера. Вообще все что требуется от дистра с системд, это иметь возможность в определенные точки загрузки вставлять свои скрипты и ставить системные и не очень сервисы в зависимости от выполнения этих скриптов. Надеяться на дистрописателей глупо, они никогда ничего не сделают.
Вот например мне нужно в определенный момент выполнить присоединение шифрованных файлов (скриптом это элементарно), а после загрузить сервис libvirt. Как это сделать ?
Вот например мне нужно в определенный момент выполнить присоединение шифрованных файлов (скриптом это элементарно), а после загрузить сервис libvirt. Как это сделать ?
-
Bizdelnick
- Модератор
- Сообщения: 21405
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: systemd и crypttab
Если багрепорт не отправить — точно не сделают, потому что и не узнают, что что-то надо сделать.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: systemd и crypttab
Bizdelnick писал(а): ↑11.05.2015 10:09
Именно так, две отдельных записи? Не уверен, что это правильно (хотя в systemd не силён, так что пусть более сведущие люди меня поправят, если что).
Это правильно, одинаковые директивы объединяются (за исключением случаев, описанных в документации).
Может, проблемы с флешкой, не справляющейся с одновременным доступом нескольких процессов? Есть что-нибудь в dmesg?
Какие именно юниты вы копируете? Что в systemctl status для этих юнитов?
Silender писал(а): ↑11.05.2015 13:04Я то знаю, что нужно делать. Нужно, чтобы процесс обработки десяти файлов выполнялся последовательно, а не параллельно. И чтобы занимался этим нормальный /sbin/cryptsetup, а не этот /lib/systemd/systemd-cryptsetup.
Для этого нужно написать юнит, который бы выполнял мой баш скрипт, но как это сделать, если самописные юниты не работают ?
Рассказывайте, что написали да что делали.
Silender писал(а): ↑11.05.2015 14:32Ампутация, это крайняя мера. Вообще все что требуется от дистра с системд, это иметь возможность в определенные точки загрузки вставлять свои скрипты и ставить системные и не очень сервисы в зависимости от выполнения этих скриптов. Надеяться на дистрописателей глупо, они никогда ничего не сделают.
Вот например мне нужно в определенный момент выполнить присоединение шифрованных файлов (скриптом это элементарно), а после загрузить сервис libvirt. Как это сделать ?
Указать, что сервис libvirt должен запускаться после сервиса, выполняющего присоединение шифрованных файлов, директивой After в первом или Before в последнем.
Но давайте сначала попробуем разобраться в причинах происходящего. Покажите вывод # systemctl status systemd-cryptsetup@\* и # journalctl -u systemd-cryptsetup@\*. Если после загрузки выполнить рестарт проблемных юнитов, присоединение происходит нормально?