আমার কাছে 200 গিগাবাইট ফ্রি ডিস্ক স্পেস, 16 গিগাবাইট র্যাম (যার মধ্যে ~ 1 জিবি ডেস্কটপ এবং কার্নেল দ্বারা দখল করা হয়েছে) এবং 6 গিগাবাইট অদলবদল রয়েছে।
আমার কাছে একটি 240 গিগাবাইট বাহ্যিক এসএসডি রয়েছে, 70 জিবি ব্যবহৃত 1 এবং বাকিটি বিনামূল্যে, যা আমার ডিস্কে ব্যাক আপ করতে হবে।
সাধারণত, আমি dd if=/dev/sdb of=Desktop/disk.img
প্রথমে ডিস্কটি প্রস্তুত করব এবং তারপরে এটি সংকোচিত করব, তবে চিত্রটি তৈরি করা আমার পক্ষে বিকল্পের চেয়ে অনেক বেশি ডিস্কের জায়গার প্রয়োজন হবে না, যদিও সংকোচন পদক্ষেপের ফলে ফাঁকা স্থানটি স্কোয়াশ হয়ে যাবে ফলে চূড়ান্ত সংরক্ষণাগারটি আমার ডিস্কে সহজেই ফিট করতে পারে।
dd
ডিফল্টরূপে gzip
STDOUT এ লেখেন, এবং STDIN থেকে পড়তে পারেন, তাই তাত্ত্বিকভাবে আমি লিখতে পারি dd if=/dev/sdb | gzip -9 -
, তবে gzip
বাইটগুলি dd
উত্পাদন করতে পারে তার চেয়ে বেশি সময় নেয় takes
থেকে man pipe
:
পাইপের লেখার প্রান্তে লেখা ডেটা পাইপের রিড প্রান্ত থেকে পড়া না হওয়া অবধি কার্নেল দ্বারা বাফার করা হয়।
আমি |
সত্যিকারের পাইপের মতো হ'ল ভিজ্যুয়ালাইজ করি - একটি অ্যাপ্লিকেশন স্থান পরিবর্তনকারী ডেটা এবং অন্যটি পাইপের সারি থেকে যত তাড়াতাড়ি সম্ভব ডেটা নিয়ে যায়।
যখন বাম পাশের প্রোগ্রামটি পাইপের অন্য প্রান্তের চেয়ে দ্রুত আরও বেশি ডেটা লিখবে তখন এটি প্রক্রিয়া করার আশা করতে পারে? এটি কি চরম স্মৃতি বা অদলবদলের জন্য কারণ তৈরি করবে বা কার্নেলটি ডিস্কে একটি ফিফো তৈরি করার চেষ্টা করবে, যার ফলে ডিস্কটি পূরণ করবে? বা SIGPIPE Broken pipe
বাফার খুব বেশি হলে এটি কি ব্যর্থ হবে ?
মূলত, এই দুটি প্রশ্ন উত্থিত:
- একবারে পড়ার চেয়ে পাইপে আরও বেশি ডেটা স্থানান্তরের কী কী প্রভাব ও ফলাফল রয়েছে?
- ডিস্কে সম্পূর্ণ সঙ্কুচিত ডেটাস্ট্রিম না রেখেই কোনও ডাস্টাস্ট্রিকে সংকোচন করার নির্ভরযোগ্য উপায় কী?
দ্রষ্টব্য 1: আমি ঠিক প্রথম 70 টি ব্যবহৃত জিবি অনুলিপি করতে পারি না এবং টুকরো টুকরো টুকরো টুকরো করা এবং অন্যান্য সামগ্রীর কারণে একটি ওয়ার্কিং সিস্টেম বা ফাইল সিস্টেম পাওয়ার আশা করি which
lzop
পরিবর্তে অনুসন্ধান gzip
; এটি কেবলমাত্র একটি স্বল্প নিম্নতর সংক্ষেপণের অনুপাত সহ অনেক দ্রুত সংকোচিত হয়। আমি এটি ডিস্ক চিত্রগুলির জন্য আদর্শ মনে করি যেখানে সংক্ষেপণের গতি সত্যিকারের বাধা হতে পারে।