READCD(1) Schily´s USER COMMANDS READCD(1)

readcd - خواندن یا نوشتن دیسک‌های فشرده (CD) یا رسانه‌های مرتبط

readcd [ dev=device ][ گزینه‌ها ]

دستور Readcd برای خواندن یا نوشتن دیسک‌های فشرده به کار می‌رود.

اکثر کاربران اصلاً نیازی به نگرانی در مورد نام‌گذاری دستگاه‌ها ندارند. اگر گزینه dev= مشخص نشده باشد، readcd قابلیت انتخاب خودکار هدف (auto target) را پیاده‌سازی کرده و در صورتی که دقیقاً یک درایو از نوع CD-ROM در سیستم وجود داشته باشد، به طور خودکار آن را پیدا می‌کند. در صورتی که بیش از یک درایو CD-ROM در سیستم وجود داشته باشد، فهرستی از پارامترهای احتمالی نام دستگاه را می‌توان با دستور readcd -scanbus یا از نمونه خروجی readcd dev=help به دست آورد؛ سپس پارامتر dev= می‌تواند بر اساس فهرست دستگاه‌ها تنظیم شود.

پارامتر device در گزینه dev= که در ادامه توضیح داده شده، به استاندارد نام‌گذاری SCSI CAM برای scsibus/target/lun مربوط به CD/DVD/BluRay-Recorder اشاره دارد. اگر فایل /etc/default/cdrecord وجود داشته باشد، پارامتر گزینه dev= می‌تواند برچسب نام درایو در فایل مذکور نیز باشد (بخش FILES را ببینید).

اگر هیچ گزینه‌ای به جز گزینه dev= مشخص نشده باشد، readcd وارد حالت تعاملی می‌شود. یک عملکرد اصلی را انتخاب کرده و سپس دستورالعمل‌ها را دنبال کنید.

نمایش اطلاعات نسخه برای readcd در خروجی استاندارد.
چاپ اطلاعات نسخه و خروج.
افزایش سطح پرگویی (verbosity) به میزان یک واحد. این گزینه به عنوان مثال برای نمایش پیشرفت فرآیند استفاده می‌شود.

خواندن به شیوه کلون (clone read). خواندن CD به همراه تمام داده‌های زیرکانال (sub-channel) و جدول محتویات (TOC) کامل. داده‌های کامل TOC در فایلی با نامی مشابه نام مشخص‌شده در گزینه f= اما با پسوند .toc قرار خواهند گرفت.

توجه داشته باشید که خواندن در حالت clone منجر به عدم تصحیح خطا در سطح زیرکانال می‌شود. حتی در کانال اصلی داده نیز تصحیح خطای کمتری نسبت به سایر حالت‌های خواندن وجود دارد که منجر به کاهش جزئی کیفیت می‌شود. به همین دلیل از کپی کردن CDهای صوتی در حالت clone خودداری کنید.

پویش کل دیسک یا محدوده مشخص‌شده با sectors=range برای خطاهای C2. خطاهای C2 خطاهایی هستند که پس از مرحله دوم سیستم تصحیح رید-سالامون ۲۴/۲۸ + ۲۸/۳۲ در سطح صوتی (اندازه بخش ۲۳۵۲ بایت) غیرقابل اصلاح هستند. اگر یک CD صوتی خطای C2 داشته باشد، برای پنهان کردن خطاها به درون‌یابی نیاز است. اگر یک CD داده خطای C2 داشته باشد، این خطاها در اغلب موارد توسط کد ECC/EDC که از ۲۰۴۸ بایت داده، ۲۳۵۲ بایت می‌سازد، تصحیح می‌شوند. کد ECC/EDC باید بتواند حدود ۱۰۰ بایت خطای C2 را در هر بخش تصحیح کند.

اگر خطاهای C2 پیدا کردید، ممکن است بخواهید سرعت را با استفاده از گزینه speed= کاهش دهید، زیرا خطاهای C2 ممکن است نتیجه عدم تعادل دینامیکی روی رسانه باشند.

