मेरा एन्क्रिप्टेड LVM वॉल्यूम (LUKS डिवाइस) बूट समय पर माउंट क्यों नहीं होगा?


15

मैं इस गाइड के बाद एक एन्क्रिप्टेड वॉल्यूम सेटअप करने की कोशिश कर रहा हूं

सब कुछ सेटअप है लेकिन त्रुटि के साथ बूट-टाइम पर एन्क्रिप्टेड वॉल्यूम बढ़ाना विफल रहता है:

fsck.ext4: / dev / mapper / safe_vault को खोलने की कोशिश करते समय ऐसी कोई फ़ाइल या निर्देशिका नहीं है जो संभवतः गैर-मौजूद उपकरण है?

यह मेरा सेटअप है:

crypttab

$ sudo cat /etc/crypttab
safe_vault  /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b  none    luks

ध्यान दें:

uuidसे आता है:

$ sudo blkid /dev/mapper/<my_logical_group>-safe_vault 
/dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS" 

fstab

$ sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault      /safe-vault     ext4    defaults    0 2

मैंने क्या किया...

इसलिए मैं भक्त की वेबसाइट पर गया और सामान्य समस्याओं में वे कहता है:

जांचें कि आपके पास डिवाइस कर्पर और आपके कर्नेल में क्रिप्ट लक्ष्य है। "Dmsetup लक्ष्य" के आउटपुट को "क्रिप्ट" लक्ष्य को सूचीबद्ध करना चाहिए। यदि यह नहीं है या कमांड विफल रहता है, तो कर्नेल में डिवाइस मैपर और क्रिप्ट-लक्ष्य जोड़ें।

तो मैंने किया, पता चला कि मेरे पास कोई cryptलक्ष्य नहीं है :

$ sudo dmsetup targets
striped          v1.4.1
linear           v1.1.1
error            v1.0.1

समस्या यह है कि मुझे नहीं पता कि इस तरह के लक्ष्य को कैसे जोड़ा जाए।

मुझे लगता है कि यह ( cryptलक्ष्य नहीं होने के कारण) हो सकता है कि crypttabकॉन्फ़िगरेशन बूट-टाइम पर नजरअंदाज कर दिया जाए और इस तरह प्रवेश को fstabविफल करने की कोशिश की जा रही है क्योंकि cryptsetupमेरे एन्क्रिप्टेड वॉल्यूम को मैप नहीं किया गया है /dev/mapper/safe_vault

ध्यान दें:

एन्क्रिप्टेड वॉल्यूम को मैन्युअल रूप से मैप, माउंट और लिखा जा सकता है:

$ sudo cryptsetup luksOpen /dev/mapper/<my_logical_group>-safe_vault safe_vault
Enter passphrase for /dev/mapper/<my_logical_group>-safe_vault: 

$ sudo mount /dev/mapper/safe_vault /safe_vault

मैपिंग और माउंटिंग के बाद यह कैसा दिखता है:

$ sudo lsblk -o name,uuid,mountpoint
NAME                                  UUID                                   MOUNTPOINT
sda                                                                          
├─sda1                                28920b00-58d3-4941-889f-6249357c56ee   
├─sda2                                                                       
└─sda5                                uhBLE7-Kcfe-RMi6-wrlX-xgVh-JfAc-PiXmBe 
  ├─<my_logical_group>-root (dm-0)       1bed9027-3cf7-4f8d-abdb-28cf448fb426   /
  ├─<my_logical_group>-swap_1 (dm-1)     a40c16c4-7d0c-46d7-afc8-99ab173c20bb   [SWAP]
  ├─<my_logical_group>-home (dm-2)       e458abb7-b263-452d-8670-814fa737f464   /home
  ├─<my_logical_group>-other (dm-3)      0a1eec42-6534-46e1-8eab-793d6f8e1003   /other
  └─<my_logical_group>-safe_vault (dm-4) d266ae14-955e-4ee4-9612-326dd09a463b   
    └─safe_vault (dm-5)               9bbf9f47-8ad8-43d5-9c4c-dca033ba5925   /safe-vault
sr0  

अपडेट करें

  • यह पता चला है कि मेरे पास cryptलक्ष्य है, लेकिन इसके लिए dmsetup targetsमुझे पहले दिखाना थाcryptsetup luksOpen <my-device>
  • मैंने UUID@Mikhail Morfikov के उत्तर के अनुसार s का उपयोग करने की कोशिश की है लेकिन यह अभी भी बूट-टाइम पर विफल है।

