SG_READ_LONG(8) SG3_UTILS SG_READ_LONG(8)

sg_read_long - ارسال دستور SCSI READ LONG

sg_read_long [--16] [--correct] [--help] [--lba=LBA] [--out=OF] [--pblock] [--readonly] [--verbose] [--version] [--xfer_len=BTL] DEVICE

دستور SCSI READ LONG را به DEVICE ارسال می‌کند. بافر خوانده‌شده به‌صورت هگزادسیمال و اسکی در خروجی استاندارد نمایش داده می‌شود یا در یک فایل ذخیره می‌گردد. توجه داشته باشید که داده‌های بازگردانده‌شده شامل داده‌های بلوک منطقی (معمولاً ۵۱۲ بایت برای یک دیسک) به همراه اطلاعات ECC (که قالب آن اختصاصی است) و در صورت تمایل سایر داده‌های اختصاصی است. همچنین توجه داشته باشید که داده‌های بلوک منطقی ممکن است کدگذاری یا رمزنگاری شده باشند.

در ویرایش ۷ استاندارد SBC-4، دستورات SCSI READ LONG (۱۰ و ۱۶ بایتی) منسوخ اعلام شدند. در همان ویرایش، تمامی کاربردهای دستورات SCSI WRITE LONG (۱۰ و ۱۶ بایتی) به‌جز حالتی که بیت WR_UNCOR تنظیم شده باشد نیز منسوخ گردیدند.

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

از یک دستور SCSI READ LONG(16) استفاده می‌کند. رفتار پیش‌فرض استفاده از دستور SCSI READ LONG(10) است. دستور READ LONG(10) دارای یک فیلد ۳۲ بیتی برای lba است، در حالی که READ LONG(16) یک فیلد ۶۴ بیتی دارد.
بیت «CORRCT» را در دستور SCSI READ LONG تنظیم می‌کند. هنگامی که تنظیم شود، داده‌ها پیش از ارسال به این ابزار توسط ECC تصحیح می‌شوند. حالت پیش‌فرض پاک نگه‌داشتن بیت «CORRCT» است که در این حالت داده‌ها تصحیح نمی‌شوند.
پیام راهنمای نحوه استفاده را نمایش داده و خارج می‌شود.
که در آن LBA آدرس بلوک منطقی سکتور مورد نظر برای خواندن است. فرض بر این است که مقدار در مبنای ده است مگر اینکه با «0x» شروع شود (یا پسوند «h» داشته باشد). مقدار پیش‌فرض lba 0 است. اگر مقدار lba بزرگ‌تر از گنجایش ۳۲ بیت باشد، باید از گزینه --16 استفاده شود.
به‌جای ارسال خروجی هگزادسیمال اسکی به خروجی استاندارد، آن را به‌صورت باینری به فایلی به نام OF ارسال می‌کند. اگر برای OF مقدار «-» مشخص شود، خروجی (باینری) به خروجی استاندارد ارسال خواهد شد. توجه داشته باشید که تمام پیام‌های اطلاع‌رسانی و خطا به خروجی خطای استاندارد (stderr) ارسال می‌شوند.
بیت «PBLOCK» را در دستور SCSI READ LONG تنظیم می‌کند. با فعال بودن این گزینه، بلوک فیزیکی (به همراه داده‌های ECC) حاوی آدرس بلوک منطقی درخواست‌شده خوانده می‌شود. حالت پیش‌فرض پاک نگه‌داشتن بیت «PBLOCK» است که در این حالت بلوک منطقی (به همراه هرگونه داده‌های ECC) خوانده می‌شود.
دستگاه DEVICE را به‌جای حالت خواندن و نوشتن که پیش‌فرض است، به‌صورت فقط‌خواندنی باز می‌کند. درایور sg لینوکس برای دستور SCSI READ LONG به دسترسی خواندن و نوشتن نیاز دارد، اما سایر روش‌های دسترسی ممکن است به دسترسی فقط‌خواندنی نیاز داشته باشند.
افزایش سطح پرگویی (یعنی خروجی اشکال‌زدایی).
چاپ رشته نسخه و سپس خروج.
که در آن BTL طول انتقال بر حسب بایت است (پیش‌فرض ۵۲۰). اگر مقدار ارائه‌شده (یا پیش‌فرض) با اندازه بلوک «long» دستگاه مطابقت نداشته باشد، مقدار مناسب BTL از پاسخ خطای دستگاه استنباط شده و در خروجی خطای استاندارد چاپ می‌شود. هدف این است که کاربر بتواند این ابزار را با طول انتقال صحیح مجدداً امتحان کند.

اگر یک بلوک معیوب پیدا شود و محتویات آن (در صورت وجود) بازیابی گردد، می‌توان از sg_reassign برای خارج کردن بلوک معیوب از جدول استفاده کرد. هم‌گام با چنین اقدامی، می‌توان تعداد عناصر موجود در فهرست نقص‌های رو به رشد را با (sg_reassign --grown) زیر نظر گرفت، زیرا ممکن است دیسک به پایان طول عمر مفید خود نزدیک شده باشد.

آرگومان‌های عددی گوناگون (مانند LBA) ممکن است شامل پسوندهای ضریبی باشند یا در مبنای شانزده ارائه شوند. بخش «NUMERIC ARGUMENTS» را در صفحه راهنمای sg3_utils(8) مشاهده کنید.

به‌عنوان یک نمونه، شرکت فوجیتسو از ۵۴ بایت ECC (به ازای هر بلوک) استفاده می‌کند که قادر است یک خطای پیوسته یا تا ۲۱۶ بیت را به‌صورت بلادرنگ تصحیح کند. [اطلاعات برگرفته از دفترچه راهنمای محصول MAV20xxrc.]

وضعیت خروج sg_read_long در صورت موفقیت 0 است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید.

نوشته‌شده توسط Douglas Gilbert.

گزارش باگ‌ها به <dgilbert at interlog dot com>.

حق نشر © 2004-2016 Douglas Gilbert
این نرم‌افزار تحت مجوز GPL نسخه ۲ توزیع شده است. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

sg_reassign, sg_write_long, sg_dd

November 2015 sg3_utils-1.42