2015-07-06 9 views
5

मैं कम डिस्क स्थान के साथ ईबीएस वॉल्यूम पर जाने के लिए https://matt.berther.io/2015/02/03/how-to-resize-aws-ec2-ebs-volumes/ और http://atodorov.org/blog/2014/02/07/aws-tip-shrinking-ebs-root-volume-size/ पर निर्देशों का उपयोग कर रहा था। दोनों ही मामलों में, जब मैं shrinked EBS मात्रा संलग्न है (जैसा कि/dev/xdva या/dev/sda1, न तो काम करता है) एक EC2 उदाहरण के लिए और इसे शुरू, यह संदेशरूट ईबीएस वॉल्यूम का आकार बदलने के बाद ईसी 2 इंस्टेंस सही तरीके से क्यों शुरू नहीं होता है?

State transition reason 
Client.InstanceInitiatedShutdown: Instance initiated shutdown 

कुछ के साथ अपने आप ही बंद हो जाता है अधिक tinkering और मैंने पाया कि नई मात्रा में BIOS बूट विभाजन नहीं था। इसलिए मैंने एक बनाने के लिए gdisk का उपयोग किया और एमबीआर को मूल वॉल्यूम से कॉपी किया (जो काम करता है और जिसका उपयोग मैं उदाहरण शुरू कर सकता हूं) नई मात्रा में। अब उदाहरण समाप्त नहीं हुआ है, लेकिन मैं नए लॉन्च किए गए इंस्टेंस में एसएसएच नहीं कर पा रहा हूं।

इस घटना के पीछे क्या कारण हो सकता है? मैं यह क्यों हो रहा है पर अधिक जानकारी (लॉग/एडब्ल्यूएस कंसोल आदि से) कैसे प्राप्त कर सकता हूं?

+0

आप अपनी मशीन के लिए क्या उपयोग कर रहे हैं? क्या आपके पास एडब्ल्यूएस ईसी 2 कंसोल -> Syslog में कुछ भी है? – Mircea

+0

अमेज़ॅन लिनक्स और एडब्ल्यूएस ईसी 2 कंसोल खाली था। –

उत्तर

2

समस्या BIOS बूट विभाजन के साथ थी। मैं पहले एक छोटे ईबीएस वॉल्यूम के साथ एक उदाहरण शुरू करने के द्वारा इसे हल करने में सक्षम था। फिर वॉल्यूम को अलग करना और इसे एक उदाहरण में संलग्न करना whihc का उपयोग सामग्री को प्रतिलिपि बनाने के लिए किया जाएगा, जिससे वह बड़ी मात्रा में छोटी मात्रा में हो। इसने एक BIOS बूट विभाजन बनाया जो वास्तव में काम करता है। बस एक नया निर्माण और बूट विभाजन की प्रतिलिपि काम नहीं करता है।

अब दो लिंक में से किसी एक में उल्लिखित चरणों का पालन करने से रूट ईबीएस की मात्रा को कम करने में मदद मिलेगी।

3

एक GPT partioned 8GB नीचे बूट EBS मात्रा है कि मानक छवियों का उपयोग करने आप निम्न कर सकते लगते हटना करने के लिए:

