በስርዓት ማስነሻ ጊዜ የLUKS መያዣን መፍታት

መልካም ቀንና ሌሊት ሁላችሁም! ይህ ልጥፍ የLUKS ዳታ ምስጠራን ለሚጠቀሙ እና በሊኑክስ (ዴቢያን፣ ኡቡንቱ) ስር ዲክሪፕት ማድረግ ለሚፈልጉ ጠቃሚ ይሆናል። የስር ክፋይ ዲክሪፕት የማድረግ ደረጃዎች. እና እንደዚህ አይነት መረጃ በኢንተርኔት ላይ ማግኘት አልቻልኩም.

ከቅርብ ጊዜ ወዲህ፣ በመደርደሪያዎቹ ውስጥ ያሉት የዲስኮች ብዛት በመጨመሩ፣ በ /etc/crypttab በኩል ከሚታወቀው የበለጠ ዘዴ በመጠቀም ዲስኮች ዲክሪፕት የማድረግ ችግር ውስጥ ገብቻለሁ። በግሌ ይህንን ዘዴ በመጠቀም ጥቂት ችግሮችን አጉልቻለሁ, ማለትም ፋይሉ እየተነበበ ነው የስር ክፋይ ከተጫነ በኋላ (ተራራ) ብቻበተለይም ከክፍሎች በ*_crypt መሳሪያ ላይ ከተገነቡ ወይም ከክፍፍሎች የተገነቡ የኤምዳድም ወረራዎችም ቢሆን የZFSን ማስመጣት ላይ አሉታዊ ተጽእኖ ያሳድራል። በLUKS ኮንቴይነሮች ላይ የተከፋፈሉ መጠቀም እንደሚችሉ ሁላችንም እናውቃለን፣ አይደል? እና እንዲሁም የሌሎች አገልግሎቶች መጀመሪያ ጅምር ችግር ፣ ገና ምንም ድርድሮች በሌሉበት ጊዜ ፣ ​​ግን መጠቀም አስቀድሜ የሆነ ነገር ያስፈልገኛል (ከክላስተር ፕሮክስሞክስ VE 5.x እና ZFS ከ iSCSI በላይ ነው የምሰራው)።

ስለ ZFSoverISCSI ትንሽiSCSI በ LIO በኩል ለእኔ ይሰራል, እና በእውነቱ, iscsi ዒላማው ሲጀምር እና የ ZVOL መሳሪያዎችን ካላየ, በቀላሉ ከማዋቀሪያው ያስወግዳቸዋል, ይህም የእንግዳ ስርዓቶች እንዳይነሱ ይከላከላል. ስለዚህ የ json ፋይል ምትኬን ወደነበረበት መመለስ ወይም ለእያንዳንዱ ቪኤም መለያ ያላቸው መሳሪያዎችን በእጅ ማከል ይህም በደርዘን የሚቆጠሩ እንደዚህ ያሉ ማሽኖች ሲኖሩ እና እያንዳንዱ ውቅረት ከ 1 ዲስክ በላይ ሲኖረው በጣም አስፈሪ ነው።

እና እኔ የማስበው ሁለተኛው ጥያቄ እንዴት ዲክሪፕት ማድረግ እንደሚቻል ነው (ይህ የጽሁፉ ዋና ነጥብ ነው)። እና ስለዚህ ጉዳይ ከዚህ በታች እንነጋገራለን ፣ ከቁርጡ በታች ይሂዱ!

ብዙ ጊዜ በይነመረብ ላይ ቁልፍ ፋይል ጥቅም ላይ ይውላል (ከዚህ በፊት በትእዛዙ ውስጥ በራስ ተጨምሯል - cryptsetup luksAddKey) ወይም ከስንት ልዩ ሁኔታዎች (በሩሲያኛ ቋንቋ በይነመረብ ላይ መረጃ በጣም ትንሽ ነው) - ዲክሪፕት_የተገኘ ስክሪፕት በ / lib/cryptsetup/script/ ውስጥ የሚገኝ (በእርግጥ ፣ ሌሎች መንገዶች አሉ ፣ ግን እነዚህን ሁለቱን ተጠቀምኩ ፣ ይህም የአንቀጹን መሠረት አቋቋመ)። እንዲሁም በኮንሶሉ ውስጥ ምንም ተጨማሪ ትዕዛዝ ሳይኖር ሁሉም ነገር በአንድ ጊዜ ለእኔ "እንዲበር" ከዳግም ማስነሳት በኋላ ሙሉ በሙሉ በራስ ገዝ እንዲካተት ጥረት አድርጌያለሁ። ስለዚህ ለምን ይጠብቁ? -

እንጀምር!

እንደ ዴቢያን በsda3_crypt ክሪፕቶ ክሪፕትሽን ላይ የተጫነ ስርዓት እና ለመመስጠር ዝግጁ የሆኑ ደርዘን ዲስኮች እናስብ። sda3_crypt ን ለመክፈት የይለፍ ሐረግ (የይለፍ ቃል) አለን ፣ እና ከዚህ ክፍልፍል ነው “ሀሽ” በሩጫ (ዲክሪፕት የተደረገ) ስርዓት ላይ ካለው የይለፍ ቃል ላይ የምናስወግደው እና ወደ ቀሪዎቹ ዲስኮች የምንጨምረው። ሁሉም ነገር የመጀመሪያ ደረጃ ነው ፣ በኮንሶሉ ውስጥ እኛ እንፈጽማለን-

