জিরো (বিটিআরএফ) দিয়ে অব্যবহৃত স্থান সাফ করুন


10

জিরো দিয়ে অব্যবহৃত স্থান কীভাবে সাফ করবেন? (আমি বিটিআরএফএস ফাইল সিস্টেমের জন্য সরঞ্জাম চাইছি )

আমি এর চেয়ে স্মার্ট কিছু খুঁজছি

cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero

এফএসআর্কিভারের মতো "ব্যবহৃত স্থান" খুঁজছেন এবং অব্যবহৃত, তবে বিপরীত সাইটটিকে উপেক্ষা করছেন।

উদ্দেশ্য: আমি পার্টিশন চিত্রগুলি সংকুচিত করতে চাই, সুতরাং শূন্যের সাথে অব্যবহৃত স্থান পূরণের সুপারিশ করা হয়।

BTW। Ext3, ext4- এর জন্য: শূন্যগুলি (ext3, ext4) দিয়ে অব্যবহৃত স্থান সাফ করুন । এখানে আমি বিটিআরএফ চাইছি

"বুদ্ধিমান অ্যালগরিদম" এর ব্যাখ্যা: যেহেতু আমি দেখতে পাচ্ছি যে "স্মার্ট অ্যালগরিদম" বিভ্রান্তির দিকে নিয়ে যায়, এখানে আমি অবশেষে এটি সম্পর্কে লাইন যুক্ত করার সিদ্ধান্ত নিয়েছি। প্রিয় পাঠক, দয়া করে ফাইল-সিস্টেমটি ডেটাস্ট্রাকচার হিসাবে ভাবেন। সরলকরণের উদ্দেশ্যে, আসুন স্ব-ভারসাম্য লাল-কালো গাছের হোল্ডিং মানচিত্রটি কল্পনা করুন, এটি এসোসিয়েশন কী-> মান অ্যারে হিসাবে ব্যবহৃত হয়, যেখানে মানগুলি পূর্ণসংখ্যা হয়। লক্ষ্য হ'ল জিরো সহ সমস্ত নেতিবাচক মান মুছে ফেলা। "স্মার্ট নয়" অ্যালগোরিদম এটির পুনরাবৃত্তি করবে এবং কীটি যুক্ত করবে: নতুন মানচিত্রে মান জোড়গুলি (শেষ অবধি নেতিবাচক শূন্যের সাথে)। স্মার্ট অ্যালগরিদম কেবল এমন জায়গাগুলি সনাক্ত করবে যেখানে negativeণাত্মক মানগুলি সংরক্ষণ করা হয়েছে এবং সেগুলিকে স্থানে সাফ করবে ।


2
আপনি কি sfillপরামর্শটি চেষ্টা করেছেন ? দেখে মনে হচ্ছে এটির জন্য এক্সটক্সের দরকার নেই।
কেভিন

১. আমি জানি আপনি বিদ্যমান ফাইলগুলিকে টুকরো টুকরো করে জিরো দিয়ে পূরণ করতে পারবেন, তবে এটি সম্ভবত তাই না? আপনি কীভাবে এই চিত্রগুলি তৈরি করছেন? আপনি কি সেখানে ছাঁটাই করতে পারেন?
Zlatko

@ কেভিন: সে কারণেই আমি মূল প্রশ্নে পূর্ণ উত্তরটি পোস্ট করেছি। আমি নিজেরাই খুব কম ext2,3,4 ফাইল সিস্টেম ব্যবহার করি তাই আমি এমন ইউটিলিটিগুলি খুঁজে পাই যা কেবলমাত্র এক্স * এ কাজ করে বিরক্তিকরভাবে অকেজো হয়ে যায়।
কাস

