ابزار کاربر

ابزار سایت


terminal:d:dd_command_copy_and_convert_input_blocks

دستور dd ( تبدیل و کپی یک فایل به اندازه های تعیین شده )

dd دستوری است که برای تبدیل و کپی یک فایل به اندازه تعیین شده بکار میرود dd به جای خواندن ورودی از صفحه کلید, ورودی را از یک فایل میخواند و به جای نوشتن در نمایشگر, خروجی را در یک فایل ذخیره میکند. فرض کنید میخواهید از یک فایل به اندازه ۸۰۰ کیلوبایت فقط ۵۱۲ کیلوبایت آن را کپی کنید. برای این کار باید dd را طوری تنظیم کنید که به تعداد ۵۱۲ کیلوبایت از آن فایل را در یک فایل جدید ذخیره کند. فرمت کلی دستور dd بصورت زیر است:

dd [operand] ... dd option

سوئیچ های دستور dd:

سوئیچ یا option های متداول dd بصورت زیر هستند:

  • if=file : مخفف Input File و فایلی را مشخص که میخواهیم کپی آن را تهیه کنیم. دستور dd از این فایل به جای صفحه کلید استفاده میکند.
  • of=file : مخفف Output file و فایلی را مشخص میکند که میخواهیم خروجی ( کپی فایل اول ) را در آن ذخیره کنیم.
  • bs=Byte : اندازه فایل جدید که با of مشخص میشود در اصل به اندازه مقدار Byte, از فایل if, فایل of را میسازد.
  • count=Value : تعداد تکرار را نشان میدهد فرض کنید bs=512 - یعنی ۵۱۲ بایت و count=1 باشد فایل جدید 1*512 بایت خواهد بود.

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

dd if=/path/to/inputfile of=/path/to/outputfile bs=Byte count=value

کاربردهای دستور dd

برای تهیه نسخه پشتیبان از MBR

dd if=/dev/hda of=/tmp/mbrbackup.img bs=512 count=1

دستور بالا ۵۱۲ بایت اول هارد hda را در یک فایل به نام mbrbackup.img ذخیره میکند. ۵۱۲ بایت اول هارد شامل mbr است. دستور زیر برای بازیابی mbr استفاده میشود به اینصورت که فایلی به نام mbrbackup.img و به اندازه ۵۱۲ بایت در ۵۱۲ بایت اول هارد hda ذخیره میشود.

dd if=/tmp/mbrbackup.img of=/dev/hda bs=512 count=1

برای تهیه image از cd/dvd و فلاپی

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

dd if=/dev/fd0 of=/tmp/fdimage
dd if=/tmp/fdimage of=/dev/fd0

برای تهیه پشتیبان از پارتیشن ها

از دستور dd و بصورت خط زیر میتوان از پارتیشن فایل پتشیان تهیه کرد. در مثال زیر با دستور gzip و از پارتیشن dev/hda1/ یک فایل پشتیبان به نام partbackup.gz تهیه میشود.

dd if=/dev/hda1|gzip -c >/tmp/partbackup.gz

برای بازیابی آن از دستور زیر استفاده میکنیم فقط باید دقت شود که اندازه پارتیشن مقصد با اندازه پارتیشن مبدا یکسان باشد.

cat /tmp/partbackup.gz|gzip -d|dd of=/dev/hda1

از دیگر کاربردهای دستور dd ایجاد یک فایل برای ساخت یک پارتیشن swap یدکی استفاده میشود ایجاد یک swap file (یک فضای swap اضافی بصورت یک فایل)

ایجاد یک Flash Memory با قابلیت Bootable توسط دستور dd

گزینه sync در دستور فوق به شما اجازه میدهد هر چیزی را با استفاده از همگام سازی i/o بر روی flash memory کپی کنید همچنین bs یا byte size نیز عموما کمتر از 512 بایت نیست به عنوان مثال میتوانید یکی از مقادیر :512,1024,2048,4096,8192,16384 باشد امام میتوان هر مقدار integer دیگری را برای آن وارد کرد. برای مثال ما میخواهیم یک فایل iso را بر روی فلش bootable کنیم برای این منظور از دستور زیر استفاده میکنیم

sudo dd if=file.iso of=/dev/sdb bs=1M;sudo sync;sudo eject /dev/sdb
terminal/d/dd_command_copy_and_convert_input_blocks.txt · آخرین ویرایش: 2019/01/03 21:19 توسط phoenix