मैं एक LUKS विभाजन को कैसे छोटा कर सकता हूं, 'cryptsetup resize` क्या करता है?


14

मैं एक LUKS एन्क्रिप्टेड विभाजन के आकार में प्रगति कर रहा हूं जिसमें एक एकल ext4 फाइलसिस्टम (कोई LVM या कुछ नहीं) है। Cryptsetup पूछे जाने वाले प्रश्न पुराने विभाजन को हटाने और इसे पुन:, लेकिन वह एक बहुत समय बर्बाद कर की तरह लगता है की सिफारिश की। इसलिए मैं मैन्युअल रूप से विभाजन का सावधानीपूर्वक निरीक्षण करना चाहता हूं।

अब तक, मुझे लगता है कि मुझे करने की आवश्यकता है:

  1. फाइलसिस्टम का (एन्क्रिप्टेड) ​​बैकअप बनाएं। महत्वपूर्ण! आप निम्न कार्य करते हुए अपना डेटा खोने वाले पहले व्यक्ति नहीं होंगे।
  2. मौजूदा ext4 फाइलसिस्टम को अनमाउंट करें (जैसे लाइव सीडी में बूट करके)। यदि एक लाइव सीडी से बूट हो रहा है, तो एन्क्रिप्टेड विभाजन का उपयोग करके माउंट करेंcryptsetup luksOpen /dev/sdXY ExistingExt4
  3. मौजूदा ext4 फाइल सिस्टम का आकार बदलें
  4. cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
  5. उपयोग कर LUKS विभाजन को बंद / "अनमाउंट" करें cryptsetup luksClose ExistingExt4
  6. विभाजन आकार को सिकोड़ें।

क्या उपरोक्त चरण सही हैं?

चरण 4 में, मुझे क्या चुनना चाहिए $SECTORS? क्या यह कदम भी आवश्यक है? cryptsetupमैन्युअल पृष्ठ वास्तव में पर वर्णनात्मक नहीं है resizeविकल्प:

resize <name>
    resizes an active mapping <name>.
    If --size (in sectors) is not specified, the size of the underlying
    block device is used.

अंत में, अगर मैं ext 4 विभाजन को 15 GiB से सिकोड़ता हूं, तो क्या मैं सुरक्षित रूप से मान सकता हूं कि उपयोग कर रहे मौजूदा विभाजन से 15 GiB को हटाया जा सकता है parted? यदि हाँ, तो कैसे करें? मेरी डिस्क GPT विभाजित है, अगर यह मायने रखता है।


1
मैं हमेशा के रूप में अच्छी तरह से cryptsetup पर आकार परिवर्तन विकल्प के बारे में सोचा है। यहां तक ​​कि cryptsetup FAQ में कहा गया है: "2.15 क्या मैं dm-crypt या LUKS स्तर का आकार बदल सकता हूं? हां, आप कर सकते हैं, जैसा कि न तो dm-crypt है और न ही LUKS, विभाजन आकार को संग्रहीत करता है।" तो यह एक आकार विकल्प क्यों है अगर इसका विभाजन आकार के साथ कोई लेना-देना नहीं है ...
डागो

जवाबों:


15

बैकअप fsckसिस्टम (चरण 1) और अनमाउंटिंग (2 और 3 के बीच) के बाद, सुनिश्चित करें कि फाइलसिस्टम स्वस्थ है:

e2fsck -f /dev/mapper/ExistingExt4

इसके अलावा, कदम ठीक हैं।

मुझे $ सेक्टर्स के लिए क्या चुनना चाहिए? क्या यह कदम भी आवश्यक है?

यह कदम आवश्यक है, अन्यथा विभाजन अभी भी पुराने पक्ष में दिखाई देगा। नौटिलस के साथ इसकी पुष्टि की गई है, यहां तक ​​कि आकार बदलने के बाद भी resize2fs, एलयूकेएस विभाजन ने पुराने आकार के रूप में दिखाया। चलाने के बाद cryptsetup resize, सही संख्या दिखाई गई है। यह कदम आवश्यक नहीं है। यह केवल वर्तमान आकार की स्थिति को प्रभावित करता है जैसा कि फ़ाइल ब्राउज़र में दिखाया गया है। आकार बदलने और विभाजन को फिर से खोलने / बंद करने के बाद, संख्या बहाल हो जाती है। इसलिए, जब एलयूकेएस विभाजन को बंद करना जैसा कि बाद में दिखाया गया है, यह अप्रचलित कर देगा।

$SECTORSके उत्पादन को देखकर निर्धारित किया जा सकता है cryptsetup status ExistingExt4:

    / dev / mapper / ExistingExt4 सक्रिय है।
      प्रकार: LUKS1
      सिफर: aes-cbc-Essiv: sha256
      Keyize: 256 बिट्स
      उपकरण: / देव / sda2
      ऑफसेट: 2056 सेक्टर
      आकार:     156049348 सेक्टर
      मोड: पढ़ें / लिखें

एक सेक्टर हमेशा 512 बाइट्स ( cryptsetupमैनुअल पेज में उल्लिखित ) होता है। इस प्रकार, 15 GiB घटाना, एक सेक्टर आकार का उपयोग करें 156049348 - 15 * 1024 * 1024 * 2 = 124592068:

cryptsetup resize ExistingExt4 -b 124592068

