تصویر دیسک dd چیست؟ ایجاد یک درایو فلش USB قابل بوت برای نصب ویندوز با استفاده از برنامه Rufus. انتقال سیستم به دیسک سخت دیگر

بنابراین، فرض کنید یک فایل ISO را با یک تصویر توزیع دانلود کرده اید و یک فلش درایو آماده کرده اید.

دستور ترمینال برای نوشتن تصویر iso توزیع به شرح زیر است:

sudo dd if= مسیر به .iso of=/dev/sdb

به جای آن کجا مسیر به .isoشما باید مسیر فایل iso را از پوشه خود مشخص کنید دانلودها.
sdbدر انتهای دستور، این فلش درایو است که تصویر روی آن نوشته می شود. برای شناسایی درایو فلش خود، در ترمینال اجرا کنید:



و اگر درایو فلش شما متفاوت تعریف شده است، آن را در دستور تغییر دهید.

برای وارد کردن صحیح مسیر فایل در دستور، پوشه حاوی فایل را باز کنید، ترمینال نزدیک را باز کنید و فایل را به داخل آن بکشید:


ترمینال مسیر فایل و خود فایل iso را نمایش می دهد. آن را بدون نقل قول کپی کنید و در دستور قرار دهید و در ترمینال میانبر صفحه کلید را فشار دهید ctrl+cبرای بازنشانی و نمایش خط جدیددعوت نامه ها

ساده ترین راه برای ایجاد دستور در ویرایشگر متن است.
من دستور زیر را دریافت کردم:


حالا درایو فلش USB را در پورت کامپیوتر قرار دهید، دستور دریافتی را از آن کپی کنید ویرایشگر متن، در ترمینال تایپ کرده و اجرا کنید (Enter را فشار دهید):


مکان نما ترمینال چشمک می زند و به نظر می رسد که هیچ اتفاقی نمی افتد، اما در واقع یک ضبط وجود دارد. صبر کنید تا ضبط تصویر تمام شود و در پایان باید چیزی شبیه به زیر را در ترمینال مشاهده کنید:


همین. درایو فلش شما قابل بوت شده است و اکنون می توانید کیت توزیع را روی هر رایانه ای نصب کنید.

مراقب باشید، زیرا در صورت اشتباه در نام فلش در دستور dd، می توانید به هارد هاست آسیب وارد کنید.

بیایید تعیین بخش های همه دستگاه ها را نمایش دهیم

و در میان آنها یک فلش مموری پیدا کنید:

sudo fdisk -u -l /dev/sd؟

همچنین برای تعریف پارتیشن در تمامی دستگاه ها می توانید از دستور زیر استفاده کنید:

sudo cat /proc/partitions

دستور دستور dd

dd if=/AAAA of=/BBBB bs=CCCC count=DDDD conv=بدون خطا
  • اگر: (فایل ورودی) به منبع اشاره می کند، یعنی. جایی که ما از آن کپی می کنیم یک فایل را مشخص می کند که می تواند یک فایل معمولی یا یک فایل دستگاه باشد.
  • از: (فایل خروجی) به فایل مقصد اشاره می کند. به همین ترتیب، ما می توانیم مانند در بنویسیم فایل معمولی، یا مستقیماً به دستگاه.
  • لیسانس: تعداد بایت هایی که باید در یک زمان نوشته شوند. یعنی به اندازه یک داده که در یک زمان خوانده و نوشته می شود. توصیه می شود bs= را به اندازه کش هارد دیسک تنظیم کنید. 8M 16M 32M
  • شمردن: چند قطعه لیسانسکپی خواهد شد.
  • تبدیل:به شما امکان می دهد فیلترهای قابل اجرا در جریان داده را متصل کنید. فیلتر کنید "بدون خطایی"فقط توقف برنامه را در صورت مواجه شدن با خطای خواندن غیرفعال می کند.

مثال ها

پاک کردن کامل دیسک

به طوری که هیچ چیز در رسانه قابل بازیابی نیست - می توانید آن را با صفر پر کنید، این دستور همیشه با خطای "فضای رسانه تمام شد" به پایان می رسد.