আমার কিছু দরকার "স্মার্ট"। অন্য জায়গাগুলি স্পর্শ না করে কেবল শূন্যের সাথে খালি জায়গাটি পূরণ করে এমন কিছু - আমি বলতে চাইছি বি-গাছের মতো অভ্যন্তরীণ ডেটা-কাঠামোকে প্রভাবিত না করে (যদি আপনি কৌতূহলী হন তবে আমি "সংক্ষেপে প্রশ্নে লিখেছি তবে অন্যান্য উদ্দেশ্যেও আমার এটি প্রয়োজন, এফ এস ইমেজের ডি-ডুপ্লিকেশন, বিশ্লেষণ এবং গবেষণার মতো)
গ্রজেগোর্জ ওয়েয়ারজোভিইকি

সবেমাত্র ব্যবহার করুন truncateএবং / অথবাfallocate
মাইক্রজার

উত্তর:


4

আপনার পূর্ববর্তী প্রশ্নের আমার উত্তরের একটি পরিবর্তিত এবং অনেক প্রসারিত পোস্ট এখানে দেওয়া হয়েছে:

sfillsecure-deleteপ্যাকেজ থেকে আপনি যা করতে পারেন তা করতে পারে।

জেরোফ্রি (যা কেবল এক্সট 2, এক্সট 3, এবং এক্সট 4 ফাইল সিস্টেমের সাথে কাজ করে) এর বিপরীতে, সিফিল কোনও ফাইল সিস্টেমের সাথে কাজ করবে।

যেমন

sfill -l -l -z /mnt/X

Sfill / নিরাপদ-মুছে ফেলা হোম পৃষ্ঠাটি এখন নিখোঁজ হয়ে গেছে বলে মনে হচ্ছে তবে এটি ডেবিয়ান এবং উবুন্টুর জন্য প্যাকেজড। সম্ভবত অন্যান্য distros খুব। আপনার যদি সোর্স কোডের দরকার হয় তবে এটি ডিবিয়ান আর্কাইভগুলিতে খুঁজে পাওয়া যাবে যদি আপনি এটি অন্য কোথাও খুঁজে না পান।

দ্রষ্টব্য: sfill কেবল একটি মাউন্ট করা ফাইল সিস্টেমে কাজ করে। আপনি যদি ভিএম এর মধ্যে না থেকে হোস্ট সিস্টেম থেকে চিত্র ফাইলগুলি শূন্য-পূরণ করছেন তবে আপনাকে হোস্টে fs চিত্রটি মাউন্ট করতে হবে। সঠিক পদ্ধতিটি কোন ধরণের চিত্র ফাইলের উপর নির্ভর করে তার পরিবর্তিত হয় (উদাঃ কিউকিও 2 বা কাঁচা)।

'কাঁচা' চিত্রগুলি মাউন্ট করা সহজ এবং সোজা-এগিয়ে। kpartxলুপব্যাক ডিভাইস তৈরি করতে কেবল ইমেজ ফাইলটিতে ব্যবহার করুন এবং প্রতিটি পার্টিশনের জন্য / dev / mapper / এন্ট্রি পৃথকভাবে মাউন্ট করা যেতে পারে।

নেট-বুটেবল ফ্রিডো হার্ড-ডিস্ক চিত্রগুলি মাউন্ট করতে আমি ব্যবহৃত স্ক্রিপ্টের একটি অংশ থেকে আংশিক স্ক্রিপ্ট সংশোধন করা হয়েছে (ফ্ল্যাশরোম কাজ করবে না এমন মেশিনে বায়ো আপডেটের জন্য ব্যবহৃত হয়):

image="myrawimagefile.img"

# use kpartx to build /dev/mapper device nodes
KP=$(kpartx -a -v "$image")

# now mount each partition under ./hd/
for p in $(echo "$KP" | awk '/^add map/ {print $3}') ; do
  dm="/dev/mapper/$p"
  fp=$(echo "$p" | sed -r -e 's/^loop[0-9]+//')
  mkdir -p "./hd/$fp"
  mount "$dm" "./hd/$fp"
  sfill -l -l -v "./hd/$fp"
  umount "$dm"
done

# now remove the loopback device and /dev/mapper entries
kpartx -d "$image"

দ্রষ্টব্য: এটি ধরে নিয়েছে যে চিত্রটির প্রতিটি বিভাজন মাউন্টযোগ্য। আমার ব্যবহারের ক্ষেত্রে সত্য (এক পার্টিশনের সাথে একটি ফ্রিডো এইচডি চিত্র)। পার্টিশনের মধ্যে একটি হলেও, সত্য নয়, বলুন, স্থান অদলবদল করুন। এই জাতীয় পার্টিশন সনাক্তকরণ এবং ডিডি ব্যবহার করে শূন্যের পার্টিশনটি পাঠকের জন্য অনুশীলন হিসাবে ছেড়ে যায় :)

এই পদ্ধতি, বা এর একটি রূপ, LVM ভলিউমের জন্যও কাজ করা উচিত।

যদি আপনার চিত্রগুলি QCO হয় তবে আপনি প্যাকেজটি qemu-nbdথেকে সরঞ্জামটি ব্যবহার করতে পারেন qemu-utils, যা ইমেজ ফাইল এবং এর পার্টিশনগুলি নেটওয়ার্ক ব্লক ডিভাইস হিসাবে উপস্থাপন করবে - যেমন / dev / nbd0 / dev / ndb0p1 - যা / উপরে দেব / ম্যাপার ডিভাইসগুলি।

qemu-imgকিউকিও থেকে কাঁচা রূপান্তর করতে, উপরের কাঁচার জন্য পদ্ধতিটি ব্যবহার করুন এবং তারপরে পরিবর্তিত কাঁচা চিত্রটি সংকুচিত qCO2 এ ফিরে রূপান্তর করতে সম্ভবত এটি সহজ এবং কম ঝামেলা (তবে আরও বেশি সময়সাপেক্ষ) । আপনি সম্ভবত qemu-nbd ব্যবহার করার চেয়ে সামান্য ছোট চিত্রের ফলস্বরূপ তৈরি হবেন কারণ আপনি নতুন qCO2 চিত্রটি তৈরি হওয়ার সাথে সাথে সংকুচিত করবেন।


