ecryptfs + usb key

Привет,

В общем мне надоело вводить ключ на каждой загрузке для монтирования хомяка (зашифрован весь хомяк) и я решил вынести ключ на флешку (sd card). Столкнулся с такой проблемой: при монтировании через fstab флешка монтируется позже, чем доходит дело до хомяка (хотя флешка на первой строке, а хомяк на последней), что приводит к фейлу. Потом нужно нажать ctrl+d и продолжить загрузку.

В интернете самое распространенное решение - это костыль в виде опции nofail + mount -a по завершению загрузки (через rc.local). Такое решение меня не устраивает в виду его костыльности. Аналогичный вариант - оставить запись с опцией noauto и монтировать через тот же rc.local
Пробовал добавлять модуль sd картридера в mkinitcpio - это также не дало результата.
Текущая реализация - вынес строку из fstab и монтирую посредством systemd, жестко указав зависимость от юнита mnt-key.mount. Не нравится жесткой зависимостью от systemd и тем, что часть системы монтируется через fstab, а часть - через s-d

IMO самое оптимальное - было бы заставить монтироваться флешку на раннем периоде загрузки. Можно ли этого как то достичь? Или мб существуют другие некостыльные методы?
PGP 0x31361F01
arcanisrepo
А что если ключ хранить не на разделе, а вместо одного из них? Ссылаясь на /dev/sdg5, например.
Lupus pilum mutat, non mentem.
если хранить ключ на том же компе, где происходит шифрование, то непонятно зачем тогда вообще что то шифровать =)
PGP 0x31361F01
arcanisrepo
arcanis
если хранить ключ на том же компе, где происходит шифрование, то непонятно зачем тогда вообще что то шифровать =)
Я имел ввиду раздел на флешке.
Lupus pilum mutat, non mentem.
jim945
Я имел ввиду раздел на флешке.
проблема - если я правильно понимаю - в том, что система не успевает загрузить модуль для картридера до монтирования.
===
Немного букаф:
journalctl -k | ix
$ lspci -s 02:00 -k
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
        Subsystem: Lenovo Device 220c
        Kernel driver in use: rtsx_pci
        Kernel modules: rtsx_pci
$ lsmod | grep rtsx
rtsx_pci_sdmmc         21217  0
rtsx_pci_ms            16898  0
mmc_core              110434  2 mmc_block,rtsx_pci_sdmmc
memstick               13696  1 rtsx_pci_ms
rtsx_pci               41951  2 rtsx_pci_ms,rtsx_pci_sdmmc
$ grep -i ^modules /etc/mkinitcpio.conf
MODULES="i915 rtsx_pci rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick"
Текущее решение:
$ cat /etc/systemd/system/home-arcanis.mount
[Unit]
Before=local-fs.target
After=mnt-key.mount

[Mount]
What=/home/arcanis
Where=/home/arcanis
Type=ecryptfs
Options=rw,nosuid,nodev,relatime,key=passphrase:passphrase_passwd_file=/mnt/key/t440-home,no_sig_cache,ecryptfs_fnek_sig=xxx,ecryptfs_sig=xxx,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n,ecryptfs_unlink_sigs

[Install]
WantedBy=local-fs.target
$ cat /etc/systemd/system/umount-key.service
[Unit]
Description=Unmount key card
Before=local-fs.target
After=home-arcanis.mount

[Service]
ExecStart=/usr/bin/umount /mnt/key

[Install]
WantedBy=local-fs.target
$ cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>

UUID=cd2e3630-94d8-4199-86ab-a931d7c2af37    /mnt/key ext2     ro,defaults                            0 0
UUID=a7f337d5-aede-427d-a36f-8fde7ef8905b    /        ext4     defaults,discard,noatime,nodiratime    0 1
UUID=0a45feb2-b104-4bf4-9585-5a0968f09ff7    /boot    ext2     defaults                               0 2
UUID=68bf91fb-4021-4a67-81eb-7fa817fc26ef    /home    ext4     defaults,discard,noatime,nodiratime    0 2
UUID=11eedbf9-7ef1-4e34-8a9e-e24b9bec749c    swap     swap     defaults
#/home/arcanis                           /home/arcanis ecryptfs rw,nosuid,nodev,relatime,key=passphrase:passphrase_passwd_file=/mnt/key/t440-home,no_sig_cache,ecryptfs_fnek_sig=xxx,ecryptfs_sig=xxx,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n,ecryptfs_unlink_sigs 0 0
PGP 0x31361F01
arcanisrepo
arcanis
проблема - если я правильно понимаю - в том, что система не успевает загрузить модуль для картридера до монтирования.
Вообще он должен грузиться хуком block
arcanis
/etc/fstab
Шифрованый раздел лучше прописывать в /etc/crypttab. Он читается раньше.
Если не поможет, то стоит посмотреть хуки encrypt или sd-encrypt.
Lupus pilum mutat, non mentem.
Про что я раньше говорил.
Попробуй на флешке выделить место под маленький раздел. Например sdg2
dd if=ключ of=/dev/sdg2
Соответственно /dev/sdg2 - путь до ключа. Если сработает, то модуль для картридера загружен. тогда и копать в сторону монтирования.

P.S. Лучше конечно использовать /dev/disk/by-id/...... для указания конкретного раздела.
Lupus pilum mutat, non mentem.
Давно хочу отказаться от входа в систему с использованием ввода логин+пароль.
Это устарело и можно сейчас для этого использовать и флешку и телефон и глаз и ......, но сдерживает то, что pam_usb используемый для этих целей находится в yaourt, установку приложений из которого не приветствую.
Статьи на эту тему имеются - если есть желание можешь попробовать.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Статьи на эту тему имеются - если есть желание можешь попробовать.
у меня авторизация в системе по отпечатку пальца. На биос и на syslinux, если я правильно понимаю, все равно пароль руками вводить надо. На шифрованный хомяк примерно что то сделал, но хочется лучше

jim945
Про что я раньше говорил.
Попробуй на флешке выделить место под маленький раздел. Например sdg2
dd if=ключ of=/dev/sdg2
Соответственно /dev/sdg2 - путь до ключа. Если сработает, то модуль для картридера загружен. тогда и копать в сторону монтирования.
или я что то не так делал или ecryptfs не позволяет читать файлы из /dev. В смысле он их из консоли восстановления даже прочитать не может (сам файл есть и прекрасно читается катом). crypttab, если я правильно понимаю, для ecryptfs не подходит. Хотя, это повод сменить систему шифрования.
PGP 0x31361F01
arcanisrepo
arcanis
ecryptfs
Не заметил сразу. Но это же костыль.
Lupus pilum mutat, non mentem.
 
Зарегистрироваться или войдите чтобы оставить сообщение.