আপনার মত আমারও একই প্রশ্ন ছিল, তাই এটি কীভাবে করব তা নিয়ে আমি কাজ করেছি।
প্রথমত, আমি ইউএস-পূর্ব অঞ্চল থেকে উবুন্টু 32-বিট ইবিএস-সমর্থিত অমি থেকে এটি করেছি, অন্যান্য ওএস বা চিত্রগুলি ভিন্নভাবে কাজ করতে পারে। তবে, আমি সন্দেহ করি যে আপনারা ঠিকঠাক হওয়া উচিত, যতক্ষণ আপনি একটি এক্সট * ফাইল সিস্টেম ব্যবহার করছেন। এটি অন্যান্য ফাইল সিস্টেমে কাজ করতে পারে তবে এগুলি কীভাবে নিজের আকারে পরিবর্তন করতে হয় তা আপনাকে খুঁজে বের করতে হবে।
পদক্ষেপগুলি মূলত:
একটি চলমান উদাহরণে দুটি ভলিউম সংযুক্ত করুন, প্রথমটি আপনি সঙ্কুচিত করতে চান এমন স্ন্যাপশটের উপর ভিত্তি করে এবং দ্বিতীয়টি একটি ফাঁকা ভলিউম যাতে আপনি সঙ্কুচিত করতে চান নতুন আকারের।
প্রথম ভলিউমের ফাইল সিস্টেমটি পরীক্ষা করুন এবং কোনও ত্রুটি মেরামত করুন।
প্রথম ভলিউমে ফাইল সিস্টেম সঙ্কুচিত করুন যাতে এটি কেবল ডেটা ধরে রাখার মতো বড়।
প্রথম ভলিউম থেকে দ্বিতীয়টিতে ফাইল সিস্টেমটি অনুলিপি করুন।
ফাইল সিস্টেমটিকে দ্বিতীয় আকারে এটি সর্বাধিক আকারে প্রসারিত করুন।
ত্রুটির জন্য দ্বিতীয় ভলিউম পরীক্ষা করে নিশ্চিত হয়ে নিন যে সবকিছু ভাল দেখাচ্ছে।
দ্বিতীয় খণ্ডের একটি স্ন্যাপশট নিন।
আপনি সবেমাত্র নেওয়া দ্বিতীয় ভলিউমের স্ন্যাপশটের ভিত্তিতে একটি মেশিন চিত্র তৈরি করুন।
আপনি প্রথমে অ্যামিটি সঙ্কুচিত করতে চান তার থেকে কিছু তথ্য নেওয়া উচিত। বিশেষত, আপনার কার্নেল আইডি এবং র্যামডিস্ক আইডি প্রয়োজন, যদি কোনও (আমি সঙ্কুচিত চিত্রটি র্যামডিস্ক না থাকে)। এএমআই উইন্ডোতে এই সমস্ত তথ্য অ্যাবস ম্যানেজমেন্ট কনসোল থেকে পাওয়া উচিত।
কার্নেল আইডি কিয়া-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স দেখতে লাগে এবং স্ন্যাপশট আইডিটি স্ন্যাপ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স এবং র্যামডিস্ক আইডি দেখতে আরআইএ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স like
এর পরে, একটি লিনাক্স উদাহরণ চালু করুন। আমি একটি উবুন্টু উদাহরণ চালু করেছি। আপনি চাইলে একটি t1.micro উদাহরণ ব্যবহার করতে পারেন। এই পরবর্তী পদক্ষেপগুলি করতে খুব বেশি শক্তি লাগে না।
মেশিনটি চলার পরে, প্রথম ধাপ থেকে আপনি লিখেছেন এমন স্ন্যাপশট সংযুক্ত করুন। আমার ক্ষেত্রে, আমি এটিকে / dev / sdf এর সাথে সংযুক্ত করেছি
তারপরে, আপনি চান আকারটি রেখে একটি নতুন ভলিউম তৈরি করুন। আমার ক্ষেত্রে, আমি একটি 5 জিবি ভলিউম তৈরি করেছি, যে আকারটি আমি এটি সঙ্কুচিত করতে চেয়েছিলাম। স্ন্যাপশট থেকে এই নতুন ভলিউম তৈরি করবেন না। আমাদের একটি নতুন ফাঁকা ভলিউম দরকার। এরপরে, এটি চলমান উদাহরণের সাথে সংযুক্ত করুন, আমার ক্ষেত্রে আমি এটিকে / dev / sdg হিসাবে সংযুক্ত করি
এর পরে, মেশিনে ssh করুন তবে সংযুক্ত ভলিউমগুলি মাউন্ট করবেন না।
এই মুহুর্তে, আমি ভৌগলিক দিকের দিকে ভ্রান্ত হয়েছি এবং কোনও ত্রুটি নেই তা নিশ্চিত করার জন্য আমি বৃহত পরিমাণে ফাইল সিস্টেমটি পরীক্ষা করতে পছন্দ করেছি। যদি আপনি আত্মবিশ্বাসী হন যে কেউ নেই তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন:
$ sudo e2fsck -f /dev/sdf
এরপরে, আমি ফাইল সিস্টেমটিকে বৃহত পরিমাণে পুনরায় আকার দিয়েছি যাতে এটি কেবলমাত্র ডিস্কের ডেটার মতোই বড় হয়:
$ sudo resize2fs -M -p /dev/sdf
-M এটি সঙ্কুচিত করে এবং -p অগ্রগতি মুদ্রণ করে।
আকার পরিবর্তন 2fs আপনাকে জানাতে হবে যে সংকুচিত ফাইল সিস্টেমটি কত বড়। আমার ক্ষেত্রে এটি আমাকে 4 কে ব্লকে আকার দিয়েছে।
আমরা এখন নতুন ডিস্কে সঙ্কুচিত ফাইল সিস্টেমটি অনুলিপি করি। আমরা 16 এমবি খণ্ডগুলিতে ডেটা অনুলিপি করতে যাচ্ছি, সুতরাং আমাদের কপি করার জন্য কতগুলি 16MB খণ্ড দরকার তা নির্ধারণ করতে হবে। এই যেখানে সঙ্কুচিত ফাইল সিস্টেমের আকার হ্যান্ডে আসে।
আমার ক্ষেত্রে, সঙ্কুচিত ফাইল সিস্টেমটি মাত্র 1 জিবি-র উপরে ছিল, কারণ আমি স্ন্যাপশট নেওয়ার আগে বেসিক উবুন্টু সিস্টেমে প্রচুর অন্যান্য প্রোগ্রাম ইনস্টল করেছিলাম। আমি সম্ভবত ফাইল সিস্টেমের আকারটি নিকটতম 16MB পর্যন্ত কপি করে বেরিয়ে যেতে পারতাম, তবে আমি এটি নিরাপদে খেলতে চেয়েছিলাম।
সুতরাং, 128 বার 16 এমবি খণ্ড = 2 জিবি:
$ sudo dd if=/dev/sdf ibs=16M of=/dev/sdg obs=16M count=128
আমি 16 এমবি ব্লকের অনুলিপি করেছিলাম কারণ ইবিএসের সাহায্যে আপনি প্রতিটি পড়ার জন্য অর্থ প্রদান করেন, তাই আমি তাদের সংখ্যা যতটা সম্ভব কমিয়ে আনতে চেয়েছিলাম। আমি জানি না এটি এইভাবে করা যদি তা করে তবে এটি সম্ভবত ক্ষতি করে না।
এরপরে আমাদের কেবলমাত্র নতুন ভলিউমে অনুলিপি করা ফাইল সিস্টেমের আকার পরিবর্তন করতে হবে যাতে এটি ভলিউমের সমস্ত উপলব্ধ স্থান ব্যবহার করে।
$ sudo resize2fs -p /dev/sdg
অবশেষে, এটি যাচাই করুন, সবকিছু ঠিক আছে তা নিশ্চিত করার জন্য:
$ sudo e2fsck -f /dev/sdg
এই মেশিনে আমাদের যা করা দরকার তা হ'ল, যদিও এটি পরীক্ষা হিসাবে নতুন ভলিউমটি মাউন্ট করতে পারে না। তবে, এই পদক্ষেপটি প্রায় অবশ্যই alচ্ছিক, কারণ ই 2fsck এর কোনও সমস্যা হওয়া উচিত।
আমাদের এখন নতুন ভলিউম স্ন্যাপশট তৈরি করতে হবে এবং এর ভিত্তিতে একটি এএমআই তৈরি করতে হবে। আমরা মেশিনটি দিয়ে শেষ করেছি, সুতরাং আপনি যদি চান তবে এটি শেষ করতে পারেন।
আপনি যদি এটি মাউন্ট করেন তবে ছোট ভলিউমটি আনমাউন্ট হয়েছে তা নিশ্চিত করুন এবং তারপরে একটি স্ন্যাপশট নিন। আবার, আপনি পরিচালনা কনসোলে এটি করতে পারেন।
চূড়ান্ত পদক্ষেপে কমান্ডলাইন ec2 সরঞ্জাম প্রয়োজন।
সম্পাদনা করুন:
যেহেতু এই উত্তরটি পোস্ট করা হয়েছিল এডাব্লুএস কনসোল আপনাকে স্ন্যাপশটটিতে ডান ক্লিক করতে এবং স্ন্যাপশট থেকে চিত্র তৈরি করুন নির্বাচন করতে দেয়। আপনার এখনও উপযুক্ত কার্নেল আইডি নির্বাচন করতে হবে। যদি এটি তালিকায় উপস্থিত না হয় তবে নিশ্চিত করুন যে আপনি উপযুক্ত স্থাপত্যটি নির্বাচন করেছেন।
আপনি সদ্য তোলা স্ন্যাপশটের উপর ভিত্তি করে একটি এএমআই রেজিস্ট্রেশন করতে আমরা ইসি 2-রেজিস্ট্রার অ্যাপ্লিকেশনটি ব্যবহার করি, সুতরাং আপনি যে স্ন্যাপশটটি নিয়েছিলেন তা থেকে স্ন্যাপ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স মানটি লিখুন।
তারপরে আপনার একটি কমান্ড ব্যবহার করা উচিত:
ec2-register -C cert.pem -K sk.pem -n The_Name_of_Your_New_Image
-d Your_Description_of_This_New_AMI --kernel aki-xxxxxxxx
-b "/dev/sda1=snap-xxxxxxxx" --root-device-name /dev/sda1
আপনার অবশ্যই শুরুতে যেটি লিখেছিলেন তার সাথে কার্নেল আইডি এবং আগের ধাপে আপনি যেটি তৈরি করেছেন তার সাথে স্ন্যাপশট আইডি প্রতিস্থাপন করতে হবে। আপনাকে এটিকে উপরের আপনার গোপন কীতে (sk.pem বলা হয়) এবং আপনার x509 সার্ট (જેને cert.pem বলা হয়) এও নির্দেশ করতে হবে। আপনি অবশ্যই নাম এবং বর্ণনার জন্য যা চান তা চয়ন করতে পারেন।
আশাকরি এটা সাহায্য করবে.