Dd if=/dev/zero of=/dev/sdX

یک تصویر دیسک ایجاد کنید

dd if=/dev/cdrom of=image.iso conv=noerror

در سیستم نیز امکان پذیر است

Mount -o loop /PathToImageFile/image.iso /mnt/FolderMount

اگر چیزی درست نشد، فرآیند به 2 سطح تقسیم می شود:

Losetup -e /dev/loop0 /PathToImageFile/image.iso mount /dev/loop0 /mnt/FolderMount

عملیات با MBR

MBR در 512 بایت اول قرار دارد هارد دیسک، و از یک جدول پارتیشن، بوت لودر و چند افزودن تشکیل شده است. بایت گاهی اوقات، باید از آن نسخه پشتیبان تهیه شود، بازیابی شود و غیره. پشتیبان گیری به این صورت انجام می شود:

Dd if=/dev/sda of=mbr.img bs=512 count=1

بازیابی آسان تر است:

Dd if=mbr.img of=/dev/sda

کپی با آرشیو

(با استفاده از gzip) داده ها از درایو فلش به هارد دیسک.

Dd if=/dev/sdX conv=sync،بدون خطا bs=8M | gzip -c >/PathToSave/sdX.img.gz

و برگشت

Gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync،بدون خطا bs=8M

کپی کردن از طریق شبکه

dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c blowfish [ایمیل محافظت شده]"dd of=sdX.img.gz bs=8M"

و برگشت

Dd if=sdX.img.gz | ssh -c blowfish [ایمیل محافظت شده]"dd of=/dev/sdX bs=8M"

اغلب، مدیران سیستم مجبورند داده های مختلف باینری را کپی کنند. به عنوان مثال، گاهی اوقات ممکن است بخواهید از هارد دیسک خود نسخه پشتیبان تهیه کنید، یک فایل خالی پر از صفر برای سازماندهی فضای مبادله یا سیستم فایل مجازی دیگر ایجاد کنید.

برای حل تمام این وظایف، از ابزار لینوکس dd استفاده می شود که به سادگی داده ها را از یک مکان به مکان دیگر در سطح باینری کپی می کند. این می تواند یک دیسک CD/DVD، بخشی از یک دیسک یا حتی کل آن را کپی کند HDD. در این مقاله به بررسی دستور dd linux، گزینه ها و پارامترهای اصلی آن و نحوه استفاده از آن خواهیم پرداخت.

ابتدا باید بدانید که دستور dd چگونه کار می کند و چه کاری انجام می دهد. در واقع، این یک آنالوگ از ابزار فقط برای داده های بلوک است. این ابزار به سادگی یک بلوک داده با اندازه مشخص شده را از یک مکان به مکان دیگر منتقل می کند. از آنجایی که لینوکس با همه چیز، از جمله دستگاه‌ها، به عنوان فایل برخورد می‌کند، می‌توانید دستگاه‌ها را به فایل‌ها منتقل کنید و بالعکس.

با استفاده از گزینه های مختلف ابزار، می توانید بر اندازه بلوک تأثیر بگذارید و این به نوبه خود بر سرعت برنامه تأثیر می گذارد. در مرحله بعد، گزینه های اصلی ابزار و قابلیت های آن را در نظر خواهیم گرفت.

دستور dd

نحو این ابزار کاملاً غیر معمول است، اما در عین حال بسیار ساده است، پس از اینکه آن را به خاطر می آورید و به آن عادت می کنید:

$ dd if= منبع_کپیاز= مقصدگزینه ها

با پارامتر if، باید منبعی را که از آن بلوک ها کپی می شود، مشخص کنید، این می تواند یک دستگاه باشد، به عنوان مثال، / dev / sda یا یک فایل - disk.img. در مرحله بعد با استفاده از پارامتر of باید دستگاه یا فایل مقصد را مشخص کنید. سایر پارامترها دارای نحو مشابه if و of هستند.

