ভার্চুয়ালবক্স থেকে ডায়নামিকভাবে বর্ধমান ভিডিআই ডিস্ককে আমি কীভাবে সঙ্কুচিত করব?


35

ভার্চুয়াল বাক্সে বিভিন্ন উবুন্টু ইনস্টলেশন থেকে আমার গতিশীলভাবে ক্রমবর্ধমান ভার্চুয়াল ডিস্কগুলি (ভিডিআই) প্রকৃতপক্ষে সত্যই স্থিরভাবে "বাড়ছে"।

ভার্চুয়াল মেশিনে ফাইলগুলি মুছে ফেলা হোস্ট হার্ড ডিস্কের স্থান থেকে আমার ভিডিআই ফাইলটি স্থানটি মুক্ত করে না।

অব্যবহৃত হার্ড ডিস্কের স্থান হোস্টকে ফিরিয়ে দিতে আমি কীভাবে এই ফাইলগুলি সঙ্কুচিত করব?

উত্তর:


34

ভার্চুয়াল বক্স ভার্চুয়াল হার্ড ড্রাইভ ফাইলটি গতিশীলভাবে বাড়ছে ভার্চুয়াল মেশিনের চাহিদা অনুযায়ী এই ফাইলটি সেট আপ করার ক্ষেত্রে আমরা সর্বোচ্চ আকার পর্যন্ত বাড়তে সক্ষম growing অতিথি ওএসে আমরা মুছে ফেলা ফাইলগুলির স্থানটি এটি মুক্ত করে না।

যদি ডিস্কটি খুব বেশি বেড়ে যায় তবে আমরা আবার এটি সংযোগ করতে পারি, যদি অব্যবহৃত স্থানটি জিরোতে পূর্ণ হয় এবং ড্রাইভটি ভিডিআই ফর্ম্যাটে থাকে।

একটি ext2 থেকে ext 4 ফাইল সিস্টেমের জন্য এটি উবুন্টু গেস্টের মাধ্যমে কমান্ড লাইন ইউটিলিটি জেরোফ্রি * দিয়ে করা যেতে পারে ।জিরোফ্রি ইনস্টল করুন

zerofree /dev/sdxX

এটি ড্রাইভটি ব্যবহার না করা এবং আনমাউন্ট করা প্রয়োজন । অতএব আমরা এই উদ্দেশ্যে আমাদের তৈরি করা অন্য ভিএমকে সাময়িকভাবে আবদ্ধ করতে পারি, বা আমাদের এই ভিএম-তে একটি উবুন্টু লাইভ পরিবেশ বুট করতে হবে।

প্রশ্নটিতে /dev/sdxXext2, ext3 বা ext4 বিন্যাসিত পার্টিশন দিয়ে প্রতিস্থাপন করুন ।

একাধিক পার্টিশনে আমাদের zerofreeপ্রতিটি বিভাজনের জন্য আমাকে পুনরাবৃত্তি করতে হবে। মনে রাখবেন যে শূন্যগুলি পূরণ করে ভার্চুয়াল ফাইলটি অস্থায়ীভাবে এটির সর্বোচ্চ আকারে বাড়বে।

সমস্ত অব্যবহৃত ড্রাইভের স্থান একবার জিরো দিয়ে পূর্ণ হয়ে যায় তারপরে আমরা ড্রাইভটি সঙ্কুচিত করি

VBoxManage modifyhd <name>.vdi --compact

এটি আমাদের ভিডিআই ফাইলের ফাইলের আকারকে যথেষ্ট পরিমাণে হ্রাস করবে।

উইন্ডোজ গেস্টে আমরা অব্যবহৃত স্থানটি ইউটিলিটি দিয়ে প্রতিস্থাপন করতে পারি sdelete


এটি কি অতিথির মধ্যে একটি এনক্রিপ্ট করা ফাইল সিস্টেমের জন্য কাজ করবে?
স্মিচাক

