/dev/sda3
এসএসডি ড্রাইভে আমার বিভাজনে কোনও ফাইল সিস্টেম থাকে না, তবে এতে আবর্জনা রয়েছে। পুরো পার্টিশনে আমি কীভাবে একটি ট্রিম / ডিসকার্ড অপারেশন করব?
/dev/sda3
এসএসডি ড্রাইভে আমার বিভাজনে কোনও ফাইল সিস্টেম থাকে না, তবে এতে আবর্জনা রয়েছে। পুরো পার্টিশনে আমি কীভাবে একটি ট্রিম / ডিসকার্ড অপারেশন করব?
উত্তর:
যদি আপনার ব্যবহার-লিনাক্সের সংস্করণটি যথেষ্ট পরিমাণে নতুন (সেপ্টেম্বর ২০১২) হয় তবে প্রকৃতপক্ষে একটি উদ্দেশ্য-নির্মিত সরঞ্জাম রয়েছে, blkdiscard
এটি করার সর্বোত্তম উপায়:
sudo blkdiscard /dev/sda3
তবে আপনার যদি পুরানো লিনাক্স ডিস্ট্রো সংস্করণগুলির সাথে সামঞ্জস্যতা প্রয়োজন, পড়ুন ... এমন কিছু ঘটনা রয়েছে যেখানে hdparm
/ wiper.sh
কোনও ভলিউম স্পর্শ করতে অস্বীকৃতি জানায় কারণ এটি কোনও বিভাজন নয়, সুতরাং এর বাইরে আমাদের কিছু প্রয়োজন।
আমি সর্বাধিক সমর্থিত উপায়টি হ'ল লিনাক্স সোয়াপ ভলিউমগুলি যখন সক্ষম করা হয় তখন তারা DISCARD সমর্থন করে। শেষের ওয়াইফসগুলি সেখানে রয়েছে যাতে পরে ভলিউমটি অদলবদল হিসাবে স্বীকৃত হয় না।
D=/dev/sda3 ; mkswap $D && swapon -d $D && swapoff $D && wipefs -o 0xff6 $D
এটি বেশিরভাগ ডিভাইসে ডিসকার্ড ইস্যু করে।
blkdiscard
। বিপজ্জনক কমান্ড ... :)
WARNING: All data in the discarded region on the device will be lost!
আমি জানি এই প্রশ্নটি বেশ পুরানো তবে ...
এটি করার সহজতম উপায় হ'ল পার্টিশনে একটি সাম্প্রতিক সংস্করণের সামান্য সংস্করণ সহ একটি এক্সট 4 ফাইল সিস্টেম তৈরি করা mkfs.ext4
। এই সরঞ্জামটি প্রথম কাজটি করে পুরো পার্টিশনটি ট্রিম। এটি করা হয়ে গেলে আপনি যে ফাইলটি চান তা দিয়ে এটি তৈরি করা ডেটা ওভাররাইট করতে পারেন।
(উদাহরণস্বরূপ, আমি একটি এসডি কার্ডে একটি নতুন ভিফ্যাট পার্টিশন তৈরি করতে এটি করেছি))
mkfs.ext4 -J size=4 -N1 /dev/my/device
-E lazy_journal_init
ফলে লেখার চেয়ে কিছুটা কম লেখার ফলস্বরূপ -J size=4
। (কোনও শারীরিক এসএসডি এর চেয়ে স্পার ফাইল ব্যবহার করে এবং du
কতটা লেখা হয়েছিল তা যাচাই করতে পরীক্ষার উপর ভিত্তি করে )
hdparm --trim- সেক্টর-রেঞ্জগুলি নিম্ন স্তরের, এটি সরাসরি এসএসডির সাথে কথা বলার কথা, সুতরাং ফাইল সিস্টেমের উপর কোনও নির্ভরতা নেই। উইপার.এসএস যা করে তা হ'ল এসএসডি সেক্টরে ফ্রি (ফাইল সিস্টেম) অঞ্চলগুলি ম্যাপ করার জন্য ফাইল সিস্টেম নির্দিষ্ট প্রোগ্রামগুলি ব্যবহার করে, সেগুলি ছাঁটাতে এইচডিপিআরএম ব্যবহার করে।
প্রশ্নের উত্তরে, আপনি এই বিভাজনটি ছাঁটাতে এইচডিপারম ব্যবহার করতে পারেন, তবে আপনার খুব যত্নবান হওয়া উচিত । এটি করার উপায়টি হ'ল পার্টিশন দ্বারা ব্যবহৃত সেক্টর ব্যাপ্তি অর্জন করা, তারপরে সেই সেক্টরের ব্যাপ্তিতে hdparm ব্যবহার করুন। সম্ভবত - একাধিক খাত রেঞ্জগুলি আপনাকে পাস করতে হবে, কারণ প্রতিটি স্তরের সেক্টর-সেক্টর রেঞ্জের সর্বাধিক 65535 টি সেক্টর থাকতে পারে।
fdisk -l পার্টিশনের শুরু এবং আকার বলতে পারে। Fdisk দ্বারা ব্যবহৃত ইউনিটগুলিতে মনোযোগ দিন এবং আপনার এসএসডি-র সেক্টর আকারে।
উদাহরণ (আমার এসএসডি):
Device Boot Start End Blocks Id System
/dev/sdb1 2048 39070079 19534016 83 Linux
এই পার্টিশনের আগে স্থানটি ফেলে দেওয়ার জন্য, আমি সেক্টর 1: থেকে শুরু করে 2047 (512 বাইট আকারের, আমার এসএসডিতে) সেক্টরগুলি ট্রিম করতে পারি hdparm --trim-sector-ranges 1:2047
। আমি 0 সেক্টর থেকে শুরু করে ট্রিম করতে পারি না কারণ এটি এমবিআর (এটি জিপিটির জন্য কীভাবে যায়)।
পার্টিশনের দ্বারা ব্যবহৃত স্থানটি বাতিল করতে, আমি করব hdparm --trim-sector-ranges 2048:65535 67583:65535 133118:65535 ...
। এটি স্ক্রিপ্ট করা যেতে পারে তবে আমি এখন একটি লিখতে যাচ্ছি না।
এছাড়াও কেবল নিশ্চিত করার জন্য: আমি এখানে কোনও কিছুর গ্যারান্টি দিচ্ছি না, আমার ভুল উপায়ে সেক্টর থাকতে পারে - কার্যকরভাবে - ট্রিম-সেক্টর-রেঞ্জ ব্যবহার করার আগে সবকিছুর ব্যাকআপ করুন।
দ্রষ্টব্য : যদি আপনি প্রথম পার্টিশনের আগে "ফাঁকা" স্থানটি ট্রিম করেন তবে যেমন আমি দেখিয়েছি, রিবুট করার আগে GRUB (অথবা আপনি যে কোনও বুট লোডার ব্যবহার করেন) পুনরায় ইনস্টল করতে ভুলবেন না, কারণ GRUB প্রথম পার্টিশনের আগে "অব্যবহৃত" সেক্টরে এর কিছু অংশ সংরক্ষণ করে । অন্যান্য বুটলোডারগুলি জানেন না তবে আমার ধারণা এটি কেস হতে পারে তাই যত্ন নিন।
wiper.sh
fstrim
যেটি দ্বারা নিরাপদ এটি অপ্রচলিত , তবে এই নির্দিষ্ট ব্যবহারের জন্য blkdiscard
উভয়কেই মারধর করে। 2013 সালে, ম্যানুয়ালি কম্পিউটিং রেঞ্জের ঝুঁকি নেওয়ার দরকার নেই।
আপনি wiper.sh
এইচডিপর্ম প্যাকেজ সহ অন্তর্ভুক্ত স্ক্রিপ্টটি একবার দেখতে পারেন । এটি hdparm কমান্ডটি --trim-sector-ranges
একটি পার্টিশনের সমস্ত খালি সেক্টর ট্রিম করতে ব্যবহার করে , কমপক্ষে যদি এতে একটি ext3 / 4 ফাইল সিস্টেম থাকে। এটি অপরঠিত পার্টিশনগুলির সাথে কাজ করে কিনা তা নিশ্চিত নন তবে আপনি সর্বদা এটি অস্থায়ীভাবে ext4 দিয়ে ফর্ম্যাট করতে পারেন।
wiper.sh
ext4 মেটাডেটা বাদে পার্টিশনের প্রায় সমস্ত অংশ ছাঁটাই করে। তবে আমি পুরো পার্টিশনটি ছাঁটাই করতে চাই।
blkdiscard
কেবলমাত্র পুরো ড্রাইভে নয় পার্টিশনে কাজ করতে পারে। আমি ফেডোরা ২০-তে এটি সফলভাবে পরীক্ষা করেছি I আমি উত্সগুলি পরীক্ষা করেছিলাম blkdiscard
- এটি একটি খুব সাধারণ প্রোগ্রাম যা পার্টিশন সম্পর্কে কিছুই জানে না। আমি ধরে নিলাম কার্নেলটি অনুবাদটি করে।
খুব সাবধান থাকুন, blkdiscard
কোনও প্রশ্ন জিজ্ঞাসা করবেন না এবং কোনও অগ্রগতির তথ্য দেখায় না shows
যদি ব্লকডিসকার্ড উপলভ্য না থাকে তবে এই স্ক্রিপ্টটি ব্যবহার করুন এবং এর আউটপুট এইচডিপর্মে ফিড করুন। প্রথম যুক্তি হ'ল ছাঁটাই করার ক্ষেত্রগুলির সংখ্যা, দ্বিতীয়টি ছাঁটাই করার প্রথম সেক্টর।
#! /bin/sh
# List ranges for hdparm --trim-sector-ranges-stdin
: ${MAXSECT=65535}
test $# = 2 || { echo "Usage: trimlist sectors offset" >&2; exit 1; }
sectors=$1
pos=$2
while test $sectors -gt 0; do
if test $sectors -gt $MAXSECT; then
size=$MAXSECT
else
size=$sectors
fi
echo $pos:$size
sectors=$(($sectors-$size))
pos=$(($pos+$size))
done
এখানে একটি আকর্ষণীয় নিবন্ধ যা এসএসডি-র অন্তর্নির্মিত সুরক্ষিত মুছে ফেলা বৈশিষ্ট্যটি আহ্বান করতে এইচডিডিআরেজ ব্যবহার করার বিষয়ে কথা বলেছে, যা আপনার চাইলে তা পাওয়া উচিত:
blkdiscard --secure
।