विभाजन का आकार बदलने के लिए, partedGPT विभाजन के साथ ठीक काम करता है। resizeआदेश हालांकि काम नहीं करता है, एक समाधान (या समाधान) के रूप में, विभाजन जानकारी को हटाने और रूप से प्रेरित एक नया विभाजन बनाने http://ubuntuforums.org/showthread.php?p=8721017#post8721017 :

# cryptsetup luksClose ExistingExt4 
# parted / dev / sda2
जीएनयू भाग २.३
का उपयोग कर / देव / sda
ग्नू में आपका स्वागत है! आदेशों की सूची देखने के लिए 'सहायता' टाइप करें।
(parted) यूनिट s 
(पार्टेड) p
मॉडल: ATA INTEL SSDSA2CW08 (scsi)
डिस्क / देव / sda: 156301488s
सेक्टर का आकार (तार्किक / भौतिक): 512B / 512B
विभाजन तालिका: gpt

नंबर स्टार्ट एंड साइज फाइल सिस्टम नाम झंडे
 1 34s 2082s 2049s बूट bios_grub
 3 2083s 250034s 247952s ext2 रूटबूट
 2 250035s 156301438s 156051404s सब कुछ

जैसा कि 15 GiB का मुंडन करना होता है, नया अंत बन जाता है 156301438 - 15 * 1024 * 1024 * 2 = 124844158। चूंकि मैं विभाजन 2 को बदलना चाहता हूं, इसलिए मुझे पहले इसे हटाना होगा और फिर इसे "सब कुछ" लेबल के साथ फिर से बनाना होगा (यदि आप चाहें तो इसे बदला जा सकता है)। नोट : इस डिस्क में GPT लेआउट है। एमबीआर के लिए, आपको ( या अनुपलब्ध Everythingद्वारा प्रतिस्थापित किया जाना चाहिए , एमबीआर पर विभाजन का परीक्षण नहीं किया गया है और अनुशंसित नहीं है क्योंकि यह अप्राप्त है)।primaryextended

चेतावनी : निम्न आदेशों ने डेटा को नष्ट कर दिया है । जो हो रहा है उसे समझे बिना उसकी नकल न करें। क्षेत्र आयाम चाहिए बदला जा, अन्यथा आप होगा अपने विभाजन (रों) को नष्ट कर। मैं किसी भी तरह अपनी stupidness, के लिए जिम्मेदार में हूँ बैकअप बैकअप बैकअप एक के लिए अपने डेटा दूसरा अपने डेटा को खतरे में डालकर से पहले भंडारण माध्यम।

(parted) rm 2 
( पार्टेड ) mkpart सब कुछ 250035s 124844158s
चेतावनी: परिणामी विभाजन को सर्वश्रेष्ठ प्रदर्शन के लिए ठीक से संरेखित नहीं किया गया है।
ध्यान न दें / रद्द करें? अनदेखा 
(जुदा) p
मॉडल: ATA INTEL SSDSA2CW08 (scsi)
डिस्क / देव / sda: 156301488s
सेक्टर का आकार (तार्किक / भौतिक): 512B / 512B
विभाजन तालिका: gpt

नंबर स्टार्ट एंड साइज फाइल सिस्टम नाम झंडे
 1 34s 2082s 2049s बूट bios_grub
 3 2083s 250034s 247952s ext2 रूटबूट
 2 250035s   124844158s 124594124s                सब कुछ
(parted) छोड़ दिया

उपरोक्त partedउदाहरण में, मेरे क्षेत्र संरेखित नहीं हैं जो पहले की स्थापना से एक गलती है, इस पर बहुत अधिक ध्यान न दें।

बस इतना ही! आप उपयोग कर सकते हैं cryptsetup statusऔर file -Ls /dev/...यह सत्यापित करने के लिए कि सब कुछ ठीक है और फिर रिबूट करें।


1
मैं पूर्ण समाधान के बिना इस समाधान का उपयोग करने के खिलाफ दृढ़ता से सलाह देता हूं, क्योंकि यह गलत होने की अत्यधिक संभावना है। लेकिन अगर आपके पास एक पूर्ण बैकअप है, तो एक नया विभाजन बनाना बहुत आसान है।

मुझे लगता है, एक मानव ने यह किया है? वैसे भी मैंने अब स्पष्ट रूप से जोर दिया है कि इसके साथ खेलने से पहले एक बैकअप किया जाना चाहिए। मैंने सोचा कि यह स्पष्ट है कि इस तरह से मैन्युअल रूप से करने से पहले एक बैकअप प्रदर्शन करना होगा ... फिर भी कोई इसे कैसे गड़बड़ कर सकता है यह सत्यापित करने के लिए स्पष्ट निर्देश और तरीके दिए गए हैं?
लेकेनस्टाइन

क्या आपके पास आपके द्वारा उल्लिखित विफलता का स्रोत भी है? हर कोई यह दावा कर सकता है कि प्रदान की गई जानकारी गलत है, लेकिन मैं इसे सत्यापित करना चाहूंगा। यह भविष्य में अन्य उपयोगकर्ताओं के लिए मददगार हो सकता है ...
लेकेनस्टाइन

Arno मेलिंग सूची में इस पोस्ट के बारे में बात कर रहा था: saout.de/pipermail/dm-crypt/2013-Seture/003521.html
फिलिप

इसके बजाय rm 2और mkpart [part-type] [start] [end], एक भी उपयोग कर सकते हैं resizepart 2 [end]नाम बदले बिना एक विभाजन का आकार बदलने के लिए या ऑफसेट शुरू करते हैं।
डब्ल्यू में रॉ डब्ल्यू डब्ल्यू

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