मुझे अभी भी लगता है कि मुद्दा यह है कि किसी भी तरह एन्क्रिप्टेड वॉल्यूम को cryptsetup luksOpenबूट-टाइम पर मैप नहीं किया जा रहा है (इस तरह खोला गया ) इस प्रकार /dev/mapper/<safe_vault or UUID>मौजूद नहीं है, फिर इसे माउंट करने की कोशिश करना (fstab) विफल रहता है।

अद्यतन २

यह पता चला है कि मेरे पास बूट समय पर माउंट करने के लिए आवश्यक स्क्रिप्ट नहीं थी। @ मिखाइलमॉर्फिकोव के उत्तर में नोट देखें।


1
क्या आपके द्वारा मैन्युअल रूप से करने के बाद क्रिप्ट लक्ष्य दिखाई देता है luksOpen? मुझे उम्मीद है कि अगर यह नहीं होता, तो luksOpen भी विफल होता।
बजे एक CVn

ठीक है, sudo cryptsetup luksOpenदो नए लक्ष्य सामने आने के बाद sudo dmsetup targets: errorऔर crypt। मुझे लगता है कि मुझे इस प्रश्न को बदलने की आवश्यकता है ...
pgpb.padilla

यह एक विभाजन या एक फ़ाइल कंटेनर है?
मिखाइल मोरफिकोव

/dev/mapper/<my-logical-volume>-safe_vaultLVM के साथ बनाया गया एक तार्किक आयतन है और /dev/mapper/safe_vaultऐसा करने वाला उपकरण है cryptsetup luksOpen /dev/mapper/<my-logical-volume>-safe_vault। क्या आपको पता है कि crypttabLVM वॉल्यूम के साथ काम करता है?
pgpb.padilla

मेरे पास एक luks विभाजन के अंदर lvm है, वास्तव में मेरे पास मेरी पूरी 1,5TB डिस्क एन्क्रिप्टेड (को छोड़कर /boot) है। सभी एक समस्या के बिना बूट पर मुहिम शुरू की। क्या आप वाकई initramfsएडिटिंग के बाद अपडेट हुए हैं /etc/crypttab? lsblk -o name,uuid,mountpointजब सब कुछ आरोहित होता है तो क्या आप इसका उत्पादन दिखा सकते हैं और जैसा होना चाहिए वैसा ही काम करता है?
मिखाइल मोरफिकोव

जवाबों:


16

आपको यूयूआईडी पर ध्यान देना होगा। उदाहरण के लिए, यह मेरा कॉन्फ़िगरेशन है:

# lsblk -o name,uuid,mountpoint
├─sda2                         727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)          P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│   ├─debian_crypt-swap (dm-1) 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0   [SWAP]
│   ├─debian_crypt-tmp (dm-2)  93fc8219-f985-45fb-bd5c-2c7940a7512d   /tmp
│   ├─debian_crypt-home (dm-3) 12e8566c-8f0f-45ec-8524-6d9d9ee91eae   /home
│   └─debian_crypt-root (dm-4) 9685570b-4c9e-43ea-815e-49d10dc7a1bf   /

मेरे पास 4 संस्करणों (LVM) के साथ एक एन्क्रिप्टेड पार्टीशन (sda2) है। मुझे सही फ़ाइलों में दो UUIDs सेट करने की आवश्यकता है। Sda2 UUID को जाता है /etc/crypttabऔर मात्रा UUID (उदाहरण के debian_crypt-रूट के लिए) को जाता है /etc/fstab

तो, यह होगा:

# cat /etc/crypttab
sda2_crypt              UUID=727fa348-8804-4773-ae3d-f3e176d12dac   none        luks

# cat /etc/fstab
UUID=9685570b-4c9e-43ea-815e-49d10dc7a1bf       /               ext4    defaults,errors=remount-ro              0 1

/etc/crypttabफ़ाइल बदलने के बाद , आपको initramfs को फिर से बनाना होगा:

# update-initramfs -u -k all

ध्यान दें

पैकेज cryptsetupस्थापित करना होगा क्योंकि इसमें स्टार्टअप स्क्रिप्ट हैं जो बूट पर एन्क्रिप्टेड वॉल्यूम को स्वचालित करने के लिए समर्थन प्रदान करती हैं।

इसका जिक्र करने की जहमत क्यों? खैर, अगर स्थापना डेबियन खरखरा दौरान आप सेटअप एलवीएम स्थापित करता संकुल cryptsetup-बिन , libcryptsetup4और lvm2नहीं बल्कि cryptsetup, इस प्रकार आप सेटअप एलवीएम और LUKS युक्तियाँ करने के लिए उपकरण नहीं लिपियों आवश्यक लेकिन बूट समय पर LUKS युक्तियाँ माउंट करना होगा। वे पैकेज क्रायसिपेटअप में आते हैं ।


मैंने प्रयोग करने की कोशिश की है UUIDलेकिन मुझे वही त्रुटि मिली। मैं विवरण के साथ प्रश्न को अपडेट करूंगा।
pgpb.padilla

नमस्ते, यह बहुत लंबा हो रहा है, क्या हम चैट कर सकते हैं ?
pgpb.padilla

एक तरफ के रूप में, भले ही आप / etc / crypttab को संपादित नहीं करते हैं, ऐसा लगता है कि यदि आप कुछ एन्क्रिप्शन सेटिंग्स को बदलते हैं तो डिस्क आपके लिए इसे संपादित कर देगा। इस उत्तर से मुझे उन गलतियों को ठीक करने में मदद मिली जो मैंने डिस्क के साथ की थी (और संभवत: अधिक गलतियाँ डिस्क को हटाने की कोशिश करते समय)।
ऋषि

0

ऐसा लगता है कि @Mikhail Morfikov का उत्तर initramfs चरण के दौरान बढ़ते हुए है । एक वैकल्पिक (अगर यह जड़ फाइल सिस्टम नहीं है) को डिक्रिप्ट और के माध्यम से स्वचालित रूप से विभाजन माउंट करने के लिए है systemd , के बाद linuz गिरी भरी हुई है। बेशक यह केवल तभी संभव है जब आप सिस्टमड चला रहे हों । मैं यहाँ विधि की व्याख्या करूँगा:

/etc/crypttabप्रविष्टि:

crypt2 UUID=e412-blahblah /path/to/crypt2.key luks,noauto

यहाँ noautoएक निर्देश है कि initramfs चरण के दौरान डिस्क को डिक्रिप्ट करने की कोशिश करें ।

ऊपर, e412-blahblahविभाजन प्रणाली का UUID है जिसमें मेरे सिस्टम में विभाजन है /dev/sdb2:

# blkid | grep sdb2
/dev/sdb2: UUID="e41274d8-fd83-4632-b560-ad0ba113ae75" TYPE="crypto_LUKS" PARTUUID="5673a908-02"

के दौरान linuz गिरी स्टार्टअप, systemd पढ़ा जाएगा /etc/crypttabफाइल और एक क्रम सेवा फ़ाइल बनाने /run/systemd/generator/systemd-cryptsetup@crypt2.service। हालाँकि, यह सेवा स्वचालित रूप से नहीं चलती है। आप इसे मैन्युअल रूप से चला सकते हैं

systemctl start systemd-cryptsetup@crypt2.service

लेकिन इसे डिक्रिप्ट करने और फिर स्टार्टअप के दौरान इसे माउंट करने के लिए निम्नानुसार इसकी आवश्यकता/etc/fstab हो सकती है:

/dev/mapper/crypt2--vg-data /media/crypt-data ext4 defaults,noauto,user,x-systemd.automount,x-systemd.requires=systemd-cryptsetup@crypt2.service 0 2

यहाँ x-systemd.automountकरने के लिए एक निर्देश है systemd माउंट करने के लिए /media/crypt-data, और x-systemd.requires=systemd-cryptsetup@crypt2.serviceकरने के लिए एक निर्देश है systemd की कि डिक्रिप्शन crypt2की आवश्यकता है इससे पहले कि संभव है।

में systemd वास्तव में पहली बार इस तक पहुंच, जैसे जब तक निर्देशिका माउंट नहीं होगा ls /media/crypt-data, तो यह माउंट जस्ट-इन-समय और उसके बाद में दिखाई देगा /proc/mounts


सम्बंधित

आप पूछ सकते हैं "* रूट फाइल सिस्टम में कुंजी के साथ एन्क्रिप्टेड डेटा डिस्क क्यों है?"। ऐसा इसलिए है क्योंकि रूट फ़ाइल सिस्टम भी एन्क्रिप्ट किया गया है, इसलिए कुंजी सुरक्षित है। रूट फाइल सिस्टम बूट के initramfs चरण के दौरान डिक्रिप्ट किया जाता है , एक ला मिखाइल का जवाब। मेरे पास उसके लिए /etc/crypttabफाइल में एक और प्रविष्टि है:

crypt1 UUID=8cda-blahbalh none luks,discard,lvm=crypt1--vg-root

और मैं यहाँ एक बूट USB सेट करने का वर्णन करता हूँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.