আমি যেখানে ডিডি থাকি সেই ড্রাইভে জিরোস ডিডি করলে কী হবে?


10

এই আদেশটি কি dd if=/dev/zero of=/dev/sda bs=1Mসফল হবে : ডিডি কমান্ডটি মূলত / ডিভ / এসডিএ এ থাকলে? ডিডি সেই সময়ে স্মৃতিতে থাকার কারণে এটি কি সম্পূর্ণ হবে?

উত্তর:


40

তিনটি জিনিস ঘটতে পারে:

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


তত্ত্বের পক্ষে এখন পর্যন্ত। এখন ব্যবহারিক পরীক্ষার জন্য।

আমি একটি ভিএম এ একটি তাজা উবুন্টু 12.10 ইনস্টল করেছি। (উইন 7-এক্স 64 এ ভিএমওয়্যার ওয়ার্কস্টেশন, ডিফল্ট বিকল্পগুলি এবং একটি 10 ​​জিবি ভার্চুয়াল ডিস্ক ব্যবহার করে)।

ডিডি কমান্ডটি সাফল্যের সাথে সম্পন্ন হয়েছে এবং আমি একটি কার্যপ্রণালী যা বলেছি তা ফিরে পেয়েছিলাম। আমি নতুন কমান্ড লিখতে পারি, যদিও তারা সুস্পষ্ট কারণে ব্যর্থ হয়।

ডিস্কটি মোছার পরে উবুন্টু ভিএম এর স্ক্রিনশট


9
ব্যবহারিক পরীক্ষার জন্য বড় +1!
ডগ হ্যারিস

10
আমি দেখছি Segmentation faultএবং আপনি দাবি করেছেন যে এটি সফলভাবে শেষ হয়েছে ...?
অ্যালভিন ওয়াং

1
আয়ে। এটি ডিস্কটি অপঠনযোগ্য করে তুলেছে। আমি মনে করি যে লক্ষ্য ছিল। সুরক্ষিত মোছার জন্য আপনার অন্য কিছু চেষ্টা করা উচিত (যেমন নিরাপদ মোছার আদেশ)।
হেনেস

আমি পেয়েছি সেরা উত্তর এক। ধন্যবাদ!
এগ্রিজ

6

দাম স্ক্রিন লিনাক্স ব্যবহার করে ভার্চুয়াল মেশিনে একটি দ্রুত পরীক্ষা-নিরীক্ষার মাধ্যমে dd কমান্ডটি প্রত্যাশিতভাবে সম্পূর্ণ হয়েছে; প্রোগ্রামটি শুরুতে মেমোরিতে চালিত হওয়ার জন্য লোড করা হয় এবং প্রক্রিয়া চলাকালীন পুনরায় এক্সিকিউটেবলকে লোড করা খুব সামান্যই বোধগম্য হয়। শেষ পর্যন্ত, ডিডি প্রস্থান করে এবং 'ডিভাইসে কোনও স্থান অবশিষ্ট থাকবে না' এর প্রতিবেদন করবে।

এরপরে, অপারেটিং সিস্টেমটি প্রথম দর্শনে স্বাভাবিকভাবে কাজ করবে বলে মনে হয়, তবে প্রথম কমান্ডের পরে এটি স্থগিত হয়ে যায় যা স্পষ্ট কারণে এটি আর কার্যকর করতে পারে না এবং প্রতিক্রিয়াহীন হয়ে যায়। হার্ড ড্রাইভের সামগ্রীর একটি সংক্ষিপ্ত পরিদর্শন করে দেখায় যে পার্টিশনটি প্রকৃতপক্ষে শূন্য হয়েছে।


4

mmapলিনাক্সের পৃষ্ঠা থেকে :

MAP_SHARED Share this mapping.  Updates to the mapping are visible to other processes that map this  file,
           and  are  carried  through  to the underlying file.  The file may not actually be updated until
           msync(2) or munmap() is called.


MAP_PRIVATE
           Create a private copy-on-write mapping.  Updates to the mapping are not visible to other  pro‐
           cesses  mapping  the  same  file,  and  are  not carried through to the underlying file.  It is
           unspecified whether changes made to the file after the mmap() call are visible  in    mapped
           region.

এক্সিকিউটেবলগুলি mmapফাংশনটির অভ্যন্তরীণ কলের মাধ্যমে কার্নেল দ্বারা মেমরিতে ম্যাপ করা হয় । একটি MAP_PRIVATEপ্রকারের ম্যাপিংয়ের জন্য অনুরোধ করা হয়েছে ( fs/binfmt_elf.cকার্নেল উত্স গাছের দিকে দেখুন)।

সুতরাং এটির আচরণে এটি উত্সাহিত হয় mmap: ফাইলের পরিবর্তনগুলি, বা অন্তর্নিহিত ব্লক ডিভাইসে যেখানে ফাইলটি রেফারেন্স করা হয়েছে, সেগুলি ম্যাপিংয়ের পৃষ্ঠাগুলিতে ফিরে প্রচার করা হয়েছে যা ইতিমধ্যে পৃষ্ঠাযুক্ত এবং উপস্থিত রয়েছে।

