LVM on LUKS: --activationmode partial

Fórumok

A gépben van egy SSD és egy HDD, LVM on LUKS-szal használva (a /boot-ot leszámítva). Alábbiakban a lsblk kimenete:

NAME                      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                         8:0    0 111,8G  0 disk  
├─sda1                      8:1    0   512M  0 part  /boot
└─sda2                      8:2    0 111,3G  0 part  
  └─VolGroupArch          254:0    0 111,3G  0 crypt 
    ├─VolGroupArch-swap   254:1    0    16G  0 lvm   [SWAP]
    └─VolGroupArch-rootfs 254:2    0    20G  0 lvm   /
sdb                         8:16   0 931,5G  0 disk  
└─sdb1                      8:17   0 931,5G  0 part  
  └─encryptdata           254:3    0 931,5G  0 crypt 
    ├─VolGroupArch-var    254:4    0    20G  0 lvm   /var
    └─VolGroupArch-home   254:5    0   100G  0 lvm   /home

Az LV-k mind egy VG alá tartoznak. Az sdb-n lévő LUKS-ot egy sda2-n lévő kulccsal oldom fel, ez viszont azt eredményezte, hogy a rootfs jelszavát megadva "Failed to start LVM2 PV scan on device 254:0." üzenet jelenik meg a screenen. journalctl -u lvm2-pvscan@254:0 kimenete:

okt 21 19:51:40 archlinux systemd[1]: Starting LVM2 PV scan on device 254:0...
okt 21 19:51:40 archlinux lvm[353]: WARNING: Device for PV xE8NLv-FC3x-zc76-qOfN-QNqB-l2AP-F3cMUc not found or rejected by a filter.
okt 21 19:51:40 archlinux lvm[353]: Refusing refresh of partial LV VolGroupArch/var. Use '--activationmode partial' to override.
okt 21 19:51:40 archlinux lvm[353]: Refusing refresh of partial LV VolGroupArch/home. Use '--activationmode partial' to override.
[...]
okt 21 19:51:41 archlinux lvm[353]: VolGroupArch: refresh before autoactivation failed.
okt 21 19:51:41 archlinux lvm[353]: Refusing activation of partial LV VolGroupArch/var. Use '--activationmode partial' to override.
okt 21 19:51:41 archlinux lvm[353]: Refusing activation of partial LV VolGroupArch/home. Use '--activationmode partial' to override.
okt 21 19:51:41 archlinux lvm[353]: 2 logical volume(s) in volume group "VolGroupArch" now active
okt 21 19:51:41 archlinux lvm[353]: VolGroupArch: autoactivation failed.
okt 21 19:51:41 archlinux systemd[1]: lvm2-pvscan@254:0.service: Main process exited, code=exited, status=5/NOTINSTALLED
okt 21 19:51:41 archlinux systemd[1]: lvm2-pvscan@254:0.service: Failed with result 'exit-code'.
okt 21 19:51:41 archlinux systemd[1]: Failed to start LVM2 PV scan on device 254:0.

Az --activationmode partial paraméter használatát ajánlja, viszont fogalmam sincs hogyan tudom megadni ezt neki.

mkinitcpio.conf vonatkozó része:
HOOKS="base udev autodetect modconf block keymap encrypt lvm2 filesystems keyboard fsck"
Ezen kívül mást nem módosítottam rajta.

Ha minden igaz, akkor /usr/lib/systemd/system/lvm2-pvscan@.service-ben van definiálva ez. Elvileg felül lehet írni a /etc/systemd/system/-ben létrehozott fájllal, viszont a pvscan man-jában nem láttam activationmode kapcsolót.

Első próbálkozásom az LVM on LUKS-szal, szóval lehet hogy alapoktól rosszul alakítottam ki a struktúrát, de leírások alapján így kell csinálni.

Tudnátok segíteni, hogy ezt az utolsó boottal kapcsolatos problémát feloldhassam? Nem biztos, hogy minden releváns információt (érthetően) leírtam, így ha valami kiegészítésre van szükség csak szóljatok.

