XORRISO-DD-TARGET(1) General Commands Manual XORRISO-DD-TARGET(1)

xorriso-dd-target - ابزار ارزیابی دستگاه و رونوشت تصویر دیسک برای GNU/Linux

xorriso-dd-target [ options ] [ device_names ]

دستور xorriso-dd-target دستگاه‌های بلوکی هسته لینوکس را ارزیابی می‌کند تا مشخص شود که آیا اهداف مناسبی برای یک فایل تصویر دیسک هستند یا خیر، و به صورت اختیاری فایل تصویر را بر روی یکی از آن‌ها رونوشت می‌کند.
این ابزار برای نام دستگاه‌های Linux kernel بهینه‌سازی شده و از قابلیت‌های برنامه lsblk در مجموعه util-linux بهره می‌برد. به همین دلیل، از اجرا بر روی هسته‌های غیر لینوکسی خودداری می‌کند.

هدف اصلی xorriso-dd-target بررسی فایل‌های دستگاه مربوط به رسانه‌های ذخیره‌سازی دیسک‌مانند و قضاوت در این باره است که آیا شبیه به دستگاه‌های جداشدنی با محتوای دورریختنی به نظر می‌رسند یا خیر.
اگر یک کاندیدای معقول شناسایی شود، برنامه آماده خواهد بود تا یک فایل تصویر دیسک را بر روی آن رونوشت کند. این کار جدول پارتیشن قبلی و تمامی محتوای داده‌های قبلی دستگاه هدف را بازنویسی کرده یا غیرقابل دسترس می‌سازد.
اختیارات کاربر ریشه (Superuser) اغلب برای شناسایی نوع سامانه فایل، پیاده‌سازی (unmount) احتمالی و نوشتن احتمالی تصویر دیسک مورد نیاز است. گزینه -with_sudo روشی را ارائه می‌دهد تا این دسترسی تنها برای انجام همین وظایف فراهم شود و برنامه در سایر موارد با اختیارات یک کاربر عادی اجرا گردد.
اگر فایل تصویر دیسک خاصی به عنوان مبدأ رونوشت مد نظر باشد، مسیر آن باید با گزینه -image_file مشخص شود تا اندازه آن به عنوان ملاک تصمیم‌گیری به کار رود.

در ادامه شرح کاربردها به همراه مثال‌ها آمده است:
- فهرست کردن نام‌های ساده دستگاه‌ها
- فهرست کردن همه دستگاه‌ها همراه با دلایل ارزیابی
- ارزیابی دستگاه‌های مشخص داده‌شده
- شناسایی دستگاه مد نظر از طریق اتصال فیزیکی (plugging)
- نوشتن تصویر بر روی دستگاه پیشنهادشده
- نمایش دستورها برای نوشتن بر روی دستگاه پیشنهادنشده

ساده‌ترین و پایه‌ای‌ترین حالت استفاده، اجرای برنامه بدون ذکر نام‌های دستگاه و بدون گزینه‌های -list_all، -plug_test، -DO_WRITE و -dummy_force است. این حالت در خروجی استاندارد (stdout) تنها نام‌های دستگاه‌های قابل پیشنهاد را بدون پیشوند "/dev/" چاپ می‌کند؛ یک نام در هر خط و بدون هیچ‌گونه متن توضیحی.
اعلان احتمالی گذرواژه sudo، خط پیام مربوط به sudo و خط خالی پس از آن به stdout ارسال نمی‌شوند.
مثال:
$ xorriso-dd-target -with_sudo
Testing sudo to possibly get password prompting done now:
[sudo] password for thomas:
sudo /bin/lsblk seems ok.

sde

برای کاربران کنجکاوتر، گزینه -list_all وجود دارد که ارزیابی هر دستگاه دیسک‌مانندِ فهرست‌شده توسط برنامه lsblk را چاپ می‌کند. البته درایوهای نوری، دیسک‌های فلاپی، دستگاه‌های بلوکی RAM و دستگاه‌های loop مستثنی هستند.
هر دستگاه در یک خط با قالب زیر نمایش داده می‌شود:
name : advice : reasoning : info
مقدار name نام دستگاه بدون پیشوند "/dev/" است.
مقدار advice یا "YES" است یا "NO". مقدار "YES" نشان می‌دهد که دستگاه شبیه به یک دیسک قابل اتصال به نظر می‌رسد، به عنوان دیسک سیستم یا فضای ذخیره‌سازی داده‌های اصلی استفاده نشده است، و - در صورت آزمایش - دارای اندازه کافی یا موجه است.
مقدار reasoning فهرستی از کلمات جداشده با فاصله است که دارای پسوند '+' برای یک ویژگی ترغیب‌کننده دستگاه یا '-' برای یک ویژگی بازدارنده هستند. به طور معمول وجود تنها یک دلیل '-' صلاحیت دستگاه را برای پیشنهاد شدن سلب می‌کند. تنها در صورتی که گزینه -look_for_iso مشخص شده باشد، دلیل "has_XYZ-" می‌تواند با وجود یک سامانه فایل ISO 9660 بر روی دستگاه نادیده گرفته شود.
مقدار info از مقادیر VENDOR و MODEL اعلام‌شده توسط lsblk تشکیل می‌شود.
گزینه -list_long باعث می‌شود در هر خط، اطلاعات تکمیلی ارائه‌شده توسط lsblk که منجر به دلایل نمایش‌داده‌شده شده‌اند نیز فهرست شوند.
مثال:
$ xorriso-dd-target -with_sudo -list_all
...
sda : NO : not_usb- has_vfat+ has_ext4- : ATA Samsung SSD 850
sdb : NO : not_usb- has_swap- has_ext4- : ATA WDC WD20EFRX-68A
sdc : YES : usb+ has_iso9660+ has_vfat+ : Intenso Ultra Line
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2- : SanDisk Cruzer.SS ارزیابی دستگاه‌های مشخص داده‌شده:
اگر به جای گزینهٔ -list_all، نام‌های دستگاه مشخص شوند، تنها این دستگاه‌ها بررسی می‌شوند. نتیجهٔ آن‌ها بدون بخش «: info» فهرست می‌شود، مگر اینکه گزینهٔ -with_vendor_model داده شده باشد.
نام‌های دستگاه نباید با «-» آغاز شوند و باید تک‌کلمه‌ای متشکل از نویسه‌های [A-za-z0-9_/-] باشند. آن‌ها نباید حاوی «/» باشند؛ برای نمونه «sdc» معتبر است، اما «/dev/sdc» معتبر نیست.
اگر یکی از نام‌های دستگاه داده‌شده توصیه نشود، مقدار وضعیت خروج ۱ خواهد بود.
دادن نام‌های دستگاهی که توسط -list_all فهرست نشده‌اند چندان منطقی نیست.
مثال‌ها:
$ xorriso-dd-target -with_sudo sdc
...
sdc : YES : usb+ has_iso9660+ has_vfat+
$ xorriso-dd-target -with_sudo -with_vendor_model sdc
...
sdc : YES : usb+ has_iso9660+ has_vfat+ : Intenso Ultra Line
$ xorriso-dd-target sdc
sdc : NO : usb+ no_fs_while_not_su-

گزینهٔ -plug_test روشی تعاملی را برای تعیین بدون ابهام نامزد دستگاه هدف مورد نظر فعال می‌کند. این روش شامل ۲ یا ۳ مرحله است.
مرحلهٔ ۱ این است که دستگاه ذخیره‌سازی مورد نظر جدا شده باشد و این موضوع با فشردن کلید Enter در اعلان برنامه تأیید شود. سپس برنامه فهرست دستگاه‌های ناخواسته را بررسی می‌کند.
مرحلهٔ ۲ این است که دستگاه ذخیره‌سازی مورد نظر را وصل کنید و با فشردن کلید Enter برای بار دوم آن را تأیید نمایید. برنامه تا ۱۰ ثانیه برای یک دستگاه ذخیره‌سازی دیسک‌مانند که در فهرست دستگاه‌های ناخواسته نباشد منتظر می‌ماند. کاربر می‌تواند فشردن کلید را تا زمانی که چشمک زدن دستگاه نشان دهد آماده است، به تأخیر بیندازد.
تنها اگر یک دستگاه جدید تکی پیدا شود، برنامه طوری ادامه خواهد داد که گویی یک نام دستگاه تکی داده شده است. گزینهٔ -list_all و هر نام دستگاهی که به عنوان آرگومان داده شده باشد نادیده گرفته خواهند شد.
مرحلهٔ ۳ تنها در صورتی رخ می‌دهد که گزینه‌های -DO_WRITE یا -dummy_force داده شده باشند. برنامه پیش از آغاز نوشتن واقعی یا شبیه‌سازی‌شده، خواهان ورود نهایی کلمهٔ 'yes' می‌شود.
مثال:
$ xorriso-dd-target -with_sudo -plug_test
...
ناشی از گزینهٔ -plug_test: تلاش برای یافتن دستگاه مورد نظر
با پایش نمایان شدن آن پس از وصل شدن.
مرحلهٔ ۱:
لطفاً مطمئن شوید که دستگاه هدف مورد نظر اکنون _جدا_ شده است.
اگر در حال حاضر متصل است، مطمئن شوید همهٔ سیستم‌های فایل آن را پیاده کرده
و سپس آن را جدا کنید.
هنگام آمادگی، کلید Enter را فشار دهید.

پیدا شد و به‌عنوان _غیر_ مطلوب ثبت گردید: sda sdb sdc
مرحلهٔ ۲:
لطفاً دستگاه هدف مورد نظر را وصل کرده و سپس کلید Enter را فشار دهید.

در حال انتظار تا ۱۰ ثانیه برای فهرست شدن یک دستگاه جدید ... پیدا شد: sdd
اکنون ۵ ثانیه منتظر می‌ماند تا پایدار شود .........
پیدا شد و به‌عنوان دستگاه مورد نظر ثبت گردید: sdd

sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2- : SanDisk Cruzer

تنها اگر گزینهٔ -DO_WRITE داده شده و -list_all داده نشده باشد، و دقیقاً یک دستگاه قابل توصیه فهرست شده باشد، محتوای فایلِ -image_file داده‌شده واقعاً روی آن بازنویسی می‌شود. در این حالت در صورت موفقیت‌آمیز بودن نوشتن، مقدار وضعیت خروج صفر و در غیر این صورت غیر صفر خواهد بود.
گزینهٔ -dummy از این گونه اقدام واقعی جلوگیری می‌کند و در عوض دستورهای umount و dd برنامه‌ریزی‌شده را در stdout نمایش می‌دهد.
مثال:
$ xorriso-dd-target -with_sudo -plug_test -DO_WRITE \
-image_file debian-live-10.0.0-amd64-xfce.iso
... پیام‌های sudo و مراحل ۱ و ۲ آزمون اتصال بالا ...

sde : YES : usb+ has_iso9660+ has_vfat+
مرحلهٔ ۳:
آخرین فرصت برای انصراف. برای آغاز نوشتن واقعی کلمهٔ 'yes' را وارد کنید.
yes
در حال جستجوی نقاط اتصال sde:
/dev/sde1 on /mnt/iso type iso9660 (ro,relatime)
/dev/sde2 on /mnt/fat type vfat (rw,...,errors=remount-ro)
پیاده شد: /dev/sde1
پیاده شد: /dev/sde2
در حال اجرا:
sudo /bin/dd if=/dev/zero of=/dev/'sde' bs=512 seek='245759999'
count=1 status=none
sudo /bin/dd if='debian-live-10.0.0-amd64-xfce.iso' of=/dev/'sde'
bs=1M status=progress oflag=dsync ; sync
... پیام‌های dd ...
اجرای نخست dd باید سرایند پشتیبان احتمالی GPT را پاک کند. این کار تنها در صورتی انجام می‌شود که برنامهٔ محلی «expr» بتواند با اندازهٔ بایت دستگاه کار کند..SS نمایش دستورها برای نوشتن روی یک دستگاه توصیه‌نشده:
نباید هیچ راهی برای متقاعد کردن xorriso-dd-target جهت نوشتن روی دستگاه هدفی که آن را مناسب تشخیص نمی‌دهد وجود داشته باشد. لطفاً هر مجموعه‌ای از آرگومان‌ها را که می‌توان برای چنین مقصودی سوءاستفاده کرد، گزارش دهید.
بیشترین همراهی با اقدامات بالقوه غیرعاقلانه توسط گزینهٔ -dummy_force ارائه می‌شود. اگر این گزینه همراه با یک نام دستگاه منفرد یا با گزینهٔ -plug_test مشخص شود، مانند -dummy -DO_WRITE با این دستگاه رفتار خواهد کرد، حتی اگر توصیه‌نشده به نظر برسد؛ یعنی دستورهای شلی را نمایش می‌دهد که برنامه جرأت اجرای آن‌ها را ندارد.
مثال:
$ xorriso-dd-target -with_sudo -list_long -dummy_force sdd \
-image_file debian-live-10.0.0-amd64-xfce.iso
...
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2-
NAME SIZE FSTYPE TRAN LABEL
sdd 3.8G iso9660 usb d-live 9.5.0 xf i386
|-sdd1 1.9G iso9660 d-live 9.5.0 xf i386
|-sdd2 320K vfat
`-sdd3 512M ext2

Overriding any advice because of -dummy_force
Looking for mount points of sdd:
/dev/sdd1 on /mnt/iso type iso9660 (ro,relatime)
/dev/sdd2 on /mnt/fat type vfat (rw,...,errors=remount-ro)
/dev/sdd3 on /mnt/ext type ext2 (rw,relatime)
AGAINST THE ADVICE BY THIS PROGRAM, a daring user could do:
sudo /bin/umount /dev/sdd1
sudo /bin/umount /dev/sdd2
sudo /bin/umount /dev/sdd3
sudo /bin/dd if=/dev/zero of=/dev/'sdd' bs=512 seek='7864318'
count=1 status=none
sudo /bin/dd if='debian-live-10.0.0-amd64-xfce.iso' of=/dev/sdd
bs=1M status=progress oflag=dsync ; sync
BE SMART. BE CAUTIOUS. BEWARE.

همان‌طور که در مورد کاربرد «فهرست کردن تمام دستگاه‌ها» بیان شد، دلایل کلماتی با پسوند '+' برای یک ویژگی ترغیب‌کنندهٔ دستگاه یا '-' برای یک ویژگی بازدارنده هستند.
به‌طور معمول یک دلیلِ '-' منفرد، دستگاه را از قابل توصیه بودن ساقط می‌کند.

has_XYZ-
یک سیستم‌فایل از نوع XYZ روی دستگاه پایه یا پارتیشن شناسایی شده و این برداشت را که دستگاه دارای محتوای دورریختنی است مخدوش می‌کند.
has_iso9660+
یک سیستم‌فایل ISO 9660 شناسایی شده است.
has_vfat+
یک سیستم‌فایل FAT (شبیه MS-DOS) شناسایی شده است.
look_for_iso++
گزینهٔ -look_for_iso مشخص شده و یک سیستم‌فایل ISO 9660 شناسایی شده است. این دلیل بر هر دلیل «has_XYZ-» اولویت داشته و آن را نادیده می‌گیرد.
looks_like_cd_drive-
نام دستگاه داده‌شده شبیه نام یک درایو نوری است: sr[0-9]*. برای این نوع دستگاه‌ها از برنامهٔ xorrecord استفاده کنید.
looks_like_disk_partition-
نام دستگاه داده‌شده شبیه نام یک پارتیشن است. نام دستگاه‌های پایه، مانند «sde» مورد انتظار است، نه پارتیشن‌های آن‌ها مانند «sde1».
looks_like_floppy-
نام دستگاه داده‌شده شبیه نام یک درایو فلاپی‌دیسک است: fd[0-9]*.
looks_like_loopdev-
نام دستگاه داده‌شده شبیه نام یک دستگاه loop است: loop[0-9]*.
looks_like_ramdev-
نام دستگاه داده‌شده شبیه نام یک دستگاه بلوکیِ RAM است: zram[0-9]*.
lsblk_no_size-
آزمون اندازه توسط -max_size، -min_size، یا -image_file مشخص شده است، اما اندازهٔ دستگاه توسط lsblk قابل استعلام نیست. فرض بر این است که این حالت تنها در صورت ارائهٔ نام‌های نامناسب دستگاه رخ می‌دهد.
mmcblk+
نام دستگاه شبیه یک کارت حافظه است که مستقیماً متصل شده باشد.
name_with_slash-
نام دستگاه داده‌شده حاوی نویسه‌های '/' است.
no_bus_info-
دستگاه یک کارت حافظه نیست و lsblk هیچ گزارشی دربارهٔ نحوهٔ اتصال آن به رایانه ارائه نمی‌دهد.
no_fs_while_not_su-
هیچ سیستم‌فایلی توسط lsblk گزارش نشده است و برنامه تشخیص نمی‌دهد که با اختیارات مدیر سیستم (superuser) اجرا شده باشد. این خطر وجود دارد که lsblk در شناسایی سیستم‌فایل‌های موجود بدون نمایش هیچ خطایی ناموفق بوده باشد.
no_iso9660-
گزینهٔ -look_for_iso مشخص شده است، اما هیچ سیستم‌فایل ISO 9660 شناسایی نشده است.
not_usb-
دستگاه یک کارت حافظه نیست و lsblk گزارش می‌دهد که از طریقی غیر از USB متصل شده است.
size_too_large-
گزینهٔ -max_size با اندازه‌ای کوچک‌تر از اندازهٔ دستگاه مشخص شده است.
size_too_small-
گزینهٔ -min_size یا -image_file با اندازه یا حجم فایلی بزرگ‌تر از اندازهٔ دستگاه مشخص شده است.
usb+
دستگاه توسط lsblk به عنوان متصل از طریق USB گزارش شده است.

یافتن دستگاه مقصد با درخواست از کاربر برای فشردن کلید Enter هنگامی که هدف مورد نظر متصل _نیست_، سپس متصل کردن آن، و فشردن مجدد Enter.
این گزینه نام‌های دستگاه و گزینه -list_all را لغو می‌کند. دستگاه پیداشده سپس به همراه وضعیت توصیه، سازنده و مدل نمایش داده می‌شود.
در صورت مشخص شدن گزینه -DO_WRITE، از آن پیروی می‌شود. در این حالت، باید کلمه 'yes' وارد شود تا پیاده کردن (unmount) و نوشتن آغاز شود.
چاپ فهرست تمام دستگاه‌های پیدا شده به همراه وضعیت توصیه، سازنده و مدل. یک مورد در هر خط. نادیده گرفتن هرگونه نام دستگاه. نادیده گرفتن -DO_WRITE.
پس از هر خط نتیجه که دلایل را نشان می‌دهد، یک فهرست اضافی از اطلاعات ارائه‌شده توسط lsblk که منجر به این دلایل شده‌اند را اضافه کرده و یک خط خالی می‌افزاید.
چاپ سازنده و مدل به همراه هر نام دستگاه ارائه‌شده.
تنظیم حد بالای اندازه به بایت برای دستگاه‌های قابل‌توصیه. اعداد ساده به سمت پایین تا میلیون‌های کامل گرد می‌شوند. پسوندهای قابل شناسایی عبارتند از: M = میلیون، G = میلیارد، T = تریلیون.
سخاوتمندانه رفتار کنید تا از بروز مشکلات ناشی از GB < GiB جلوگیری شود.
تنظیم حد پایین اندازه به بایت برای دستگاه‌های قابل‌توصیه. پس از پردازش همانند -max_size، یک میلیون به حد اندازه افزوده می‌شود.
الزام وجود یک سیستم‌فایل ISO 9660. در این صورت، هر نوع سیستم‌فایل دیگری نیز روی آن دستگاه قابل‌قبول است.
اگر این گزینه مشخص نشود، تنها سیستم‌فایل‌های ISO 9660 و VFAT پذیرفته می‌شوند.
اجرای 'lsblk -o FSTYPE' با sudo. اگر هیچ سیستم‌فایلی روی یک دستگاه شناسایی نشود در حالی که برنامه اختیارات مدیر سیستم (superuser) را ندارد، آن دستگاه توصیه نمی‌شود. گزینه -with_sudo بدون نیاز به اجرای کل برنامه به عنوان مدیر سیستم، از این امتناع جلوگیری می‌کند.
اگر -DO_WRITE -with_sudo داده شود، برنامه‌های umount و dd نیز با sudo اجرا خواهند شد.
نادیده گرفتن دلیل no_fs_while_not_su- در صورتی که lsblk با libudev.so پیوند خورده باشد. در این حالت این احتمال وجود دارد که lsblk بتواند FSTYPE را حتی اگر توسط یک کاربر عادی اجرا شود، بازیابی کند.
این گزینه برای استفاده توسط برنامه‌های واسط (frontend) در نظر گرفته شده است که اطمینان دارند با نسخه‌ای از lsblk مبتنی بر udev مواجه نمی‌شوند که با وجود این نتواند سیستم‌فایل‌های موجود را تشخیص دهد. کاربران انسانی بهتر است در صورت گزارش دلیل no_fs_while_not_su-، اختیارات مدیر سیستم را به دست آورند.
تنظیم مسیر فایل ایمیج که باید روی یک دستگاه نوشته شود. اندازه آن به عنوان -min_size تعیین خواهد شد.
نوشتن -image_file داده‌شده روی تک دستگاه قابل‌توصیه‌ای که یافت شده است. اگر بیش از یک دستگاه از این دست یافت شود، آن‌ها فهرست می‌شوند اما هیچ نوشتنی رخ نمی‌دهد.
در این حالت، برای دستیابی به یک اجرای واقعی نوشتن، جدا کردن فیزیکی دستگاه‌های غیرضروری، یا استفاده از گزینه -plug_test، یا اجرای مجدد با یکی از نام‌های دستگاه‌های توصیه‌شده به عنوان آرگومان اضافی را مد نظر قرار دهید.
عدم استفاده از گزینه‌های dd برای چاپ پیام‌های پیشرفت و انجام خروجی همگام‌سازی‌شده (synchronized). این گزینه‌ها در صورتی که برنامه dd قابلیت نمایش پیام‌های پیشرفت را داشته باشد، به طور پیش‌فرض استفاده می‌شوند.
گزارش اقدامات -DO_WRITE بدون انجام دادن آن‌ها.
اگر یک نام دستگاه منفرد داده شود، یک اجرای آزمایشی -dummy -DO_WRITE را حتی برخلاف توصیه این برنامه انجام می‌دهد. این احتمالاً راه‌هایی برای شلیک به پای خودتان را به شما نشان می‌دهد.
چاپ نام برنامه، متن نسخه و برچسب زمانی در stdout و سپس پایان دادن به برنامه.
چاپ متن راهنما در stdout و سپس پایان دادن به برنامه.

مثال‌ها در توضیحات موارد استفاده در بالا آورده شده‌اند.

در حال حاضر هیچ فایلی برای پیکربندی تعریف نشده است.

lsblk(8), umount(8), dd(1), xorrecord(1)

برای گزارش باگ‌ها، درخواست کمک یا پیشنهاد بهبود برای xorriso-dd-target، لطفاً یک رایانامه به فهرست عمومی <bug-xorriso@gnu.org> ارسال کنید. اگر محرمانگی بیشتری مد نظر است، به <scdbackup@gmx.net> ایمیل بفرستید.
لطفاً آنچه را که انتظار دارید برنامه انجام دهد، آرگومان‌های برنامه‌ای که استفاده کرده‌اید، پیام‌های xorriso-dd-target و نتیجه نامطلوب اجرای برنامه خود را شرح دهید.
انتظار داشته باشید که پیش از پیشنهاد راه‌حل‌ها، سؤالات بیشتری از شما پرسیده شود.

Thomas Schmitt <scdbackup@gmx.net>
برای libburnia-project.org.SH "کپی‌رایت و تکثیر (COPYRIGHT)" Copyright (c) 2019 - 2026 Thomas Schmitt
اجازهٔ توزیع آزادانهٔ این متن اعطا شده است. تغییر آن تنها باید در هماهنگی با مشخصات فنی xorriso-dd-target انجام شود. اگر از این مجوز برای ایجاد نسخه‌های مشتق و تغییریافته از xorriso-dd-target استفاده کنید، مجاز خواهید بود این متن را نیز تحت همان مجوز تغییر دهید.

xorriso-dd-target با همکاری Nio Wiklund با نام مستعار sudodus توسعه یافته است.

Version 1.5.8, Apr 01, 2026