ডিস্কের শেষে dd কমান্ড বিএস বিকল্প


10

আমি যদি ddকমান্ডটি নিম্নরূপ ব্যবহার করতাম :

dd if=/dev/zero of=/dev/sdX bs=16M

ডিস্কের শেষে কী ঘটে যদি এটি 16 এম এর সঠিক একাধিক না হয়? এর অর্থ কি ডিস্কের শেষ অংশটি শূন্য নয়?

আমি https://www.markanborn.net/howto/wiping-a-hard-drive-with-dd// তে লক্ষ্য করেছি , তিনি লিখেছেন যে মার্কিন সরকার ব্যবহার করে

dd if=/dev/urandom of=/dev/sda bs=8b conv=notrunc

conv=notruncবিকল্পটি কি প্রতিটি শেষ বাইট মুছা যায় তা নিশ্চিত করার উপায়?

dd 

উত্তর:


12

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

8

কোনও সমস্যা নেই - ddএকেবারে শেষ দিকে লিখুন ( No space left on device), যদি না এটি ইনপুটটি শেষ না করে, সীমাবদ্ধ হয় count=xবা অন্য কোনও ত্রুটি ঘটে (যেমন খারাপ ক্ষেত্রগুলি, লসি ক্যাবল ইত্যাদি)।

যদি একটি সম্পূর্ণ ব্লক ডিভাইস ওভাররাইট করা আপনার লক্ষ্য, তবে shredএটি ব্যবহার করা সহজ।

shred -v -n 1 /dev/deleteme     # pseudorandom data
shred -v -n 0 -z /dev/deleteme  # zeroes

অথবা cryptsetupযাচাইকরণের পদক্ষেপের সাথে এলোমেলো ডেটার জন্য (শূন্যগুলি এলোমেলোভাবে ডেটাতে এনক্রিপ্ট করা হয়; এলোমেলো ডেটা জিরোতে ডিক্রিপ্ট করা হয়)।

অথবা blkdiscardএসএসডি-র জন্য।

বা wipefsযদি এটি কেবল স্ক্র্যাচ থেকে শুরু করার কথা, আপনি কোনও ড্রাইভে সঞ্চিত সমস্ত কিছু থেকে জোরপূর্বক মুক্তি না দিয়ে।

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