1
আমার অর্থ হ'ল, এটি জিরো দিয়ে অব্যবহৃত স্থান পূরণের "স্মার্ট" উপায় হিসাবে বিবেচিত হয় না । এটি করার সুস্পষ্ট, সাধারণ উপায়। আমি এই জাতীয় জিনিস সম্পর্কে জিজ্ঞাসা করছি না।
গ্রজেগোর্জ ওয়েয়ারজোইকিকি

1
দয়া করে একটি "স্মার্ট" অ্যালগরিদম বর্ণনা করুন যা কোনও নির্দিষ্ট ফাইল সিস্টেম পরিবারের সাথে সুনির্দিষ্ট নয় (যেমন জিরোফিলটি এক্সট 2/3/4 এর জন্য)। আপনি এমন একটি প্রোগ্রাম চেয়েছিলেন যা কাজটি করতে পারে। আপনি এটি বলেননি যে এটি পাশাপাশি যাদুকর হতে হবে।
কাস

1
এবং, সত্যই, যদি ফাইলসিস্টেমটি ব্যবহার না করা হয় (কারণ, উদাহরণস্বরূপ, এটি জিরোফিলিংয়ের জন্য হোস্টে রাখা হয়েছে) অ্যালগরিদমটি কত স্মার্ট তা বিবেচনা করে কি? খালি সেক্টরগুলির সন্ধানে fs মেটাডেটা দিয়ে ট্রলিং করা কেবল NULs পূর্ণ একটি বিশাল ফিল লিখার চেয়ে দ্রুত বা আরও ভাল কিছু হতে পারে না ... খালি জায়গা কোথায় রয়েছে তা জানার জন্য ফাইল সিস্টেম নিজেই ইতিমধ্যে যথেষ্ট স্মার্ট।
কাস

2
একদিকে আপনার প্রয়োজনের জন্য এটি যথেষ্ট - সুতরাং আমার প্রশ্নটিতে ইতিমধ্যে এই সমাধান সহ কোড স্নিপেট রয়েছে - সুতরাং আপনার উত্তরটি নতুন কিছু সরবরাহ করছে না। অন্যদিকে, আমার প্রয়োজনগুলির জন্য আমি যা নির্দিষ্ট করে তা প্রয়োজন, কারণ আমি অভ্যন্তরীণ কাঠামো পরিবর্তন না করে শূন্যের সাথে অব্যবহৃত স্থানটি মুছতে চাই (উদাহরণস্বরূপ "ডান্সিং বি-ট্রিস" বা অন্যান্য ধরণের ডেটা-কাঠামোর পুনরুদ্ধার করা (যেমন বিশ্লেষণ এবং ডি-সদৃশকরণের জন্য উদ্দেশ্য)
গ্রজেগোর্জ ওয়েয়ারজোইকিকি

2
@ ক্যাস - আমি মনে করি আপনি ভিএমএসে ভার্চুয়াল-হার্ড-ড্রাইভের সংযোগ দেওয়ার আগে শূন্য-পূরণ করা একটি প্রয়োজনীয় পদক্ষেপ বলে মনে করছেন। যদি আপনার কাছে 500 গিগাবাইট প্রসারিত ডিস্ক থাকে, 10 গিগাবাইট ফাইল এবং 10 গিগাবাইট "খালি" স্থান (অর্থাত মুছে ফেলা ফাইল) সহ, নিষ্পাপ "দৈত্য শূন্য ফাইল" পদ্ধতির চলমান হতে আরও বেশি সময় লাগবে, এবং ভিএইচডি পর্যন্ত প্রস্ফুটিত হতে হবে পুরো 500 জিবি। আমি বাজি ধরতে চাইছি ওপি ধরে নিচ্ছে ইউটিলিটিটিও এফএস নির্দিষ্ট করতে হবে।
ভুয়া নাম

3

মুক্ত স্থানটি পরিষ্কার করার সঠিক এবং "স্মার্ট" উপায়টি ব্যবহার করছে:

fstrim /mountpoint

এটি একটি মাউন্ট করা ফাইল সিস্টেমে ব্যবহার করুন।

এটির জন্য কোনও সুরক্ষার সুবিধা নেই বলে মনে রাখা গুরুত্বপূর্ণ। আপনি যদি সুরক্ষার জন্য আপনার ডিস্কটি সাফ করতে চান তবে আপনার ফাইলগুলি ব্যাকআপ করুন, "shred" এর মতো একটি কমান্ড দিয়ে পুরো ডিস্কটি শূন্য করুন এবং তারপরে আপনার ফাইলগুলি পুনরুদ্ধার করুন।

তবে সমাধানটি কার্যকর হয় যদি আপনার ডিস্কটি খুব কম ফাইল সিস্টেমের একটি পাতলা বিধান হয় এবং আপনি অব্যবহৃত স্থানটি পুনরুদ্ধার করতে চান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.