সেই পৃষ্ঠাটি কার্নেলের আচরণের পরিবর্তে, এপিআই মানগুলির উপর ভিত্তি করে, তাই "অনির্দিষ্ট"। আসল আচরণটি হ'ল ফাইলটিতে পরিবর্তনগুলি ইতিমধ্যে উপস্থিত পৃষ্ঠায় ফিরে প্রচার করা হয় না। অবশ্যই, যদি প্রোগ্রামটি হঠাৎ এমন কোনও কোডের পৃষ্ঠায় ঝাঁপিয়ে যায় যা ইতিমধ্যে পৃষ্ঠায়িত করা হয়নি এবং মুছে ফেলা ইতিমধ্যে হয়ে গেছে, তবে এটি সমস্ত শূন্যের একটি পৃষ্ঠা পাবে।

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

তবে সেই পৃষ্ঠাটি পূর্বের অনুরোধ থেকেও ক্যাশে করা যেতে পারে dd


1

হ্যাঁ. অবশ্যই এটি আপনার বেশিরভাগ ফাইল সিস্টেমের জন্যও ব্যয় করতে পারে তবে সম্ভবত আপনি এটি ইতিমধ্যে জানেন ...


0

আমি সম্প্রতি একটি ভুল করেছি। আমি এসডি কার্ডের উপর একটি 2 গিগাবাইট আইএমজি ডিডি করার ইচ্ছা করেছিলাম, তবে ভুল করে এসডিএতে করেছিলাম dd if=rasberrypi.img of=/dev/sda। আমার ভুল বুঝতে পেরে এবং ডিডি বাতিল করে দিয়েছিল, তবে ততক্ষণে M 600MB (disk 500GB ব্যবহৃত একটি ডিস্কে) লেখা হয়েছিল written পার্টিশন টেবিল নষ্ট হয়ে গেছে।

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

কয়েক ঘন্টা পরে, আমার ফাইল সিস্টেমটি কেবল পঠন মোডে চলে যায় এবং এলোমেলো প্রোগ্রামগুলি মারা যেতে শুরু করে। আমি অন্যান্য অনেক সিস্টেমে ছিটকে পড়েছি, আমি এই অধিবেশনগুলি ব্যবহার চালিয়ে যেতে পারতাম, তবে নতুন সেশনটি ত্রুটি দিয়েছে যে এটি এসএস প্রোগ্রামটি খুঁজে পাচ্ছে না। এই সময়ে আমি ক্রোমে খোলা ট্যাবগুলি স্যুইচ করতে পারতাম, তবে ট্যাবগুলির বিষয়বস্তুগুলি "স্তব্ধ" হয়েছে বলে মনে হচ্ছে। আমি রিফ্রেশ করলে আমি চিরকালের জন্য সাদা পর্দা পাই get rsyslogd কোনও কারণে 100% সিপিইউ (1 কোর) নিচ্ছিল, সম্ভবত এটি বিভ্রান্ত হয়েছিল যে কেন এটি লগটিকে ডিস্কে ফ্লাশ করতে পারে না ... হতে পারে।

আমার ভিএলসিতে একটি 350 এমবি ভিডিও খোলা (এবং বিরতি দেওয়া) ছিল, আমি এখনও এটি প্লে করতে পারি এবং ভিডিওর কোনও অংশে এড়াতে পারি। সম্ভবত এটি সাম্প্রতিক ডাউনলোডের পর থেকে।

আমি জিইআইআই ব্যবহার করে সিস্টেমটি সাধারণত বন্ধ করে দিতে পারি, কোনও ত্রুটি নেই।

সুতরাং এটি আপনার প্রশ্নের সঠিক উত্তর দিতে পারে না, তবে যদি আপনি ডিস্কটির শুরু শুরু করেন তবে কি হবে তা বলে ..

ডিস্কের বেশিরভাগ জিনিসগুলি এখনও পুনরুদ্ধারযোগ্য হতে পারে তবে আমি পাত্তাই দিচ্ছি না যেহেতু (আশা করি) আমার যত্ন নেওয়া সমস্ত কিছুই ব্যাকআপ হয়ে গেছে।


-1

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


2
অনুপস্থিত একটি ফাইলের অনুরোধ কর্নেলকে আতঙ্কিত করবে না। যদি এটি হয়, মেশিনগুলির ক্র্যাশ হবে যদি তাদের কেবল একটি অবিশ্বাস্য ডিস্ক থাকে।
ডেভিড শোয়ার্জ

@ ডিভিড শোয়ার্টজ, যদি এটিই হয় তবে #rm -rf / আসলে পুরো ফাইল সিস্টেমটি মুছে ফেলত। আমি পরীক্ষাগুলি থেকে জানি যে এটি হয় না। কোনও ধরণের র্যামডিস্ক প্রযুক্তি বাস্তবায়িত না করা হলে সিস্টেমটি রাম থেকে পুরোপুরি দীর্ঘকাল চলতে পারে না, এটি মানক নয়।
ফ্রাঙ্ক থমাস

@ ফ্র্যাঙ্কথোমাস: কর্নেল আতঙ্কিত হয়েছে?
ডেভিড শোয়ার্টজ

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