اسرار اداة dd العجيبة

اسرار أداة dd في جنو لينكس


السلام عليكم و رحمة الله و بركاته
و الصلاة و السلام على خير البرية العادل الصادق البر الأمين
و لا ننسى الدعاء لإخواننا في كل مكان

المحتويات

  • حرق اقراص iso في وحدة التخزين، مثلا usb
  • نسخ الملفات بإستخدما dd
  • نسخ الأقراص باستخدام dd
  • اخذ نسخة احتياطية للقرص على صيغة ملف iso
  • إختبار سرعة الإنترنت من خادم ssh محلي
  • سرعة المعالج و اتصالات النظام و سرعة الذاكرة بأداة dd
  • عمل تهيئة للقرص بشكل كامل (ملؤه بالأصفار) ، او كتابة ملف مصفر فيه
  • تنبيهات للأخطاء القاتلة و الحلول لما بعد الإصابة
  • المصادر او بعض المصادر
  • الترخيص

حرق iso في usb يمكن فعل ذلك عن طريق gnome-disks

لكن ماذا لو احتجت في يوم اداة للحرق و لم يتوفر عندك البرنامج و لم تعلم كيفية تنزيل الحزم او في حال عدم الإتصال بالإنترنت او في حال عدم وجود واجهة رسومية

عندها ستحتاج للأمر dd كي يقوم بالحرق

  1. اولا تأكد من القرص تأكد انه الذي تريد وضع به ملف iso من خلال امر
sudo  fdisk -l 

تأكد من تشغيله بصلاحية الجذر (root) من خلال كتابة قبله sudo ثم كتابة كلمة السر

:warning: تحذير الخطأ في المسار يؤدي لفقد البيانات

في حالتي هذا القرص المستهدف سعته 7.5 جيجا ، لكن عندما اشتريته اشتريته على اساس انه 8 جيجا

لكن هذا بسبب فرق الحساب بين البت و البايت ، بحساب البايت فهو يعادل 8.1 جيجا بايت ام بالبت فهو 7.5 جيجا بت

ما يهمنا هو موقعه في حالتي موقعه dev/sdb/ ساقوم الأن بحرق التوزيعة التي نزلتها مسبقا عندي

  1. اكتب الأمر بصلاحية الجذر
 sudo dd if=<"path of iso"> of=<"path of device"> status=progress

يمكن ان يكون الجهاز usb, hdd, ssd… او اية وحدة تخزين يمكن الكتابة عليها

غير مسار iso للمصدر الخاص بك و مسار القرص للقرص الذي تريد الحرق عليه

معامل if يعني مصدر القراءة و في حالتي هو قرص iso موجود في نفس المجلد الحالي

معامل of يعني مصدر الكتابة (اين سينسخ الملف المدخل) و في حالتي هو جهاز التخزين dev/sdb/

status هي لإظهار حالة ما
status=progress لإظهار حالة التقدم

هذه صورة بعد الإنتهاء من النسخ (الحرق يعتبر نسخا لملف iso)

يظهر ان سرعة الكتابة به كانت 4.8 ميجا بايت/الثانية
و ان حجم ملف iso كان يعادل 913 ميجا بايت او 871 ميجا بت

هكذا تمت عملية الحرق بنجاح

الموجز :

  1. sudo fdisk -l #  لعرض الأقراص و اختيار القرص المستهدف
    
  2. sudo dd if=<path of iso> of=<path of device> status=progress
    

device يمكن ان يكون usb او قرصا صلبا hdd او ssd او جهاز شبيه
if المصدر
of هي الهدف للنسخ
status=progress لعرض حالة التقدم

3.:warning: احذر من اختيار موقع قرص خاطئ فسيتم الكتابة فوقه و حذف البيانات التي عليه


نسخ الملفات بإستخدام dd

نفس الأمر السابق لكن كلا مصدر القراءة و الكتابة ملفات
في حالتي نسخت iso لـ iso آخر (ليس شرط ان يكون iso) ، اي شيء عبارة عن ملف يمكن نسخه ، و في فلسفة لينكس كل شيء عبارة عن ملف :slight_smile:

نفس الأمر السابق مع تغيير الهدف لمسار الملف الجديد بدل مسار القرص

sudo dd if=<path of file> of=<path of file> status=progress

نسخ الأقراص باستخدام dd

sudo dd if=<path device> of=<path of device> status=progress

device يمكن ان يكون usb او قرصا صلبا hdd او ssd او جهاز شبيه
if نفس هذا الأمر و أن يكون المسار القراءة هو القرص المرجو نسخه
of و مسار الكتابة القرص الذي تريد النسخ عليه

:warning: سيتم حذف جميع بيانات القرص الذي تريد الكتابة عليه


اخذ نسخة احتياطية من القرص لملف بصيغة iso