स्रोत डिस्क /dev/xvdf है (https://matt.berther.io/2015/02/03/how-to-resize-aws-ec2-ebs-volumes/ से dd विधि का एक मामूली बदलाव), लक्ष्य /dev/xvdg है

  1. हटना स्रोत विभाजन

    $ sudo e2fsck -f /dev/xvdf1 
    $ sudo resize2fs -M /dev/xvdf1 
    

    जनसंपर्क करेंगे जैसे

    resize2fs 1.42.12 (29-Aug-2014) 
    Resizing the filesystem on /dev/xvdf1 to 257491 (4k) blocks. 
    The filesystem on /dev/xvdf1 is now 257491 (4k) blocks long. 
    

    पूर्णांक कुछ मैं एमबी को यह परिवर्तित, यानी 257,491 * 4/1024 ~ = 1006 एमबी

  2. आकार + डिवाइस (!) के लिए डिवाइस से थोड़ा अधिक ऊपर प्रति ही नहीं, करने के लिए विभाजन विभाजन, क्योंकि है कि दोनों विभाजन तालिका बूट विभाजन

    $ sudo dd if=/dev/xvdf of=/dev/xvdg bs=1M count=1100 
    
  3. में & डाटा भी शामिल है अब gdisk का उपयोग नई डिस्क पर GPT विभाजन ठीक करने के लिए

    $ sudo gdisk /dev/xvdg 
    

    आप मोटे तौर पर

    GPT fdisk (gdisk) version 0.8.10 
    
    Warning! Disk size is smaller than the main header indicates! Loading 
    secondary header from the last sector of the disk! You should use 'v' to 
    verify disk integrity, and perhaps options on the experts' menu to repair 
    the disk. 
    Caution: invalid backup GPT header, but valid main header; regenerating 
    backup header from main header.# 
    
    Warning! One or more CRCs don't match. You should repair the disk! 
    
    Partition table scan: 
        MBR: protective 
        BSD: not present 
        APM: not present 
        GPT: damaged 
    
    **************************************************************************** 
    Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk 
    verification and recovery are STRONGLY recommended. 
    **************************************************************************** 
    
    Command (? for help): 
    

    स्वागत किया जाएगा निम्नलिखित gdisk भीतर कीबोर्ड इनपुट है। समस्याओं को ठीक करने के लिए, प्रतिलिपि विभाजन तालिका में मौजूद डेटा विभाजन को नई डिस्क पर फ़िट करने के लिए आकार बदलने की आवश्यकता है। इसका मतलब है कि इसे छोटे से पुनर्निर्मित करने की आवश्यकता है और पुरानी विभाजन परिभाषा से मेल खाने के लिए इसकी गुणों को सेट करने की आवश्यकता है। परीक्षण नहीं किया है, तो यह हो सकता है डिस्क की वास्तविक अंत करने के लिए बैकअप तालिका स्थानांतरित करने के लिए आवश्यक नहीं है लेकिन मैं इसे वैसे भी किया था: x

  4. शरण लेनी बैकअप डेटा के लिए संरचनाओं:

    • अतिरिक्त विशेषज्ञ विकल्प पर भी जा डिस्क के अंत: e
    • वापस मुख्य मेनू में: m

    अब विभाजन आकार

    तय करने के लिए 10
    • प्रिंट और विभाजन 1 के कुछ गुणों को नोट (और अन्य गैर बूट विभाजन यदि वे मौजूद):
      i
      1

      Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) 
      Partition unique GUID: DBA66894-D218-4D7E-A33E-A9EC9BF045DB 
      First sector: 4096 (at 2.0 MiB) 
      Last sector: 16777182 (at 8.0 GiB) 
      Partition size: 16773087 sectors (8.0 GiB) 
      Attribute flags: 0000000000000000 
      Partition name: 'Linux' 
      
    • की तरह कुछ दिखाई देंगे अभी हटाने
      d
      1
      और विभाजनको फिर से बनाएं n
      1
      आवश्यक पैरामीटर दर्ज करें। सभी चूक यहाँ मेरे लिए काम किया (= Enter दबाएं), जब संदेह में

      • सबसे पहले सेक्टर ऊपर = 4096
      • अंतिम क्षेत्र = जो कुछ भी नया डिस्क की वास्तविक अंत है से जानकारी विभाजन का उल्लेख - डिफ़ॉल्ट ले यहाँ
      • प्रकार = 8300 (लिनक्स)
    • नया विभाजन के डिफ़ॉल्ट नाम एक पुरानी मेल नहीं खाती। तो मूल एक
      c
      1
      Linux के लिए इसे बदल (ऊपर से Partition name देखें)

    • बदलने का अगला बात विभाजन के GUID
      x
      c
      1
      DBA66894-D218-4D7E-A33E-A9EC9BF045DB (देखना Partition unique GUID है, उस से विभाजन ग्रिड कोड नहीं)
    • यह होना चाहिए। मुख्य मेनू & प्रिंट राज्य वापस अब
      m
      i
      1
      प्रिंट

      Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) 
      Partition unique GUID: DBA66894-D218-4D7E-A33E-A9EC9BF045DB 
      First sector: 4096 (at 2.0 MiB) 
      Last sector: 8388574 (at 4.0 GiB) 
      Partition size: 8384479 sectors (4.0 GiB) 
      Attribute flags: 0000000000000000 
      Partition name: 'Linux' 
      

      केवल परिवर्तन Partition size होना चाहिए होगा।

    • डिस्क और बाहर निकलने
      w
      y
  5. बढ़ने फाइल सिस्टम के लिए लिखने पूरे (छोटे) डिस्क मैच के लिए। मुट्ठी कदम इसे कम से कम आकार में घटा देता है

    $ sudo resize2fs -p /dev/xvdg1 
    
  6. हम कर रहे हैं। मात्रा & इसे स्नैपशॉट करें।

  7. वैकल्पिक कदम। एएमआई के लिए उचित कर्नेल आईडी का चयन करना।

आप PVM छवि और मुठभेड़ निम्नलिखित उदाहरण में mount error के साथ काम कर रहे हैं, तो लॉग

कर्नेल आतंक - सिंक नहीं कर रहा: वीएफएस: माउंट करने के लिए जड़

अपने उदाहरण नहीं करता है जब असमर्थ स्टार्टअप चेक पास नहीं करते हैं, शायद आपको यह अतिरिक्त कदम करने की आवश्यकता हो सकती है।

इस त्रुटि का समाधान आपके स्नैपशॉट से छवि निर्माण के दौरान आपकी पीवीएम छवि के लिए उचित कर्नेल आईडी चुनना होगा। कर्नेल आईडी (AKIs) की पूरी सूची here प्राप्त की जा सकती है।

अपनी छवि के लिए उचित AKI चुनें, वे क्षेत्रों और आर्किटेक्चर द्वारा प्रतिबंधित हैं!

+0

हटाना/मनोरंजन वास्तविक डेटा को प्रभावित नहीं करता है? केवल विभाजन तालिका? – Suncatcher

+0

@ सनकैचर हाँ, विभाजन तालिका फाइल सिस्टम में डेटा के बारे में नहीं जानती है, इसे सिर्फ यह जानने की जरूरत है कि फाइल सिस्टम बाइट सीमाओं के संदर्भ में कहां हैं, और आप उस डेटा को फिर से बनाते हैं – zapl

+0

अंततः इसे किया! पवित्र *** टी! तीन दिन खो गए :) – Suncatcher

संबंधित मुद्दे