পুরো আউটপুট ডিভাইসটি মুছে ফেলা হয়েছে যে এর আকারটি আপনি যে ব্লক আকারে পাস করেছেন তা একাধিক কিনা 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