Hozzászólások

Szamomra nemigazan tiszta, ha jol ertem sda2 es sdb1 kozos volume group-ban van, akkor hogy tartod sda2-n a kulcsot sdb-hez, vagy hol van az a kulcs akkor?
Ha kozos volume group akkor az igy nezne ki es nem lenne megkulonboztetve melyik lv melyik eszkozon van:
└─VolGroupArch 254:0 0 111,3G 0 crypt
├─VolGroupArch-swap 254:1 0 16G 0 lvm [SWAP]
└─VolGroupArch-rootfs 254:2 0 20G 0 lvm /
├─VolGroupArch-var 254:4 0 20G 0 lvm /var
└─VolGroupArch-home 254:5 0 100G 0 lvm /home

Mondjuk annak se latom ertelmet hogy hdd-t meg ssd-t kozos volume group-ba tenni, esetleg akkor ha ssd-t valami cache-nek allitod be, egyebkent csak igy osszekavarva sok jo nem lesz belole.

Ha megsincs kozos vg-ben akkor azt kell elerned hogy sdb-hez tartozo kulcsot felolvassa mikor crypt megprobalja feloldani (/etc/crypttab vagy futtatsz egy scriptet erre), persze az utan hogy elerheto az a file, ami ha jol tippelek akkor lesz ha sda-n levo lvm-et felcsatolta, utana kellene neki ujra visszaterny crytpsetup kerdeshez sdb-n es ha az sikerult akkor lvm sdb-n.
Esetleg azt is megprobalhatod hogy beadod ugyanazt a jelszot (pluszba) sdb-nek, hatha van annyi inteligencia a rendszerben hogy raprobalja automatan sdb-re is azt a jelszot amit beadtal sda-nak, vagy csak siman 2-szer adod be a jelszot boot-kor, aligha lesz attol kevesbe biztonsagos a rendszer hogy mindket eszkoznek ugyanaz a jelszava.

Egy vg-ben vannak: lvdisplay kimenete
Talán azért különbözteti meg disk szinten, mert megadtam neki hogy melyik lv hova kerüljön. SSD-n csak a swapot és a rootfs-t szerettem volna látni. sdb-n lévő encryptdata név a crypttab-ból jön. Azt mondod, hogy ebben az esetben szerencsésebb lenne külön vg-t kialakítani a két disken? Mondjuk az valószínűleg meg is szüntetné ezt a problémámat.

A két partíciónak ugyanaz a jelszava, csak az sdb-n lévő titkosított meghajtó kapott még egy plusz kulcsot is, hogy ne kelljen két jelszót megadni. Sajnos nem próbálja meg ugyanazzal feloldani sdb-t is.

Hat ha megadod dedikaltan hogy melyik lv melyik pv-n legyen akkor ennyi erovel lehetne kulon vg is es kevesebb gondod lenne, legalabbis en nem latom mi haszna akkor egy vg-be tenni oket.

Az is egy lehetoseg, hogy sdb-n levo particiokra kikapcsolod automount-ot es teszel egy scriptet ami a kulccsal feloldja sdb-t es mountolja a rajta levo lv-ket.

De lehet van egyeb automata megoldasa is hogy azt felismerje es crypttab-ban megadott kulccsal feloldja majd lvm es mount-ot megoldja.

1. tipp: Ellenőrizd hogy milyen paramétereket kap a kernel induláskor.
wiki: https://wiki.archlinux.org/index.php/kernel_parameters#systemd-boot
2. tipp: 2 diszk feloldásához készítened kell egy másolatot az encrypt hook-ról mondjuk encrypt2 néven - módosítani - és felvenni ue néven a mkinitcpio.conf-ba. A második lemezhez a feloldókulcs praktikusan lehetne egy fájl az első lemezen, így csak az sda1-es feloldásához kéri be a jelszót. De ez csak tipp. Még nem használtam így két lemezt. :)
wiki: https://wiki.archlinux.org/index.php/Dm-crypt/Specialties#Modifying_the…