/lib/cryptsetup/scripts/decrypt_derived sda3_crypt | cryptsetup luksFormat /dev/sdX

X የእኛ ዲስኮች ፣ ክፍልፋዮች ፣ ወዘተ ባሉበት።

ዲስኮችን በ "ሀሽ" ከኛ የይለፍ ሐረግ ካመሰጥሩ በኋላ UUID ወይም መታወቂያውን ማወቅ ያስፈልግዎታል - ማን ምን እና ምን እንደተጠቀመ ላይ በመመስረት። ከ/dev/disk/by-uuid እና by-id በቅደም ተከተል መረጃን እንወስዳለን።

ቀጣዩ ደረጃ ፋይሎችን እና ሚኒ-ስክሪፕቶችን ለምንፈልጋቸው ተግባራት እያዘጋጀ ነው፣ እንቀጥል፡-

cp -p /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks/
cp -p /usr/share/initramfs-tools/scripts/local-top/cryptroot /etc/initramfs-tools/scripts/local-top/

ተጨማሪ

touch /etc/initramfs-tools/hooks/decrypt && chmod +x /etc/initramfs-tools/hooks/decrypt

የ../ዲክሪፕት ይዘት

#!/bin/sh

cp -p /lib/cryptsetup/scripts/decrypt_derived "$DESTDIR/bin/decrypt_derived"

ተጨማሪ

touch /etc/initramfs-tools/hooks/partcopy && chmod +x /etc/initramfs-tools/hooks/partcopy

የ../partcopy ይዘቶች

#!/bin/sh

cp -p /sbin/partprobe "$DESTDIR/bin/partprobe"
cp -p /lib/x86_64-linux-gnu/libparted.so.2 "$DESTDIR/lib/x86_64-linux-gnu/libparted.so.2"
cp -p /lib/x86_64-linux-gnu/libreadline.so.7 "$DESTDIR/lib/x86_64-linux-gnu/libreadline.so.7"

ትንሽ ተጨማሪ

touch /etc/initramfs-tools/scripts/local-bottom/partprobe && chmod +x /etc/initramfs-tools/scripts/local-bottom/partprobe

ይዘት ../partprobe

#!/bin/sh

$DESTDIR/bin/partprobe

እና በመጨረሻ፣ ከማዘመን-initramfs በፊት፣ /etc/initramfs-tools/scripts/local-top/cryptroot ፋይልን ከመስመር ~360 ጀምሮ፣ከታች ያለውን የኮድ ቅንጣቢ ማረም አለቦት።

የመጀመሪያው


                # decrease $count by 1, apparently last try was successful.
                count=$(( $count - 1 ))
                
                message "cryptsetup ($crypttarget): set up successfully"
                break

እና ወደዚህ ቅጽ አምጣው

ተስተካክሏል።


                # decrease $count by 1, apparently last try was successful.
                count=$(( $count - 1 ))
                

                /bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-uuid/ *CRYPT_MAP*
                /bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-id/ *CRYPT_MAP*

                message "cryptsetup ($crypttarget): set up successfully"
                break

UUID ወይም መታወቂያ እዚህ መጠቀም እንደሚቻል ልብ ይበሉ። ዋናው ነገር ለኤችዲዲ / ኤስኤስዲ መሳሪያዎች አስፈላጊዎቹ አሽከርካሪዎች ወደ /etc/initramfs-tools/modules ተጨምረዋል. ከትእዛዙ ጋር የትኛው አሽከርካሪ ጥቅም ላይ እንደሚውል ማወቅ ይችላሉ udevadm መረጃ -a -n /dev/sdX | egrep 'seeking|ሹፌር'.

አሁን እንደጨረስን እና ሁሉም ፋይሎች በቦታቸው ላይ ሲሆኑ, አሂድ አዘምን-initramfs -u -k ሁሉ -v, በመመዝገብ ላይ መሆን የለበትም የእኛ ስክሪፕቶች አፈጻጸም ስህተቶች. እንደገና አስነሳን, የይለፍ ሐረጉን አስገባን እና እንደ ዲስኮች ብዛት ትንሽ እንጠብቃለን. በመቀጠል ስርዓቱ ይጀመራል እና በመጨረሻው የማስጀመሪያ ደረጃ ላይ ማለትም የስር ክፋይን "ከተጫነ" በኋላ የፓርትፕሮብ ትዕዛዙ ይፈጸማል - ሁሉንም የተፈጠሩ ክፍሎችን በ LUKS መሳሪያዎች እና በማናቸውም ድርድሮች ላይ ያገኛል እና ያነሳል, ZFS ወይም mdadm, ያለምንም ችግር ይሰበሰባል! እና ይሄ ሁሉ ከመጫኑ በፊት እነዚህን ዲስኮች/ድርድር የሚያስፈልጋቸው ዋና አገልግሎቶች እና አገልግሎቶች።

አዘምን 1: እንዴት አስተውሏል ኤኤፒ, ይህ ዘዴ ለ LUKS1 ብቻ ነው የሚሰራው.

ምንጭ: hab.com

አስተያየት ያክሉ