انشأت ملفا فارغا لأقوم بعمل نسخة احتياطة به من الـ القرص الخاص بي
نفس الأمر لكن يكون مصدر القراءة من القرص
ومصدر الكتابة ملف iso تسميه انت ، في حالتي سميته mydisk.iso

sudo dd if=<path of device> of=<path of iso > status=progress

إختبار سرعة الإنترنت من خادم ssh محلي

dd if=/dev/zero status=progress | ssh user@server_ip 'dd of=/dev/null'

استبدل مكان user اسم المستخدم
و مكان server_ip الأيبي الخاص بخادمك
-p في ssh لإستخدام منفذ آخر غير الإفتراضي 22 (في termux هو 8022)

يظهر هنا سرعة الإتصال مع هاتفي تصل لـ 8.3 ميجا بايت و تم نسخ خلال 19 ثانية ما يقارب 158 ميجا بايت او 151 ميجا بت

يمكن تطبيق ذلك على تطبيق termux بالهاتف و اعتبار حاسوبك هو الخادم او العكس منفذ ssh في termux هو 8022 كما فعلت انا بالصورة

يمكن تغيير حجم الحزمة المرسلة او المنسوخة في كل مرة عبر اضافة bs=الحجم
غيرت حجم القطعة لـ 1ميجا بت

في الصورة التالية تظهر القسيمات M ميجا بت , MB ميجا بايت

dd if=/dev/zero status=progress bs=1M | ssh user@server_ip -p 8022 'dd of=/dev/null'

يمكن تحديد عدد محدد من الحزم من خلال count=عدد الحزم بدل من الإستمرار بدون توقف

dd if=/dev/zero status=progress bs=1M count=300 | ssh user@server_ip -p 8022 'dd of=/dev/null'

:warning: لايحتاج لصلاحية الجذر فقط سيطلب كلمة سر المستخدم في الخادم


إختبار سرعة مكالمات النظام ذات الصلة (relevant system calls) و المعالج و الذاكرة مجتمعين في امر واحد (لست متأكد من معنى استدعاءات النظام ذات الصلة لكن الرابط موجود في المصادر)

dd if=/dev/zero of=/dev/null status=progress

يقوم بالقراءة من قرص الأصفار (يولد اصفار) و يقوم بالكتابة في قرص لا شيء (يقوم بحذف او تجاهل كل شيء يرسل له اشبه بالثقب الأسود)

عند تغيير حجم الحزمة تتغير السرعة (اعتقد الأمر يعتمد على الذاكرة)

dd if=/dev/zero of=/dev/null bs=1MB status=progress
نلحظ فرقا في السرعة عند تصغير الحزمة


عمل تهيئة للقرص بشكل كامل (ملؤه بالأصفار) ،لجعل استعادة البيانات امرا غير ممكنا في hdd اما في ssd فطريقة التخزين مختلفة ، قرأت انها لا تنفع مع ssd

1.طريقة على القرص مباشرة

sudo dd if=/dev/zero of=/dev/your-device-path status=progress

استبدل your-device-path بمسار الجهاز المستهدف usb, hdd او ما شابه

  1. طريقة تعبئة ملف بالأصفار داخل القرص (اقل خطر لا يوجد بها اسماء اقراص)
dd if=/dev/zero of=zeros_file status=progress

هنا يظهر حجم الملف كبير جدا ، ,و هذا بسبب نظام الملفات fat اكبر ملف به يساوي 4 جيجا بت ، في هذه الحالة عليك تكرار الخطوة حتى تشغل جميع الذاكرة او تغيير نظام الملفات لنظام حدوده اوسع او ليس له حدود، مثلا ext4 يسمح بـ 16 تيرا بايت للملف الواحد (في المصادر)


تنبيهات للأخطاء القاتلة و الحلول لما بعد الإصابة

:warning: انتبه من اسم القرص جيدا لأنه في حال الكتابة على قرص به اغراض سيتم الكتابة فوقه و حذف ما فيه

:warning: إذا فقدت بياناتك لا تجزع فلازال بإمكانك استرجاع ما يمكن استرجاعه عبر اداة testdisk لإستعادة الأقسام او photorec موجودة ايضا في نفس حزمة الأداة السابقة (هناك الكثير من المقاطع الصورة و المواقع التي تشرح استعمالها)

:warning: عند فقدان بيانات حاول عدم الكتابة على القرص نهائيا لأن الكتابة ستقلل فرص الإستعادة لأن الملف عبارة عن اجزاء و إذا كتبت فوق جزء يصبح الملف ناقصا و هو ما يصعب الإستعادة


المصادر

لا اذكر معظم الصادر ، لكن لا انسى فضل الأخ فارس و الأخ سالم و الكثير من الأشخاص ممن ساعدني و شكر لمجتمع اسس و شكر خاص لمجتمع اسس على تيليجرام


ترخيص الموضوع يتبع لترخيص مواضيع مجتمع أسس CC-BY-SA 4.0

4 إعجابات