.TH SGP_DD "8" "2026-04-01" "sg3_utils\-1.49" SG3_UTILS .SH "نام (NAME)" sgp_dd \- کپی داده‌ها به و از فایل‌ها و دستگاه‌ها، به‌ویژه دستگاه‌های SCSI .SH "خلاصه دستور (SYNOPSIS)" .B sgp_dd [\fIbs=BS\fR] [\fIcount=COUNT\fR] [\fIibs=BS\fR] [\fIif=IFILE\fR] [\fIiflag=FLAGS\fR] [\fIobs=BS\fR] [\fIof=OFILE\fR] [\fIoflag=FLAGS\fR] [\fIseek=SEEK\fR] [\fIskip=SKIP\fR] [\fI\-\-help\fR] [\fI\-\-version\fR] .PP [\fIbpt=BPT\fR] [\fIcoe=\fR0|1] [\fIcdbsz=\fR6|10|12|16] [\fIdeb=VERB\fR] [\fIdio=\fR0|1] [\fIsync=\fR0|1] [\fIthr=THR\fR] [\fItime=\fR0|1] [\fIverbose=VERB\fR] [\fI\-\-chkaddr\fR] [\fI\-\-dry\-run\fR] [\fI\-\-nocopy\fR] [\fI\-\-progress\fR] [\fI\-\-verbose\fR] .SH "شرح (DESCRIPTION)" .\" Add any additional description here کپی داده‌ها به و از هر فایلی. به‌طور ویژه برای «فایل‌هایی» که دستگاه‌های عمومی اسکازی لینوکس (sg) و دستگاه‌های خام (raw) هستند، تخصیص یافته است. قواعد نوشتاری و معنایی آن شبیه به .B dd(1) است اما هیچ تبدیلی انجام نمی‌دهد. برای افزایش سطح موازی‌سازی از ریسه‌های پازیکس (POSIX threads یا همان "pthreads") بهره می‌برد. این کار در برخی موارد سرعت را بهبود می‌بخشد. .PP گروه اول در بخش خلاصه دستور، عملوندهای «استاندارد» یونیکس .B dd(1) هستند. گروه دوم گزینه‌های اضافی افزوده‌شده توسط این ابزار می‌باشند. هر دو گروه در ادامه تعریف شده‌اند. .SH "گزینه‌ها (OPTIONS)" .TP \fBbpt\fR=\fIBPT\fR هر تراکنش ورودی/خروجی با استفاده از \fIBPT\fR بلوک (یا کمتر، اگر نزدیک پایان عملیات کپی باشد) انجام خواهد شد. پیش‌فرض برای اندازه‌های بلوک کمتر از ۲۰۴۸ بایت برابر ۱۲۸ است، در غیر این صورت پیش‌فرض ۳۲ خواهد بود. بنابراین برای bs=512 خواندن‌ها و نوشتن‌ها به‌طور پیش‌فرض هرکدام ۶۴ کیلوبایت داده انتقال می‌دهند (اگر نزدیک پایان انتقال یا محدودیت‌های حافظه باشد کمتر). هنگام دسترسی به درایوهای سی‌دی/دی‌وی‌دی، اندازه بلوک معمولاً ۲۰۴۸ بایت است و پیش‌فرض bpt به ۳۲ تغییر می‌یابد که مجدداً به معنای انتقال‌های ۶۴ کیلوبایتی است. .TP \fBbs\fR=\fIBS\fR که در آن \fIBS\fR .B باید اندازه بلوک دستگاه فیزیکی باشد. توجه داشته باشید این مورد با .B dd(1) که اجازه می‌دهد 'bs' ضریب صحیحی از اندازه بلوک واقعی دستگاه باشد تفاوت دارد. مقدار پیش‌فرض ۵۱۲ است که معمولاً برای دیسک‌ها درست است اما برای دیسک‌های نوری (که معمولاً بلوک‌های ۲۰۴۸ بایتی دارند) نادرست است. .TP \fBcdbsz\fR=6 | 10 | 12 | 16 اندازه دستورات SCSI READ یا SCSI WRITE صادرشده برای نام‌های دستگاه sg. پیش‌فرض بلوک‌های دستوری اسکازی ۱۰ بایتی است (مگر محاسبات نشان دهند شماره بلوک ۴ بایتی ممکن است رد شود، که در این صورت پیش‌فرض به دستورات اسکازی ۱۶ بایتی تغییر می‌کند). .TP \fBcoe\fR=0 | 1 تنظیم روی ۱ برای ادامه دادن در صورت بروز خطا (continue on error). فقط بر خطاهای دستگاه‌های sg اعمال می‌شود. بنابراین خطا در فایل‌های دیگر موجب توقف sgp_dd خواهد شد. پیش‌فرض ۰ است که به معنای توقف با هر خطایی است. برای اطلاعات بیشتر فلگ 'coe' را ببینید. .TP \fBcount\fR=\fICOUNT\fR کپی کردن \fICOUNT\fR بلوک از \fIIFILE\fR به \fIOFILE\fR. پیش‌فرض کمترین مقدار (بین \fIIFILE\fR و \fIOFILE\fR) تعداد بلوک‌هایی است که دستگاه‌های sg از دستورات SCSI READ CAPACITY گزارش می‌دهند یا دستگاه‌های بلوکی (یا پارتیشن‌های آن‌ها) گزارش می‌کنند. اندازه فایل‌های عادی ارزیابی نمی‌شود. اگر \fIskip=SKIP\fR یا \fIseek=SEEK\fR مشخص شده باشند و شمارش استنتاج شود (یعنی به‌طور صریح داده نشده باشد)، آن شمارش کاهش می‌یابد تا عملیات کپی از دستگاه فراتر نرود. اگر نام فایل یک پارتیشن دستگاه بلوکی باشد و \fICOUNT\fR داده نشده باشد، به جای اندازه کل دستگاه از اندازه پارتیشن استفاده می‌شود. اگر \fICOUNT\fR داده نشود و قابل استنتاج هم نباشد، پیام خطایی صادر شده و کپی انجام نمی‌گیرد. .TP \fBdeb\fR=\fIVERB\fR اطلاعات اشکال‌زدایی را چاپ می‌کند. اگر \fIVERB\fR برابر ۰ باشد (پیش‌فرض)، کمترین اطلاعات اشکال‌زدایی ارائه می‌شود و با افزایش \fIVERB\fR میزان اطلاعات بیشتر خواهد شد (حداکثر خروجی اشکال‌زدایی زمانی است که \fIVERB\fR برابر ۹ باشد). .TP \fBdio\fR=0 | 1 پیش‌فرض ۰ است که ورودی/خروجی غیرمستقیم (indirect IO) را انتخاب می‌کند. مقدار ۱ تلاش می‌کند ورودی/خروجی مستقیم (direct IO) انجام دهد، و در صورتی که در دسترس نباشد، به ورودی/خروجی غیرمستقیم بازمی‌گردد و این موضوع را هنگام اتمام کار ثبت می‌کند. اگر ورودی/خروجی مستقیم انتخاب شده باشد و مقدار /sys/module/sg/parameters/allow_dio برابر ۰ باشد، هشداری صادر می‌شود (و ورودی/خروجی غیرمستقیم انجام می‌گیرد). برای کنترل دقیق‌تر از 'iflag=dio' یا 'oflag=dio' استفاده کنید. .TP \fBibs\fR=\fIBS\fR در صورت ارائه، باید برابر با همان \fIBS\fR داده‌شده به گزینه 'bs=' باشد. .TP \fBif\fR=\fIIFILE\fR خواندن از \fIIFILE\fR به جای ورودی استاندارد (stdin). اگر \fIIFILE\fR برابر '\-' باشد از ورودی استاندارد خوانده می‌شود. خواندن از ابتدای \fIIFILE\fR آغاز می‌شود مگر اینکه \fISKIP\fR مشخص شده باشد. .TP \fBiflag\fR=\fIFLAGS\fR که در آن \fIFLAGS\fR فهرستی از یک یا چند فلگ جداشده با ویرگول مطابق توضیحات زیر است. این فلگ‌ها به \fIIFILE\fR اختصاص دارند و زمانی که \fIIFILE\fR ورودی استاندارد باشد نادیده گرفته می‌شوند. .TP \fBobs\fR=\fIBS\fR در صورت ارائه، باید برابر با همان \fIBS\fR داده‌شده به گزینه 'bs=' باشد. .TP \fBof\fR=\fIOFILE\fR نوشتن در \fIOFILE\fR به جای خروجی استاندارد (stdout). اگر \fIOFILE\fR برابر '\-' باشد در خروجی استاندارد نوشته می‌شود. اگر \fIOFILE\fR برابر /dev/null باشد هیچ عمل نوشتن واقعی انجام نمی‌گیرد. اگر \fIOFILE\fR نقطه ('.') باشد به همان شکل /dev/null با آن برخورد می‌شود (این یک میان‌بر است). اگر \fIOFILE\fR از پیش وجود داشته باشد، کوتاه‌سازی (truncate) _نمی‌شود_؛ بلکه از ابتدای \fIOFILE\fR بازنویسی می‌گردد مگر اینکه 'oflag=append' یا \fISEEK\fR مشخص شده باشد. .TP \fBoflag\fR=\fIFLAGS\fR که در آن \fIFLAGS\fR فهرستی از یک یا چند فلگ جداشده با ویرگول مطابق توضیحات زیر است. این فلگ‌ها به \fIOFILE\fR اختصاص دارند و زمانی که \fIOFILE\fR برابر /dev/null، '.' (نقطه) یا خروجی استاندارد باشد نادیده گرفته می‌شوند. .TP \fBseek\fR=\fISEEK\fR نوشتن را از \fISEEK\fR بلوک به اندازه bs از ابتدای \fIOFILE\fR آغاز می‌کند. پیش‌فرض بلوک ۰ است (یعنی ابتدای فایل). .TP \fBskip\fR=\fISKIP\fR خواندن را از \fISKIP\fR بلوک به اندازه bs از ابتدای \fIIFILE\fR آغاز می‌کند. پیش‌فرض بلوک ۰ است (یعنی ابتدای فایل). .TP \fBsync\fR=0 | 1 زمانی که ۱ باشد، در پایان انتقال دستور SYNCHRONIZE CACHE را روی \fIOFILE\fR اجرا می‌کند. فقط زمانی فعال است که \fIOFILE\fR نام فایل دستگاه sg باشد. .TP \fBthr\fR=\fITHR\fR که در آن \fITHR\fR تعداد ریسه‌های کارگر (پیش‌فرض ۴) است که برای کپی موازی تلاش می‌کنند. حداقل ۱ و حداکثر ۱۰۲۴ است. .TP \fBtime\fR=0 | 1 زمانی که ۱ باشد، زمان انتقال اندازه‌گیری شده و محاسبه توان عملیاتی (throughput) انجام می‌شود و نتایج در پایان کار (به خروجی استاندارد خطا) فرستاده می‌شود. زمانی که ۰ باشد (پیش‌فرض) هیچ زمان‌سنجی انجام نمی‌گیرد. .TP \fBverbose\fR=\fIVERB\fR افزایش پرگویی. معادل \fIdeb=VERB\fR. برای سازگاری با sg_dd و sgm_dd افزوده شده است. .TP \fB\-c\fR, \fB\-\-chkaddr\fR این گزینه بررسی می‌کند که هر بلوک خوانده‌شده شامل آدرس بلوک (۳۲ بیتی) آن بلوک باشد. اگر این بررسی شکست بخورد، عملیات کپی با خطای عدم تطابق (miscompare) متوقف می‌شود. این بررسی مکمل تولید بلوک‌هایی با 'sg_dd iflag=00,ff' است که حاوی آدرس بلوک خود (۳۲ بیتی، big endian) هستند. هنگامی که \fI\-\-chkaddr\fR یک بار استفاده شود، تنها آدرس اولین بلوک در هر بلوک بررسی می‌شود. اگر دو بار استفاده شود، هر آدرس بلوکی (که در یک بلوک جا گیرد) بررسی خواهد شد. .TP \fB\-d\fR, \fB\-\-dry\-run\fR تمام مراحل تجزیه خط فرمان و آماده‌سازی را انجام می‌دهد اما از کپی یا خواندن واقعی صرف‌نظر می‌کند. آن آماده‌سازی ممکن است شامل باز کردن \fIIFILE\fR یا \fIOFILE\fR جهت تعیین طول آن‌ها باشد. این گزینه برای آزمایش ساختار دستوری فراخوانی‌های پیچیده خط فرمان پیش از اجرای آن‌ها کاربردی است. .TP \fB\-h\fR, \fB\-\-help\fR پیام راهنمای نحوه استفاده را چاپ کرده و خارج می‌شود. .TP \fB\-n\fR, \fB\-\-nocopy\fR این گزینه باعث می‌شود ابزار زمانی که قصد دارد در \fIOFILE\fR یا stdout بنویسد خارج شود. نسخه بلند این گزینه می‌تواند به \fI\-\-nc\fR خلاصه شود. روش صریح برای دستور دادن به این ابزار جهت خواندن صرف از \fIIFILE\fR، استفاده از '\-\-of=/dev/null' در فراخوانی است. این گزینه می‌تواند به عنوان ایمنی بیشتر در مواقعی که '\-\-of=/dev/null' داده نشده یا اشتباه نوشته شده است تلقی شود. .TP \fB\-p\fR, \fB\-\-progress\fR این گزینه باعث می‌شود گزارش پیشرفت هر دو دقیقه یک‌بار تا تکمیل کپی نمایش داده شود. پس از اتمام کپی خطی با عنوان "completed" چاپ می‌شود تا گزارش نهایی از گزارش‌های قبلی متمایز گردد. وقتی دو بار استفاده شود گزارش پیشرفت هر یک دقیقه و وقتی سه بار استفاده شود گزارش پیشرفت هر ۳۰ ثانیه خواهد بود. .br در صورت تعیین این گزینه، گزینه 'time=1' به‌طور ضمنی تنظیم می‌شود. .TP \fB\-v\fR, \fB\-\-verbose\fR وقتی یک‌بار استفاده شود، معادل \fIverbose=1\fR است. هنگامی که دوبار استفاده شود (مانند "\-vv") معادل \fIverbose=2\fR است و به همین ترتیب. .TP \fB\-V\fR, \fB\-\-version\fR اطلاعات نسخه برنامه را نمایش داده و خارج می‌شود. .SH "فلگ‌ها (FLAGS)" در اینجا فهرستی از فلگ‌ها و معانی آن‌ها آورده شده است: .TP append باعث اضافه شدن فلگ O_APPEND هنگام باز کردن \fIOFILE\fR می‌شود. برای فایل‌های عادی این کار باعث می‌شود داده‌ها به انتهای داده‌های موجود الصاق شوند. همراه با گزینه \fIseek=SEEK\fR قابل استفاده نیست چون با یکدیگر تداخل دارند. عملکرد پیش‌فرض این ابزار بازنویسی هرگونه داده موجود از ابتدای فایل، یا در صورت تعیین \fISEEK\fR، شروع از بلوک \fISEEK\fR است. توجه داشته باشید که تلاش برای الحاق به یک فایل دستگاه (مثلاً دیسک) معمولاً نادیده گرفته می‌شود یا ممکن است خطایی ایجاد کند. .TP coe ادامه در صورت بروز خطا (continue on error). هنگامی که همراه با 'iflag=' تعیین شود، خطایی که در یک دستور SCSI منفرد (معمولاً بلوک‌های 'bpt') رخ دهد ثبت می‌شود (از طریق پیام خطایی که به خروجی استاندارد خطا ارسال می‌شود)، سپس صفرهایی در بافر برای عملیات نوشتن متناظر جایگزین می‌شوند و کپی ادامه می‌یابد. توجه داشته باشید که ابزار .B sg_dd در چنین موقعیت‌های خطایی با 'iflag=coe' پیچیده‌تر و پیشرفته‌تر عمل می‌کند. هنگامی که همراه با 'oflag=' مشخص شود، هر خطایی که توسط یک دستور SCSI WRITE گزارش شود به خروجی استاندارد خطا فرستاده شده و کپی ادامه می‌یابد (گویی مشکلی رخ نداده است). .TP dio درخواست می‌کند که گره دستگاه sg مرتبط با این فلگ ورودی/خروجی مستقیم (direct IO) انجام دهد. اگر ورودی/خروجی مستقیم در دسترس نباشد، به ورودی/خروجی غیرمستقیم بازگشته و این نکته را در پایان ثبت می‌کند. اگر ورودی/خروجی مستقیم انتخاب شود و /sys/module/sg/parameters/allow_dio برابر ۰ باشد، هشداری صادر می‌شود (و ورودی/خروجی غیرمستقیم انجام می‌گیرد). .TP direct باعث افزوده شدن فلگ O_DIRECT هنگام باز کردن \fIIFILE\fR یا \fIOFILE\fR می‌شود. این فلگ به هم‌ترازی حافظه روی ورودی/خروجی نیاز دارد. بنابراین بافرهای حافظه کاربر بر اساس اندازه صفحه هم‌تراز می‌شوند. روی دستگاه‌های sg، فایل‌های عادی یا فایل‌های خام هیچ تأثیری ندارد. .TP dpo بیت DPO (غیرفعال‌سازی خارج کردن از صفحه / disable page out) را در دستورات SCSI READ و SCSI WRITE تنظیم می‌کند. برای انواع ۶ بایتی cdb دستورات READ و WRITE پشتیبانی نمی‌شود. نشان می‌دهد که داده‌ها احتمالاً نیازی نیست در حافظه پنهان دستگاه (مانند دیسک) باقی بمانند. ممکن است سرعت کپی رسانه را افزایش دهد یا باعث شود کپی تأثیر کمتری بر سایر کاربران دستگاه داشته باشد. .TP dsync باعث افزوده شدن فلگ O_SYNC هنگام باز کردن \fIIFILE\fR یا \fIOFILE\fR می‌شود. پیشوند 'd' برای کاهش سردرگمی با گزینه 'sync=0|1' که عملکرد دیگری دارد (یعنی همگام‌سازی با رسانه در پایان انتقال) اضافه شده است. .TP excl باعث افزوده شدن فلگ O_EXCL هنگام باز کردن \fIIFILE\fR یا \fIOFILE\fR می‌شود. .TP fua باعث تنظیم بیت FUA (دسترسی اجباری به واحد / force unit access) در دستورات SCSI READ یا SCSI WRITE می‌شود. این فلگ فقط با دستگاه‌های sg تأثیر دارد. انواع ۶ بایتی دستورات SCSI READ و WRITE از بیت FUA پشتیبانی نمی‌کنند. فقط برای نام فایل‌های دستگاه sg فعال است. .TP mmap فقط می‌تواند در لیست آرگومان‌های \fIiflag=FLAGS\fR یا \fIoflag=FLAGS\fR استفاده شود، نه در هر دو. سمتی از عملیات کپی که مشخص شده است از ورودی/خروجی نقشه‌برداری‌شده در حافظه مبتنی بر فراخوانی سیستمی mmap(2) استفاده خواهد کرد. هنگامی که فراخوانی سیستمی mmap(2) روی یک دستگاه sg استفاده می‌شود، گرداننده sg بافر مقصد یا مبدأ DMA خود را مجدداً به فضای کاربری نگاشت می‌کند. .TP null هیچ تأثیری ندارد، صرفاً یک پرکننده است. .SH "گزینه‌های منسوخ‌شده (RETIRED OPTIONS)" در اینجا برخی از گزینه‌های قدیمی که هنوز حضور دارند آورده شده است: .TP coe=0 | 1 ادامه در صورت بروز خطا به طور پیش‌فرض ۰ (خاموش) است. هنگامی که ۱ باشد، معادل 'iflag=coe oflag=coe' شرح داده شده در بخش FLAGS در بالا است. شبیه به 'conv=noerror,sync' در ابزار .B dd(1) است. پیش‌فرض ۰ است که به معنی توقف در صورت بروز خطا می‌باشد. پردازش‌های پیشرفته‌تر coe=1 هنگام خواندن توسط ابزار sg_dd انجام می‌گیرد. .TP fua=0 | 1 | 2 | 3 بیت دسترسی اجباری به واحد (force unit access). هنگامی که ۳ باشد، fua هم در \fIIFILE\fR و هم در \fIOFILE\fR تنظیم می‌شود؛ هنگامی که ۲ باشد، fua روی \fIIFILE\fR تنظیم می‌شود؛ هنگامی که ۱ باشد، fua روی \fIOFILE\fR تنظیم می‌شود؛ و هنگامی که ۰ باشد (پیش‌فرض)، fua در هر دو پاک می‌شود. فلگ 'fua' را ببینید. .SH "نکات (NOTES)" پیش از استفاده از sgp_dd، یک دستگاه خام باید به یک دستگاه بلوکی مقید (bind) شود. برای اطلاعات بیشتر در مورد مقیدسازی دستگاه‌های خام .B raw(8) را ببینید. جهت اطمینان و ایمنی، نگاشت دستگاه sg به دستگاه‌های بلوکی SCSI باید پیش از استفاده با 'sg_map' بررسی شود. .PP اطلاعات پارتیشن دستگاه خام اغلب می‌تواند با .B fdisk(8) یافت شود [آرگومان "\-ul" از این نظر سودمند است]. .PP آرگومان‌های عددی گوناگون (مانند \fISKIP\fR) ممکن است شامل پسوندهای ضرب‌شونده باشند یا در مبنای شانزده داده شوند. بخش "NUMERIC ARGUMENTS" در صفحه راهنمای sg3_utils(8) را ببینید. .PP آرگومان‌های \fICOUNT\fR، \fISKIP\fR و \fISEEK\fR می‌توانند مقادیر ۶۴ بیتی (یعنی اعداد بسیار بزرگ) بپذیرند. مقادیر دیگر به آنچه که در یک عدد ۳۲ بیتی علامت‌دار جا می‌گیرد محدود هستند. .PP داده‌ها معمولاً در یک فرآیند ۲ مرحله‌ای به فضای کاربری وارد می‌شوند: ابتدا آداپتور SCSI از طریق DMA به بافرهای هسته منتقل می‌کند و سپس گرداننده sg این داده‌ها را به حافظه کاربر کپی می‌کند (عملیات نوشتن این ترتیب را برعکس انجام می‌دهد). به این عمل "ورودی/خروجی غیرمستقیم" (indirect IO) گفته می‌شود و گزینه 'dio' برای انتخاب "ورودی/خروجی مستقیم" (direct IO) وجود دارد که مستقیماً از طریق DMA به حافظه کاربر منتقل می‌کند. به دلیل برخی مسائل، ورودی/خروجی مستقیم در گرداننده sg غیرفعال است و برای فعال‌سازی آن نیاز به تغییر پیکربندی وجود دارد. .PP تمام خروجی‌های اطلاعاتی، هشداری و خطایی به خروجی استاندارد خطا ارسال می‌شوند تا فایل خروجی dd بتواند همان خروجی استاندارد بماند و آلوده نشود. اگر هیچ گزینه‌ای داده نشود، پیام راهنما چاپ شده و هیچ عمل دیگری انجام نمی‌گیرد. .PP چرا از sgp_dd استفاده کنیم؟ زیرا در برخی موارد دو برابر سریع‌تر از dd است (عمدتاً با دستگاه‌های sg؛ دستگاه‌های خام مقداری بهبود نشان می‌دهند). دلیل دیگر این است که کپی‌های بزرگ حافظه پنهان دستگاه بلوکی را پر می‌کنند که بر فعالیت‌های دیگر سیستم تأثیر منفی دارد. .SH "سیگنال‌ها (SIGNALS)" مدیریت سیگنال از dd گرفته شده است: سیگنال‌های SIGINT، SIGQUIT و SIGPIPE تعداد بلوک‌های باقی‌مانده برای انتقال و تعداد رکوردهای ورودی + خروجی را چاپ می‌کنند؛ سپس اقدام پیش‌فرض خود را انجام می‌دهند. سیگنال SIGUSR1 باعث چاپ همین اطلاعات می‌شود ولی کپی ادامه می‌یابد. تمام خروجی‌های ناشی از سیگنال‌ها به خروجی استاندارد خطا فرستاده می‌شوند. .SH "مثال‌ها (EXAMPLES)" کاربرد آن بسیار شبیه به dd به نظر می‌رسد: .PP .nf sgp_dd if=/dev/sg0 of=t bs=512 count=1MB .fi .PP این دستور ۱ میلیون بلوک ۵۱۲ بایتی را از دستگاه مرتبط با /dev/sg0 (که باید بلوک‌های ۵۱۲ بایتی داشته باشد) به فایلی به نام t کپی می‌کند. با فرض اینکه /dev/sda و /dev/sg0 یک دستگاه باشند، دستور بالا معادل است با: .PP .nf dd if=/dev/sda of=t bs=512 count=1000000 .fi .PP هرچند اگر bs بزرگ‌تر بود و count متناسب با آن مقیاس‌بندی می‌شد، ممکن بود سرعت dd افزایش یابد. استفاده از یک دستگاه خام برای انجام عملی مشابه روی دیسک ATA: .PP .nf raw /dev/raw/raw1 /dev/hda sgp_dd if=/dev/raw/raw1 of=t bs=512 count=1MB .fi .PP برای کپی کردن یک پارتیشن دیسک SCSI به یک پارتیشن دیسک ATA: .PP .nf raw /dev/raw/raw2 /dev/hda3 sgp_dd if=/dev/sg0 skip=10123456 of=/dev/raw/raw2 bs=512 .fi .PP این فرض می‌کند یک پارتیشن معتبر روی دیسک SCSI در آدرس بلوک skip داده‌شده (پس از نقطه ۵ گیگابایتی آن دیسک) پیدا شده است و پارتیشن تا انتهای دیسک SCSI ادامه می‌یابد. مشخص کردن صریح count گزینه امن‌تری است. .PP برای انجام کپی سریع از یک دیسک SCSI به دیسک دیگر با هندسه مشابه (با رد کردن خطاهای دیسک مبدأ): .PP .nf sgp_dd if=/dev/sg0 of=/dev/sg1 bs=512 coe=1 .fi .SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج sgp_dd در صورت موفقیت ۰ است. در غیر این صورت صفحه راهنمای sg3_utils(8) را ببینید. از آنجا که این ابزار در سطحی بالاتر از دستورات منفرد عمل می‌کند، و فلگ‌های 'coe' و 'retries' وجود دارند، شکست در یک دستور منفرد SCSI لزوماً باعث خروج فرآیند نمی‌شود. .SH "نویسندگان (AUTHORS)" نوشته‌شده توسط Douglas Gilbert و Peter Allworth. .SH "گزارش اشکالات (REPORTING BUGS)" گزارش اشکالات به . .SH "حق نشر (COPYRIGHT)" حق نشر \(co 2000\-2026 Douglas Gilbert .br این نرم‌افزار تحت مجوز GPL نسخه ۲ توزیع شده است. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" نسخه ساده‌تر و بدون ریسه این ابزار اما با منطق پیشرفته‌تر "ادامه در صورت خطا"، .B sg_dd نام دارد و همچنین در بسته sg3_utils یافت می‌شود. بسته lmbench شامل .B lmdd است که آن هم جالب توجه است. .B raw(8), dd(1)