حالا بیایید به گزینه های اضافی نگاه کنیم:

  • لیسانس- نشان می دهد که چند بایت خواندن و نوشتن در یک زمان.
  • cbs- چند بایت باید در یک زمان نوشته شود.
  • شمردن- تعداد مشخص شده بلوک را کپی کنید، اندازه یک بلوک در پارامتر bs مشخص شده است.
  • تبدیل- اعمال فیلترها به جریان داده.
  • سندرم روده تحریک‌پذیر- تعداد مشخص شده بایت ها را در یک زمان بخوانید.
  • obs- تعداد مشخص شده بایت را در یک زمان بنویسید.
  • به دنبال- از تعداد مشخص شده بایت ها در ابتدای دستگاه برای خواندن رد شوید.
  • جست و خیز کردن- از تعداد بایت های مشخص شده در ابتدای دستگاه خروجی رد شوید.
  • وضعیت- نشان می دهد که برای نتیجه گیری به چه میزان دقیق نیاز دارید.
  • iflag, offlag- به شما امکان می دهد پرچم های عملیات اضافی را برای دستگاه ورودی و خروجی تنظیم کنید، مهمترین آنها عبارتند از: nocache، nofollow.

اینها همه گزینه های اساسی بودند که ممکن است به آن نیاز داشته باشید. حالا بیایید به تمرین نزدیک‌تر شویم و چند نمونه از نحوه استفاده از ابزار لینوکس dd را بررسی کنیم.

نحوه استفاده از dd

کاربران عادی اغلب از دستور dd برای ایجاد تصاویر استفاده می کنند دیسک های DVDیا سی دی به عنوان مثال، برای ذخیره یک تصویر دیسک در یک فایل، می توانید از دستور زیر استفاده کنید:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror

فیلتر noerror به شما امکان می دهد پاسخ خطا را غیرفعال کنید. در مرحله بعد، می توانید یک تصویر از هارد دیسک یا یک پارتیشن روی آن ایجاد کنید و این تصویر را در دیسک ذخیره کنید. فقط مراقب باشید که در هارد دیسک یا پارتیشن مشابه ذخیره نکنید تا باعث بازگشت مجدد نشود:

dd if=/dev/sda of=~/disk.img

در شما پوشه خانهفایلی به نام disk1.img ایجاد می شود که در آینده می توان آن را مستقر کرد و در یک سیستم آسیب دیده بازیابی کرد. برای نوشتن یک تصویر در هارد دیسک یا پارتیشن، کافی است آدرس های دستگاه را عوض کنید:

dd if=~/disk.img of=/dev/sda

بسیار مهم و گزینه مفید bs است. این به شما امکان می دهد تا بر سرعت ابزار تأثیر زیادی داشته باشید. این گزینه به شما امکان می دهد اندازه یک بلوک را هنگام انتقال داده ها تنظیم کنید. در اینجا باید یک مقدار عددی را با یکی از این اصلاح کننده های قالب مشخص کنید:

  • با- یک شخصیت؛
  • ب- 512 بایت؛
  • کیلوبایت- 1000 بایت؛
  • ک- 1024 بایت؛
  • MB- 1000 کیلوبایت؛
  • م- 1024 کیلوبایت؛
  • گیگابایت- 1000 مگابایت؛
  • جی- 1024 مگابایت.

دستور dd linux دقیقاً از چنین سیستمی استفاده می کند، پیچیده است، اما هیچ راه گریزی از آن وجود ندارد. باید فهمید و به خاطر بسپارید. به عنوان مثال، 2b 1 کیلوبایت است، و 1k نیز 1 کیلوبایت است، 1M برابر با 1 مگابایت است. به طور پیش فرض، این ابزار از اندازه بلوک 512 بایت استفاده می کند. به عنوان مثال، برای افزایش سرعت کپی دیسک، می توانید بلوک های 5 مگابایتی را بردارید. برای این کار از دستور زیر استفاده می شود:

dd if=/dev/sda of=~/disk.img bs=5M

پارامتر بعدی شمارش است. با آن می توانید تعیین کنید که چند بلوک کپی کنید. برای مثال، می‌توانیم یک فایل 512 مگابایتی را با پر کردن آن با صفرهای /dev/zero یا اعداد تصادفی از /dev/random ایجاد کنیم:

sudo dd if=/dev/zero of=file.img bs=1M count=512

لطفاً توجه داشته باشید که این پارامتر اندازه را بر حسب مگابایت نشان نمی دهد، بلکه فقط تعداد بلوک ها را نشان می دهد. بنابراین، اگر اندازه بلوک 1b را مشخص کنید، برای ایجاد یک فایل 1Kb فقط دو بلوک باید برداشته شود. همچنین می توانید از این گزینه برای پشتیبان گیری از جدول پارتیشن MBR استفاده کنید. برای انجام این کار، 512 بایت اول هارد دیسک را در فایل کپی کنید:

sudo dd if=/dev/sda of=mbr.img bs=1b count=1

برای بازیابی، از دستور عادی برای استقرار تصویر روی دیسک استفاده کنید.

اگر تصویر دیسک خیلی بزرگ است، می توانید تمام خروجی ها را به خروجی غیر stdout gzip هدایت کنید:

dd if=/dev/sda2 | bzip2 disk.img.bz2

شما همچنین می توانید از ابزار لینوکس dd برای کپی فایل ها استفاده کنید، اگرچه هدف مورد نظر آن این نیست:

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

همانطور که می دانید دستور dd لینوکس داده ها را مستقیماً روی دیسک می نویسد فرم باینرییعنی صفر و یک نوشته می شود. آنها آنچه را که قبلاً روی دستگاه ضبط قرار داده شده بود لغو می کنند. بنابراین، برای پاک کردن یک دیسک، می‌توانید به سادگی آن را با صفر از /dev/zero پر کنید.

sudo dd if=/dev/zero of=/dev/sdb

این استفاده از dd باعث می شود که کل دیسک به طور کامل پاک شود.

نتیجه گیری

در این مقاله، نحوه استفاده از dd linux را بررسی کردیم، این ابزار برای چه مواردی قابل استفاده است و چقدر می تواند مفید باشد. این تقریبا یک ابزار ضروری است مدیر سیستم، زیرا می توان از آن برای پشتیبان گیری از کل سیستم استفاده کرد. و اکنون می دانید که چگونه. اگر سوالی دارید، در نظرات بپرسید!

    روفوس- رایگان نرم افزارابزار منبع باز برای قالب بندی رسانه های ذخیره سازی USB قابل جابجایی و ایجاد دیسک های قابل بوت با انواع مختلف سیستم های عامل. استفاده از برنامه آسان است، سرعت بالاکار می کند و از رابط چند زبانه پشتیبانی می کند.

می توانید این برنامه را در وب سایت توسعه دهنده دانلود کنید. این صفحه حاوی پیوندهایی برای دانلود نسخه استاندارد است روفوس، و قابل حمل روفوس قابل حمل، که به جز نام فایل اجرایی و مکانی که تنظیمات در آن ذخیره می شود، در هیچ چیز تفاوتی ندارند. تنظیمات برنامه شامل زبان مورد استفاده و تنظیمات بررسی به روز رسانی است. نسخه استاندارد این تنظیمات را در رجیستری ذخیره می کند، در حالی که نسخه قابل حمل آنها را در یک فایل ذخیره می کند rufus.iniدایرکتوری برنامه روفوسنیازی به نصب بر روی سیستم ندارد - فقط فایل اجرایی را دانلود کرده و اجرا کنید. رابط برنامه بسیار ساده است:

به طور کلی، برنامه روفوسچیزی منحصر به فرد در زمینه ابزارهای ایجاد رسانه قابل بوت نیست و مزیت اصلی آن سهولت در استفاده است. برای ایجاد یک درایو فلش قابل بوت با کمک آن، کافی است تصویر اولیه سیستم قابل بوت را داشته باشید و بتوانید روی دکمه "شروع" کلیک کنید. تمام پارامترها و تنظیمات قابل انتخاب، به طور پیش فرض، قبلاً برای استفاده از برنامه برای کار بر روی رایانه با پیکربندی استاندارد طراحی شده اند.

ساده ترین و راحت ترین برای استفاده روفوسبرای ایجاد یک درایو فلش USB قابل بوت (دیسک USB قابل بوت) از تصاویر ISO نصب درایوهای ویندوزیا لینوکس، و همچنین دیسک های بازیابی سیستم اضطراری و ابزارهای تشخیصی.

هنگام ایجاد یک درایو فلش قابل بوت ویندوز، کافی است دستگاهی که ضبط روی آن انجام می شود و فایل iso-image قابل بوت را انتخاب کنید. این برنامه خودش پارامترهای دیگر را جایگزین خواهد کرد.

اگر هیچ فایل تصویری ISO در دسترس نباشد، می توان آن را از یک CD فیزیکی (یا از مجموعه ای از فایل های توزیع) با استفاده از برنامه های رایت CD/DVD مانند معروف Nero، Alcohol یا CDBurnerXP یا ImgBurn که آزادانه توزیع شده است، ایجاد کرد.

مراحل ساخت فلش درایو ویندوز قابل بوت به شرح زیر است:

  • درایو فلشی که تصویر روی آن نوشته می شود را انتخاب کنید. برخلاف بسیاری از برنامه های مشابه، Rufus برچسب حجم، حرف و اندازه درایو را نمایش می دهد، بنابراین اگر چندین درایو قابل جابجایی در سیستم وجود داشته باشد، انتخاب یک درایو برای نوشتن آسان است.

  • طرح پارتیشن و نوع رابط سیستم را انتخاب کنید. Rufus به شما امکان می دهد درایوهای فلش را برای بوت شدن در یک رابط معمولی بایوس ایجاد کنید و برای بوت شدن در یک محیط UEFI، رکوردهای بوت را برای حجم های MBR و حجم های GPT ایجاد کنید. حالت پیش فرض "MBR برای رایانه های دارای BIOS یا UEFI" است - رایج ترین حالت برای درایوهای فلش قابل بوت امروزی.

  • فایل سیستمی را انتخاب کنید که در درایو فلش قابل بوت ایجاد شده استفاده می شود. به طور پیش فرض، درایوهای فلش قابل بوت ویندوز از سیستم فایل استفاده می کنند FAT32، اما در صورت لزوم می توانید انتخاب کنید NTFSاگر می خواهید از فایل های بزرگتر از 4 گیگابایت استفاده کنید.

  • اندازه خوشه را تنظیم کنید اندازه کلاستر بر اساس داده های تصویر و نوع سیستم فایل توسط برنامه انتخاب می شود، اما در صورت لزوم می توان آن را تغییر داد.

  • برچسب حجمی که برای فلش درایو ایجاد شده تنظیم می شود را مشخص کنید.

  • گزینه های قالب بندی را تنظیم کنید این گزینه ها بهتر است به عنوان پیش فرض باقی بمانند و فقط فایل را انتخاب کنید تصویر ISO. برای تصاویر ایجاد شده توسط برنامه DDدر لینوکس، باید گزینه را انتخاب کنید تصویر DD.

    پس از فشار دادن دکمه شروع کنیدبرنامه درایو فلش را فرمت می کند، علامت را تنظیم می کند پارتیشن فعال، اصلی را ضبط خواهد کرد رکورد بوتو رکورد بوت پارتیشن و همچنین داده های رسانه قابل بوت از تصویر ISO. پس از اتمام کار روفوسشما می توانید با استفاده از درایو فلش قابل بوت ایجاد شده بوت شوید.

    استفاده از فناوری مجازی سازی برای تست درایوهای فلش قابل بوت. لینک های دانلود رایگان و برنامه های راحتبرای ساده سازی فرآیند ایجاد، اشکال زدایی و بررسی رسانه قابل بوت ایجاد شده.

    تیم DDبرای استفاده از ابزاری به همین نام طراحی شده است که برای کپی و تبدیل داده در سطح پایین طراحی شده است. نام آن مخفف "Data duplicator" یا "Data Duplicator" است. این ابزاراین عمدتا برای نوشتن تصاویر دیسک های نصب توزیع های لینوکس در درایوهای فلش و ایجاد تصاویر رسانه های نوری استفاده می شود، با این حال، محدوده عملکرد آن به عملیات ذکر شده محدود نمی شود. مثلا، DDمی توان از آن برای کپی کردن فایل ها یا تغییر حروف رشته های متنی استفاده کرد. به طور کلی، ابزار مورد بحث تا حدودی منحصر به فرد است، زیرا شامل استفاده از قالب خاص خود برای عبور پارامترها است.

    دستور دستور استاندارد به شرح زیر است:

    $ dd if=<имя исходного файла>از=<имя целевого файла>[گزینه ها]

    به راحتی می توان فهمید که برای ارسال پارامترها به ابزار، از فرمت ضبط استفاده می شود <имя параметра>=<значение параметра> . ابزار می تواند داده های منبع را از جریان ورودی استاندارد بخواند و در صورت امتناع از استفاده از پارامترها، داده های حاصل را با استفاده از جریان خروجی استاندارد خروجی دهد. اگرو از، اما در اکثریت قریب به اتفاق موارد، این پارامترها برای تعیین نام فایل ها با داده های مربوطه ضروری هستند. ابزار، داده ها را در بلوک ها می خواند و می نویسد، و اندازه بلوک را می توان با استفاده از پارامتر تغییر داد لیسانس(به طور پیش فرض از بلوک های 512 کیلوبایتی استفاده می شود). پارامترهای جداگانه ای برای تنظیم اندازه بلوک های قابل خواندن و نوشتن وجود دارد، یعنی: سندرم روده تحریک‌پذیرو obs. تعداد بلوک های قابل خواندن را می توان با استفاده از پارامتر محدود کرد شمردن. از این پارامتر می توان برای رد کردن تعداد معینی از بلوک ها در فایل منبع استفاده کرد. جست و خیز کردن، فایل هدف - پارامتر به دنبال. از این پارامتر می توان برای تعیین پرچم های خواندن و نوشتن که با کاما جدا شده اند استفاده کرد. iflag

    • ضمیمه- فعال سازی حالت الحاق داده ها به فایل هدف.
    • مستقیم- حالت پردازش داده ها با دور زدن حافظه پنهان سیستم های فایل(سرعت را افزایش می دهد).
    • dsync- حالت ضبط داده ها با همگام سازی (قابلیت اطمینان را افزایش می دهد).
    • همگام سازی- حالت ضبط داده ها و ابرداده ها با همگام سازی (افزایش قابلیت اطمینان).
    • بلوک کامل- خواندن فقط بلوک های کامل
    • غیر مسدود کردن- فعال کردن حالت I / O غیر مسدود کننده (سرعت را افزایش می دهد).
    • هیچ وقت- غیرفعال کردن مکانیسم به روز رسانی مهرهای زمانی عناصر سیستم فایل (سرعت را افزایش می دهد).
    • nofollow- امتناع از دنبال کردن پیوندهای نمادین.

    در نهایت، پارامتر را می توان برای تعیین پرچم های تبدیل جدا شده با کاما استفاده کرد تبدیل. پرکاربردترین پرچم ها عبارتند از:

    • مورد- تبدیل کاراکترهای رشته ASCII به حروف کوچک.
    • مورد- تبدیل کاراکترهای رشته ASCII به حروف بزرگ.
    • nocreat- خروجی پیام خطا اگر فایل مورد نظر از دست رفته است.
    • به استثنای- خروجی پیام خطا در صورت وجود فایل هدف.
    • notrunc- امتناع از کوتاه کردن فایل مورد نظر.
    • سواب- مکان هر دو بایت را از فایل منبع تغییر دهید.
    • بدون خطا- ادامه کار حتی در صورت بروز خطا.
    • fdatasync- فعال کردن حالت نوشتن داده ها در فایل مورد نظر قبل از پایان برنامه.
    • fsync- فعال سازی حالت نوشتن داده ها و ابرداده ها در فایل مورد نظر قبل از پایان برنامه.

    نمونه هایی از استفاده

    پشتیبان گیری از اطلاعات درایو دیسک

    فرض کنید از هارد دیسکی استفاده می کنیم که با یک فایل دستگاه نمایش داده می شود /dev/sda، و ما باید یک نسخه پشتیبان بخش به بخش از تمام داده های قرار داده شده روی آن ایجاد کنیم، و آن را در یک فایل در پارتیشن یک درایو USB قابل جابجایی ذخیره کنیم، که با یک فایل دستگاه نمایش داده می شود. /dev/sdb1و به دایرکتوری سوار شد /mnt/sdb1. معمولاً به این فایل های پشتیبان Dumps یا Disk Image می گویند. فایل ایمیج دیسک ما نامگذاری خواهد شد backup.img. این دستور برای ایجاد آن است:

    # dd if=/dev/sda of=/mnt/sdb1/backup.img

    در این دستور با استفاده از پارامتر اگرمسیر فایل منبع مشخص شده و با استفاده از پارامتر از- به هدف

    بازیابی اطلاعات از یک نسخه پشتیبان

    برای بازیابی اطلاعات از پشتیبان ایجاد شده، باید سیستم را از آن بوت کنید دیسک نصبتوزیع کنید و دستور معکوس را اجرا کنید.

    # dd if=/mnt/sdb1/backup1.img of=/dev/sda

    هشدار:هنگامی که این دستور اجرا می شود، کل محتویات هارد دیسک مشخص شده بازنویسی می شود، بنابراین باید با توجه ویژه به چنین دستوراتی برخورد کنید.

    شبیه سازی هارد دیسک

    قبل از شبیه سازی هارد دیسک، باید مطمئن شوید که هارد دیسکی با اندازه اصلی دارید. همین عملیات را می توان با درایوهای فلش USB با همان اندازه انجام داد. فرض کنید درایو فلش منبع با فایل دستگاه نمایش داده می شود /dev/sdbو هدف یک فایل دستگاه است /dev/sdc. در این حالت می توانید با دستور زیر درایو اصلی را کلون کنید:

    # dd if=/dev/sdb of=/dev/sdc

    حتی اگر درایو هدف دارای ظرفیت بیشتری باشد، شما فقط به اندازه درایو فلش منبع ذخیره شده در سطح فایل سیستم دسترسی خواهید داشت.

    انتقال یک فایل تصویری دیسک به کامپیوتر دیگر

    برای انتقال یک فایل تصویری دیسک از طریق شبکه به رایانه دیگری به نام هدفمی توان از دستور زیر استفاده کرد:

    # dd if=/dev/sdb | ssh [ایمیل محافظت شده]"(cat >backup.img)"

    فشرده سازی فایل ایمیج دیسک

    به نسخه پشتیبانپارتیشن دیسک فضای کمتری را اشغال می کند، می توانید آن را با یک کمپرسور مانند bzip2 فشرده کنید:

    # dd if=/dev/sdb | bzip2 backup.img.bz2

    یک تصویر دیسک نوری ISO ایجاد کنید

    برای ایجاد یک تصویر دیسک نوریکافی است محتویات یک CD، DVD یا BD را بلوک به بلوک بخوانید و این محتوا را در یک فایل ذخیره کنید:

    # dd if=/dev/sr0 of=image.iso bs=2048

    ذخیره یک فایل از رسانه آسیب دیده یا ایجاد تصویری از چنین رسانه ای

    اگر فیلم یا آهنگ مورد علاقه شما به دلیل آسیب رسانه قابل خواندن نیست، می توانید آن را با استفاده از ابزار کپی کنید. DD، نادیده گرفتن بلوک های بد:

    # dd if=movie.avi of=/home/alex/movie.avi conv=noerror, sync

    همچنین می توانید یک فایل تصویری ایجاد کنید رسانه های آسیب دیدهو سعی کنید فایل ها را از آن استخراج کنید:

    # dd if=/dev/sdb of=/home/alex/movie.iso bs=2048 conv=noerror, sync

    رایت تصویر دیسک نصب بر روی درایو فلش USB

    برای نصب توزیع لینوکساز یک درایو فلش USB، باید یک تصویر دیسک نصب با فرمت ISO را در این درایو فلش USB بنویسید. برای این منظور می توان از یک دستور مشابه استفاده کرد:

    # dd if=/home/alex/Fedora-Workstation-Live-x86_64-26_Alpha-1.7.iso of=/dev/sdc

    مهم است که به یاد داشته باشید که حتی اگر پارتیشن هایی روی درایو فلش وجود داشته باشد، باید مسیر فایل دستگاه یکی از پارتیشن ها را مشخص نکنید، بلکه مسیر فایل دستگاه خود درایو را مشخص کنید، در مورد ما این است. /dev/sdc.

    تجزیه و تحلیل محتویات هارد دیسک

    سودمند DDیک ابزار عالی برای کاوش سیستم های فایل است. برای تحلیل مطالب سختدیسک با خروجی داده از بلوک های جداگانه، در مورد ما، یک بلوک 1001 در پارتیشن نشان داده شده توسط فایل دستگاه /dev/sdc1فقط از دستور زیر استفاده کنید:

    # dd if=/dev/sdc1 count=1 skip=1000

    برای دیدن 40 بایت اول هارد دیسک به صورت هگزادسیمال، از دستور زیر استفاده کنید:

    # dd if=/dev/sda bs=1 count=40 | hexdump -C

    در این حالت با استفاده از پارامتر لیسانساندازه بلوک دیسک را تنظیم کنید

    تست عملکرد درایو

    برای آزمایش عملکرد یک درایو دیسک که به عنوان مثال با یک فایل دستگاه نمایش داده می شود /dev/sdaدر شرایط خواندن بلوک های اندازه های مختلف، می توان از یک دستور مشابه استفاده کرد:


    1000000+0 رکورد در
    1000000+0 رکورد خارج شد

    # dd if=/dev/sda of=/dev/null bs=4096 count=1000000
    1000000+0 رکورد در
    1000000+0 رکورد خارج شد
    4096000000 بایت (4.1 گیگابایت) کپی شده، 29.8747 ثانیه، 137 مگابایت بر ثانیه

    به لطف مکانیزم ذخیره سازی فایل سیستم ها، می توانید با سرعت عرفانی عملیات خواندن مواجه شوید که جای تعجب ندارد:

    # dd if=/dev/sda of=/dev/null bs=512 count=1000000
    1000000+0 رکورد در
    1000000+0 رکورد خارج شد
    512000000 بایت (512 مگابایت) کپی شده، 4.25186 ثانیه، 120 مگابایت بر ثانیه

    # dd if=/dev/sda of=/dev/null bs=512 count=1000000
    1000000+0 رکورد در
    1000000+0 رکورد خارج شد
    512000000 بایت (512 مگابایت) کپی شده، 0.417317 ثانیه، 1.2 گیگابایت بر ثانیه

    برای به دست آوردن نتایج آزمایش صحیح، توصیه می شود با استفاده از حالت I/O بدون ذخیره سازی، مکانیسم کش سیستم فایل را به طور کلی دور بزنید:

    # dd if=/dev/sda of=/dev/null bs=512 count=100000 iflag = مستقیم
    100000+0 رکورد در
    100000+0 رکورد خارج شد
    51200000 بایت (51 مگابایت) کپی، 5.01053 ثانیه، 10.2 مگابایت بر ثانیه

    کپی کردن فایل ها

    بله، ابزار DDحتی می تواند برای کپی کردن فایل های معمولی استفاده شود. البته برای این منظور بهتر است از ابزاری که مخصوص این کار طراحی شده است استفاده کنید، یعنی cp. در هر صورت، می توانید فایل را با دستور مشابه کپی کنید:

    $ dd if=/home/alex/test.txt /home/alex/test_copy.txt