পুরো আউটপুট ডিভাইসটি মুছে ফেলা হয়েছে যে এর আকারটি আপনি যে ব্লক আকারে পাস করেছেন তা একাধিক কিনা dd।
notruncযখন আউটপুট একটি ডিভাইস ফাইল, কারণ একটি ডিভাইস ফাইল ছিন্ন কোনো প্রভাব নেই পতাকা কোনো প্রভাব নেই। যদি আউটপুট একটি নিয়মিত ফাইল হয় তবে এর প্রভাবটি ছিল যে লেখার আগে আউটপুট ফাইলটি কেটে ফেলা হয় না, যা কিছু ফাইল সিস্টেমে বোঝানো হয় যে পুরানো ডেটা ওভাররাইট করা হয়েছে (ডেটা নতুন ব্লক লেখার বিপরীতে এবং বাকী অংশটি না রেখে), তবে এটি কার্যকর হবে না যেহেতু এই সম্পত্তিটি সমস্ত ফাইল সিস্টেমের দ্বারা গ্যারান্টিযুক্ত নয় এবং তদুপরি কমান্ডটি কেবল ফাইলটি ওভাররাইট করে না, তবে এটি আউটপুট ডিস্কটি পূরণ না হওয়া পর্যন্ত লিখতে থাকবে (বা অন্য কোনও ত্রুটি দেখা দেয়)।
ddআপনি এটি সঠিকভাবে ব্যবহার করছেন কিনা তা নিয়ে চিন্তিত হওয়ার পরিবর্তে (যেমনটি ঘটে থাকে, এটি এই বিশেষ ক্ষেত্রে কাজ করে তবে এটি জটিল এবং কখনও কখনও কাজ করে না ), কেবল ব্যবহার করুনcat ।
cat /dev/zero >/dev/sdX
ওয়েবে জনপ্রিয় বিশ্বাস সত্ত্বেও, একেবারে কোনও জাদু নেই ddযা এটি কোনও কোনও ডিস্কে লেখার পক্ষে আরও উপযুক্ত করে তোলে। যাদু /devফাইলগুলিতে আছে। বাইনারি ডেটা যেমন যে কোনও আধুনিক catবা মোকাবেলা করতে পারে এমন কোনও সরঞ্জাম headএকই কাজ করতে পারে ddযতক্ষণ না আপনি seekবা যেমন পতাকাগুলি পাস করছেন না skip।
মনে রাখবেন যে সমস্যাটি ভাগ করে নিয়েছে ddএবং catএটিই সফল অপারেশনে, তারা "ডিভাইসে কোনও স্থান বাকি নেই" (ENOSPC) দিয়ে ত্রুটিযুক্ত হয়ে যাবে। আপনি যদি এটি কোনও স্ক্রিপ্টে রাখেন তবে আপনাকে ত্রুটিটি ENOSPC কিনা তা পরীক্ষা করতে হবে বা অন্য কোনও পদ্ধতি ব্যবহার করতে হবে। আরও নির্ভরযোগ্য পদ্ধতিটি হ'ল প্রথমে ডিভাইসের আকার নির্ধারণ করা (যেমন /proc/partitionsলিনাক্সের অধীনে ব্যবহার করা), তারপরে কোনও সরঞ্জাম দিয়ে ঠিক সঠিক সংখ্যা বাইট লিখুন head।
size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX