فهرست مندرجات
دستور 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