অবশ্যই। আপনি যদি ব্যবহার করছেন ecryptfsতবে এনক্রিপ্ট করা ফাইলগুলি ডিস্ক ইউটিলিটিগুলিতে সাধারণ ফাইলগুলির মতো দেখায় এবং এটি কার্যকর হবে। আপনি যদি ফুল-ডিস্ক এনক্রিপশন ব্যবহার করছেন, এটি যাইহোক যাইহোক এটি কোনও এক্স-ফর্ম্যাট করা পার্টিশন হিসাবে স্বীকৃত হবে না :)
ক্রনিকস্পোন

আমি একটি ডিএম-ক্রিপ্ট ব্লক ডিভাইসে ext4 পার্টিশনটি ব্যবহার করছি ... আমি পদ্ধতিটি চেষ্টা করেছি এবং কমপ্যাকশন পরে .vdi ফাইলটি ছোট হিসাবে দেখছি না। আমি মনে করি যে শূন্য ব্লকগুলি ডিএম-ক্রিপ্টের অধীনে ব্লক ডিভাইসে নন-শূন্য ব্লক হিসাবে সংরক্ষণ করা হয়েছে।
স্মিচাক

2
@ সিমিক: এটি এনক্রিপশনের মূল বিষয়। এটি ফাইলের সীমানা দেখতে পাচ্ছি না তা নিশ্চিত করতে এটি আপনার সমস্ত ড্রাইভকে এনক্রিপ্ট করবে।
তকাত

3
আপনি অন্য মেশিনে আপনার VDI সংযুক্ত করতে না চান তাহলে, তবে আপনাকে পুনরুদ্ধার মোডে বুট করুন ও ডিস্ক কেবলমাত্র মাউন্ট করতে mount -n -o remount,ro -t ext4 /dev/sda1এবং তারপর zerofree -v /dev/sda1
হামিদ নাজারি

1

ফ্রি ডিস্কের জায়গা শূন্য করার কয়েকটি বিকল্প উপায় এখানে রয়েছে (যা সবচেয়ে বেশি সময় ব্যয়কারী অংশ হতে পারে)। এরপরে, আপনাকে এখনও VBoxManage modifyhd <disk> --compactআসল ডিস্ক ফাইলটি সংযোগ করতে চালাতে হবে।


এই কমান্ডটি ডিস্কটি আনমাউন্ট করার সময় শূন্য করতে পারে:

apt-get install zerofree
zerofree -v /dev/sdxN


পর্যায়ক্রমে আউটপুট প্রিন্ট করতে কীভাবে ডিডি পাবেন তার উদাহরণ এখানে রয়েছে:

dd if=/dev/zero of=temp-file-on-disk bs=20M

# run this to get the process ID of the dd command
pgrep -l '^dd$'
# then put the process ID on the command line to "kill -USR1"
# this will tell dd to print the current status (in another terminal)
kill -USR1 $(pgrep -l '^dd$' | awk '{print $1}')


এখানে একটি ddঅনুরূপ প্রোগ্রাম যা স্বয়ংক্রিয়ভাবে পর্যায়ক্রমে আউটপুট প্রিন্ট হবে:

apt-get install dcfldd
dcfldd if=/dev/zero of=temp-file-on-disk bs=20M

1
আমি zerofreeএকটি মাউন্ট করা ফাইল সিস্টেমটিতে ব্যবহার দেখেছি , তবে এটি যখন কেবল পঠনযোগ্যভাবে মাউন্ট করা হয়েছিল। এমনকি রুট এফএসের জন্য: sudo mount -o remount,ro /- তবে জিইউআই অধিবেশনটিতে রুটটি ব্যস্ত থাকবে, সুতরাং এটি ব্যর্থ হবে। তবে রানলেভেল 1 ( telinit 1) এ এটি সম্ভব , সুতরাং এটি করার জন্য আপনাকে লাইভ সিডি থেকে বুট করার দরকার পড়বে না।
টমাসজ গ্যান্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.