پویش کل دیسک یا محدوده مشخص‌شده با sectors=range برای خطاهای C1/C2/CU. در حالت غیرپرگو، تنها یک خلاصه چاپ می‌شود. با -v، یک خط برای هر ثانیه غیر از ثانیه‌های بدون خطا چاپ می‌شود. با -vv، یک خط به ازای هر ثانیه چاپ می‌شود. این روش پویش فقط روی برخی درایوها کار می‌کند.
در این حالت، readcd بخش‌های داده CD را در حالت صوتی تصحیح‌نشده می‌خواند و سپس تلاش می‌کند تا داده‌ها را با استفاده از کتابخانه رمزگشای ECC/EDC توسعه‌یافته توسط هایکو آیسفلت (Heiko Eissfeldt) تصحیح کند. از آنجا که این کتابخانه چرخش روی دو لایه تصحیح خطا را پیاده‌سازی می‌کند، readcd ممکن است بتواند داده‌های بیشتری را نسبت به سفت‌افزار (firmware) درایو CD-ROM تصحیح کند.

این گزینه در حال حاضر آزمایشی است و تنها برای رسانه‌های CD کاربرد دارد و در حال حاضر فقط از بخش‌های ساده ۲۰۴۸ بایتی CD-ROM پشتیبانی می‌کند.

مشخص کردن نام فایلی که خروجی باید در آن نوشته شود یا ورودی از آن خوانده شود. استفاده از '-' به عنوان نام فایل باعث می‌شود readcd از stdout یا stdin استفاده کند.
نمایش مقادیر سرعت برای meshpoints=# به عنوان ضریبی بر مبنای سرعت تک‌برابر (single speed) رسانه فعلی. این فقط در صورتی کار می‌کند که readcd بتواند نوع رسانه فعلی را تشخیص دهد.
دریافت یک TOC کامل از دیسک فعلی و چاپ آن در قالب هگزادسیمال.
چاپ سرعت خواندن در # موقعیت مختلف. هدف از این گزینه ایجاد فهرستی از مقادیر سرعت خواندن مناسب برای استفاده در برنامه‌هایی مانند gnuplot است. مقادیر سرعت با این فرض محاسبه می‌شوند که هر ۱۰۰۰ بایت برابر با یک کیلوبایت است، همان‌طور که در استاندارد SCSI مستند شده است. داده‌های خروجی در stdout نوشته می‌شوند.
تغییر وضعیت درایو به حالتی که خطاهای خواندن در بخش‌های داده را که ناشی از خطاهای غیرقابل تصحیح ECC/EDC هستند قبل از خواندن نادیده بگیرد. پس از اتمام کار readcd ، حالت بازیابی خطای درایو به حالت قبلی بازگردانده می‌شود.
عدم توقف فرآیند در صورت یافتن خطای غیرقابل تصحیح در جریان داده توسط بررسی خطای سطح بالای readcd .
عدم کوتاه کردن (truncate) فایل خروجی هنگام باز کردن آن.
اندازه‌گیری زمان سربار دستورات SCSI. این کار با اجرای چندین دستور به تعداد ۱۰۰۰ بار و چاپ زمان کل سپری‌شده انجام می‌شود. اگر زمان‌های نمایش داده‌شده را بر ۱۰۰۰ تقسیم کنید، میانگین زمان سربار برای یک دستور واحد را به دست خواهید آورد.
پویش کل DVD یا محدوده مشخص‌شده با sectors=range برای یافتن خطاهای pisum8. در حالت غیرپرگو، تنها یک خلاصه چاپ می‌شود. با -v، یک خط برای هر بلوک دارای خطای ۸ * ۳۲ کیلوبایتی چاپ می‌شود. با -vv، یک خط برای هر بلوک ۸ * ۳۲ کیلوبایتی چاپ می‌شود. این روش پویش فقط برای چند نوع درایو خاص کار می‌کند.
پویش کل DVD یا محدوده مشخص‌شده با sectors=range برای یافتن خطاهای pif. در حالت غیرپرگو، تنها یک خلاصه چاپ می‌شود. با -v، یک خط برای هر بلوک دارای خطای ۳۲ کیلوبایتی چاپ می‌شود. با -vv، یک خط برای هر بلوک ۳۲ کیلوبایتی چاپ می‌شود. این روش پویش فقط روی برخی درایوها کار می‌کند.
این گزینه رفتار گزینه‌های -cxscan، -pi8scan و -pifscan را تغییر می‌دهد تا خروجی برای رسم در gnuplot مناسب‌تر باشد.
تنظیم تعداد تلاش‌های مجدد سطح بالا در readcd برابر با #. پیش‌فرض ۱۲۸ بار تلاش است که اگر بخواهید دیسکی با بخش‌های غیرقابل خواندن متعدد را بخوانید ممکن است بیش از حد زیاد باشد.
مشخص کردن محدوده بخش‌هایی که باید خوانده شوند. محدوده با شماره بخش آغازین، یک علامت خط تیره و شماره بخش پایانی مشخص می‌شود. بخش پایانی در محدوده گنجانده نمی‌شود؛ بنابراین sectors=0-0 هیچ چیزی را نمی‌خواند و می‌تواند برای بررسی وجود دیسک در درایو استفاده شود.
تنظیم ضریب سرعت فرآیند خواندن یا نوشتن روی #. مقدار # یک عدد صحیح است که ضریبی از سرعت صوت را نشان می‌دهد. این سرعت حدود ۱۵۰ کیلوبایت بر ثانیه برای CD-ROM و حدود ۱۷۲ کیلوبایت بر ثانیه برای CD صوتی است. اگر گزینه speed مشخص نشود، readcd از حداکثر سرعت استفاده خواهد کرد. تنها درایوهای سازگار با MMC از این گزینه بهره‌مند می‌شوند. سرعت درایوهای غیر MMC تغییر نمی‌کند.

استفاده از سرعت پایین‌تر ممکن است خوانایی CD یا DVD را افزایش دهد.

تغییر به حالت نوشتن. نوشتن فقط روی رسانه‌های DVD-RAM امکان‌پذیر است. برای سایر رسانه‌ها، از cdrecord استفاده کنید. توجه داشته باشید که cdrecord نیز از نوشتن روی رسانه‌های DVD-RAM پشتیبانی می‌کند.

اگر این گزینه وجود نداشته باشد، readcd از دستگاه مشخص‌شده می‌خواند.

تنظیم هدف SCSI برای CD/DVD/BluRay-Recorder؛ به یادداشت‌های بالا مراجعه کنید. یک مشخصات نمونه برای دستگاه هدف: dev=1,6,0 . اگر لازم باشد نام فایلی به همراه مشخصات عددی هدف ارائه شود، نام فایل به پیاده‌سازی سیستم وابسته است. نام فایل صحیح در این حالت را می‌توان در راهنماهای مربوط به سیستم‌عامل هدف یافت. در سیستم FreeBSD بدون پشتیبانی از CAM، باید از دستگاه کنترلی استفاده کنید (مانند /dev/rcd0.ctl). یک مشخصات صحیح دستگاه در این حالت ممکن است به این صورت باشد: dev=/dev/rcd0.ctl:@ .

آدرس‌دهی عمومی SCSI:
دستگاه هدف در گزینه dev= به نشانه‌گذاری استاندارد SCSI CAM برای scsibus/target/lun مربوط به CD/DVD/BluRay-Recorder اشاره دارد. ارتباط در SunOS با درایور عمومی SCSI به نام scg انجام می‌شود. سایر سیستم‌های عامل از شبیه‌سازی کتابخانه‌ای این درایور استفاده می‌کنند. نحو ممکن عبارت است از: dev= scsibus,target,lun یا dev= target,lun. در حالت دوم، دستگاه باید به گذرگاه پیش‌فرض SCSI ماشین متصل باشد. Scsibus، target و lun اعداد صحیح هستند. برخی از سیستم‌های عامل یا پیاده‌سازی‌های انتقال SCSI ممکن است علاوه بر این به مشخص کردن نام فایل نیاز داشته باشند. در این حالت نحو صحیح دستگاه به این صورت است: dev= devicename:scsibus,target,lun یا dev= devicename:target,lun. اگر نام گره دستگاه که در چنین سیستمی مشخص شده است دقیقاً به یک دستگاه SCSI اشاره داشته باشد، می‌توان از شکل خلاصه‌شده: dev= devicename:@ یا dev= devicename:@,lun به جای dev= devicename:scsibus,target,lun استفاده کرد.

آدرس‌دهی SCSI راه دور:
برای دسترسی به دستگاه‌های راه دور SCSI، باید نام دستگاه SCSI را با یک شناسه دستگاه راه دور آغاز کنید. این شناسه یا به صورت REMOTE:user@host: یا REMOTE:host: است. یک نام معتبر دستگاه راه دور SCSI می‌تواند: REMOTE:user@host: برای پویش گذرگاه راه دور SCSI باشد یا REMOTE:user@host:1,0,0 برای دسترسی به دستگاه SCSI در host متصل به گذرگاه شماره ۱، هدف ۰، lun ۰. به منظور امکان‌پذیری دسترسی راه دور به یک host خاص، برنامه rscsi(1) باید روی آن host موجود و پیکربندی شده باشد.

لایه‌های انتقال جایگزین SCSI:
دستور Cdrecord کاملاً بر اساس دستورات SCSI پایه‌ریزی شده است، اما این مشکلی ایجاد نمی‌کند زیرا تمام نویسنده‌های CD/DVD/BluRay از دستورات SCSI برای ارتباط استفاده می‌کنند. حتی درایوهای ATAPI صرفاً درایوهای SCSI هستند که از رابط بسته ATA به عنوان لایه انتقال دستورات SCSI ساخته‌شده درون انتقال IDE (ATA) استفاده می‌کنند. اگر سیستم‌عامل شما زیرسیستم درایور هسته کاملاً یکپارچه‌ای را پیاده‌سازی نکرده باشد که امکان دسترسی به هر درایوی را با دستورات SCSI از طریق یک رابط کاربری واحد فراهم کند، ممکن است نیاز به تعیین یک لایه انتقال جایگزین در خط فرمان داشته باشید.

برای دسترسی به دستگاه‌های SCSI از طریق لایه‌های انتقال جایگزین، باید نام دستگاه SCSI را با یک نشانگر لایه انتقال آغاز کنید. این نشانگر می‌تواند چیزی شبیه به USCSI: یا ATAPI: باشد. برای دریافت فهرستی از لایه‌های انتقال پشتیبانی‌شده در پلتفرم خود، از dev= HELP: استفاده کنید.

زمینه سازگاری و قابلیت حمل:
برای اینکه readcd روی تمام پلتفرم‌های یونیکس قابل حمل باشد، نحو dev= devicename:scsibus,target,lun ترجیح داده می‌شود زیرا دانش مربوط به سیستم‌عامل در مورد نام دستگاه‌ها را از کاربر پنهان می‌کند. یک سیستم‌عامل خاص ممکن است الزاماً روشی برای مشخص کردن نام فایل واقعی دستگاه یا روشی برای تعیین scsibus,target,lun ارائه ندهد.

گذرگاه Scsibus شماره ۰ گذرگاه پیش‌فرض SCSI روی ماشین است. پیام‌های راه‌اندازی سیستم را بررسی کنید یا به فایل /var/adm/messages برای اطلاعات بیشتر درباره پیکربندی SCSI ماشین خود مراجعه نمایید. اگر در یافتن مقادیر صحیح برای scsibus,target,lun مشکل دارید، گزینه -scanbus برنامه readcd را امتحان کنید.

استفاده از نام‌های منطقی برای دستگاه‌ها:
اگر گزینه dev مشخص نشده باشد، readcd تلاش می‌کند دستگاه را از متغیر محیطی CDR_DEVICE دریافت کند.

اگر فایل /etc/default/cdrecord وجود داشته باشد و آرگومان گزینه dev= یا مقدار CDR_DEVICE حاوی کاراکترهای ','، '/'، '@' یا ':' نباشد، به عنوان برچسب نام دستگاه تعریف‌شده در فایل /etc/default/cdrecord تفسیر می‌شود (بخش FILES را ببینید).

حالت هدف‌گیری خودکار (Autotarget Mode):
اگر گزینه dev= و متغیر محیطی CDR_DEVICE وجود نداشته باشند، یا اگر فقط شامل یک مشخص‌کننده انتقال بدون آدرس‌دهی باشند، readcd تلاش می‌کند فضای آدرس SCSI را برای درایوهای CD-ROM پویش کند. اگر دقیقاً یکی پیدا شود، به طور پیش‌فرض همان استفاده می‌شود.

تنظیم مقدار اشکال‌زدایی متفرقه روی # (با debug=#) یا افزایش سطح دیباگ به میزان یک واحد (با -d). اگر -dd را مشخص کنید، معادل با debug=2 خواهد بود. این گزینه می‌تواند به پیدا کردن مشکلات هنگام باز کردن یک درایور برای libscg و همچنین اندازه‌ها و انواع بخش‌ها کمک کند. استفاده از -debug فرآیند را کند می‌کند و ممکن است سبب خالی شدن بافر (buffer underrun) شود.
دستور به درایور scg برای تغییر مقدار دیباگ هسته در حین اجرای دستورات SCSI.
پویش تمام دستگاه‌های SCSI روی تمامی گذرگاه‌های SCSI و چاپ رشته‌های استعلام (inquiry). از این گزینه می‌توان برای پیدا کردن آدرس SCSI دستگاه‌های روی سیستم استفاده کرد. اعداد چاپ‌شده به عنوان برچسب به این صورت محاسبه می‌شوند: bus * 100 + target
فهرستی از گزینه‌های SCSI جداشده با کاما که توسط libscg مدیریت می‌شوند. گزینه‌های پیاده‌سازی‌شده را می‌توان مستقل از برنامه‌ها به‌روزرسانی کرد. در حال حاضر گزینه ignore-resid برای رفع یک باگ در هسته لینوکس پشتیبانی می‌شود.
عدم چاپ گزارش وضعیت برای دستورات ناموفق SCSI.
تنظیم مقدار مهلت زمانی (timeout) پیش‌فرض دستور SCSI روی # ثانیه. مهلت زمانی پیش‌فرض حداقل زمان مورد استفاده برای ارسال دستورات SCSI است. اگر یک دستور SCSI به دلیل اتمام مهلت زمانی با شکست مواجه شد، می‌توانید مهلت زمانی پیش‌فرض را به بالاتر از مقدار دستور ناموفق افزایش دهید. اگر دستور با مهلت زمانی افزایش‌یافته به درستی اجرا شد، لطفاً مقدار مهلت بهتر و دستور مربوطه را به نویسنده برنامه گزارش دهید. اگر گزینه timeout وجود نداشته باشد، مهلت زمانی پیش‌فرض ۴۰ ثانیه استفاده می‌شود.
تنظیم حداکثر اندازه انتقال برای یک دستور SCSI واحد روی #. نحو گزینه ts= مشابه cdrecord fs=# یا sdd bs=# است.

اگر گزینه ts= مشخص نشده باشد، readcd به طور پیش‌فرض از اندازه انتقال ۲۵۶ کیلوبایت استفاده می‌کند. اگر libscg مقادیر کمتری از سیستم‌عامل دریافت کند، مقدار به حداکثر مقدار ممکن در سیستم‌عامل فعلی کاهش می‌یابد. گاهی کاهش یا افزایش بیشتر اندازه انتقال ممکن است کمک‌کننده باشد، اما توجه داشته باشید که پیدا کردن مقدار بهتر با آزمون و خطا روی گزینه ts= ممکن است زمان زیادی ببرد.

افزایش سطح پرگویی در رابطه با انتقال دستورات SCSI به میزان یک واحد. این گزینه به اشکال‌زدایی مشکلاتی که در حین فرآیند در CD-Recorder رخ می‌دهد کمک می‌کند. اگر پیام‌های خطای غیرقابل درکی دریافت کردید، باید از این فلگ برای دریافت خروجی با جزئیات بیشتر استفاده کنید. گزینه -VV علاوه بر این، محتوای بافر داده را نیز نشان می‌دهد. استفاده از -V یا -VV فرآیند را کند می‌کند.

در تمام مثال‌های زیر فرض بر این است که درایو به گذرگاه اصلی SCSI ماشین متصل است و شناسه هدف SCSI برابر با ۲ تنظیم شده است.

برای خواندن کل رسانه از یک CD-ROM و نوشتن داده‌ها در فایل cdimage.raw:


readcd dev=2,0 f=cdimage.raw

برای خواندن بخش‌های محدوده ۱۵۰ تا ۱۰۰۰۰ از یک CD-ROM و نوشتن داده‌ها در فایل cdimage.raw:


readcd dev=2,0 sectors=150-10000 f=cdimage.raw

برای نوشتن داده‌ها از فایل cdimage.raw (به عنوان مثال ایمیج یک سیستم فایل از mkisofs) روی DVD-RAM، دستور زیر را اجرا کنید:


readcd dev=2,0 -w f=cdimage.raw

اگر متغیر محیطی RSH وجود داشته باشد، اتصال راه دور نه از طریق rcmd(3) بلکه با فراخوانی برنامه‌ای که توسط RSH مشخص شده برقرار می‌شود؛ به عنوان مثال با RSH=/usr/bin/ssh یک اتصال پوسته امن ایجاد می‌شود.

توجه داشته باشید که این کار cdrecord را مجبور می‌کند یک لوله (pipe) به برنامه rsh(1) ایجاد کند و مانع دسترسی مستقیم cdrecord به سوکت شبکه به سمت کارساز راه دور می‌شود. این امر تنظیم پارامترهای کارایی را غیرممکن ساخته و در مقایسه با یک اتصال rcmd(3) که توسط root آغاز شده باشد، سرعت اتصال را کاهش می‌دهد.

اگر متغیر محیطی RSCSI تنظیم شده باشد، کارساز SCSI راه دور برنامه /opt/schily/sbin/rscsi نخواهد بود، بلکه برنامه‌ای خواهد بود که توسط RSCSI مشخص شده است. توجه داشته باشید که اگر با حسابی وارد شوید که با یک برنامه کارساز راه دور SCSI به عنوان پوسته ورود ایجاد شده باشد، نام برنامه کارساز SCSI راه دور نادیده گرفته می‌شود.

کدهای خروج زیر استفاده می‌شوند:

0
هیچ خطایی رخ نداد.
-1
یک خطای مشخص رخ داد. این ممکن است یک خطای استفاده ناشی از خط فرمان غیرمجاز یا خطای دیگری با پیام خطای خاص از طرف readcd باشد.
-2
یک خطای نامشخص در حین ارتباط با درایو رخ داد. برای اطلاعات بیشتر به پیام خطای SCSI مراجعه کنید. بخش عیب‌یابی (DIAGNOSTICS) در زیر حاوی توضیحی درباره نحوه خواندن پیام‌های خطای SCSI است.

توجه داشته باشید که سیستم‌های عامل قدیمی‌تر و پوسته‌های قدیمی ممکن است از تمام محدوده ۳۲ بیتی کد خروج پشتیبانی نکنند و مقدار را با 0xFF ماسک کنند. این امر منجر به کدهای خروج کوتاه‌شده در محدوده 0..255 می‌شود که در آن -1 به 255 نگاشت می‌گردد.

cdrecord(1), mkisofs(8), scg(7), fbk(7), rcmd(3), ssh(1).

اگر نمی‌خواهید به کاربران اجازه دهید روی سیستم شما دسترسی ریشه (root) پیدا کنند، readcd را می‌توان با خیال راحت به صورت suid root نصب کرد. این کار به همه کاربران یا گروهی از کاربران فاقد امتیازات root اجازه می‌دهد از readcd استفاده کنند. در این حالت، Readcd فقط دسترسی به درایوهای نوع CD-ROM را مجاز می‌داند. برای دادن دسترسی به همه کاربران جهت استفاده از readcd ، دستورات زیر را وارد کنید:

chown root /usr/local/bin/readcd
chmod 4711 /usr/local/bin/readcd

برای دادن دسترسی به یک گروه محدود از کاربران به readcd دستورات زیر را وارد کنید:

chown root /usr/local/bin/readcd
chgrp cdburners /usr/local/bin/readcd
chmod 4710 /usr/local/bin/readcd

و یک گروه cdburners روی سیستم خود بسازید.

هرگز دسترسی نوشتن به دستگاه‌های /dev/scg? را به کاربران غیر ریشه ندهید، مگر اینکه بخواهید به هر کسی اجازه خواندن/نوشتن/قالب‌بندی تمام دیسک‌های خود را بدهید.

نباید درایوهای قدیمی را که از قطع/وصل مجدد (disconnect/reconnect) پشتیبانی نمی‌کنند، به گذرگاه SCSI که به CD-Recorder یا دیسک مبدا متصل است متصل کنید.

هنگام استفاده از readcd با درایور عمومی SCSI لینوکس باید توجه داشته باشید که readcd از لایه‌ای استفاده می‌کند که سعی دارد عملکرد درایور scg را روی درایوهای سیستم‌عامل محلی شبیه‌سازی کند. متأسفانه درایور sg در لینوکس دارای کاستی‌های متعددی است:

•
نمی‌تواند تشخیص دهد آیا یک دستور SCSI اصلاً ارسال نشده است یا خیر.
•
نمی‌تواند بایت وضعیت SCSI را دریافت کند؛ به همین دلیل Readcd در برخی شرایط نمی‌تواند ناموفق بودن دستورات SCSI را گزارش کند.
•
نمی‌تواند تعداد واقعی انتقال DMA را دریافت کند؛ Readcd نمی‌تواند به شما بگوید که آیا باقی‌مانده شمارش DMA وجود دارد یا خیر.
•
نمی‌تواند تعداد بایت‌های معتبر در داده‌های auto sense را به دست آورد؛ Readcd نمی‌تواند بگوید که آیا دستگاه اصلاً داده سنس ارسال نمی‌کند یا خیر.
•
داده‌های بسیار کمی را در auto request sense واکشی می‌کند (استاندارد CCS/SCSI-2/SCSI-3 به بیش از ۱۸ بایت نیاز دارد).

یک پیام خطای معمول برای یک دستور SCSI شبیه به این است:

readcd: I/O error. test unit ready: scsi sendcmd: no error
CDB:  00 20 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.002s timeout 40s
خط اول اطلاعاتی در مورد انتقال دستور ارائه می‌دهد. متن بعد از اولین دو نقطه، متن خطا را برای فراخوانی سیستمی از دید هسته بیان می‌کند که معمولاً I/O error است، مگر اینکه مشکلات دیگری رخ دهد. کلمات بعدی شامل شرح مختصری از دستور SCSI ناموفق است. بقیه خط به شما می‌گوید که آیا مشکلی در انتقال دستور از طریق گذرگاه SCSI وجود داشته است یا خیر. عبارت fatal error به این معنی است که انتقال دستور امکان‌پذیر نبوده است (یعنی هیچ دستگاهی در نشانی درخواستی SCSI وجود ندارد).

خط دوم بلوک توصیف‌کننده دستور SCSI (CDB) را برای دستور ناموفق چاپ می‌کند.

خط سوم اطلاعات مربوط به کد وضعیت SCSI بازگردانده‌شده توسط دستور را در صورت موفقیت‌آمیز بودن انتقال دستور ارائه می‌دهد. این اطلاعات خطا از سوی خود دستگاه SCSI است.

خط چهارم یک دامپ هگزادسیمال از اطلاعات حسگر درخواست خودکار (auto request sense) برای دستور است.

خط پنجم متن خطا برای sense key در صورت موجود بودن است و پس از آن شماره بخشی می‌آید که فقط در صورتی معتبر است که دستور، یک دستور copy بوده باشد. اگر پیام خطا مستقیماً به دستور فعلی مربوط نباشد، عبارت deferred error به آن افزوده می‌شود.

خط ششم متن خطا برای sense code و sense qualifier در صورت موجود بودن است. اگر نوع دستگاه مشخص باشد، داده‌های sense از روی جدول‌های موجود در scsierrs.c رمزگشایی می‌شوند. پس از متن، مقدار خطا برای واحد قابل تعویض در محل (FRU) می‌آید.

خط هفتم شماره بلوکی را که مربوط به دستور ناموفق است و متنی برای چندین فلگ خطا چاپ می‌کند. شماره بلوک ممکن است معتبر نباشد.

خط هشتم مهلت زمانی تعیین‌شده برای این دستور و زمانی را که دستور برای تکمیل نیاز داشته است گزارش می‌دهد.

اگر می‌خواهید فعالانه در توسعه cdrecord مشارکت داشته باشید، می‌توانید از طریق این نشانی به فهرست پستی توسعه‌دهندگان بپیوندید:

https://lists.sourceforge.net/lists/listinfo/cdrtools-developers

Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany

اطلاعات بیشتر را می‌توانید در نشانی زیر بیابید:
http://cdrecord.org/private/cdrecord.html

اگر سوالات پشتیبانی دارید، آن‌ها را به نشانی زیر ارسال کنید:

cdrtools-support@lists.sourceforge.net

اگر قطعاً اشکالی پیدا کرده‌اید، به نشانی‌های زیر ایمیل بفرستید:

cdrtools-developers@lists.sourceforge.net
یا joerg.schilling@fokus.fraunhofer.de

برای عضویت از نشانی‌های زیر استفاده کنید:

https://lists.sourceforge.net/lists/listinfo/cdrtools-developers
یا https://lists.sourceforge.net/lists/listinfo/cdrtools-support

رابط‌های ارائه‌شده توسط readcd برای پایداری درازمدت طراحی شده‌اند. از آنجا که readcd به رابط‌های ارائه‌شده توسط سیستم‌عامل زیربنایی وابسته است، پایداری رابط‌های ارائه‌شده توسط readcd به پایداری رابط‌های سیستم‌عامل بستگی دارد. تغییر رابط‌ها در سیستم‌عامل ممکن است تغییر رابط‌ها را در readcd تحمیل کند.

Version 3.02 2017/06/06 Joerg Schilling