.TH SG_VERIFY "8" "December 2019" "sg3_utils\-1.45" SG3_UTILS .SH "نام (NAME)" sg_verify \- فراخوانی دستور(ات) SCSI VERIFY روی یک دستگاه بلوکی .SH "خلاصه دستور (SYNOPSIS)" .B sg_verify [\fI\-\-0\fR] [\fI\-\-16\fR] [\fI\-\-bpc=BPC\fR] [\fI\-\-count=COUNT\fR] [\fI\-\-dpo\fR] [\fI\-\-ff\fR] [\fI\-\-ebytchk=BCH\fR] [\fI\-\-group=GN\fR] [\fI\-\-help\fR] [\fI\-\-in=IF\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-ndo=NDO\fR] [\fI\-\-quiet\fR] [\fI\-\-readonly\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] [\fI\-\-vrprotect=VRP\fR] \fIDEVICE\fR .SH "توضیحات (DESCRIPTION)" .\" Add any additional description here یک یا چند دستور SCSI VERIFY (نسخه ۱۰ یا ۱۶) را به \fIDEVICE\fR ارسال می‌کند. این دستورات SCSI در استانداردهای SBC\-2 و SBC\-3 در نشانی https://www.t10.org و پیش‌نویس‌های SBC\-4 تعریف شده‌اند. .PP هنگامی که گزینه \fI\-\-ndo=NDO\fR داده نشود، اعتبارسنجی از آدرس بلوک منطقی مشخص‌شده توسط گزینه \fI\-\-lba=LBA\fR آغاز شده و برای \fI\-\-count=COUNT\fR بلوک ادامه می‌یابد. توسط هر دستور VERIFY حداکثر \fI\-\-bpc=BPC\fR بلوک تأیید اعتبار می‌شود؛ بنابراین در صورت نیاز چندین دستور VERIFY ارسال خواهد شد. عملیات اعتبارسنجی رسانه توسط \fIDEVICE\fR انجام می‌شود (برای مثال، با فرض اینکه هر بلوک دارای داده‌های اضافی EEC باشد، این داده‌ها با محتوای بلوک منطقی بررسی می‌شوند). نبود هیچ پیامی نشانه موفقیت است (یعنی اگر خطایی در اعتبارسنجی تشخیص داده نشود، هیچ پیامی به stderr ارسال نمی‌شود و وضعیت خروج یونیکس برابر با ۰ خواهد بود). .PP هنگامی که گزینه \fI\-\-ndo=NDO\fR داده شود، گزینه \fI\-\-bpc=BPC\fR نادیده گرفته می‌شود. یک دستور منفرد VERIFY صادر شده و مقایسه‌ای از آدرس بلوک منطقی مشخص‌شده توسط گزینه \fI\-\-lba=LBA\fR آغاز گردیده و برای \fI\-\-count=COUNT\fR بلوک ادامه می‌یابد. دستور VERIFY دارای یک بافر داده خروجی (data\-out buffer) مرتبط با طول \fINDO\fR بایت است. محتویات بافر داده خروجی از فایل \fIFN\fR (در صورت ارائه \fI\-\-in=FN\fR) یا از stdin دریافت می‌شود. مقایسه‌ای میان بافر داده خروجی و بلوک‌های منطقی روی \fIDEVICE\fR صورت می‌گیرد. اگر مقایسه موفقیت‌آمیز باشد، هیچ پیامی به stderr ارسال نشده و وضعیت خروج یونیکس ۰ خواهد بود. اگر مقایسه با شکست مواجه شود، یک بافر سنس (sense buffer) با کلید سنس MISCOMPARE بازگردانده می‌شود؛ در این حالت وضعیت خروج یونیکس ۱۴ خواهد بود. پیام‌های مرتبط با بافر سنس MISCOMPARE به stderr ارسال خواهند شد مگر اینکه گزینه \fI\-\-quiet\fR مشخص شده باشد. .PP در نگارش ۳۴ استاندارد SBC\-3 فیلد BYTCHK در تمام دستورات SCSI VERIFY از یک بیت به دو بیت گسترش یافت. این امر مستلزم تغییراتی در گزینه‌های این ابزار بود؛ بخش زیر با عنوان «تغییرات گزینه‌ها» را ببینید. .SH "گزینه‌ها (OPTIONS)" آرگومان‌های گزینه‌های بلند برای گزینه‌های کوتاه نیز اجباری هستند. گزینه‌ها بر اساس نام گزینه بلند به ترتیب الفبایی مرتب شده‌اند. .TP \fB\-0\fR, \fB\-\-0\fR بافری با طول \fINDO\fR بایت پر از صفر به عنوان بخش داده خروجی (data\-out) یک دستور VERIFY ارسال می‌شود. بنابراین stdin خوانده نمی‌شود و اگر \fI\-\-in=IF\fR داده شده باشد، یک خطا ایجاد می‌شود. این گزینه زمانی که \fIBCH\fR برابر با ۳ باشد برای بررسی اینکه آیا بخشی یا تمامی \fIDEVICE\fR (برای مثال یک دیسک) از بلوک‌های پر از صفر تشکیل شده است، مفید خواهد بود. .TP \fB\-S\fR, \fB\-\-16\fR از دستور VERIFY(16) استفاده می‌کند (پیش‌فرض VERIFY(10) است). حتی بدون این گزینه، استفاده از یک \fI\-\-lba=LBA\fR که بیش از حد بزرگ باشد، باعث می‌شود که این ابزار دستور VERIFY(16) صادر کند. .TP \fB\-b\fR, \fB\-\-bpc\fR=\fIBPC\fR اگر گزینه \fI\-\-ndo=NDO\fR مشخص شده باشد، این گزینه نادیده گرفته می‌شود. در غیر این صورت، \fIBPC\fR حداکثر تعداد بلوک‌هایی را مشخص می‌کند که توسط یک دستور منفرد SCSI VERIFY تأیید اعتبار خواهند شد. مقدار پیش‌فرض ۱۲۸ بلوک است که برای یک دیسک با بلوک‌های ۵۱۲ بایتی معادل ۶۴ کیلوبایت است. اگر \fIBPC\fR کمتر از \fICOUNT\fR باشد، چندین دستور SCSI VERIFY به \fIDEVICE\fR ارسال می‌شود. برای دستور پیش‌فرض VERIFY(10)، مقدار \fIBPC\fR نمی‌تواند از 0xffff (۶۵٬۵۳۵) فراتر رود، در حالی که برای VERIFY(16)، مقدار \fIBPC\fR نمی‌تواند از 0x7fffffff (۲٬۱۴۷٬۴۸۳٬۶۴۷) فراتر رود. برای دستگاه‌های بلوکی جدید (دیسک‌ها)، این مقدار ممکن است توسط فیلد حداکثر طول انتقال (maximum transfer length) در صفحه Block Limits VPD محدود شود. .TP \fB\-c\fR, \fB\-\-count\fR=\fICOUNT\fR که در آن \fICOUNT\fR تعداد بلوک‌ها برای اعتبارسنجی را مشخص می‌کند. مقدار پیش‌فرض ۱ است. اگر \fICOUNT\fR بزرگ‌تر از \fIBPC\fR (یا مقدار پیش‌فرض آن ۱۲۸) باشد و \fINDO\fR داده نشده باشد، چندین دستور SCSI VERIFY به دستگاه ارسال می‌شود. در غیر این صورت، \fICOUNT\fR محتوای فیلد طول اعتبارسنجی (verification length) دستور SCSI VERIFY صادرشده خواهد بود. از ابزار .B sg_readcap می‌توان برای یافتن حداکثر تعداد بلوک‌هایی که یک دستگاه بلوکی (برای مثال یک دیسک) دارد استفاده کرد. .TP \fB\-d\fR, \fB\-\-dpo\fR غیرفعال‌سازی خارج کردن صفحه از حافظه (disable page out) اولویت نگهداری بلوک‌های خوانده‌شده در حافظه نهان (کش) دستگاه را به کمترین اولویت تغییر می‌دهد. این بدان معناست که بلوک‌های خوانده‌شده توسط دستورات دیگر احتمال بیشتری برای باقی ماندن در حافظه نهان دستگاه خواهند داشت. .TP \fB\-E\fR, \fB\-\-ebytchk\fR=\fIBCH\fR فیلد BYTCHK را روی \fIBCH\fR تنظیم می‌کند و مقدار (1) را که توسط گزینه \fI\-\-ndo=NDO\fR تنظیم شده بود لغو می‌نماید. مقادیر ۱، ۲ یا ۳ برای \fIBCH\fR پذیرفته می‌شوند، اما استاندارد sbc3r34 مقدار ۲ را رزرو کرده است. اگر این گزینه داده شود، \fI\-\-ndo=NDO\fR نیز باید ارائه گردد. اگر \fIBCH\fR برابر با ۳ باشد، آنگاه \fINDO\fR باید اندازه یک بلوک منطقی باشد (به‌علاوه اندازه تمام یا بخشی از اطلاعات حفاظت در صورتی که \fIVRP\fR بزرگ‌تر از ۰ باشد). .TP \fB\-f\fR, \fB\-\-ff\fR بافری با طول \fINDO\fR بایت پر از بایت‌های 0xff به عنوان بخش داده خروجی (data\-out) یک دستور VERIFY ارسال می‌شود. بنابراین stdin خوانده نمی‌شود و اگر \fI\-\-in=IF\fR داده شده باشد، یک خطا ایجاد می‌شود. این گزینه زمانی که \fIBCH\fR برابر با ۳ باشد برای بررسی اینکه آیا بخشی یا تمامی \fIDEVICE\fR (برای مثال یک دیسک) از بلوک‌های پر از بایت 0xff تشکیل شده است، مفید خواهد بود. .TP \fB\-g\fR, \fB\-\-group\fR=\fIGN\fR که در آن \fIGN\fR محتوای فیلد شماره گروه (group number) در دستور SCSI VERIFY(16) خواهد بود. این مقدار می‌تواند از ۰ تا ۶۳ (شامل هر دو) باشد. مقدار پیش‌فرض برای \fIGN\fR برابر با ۰ است. توجه داشته باشید که این گزینه برای دستور SCSI VERIFY(10) نادیده گرفته می‌شود. .TP \fB\-h\fR, \fB\-\-help\fR نمایش پیام راهنمای استفاده و سپس خروج. .TP \fB\-i\fR, \fB\-\-in\fR=\fIIF\fR که در آن \fIIF\fR نام فایلی است که \fINDO\fR بایت از آن خوانده شده و در بافر داده خروجی قرار می‌گیرد. این کار تنها زمانی انجام می‌شود که گزینه \fI\-\-ndo=NDO\fR داده شده باشد. اگر این گزینه ارائه نشود، ورودی استاندارد (stdin) خوانده می‌شود. اگر \fIIF\fR برابر با «\-» باشد نیز stdin مورد استفاده قرار می‌گیرد. .TP \fB\-l\fR, \fB\-\-lba\fR=\fILBA\fR که در آن \fILBA\fR آدرس بلوک منطقی اولین بلوک برای شروع عملیات اعتبارسنجی را مشخص می‌کند. فرض بر این است که \fILBA\fR در مبنای ده‌دهی است مگر اینکه دارای پیشوند '0x' یا پسوند 'h' باشد (زیر را ببینید). مقدار پیش‌فرض ۰ است (یعنی ابتدای دستگاه). .TP \fB\-n\fR, \fB\-\-ndo\fR=\fINDO\fR \fINDO\fR تعداد بایت‌هایی است که باید از فایل \fIFN\fR (در صورت ارائه \fI\-\-in=FN\fR) یا از ورودی استاندارد (stdin) به دست آید. این بایت‌ها در بافر داده خروجی مرتبط با دستور SCSI VERIFY قرار می‌گیرند و \fINDO\fR در فیلد طول اعتبارسنجی در cdb قرار می‌گیرد. مقدار پیش‌فرض برای \fINDO\fR برابر با ۰ است و حداکثر مقدار آن به سیستم‌عامل بستگی دارد. اگر گزینه \fI\-\-ebytchk=BCH\fR داده نشده باشد، فیلد BYTCHK در cdb روی ۱ تنظیم می‌شود. .TP \fB\-q\fR, \fB\-\-quiet\fR پیام‌های بافر سنس مرتبط با کلید سنس MISCOMPARE را که در غیر این صورت به stderr ارسال می‌شدند سرکوب می‌کند. وضعیت خروج همچنان روی ۱۴ تنظیم می‌شود که مقدار کلید سنس نشان‌دهنده MISCOMPARE است. .TP \fB\-r\fR, \fB\-\-readonly\fR دستگاه DEVICE را به جای حالت خواندن/نوشتن (که پیش‌فرض است) به صورت فقط‌خواندنی باز می‌کند. درایور sg لینوکس برای دستور SCSI VERIFY به دسترسی خواندن/نوشتن نیاز دارد، اما سایر روش‌های دسترسی ممکن است به دسترسی فقط‌خواندنی احتیاج داشته باشند. .TP \fB\-v\fR, \fB\-\-verbose\fR افزایش سطح گزارش جزئیات (یعنی خروجی اشکال‌زدایی). .TP \fB\-V\fR, \fB\-\-version\fR چاپ رشته نسخه برنامه و سپس خروج. .TP \fB\-P\fR, \fB\-\-vrprotect\fR=\fIVRP\fR که در آن \fIVRP\fR مقدار موجود در فیلد vrprotect در cdb دستور VERIFY است. این مقدار باید عددی بین ۰ تا ۷ (شامل هر دو) باشد. مقدار پیش‌فرض صفر است. .SH "فیلد BYTCHK (BYTCHK)" نام BYTCHK مربوط به یک فیلد (با پهنای دو بیت) در دستورات VERIFY(10) و VERIFY(16) است. هنگامی که روی ۱ یا ۳ تنظیم شود (استاندارد sbc3r34 مقدار ۲ را رزرو کرده است)، نشان می‌دهد که همراه با دستور SCSI VERIFY، یک بافر داده خروجی (data\-out buffer) برای بررسی توسط دستگاه (دیسک) ارسال خواهد شد. استفاده از گزینه \fI\-\-ndo=NDO\fR فیلد BYTCHK را روی ۱ تنظیم می‌کند و \fINDO\fR تعداد بایت‌های قرار گرفته در بافر داده خروجی است. این بایت‌ها از stdin یا \fIIF\fR (از گزینه \fI\-\-in=FN\fR) به دست می‌آیند. از گزینه \fI\-\-ebytchk=BCH\fR می‌توان برای بازنویسی مقدار ۱ فیلد BYTCHK با \fIBCH\fR استفاده کرد. .PP محاسبه \fINDO\fR به عهده کاربر است. مقدار آن به اندازه بلوک منطقی (که با ابزار sg_readcap قابل یافتن است)، مقادیر \fICOUNT\fR و \fIVRP\fR بستگی دارد. اگر \fIVRP\fR بزرگ‌تر از ۰ باشد، هر بلوک منطقی شامل (حداقل) ۸ بایت داده‌های اضافی اطلاعات حفاظت خواهد بود. .PP هنگامی که فیلد BYTCHK برابر با ۰ باشد، فرآیند اعتبارسنجی انجام‌شده توسط دستگاه (دیسک) به صورت اختصاصی سازنده (vendor specific) خواهد بود. این فرآیند معمولاً شامل بررسی هر بلوک روی دیسک در برابر کدهای تصحیح خطای آن (ECC) است که داده‌های اضافی ذخیره‌شده روی دیسک هستند. .PP بسیاری از سیستم‌های عامل محدودیت‌هایی را بر روی حداکثر اندازه بافر داده خروجی (و داده ورودی) اعمال می‌کنند. برای لینوکس در گذشته این محدودیت کمتر از ۱ مگابایت بود اما تا حدودی افزایش یافته است. .SH "تغییرات گزینه‌ها (OPTION CHANGES)" نسخه‌های پیشین این ابزار دارای گزینه \fI\-\-bytchk=NDO\fR بودند که بیت BYTCHK را تنظیم کرده و فیلد طول اعتبارسنجی cdb را روی \fINDO\fR قرار می‌داد. شکل کوتاه‌تر آن گزینه \fI\-B NDO\fR بود. برای سازگاری با گذشته، این گزینه همچنان وجود دارد اما مستند نشده است. به جای آن گزینه \fI\-\-ndo=NDO\fR قرار دارد که شکل کوتاه‌تر آن \fI\-n NDO\fR است. گزینه \fI\-\-ndo=NDO\fR فیلد BYTCHK را روی ۱ تنظیم می‌کند مگر اینکه با \fI\-\-ebytchk=BCH\fR بازنویسی شود. .SH "نکات (NOTES)" آرگومان‌های عددی گوناگون (مانند \fILBA\fR) ممکن است شامل پسوندهای ضریبی باشند یا در مبنای ۱۶ (هگزادسیمال) داده شوند. بخش "NUMERIC ARGUMENTS" را در صفحه راهنمای sg3_utils(8) ببینید. .PP میزان تصحیح خطا و تعداد تلاش‌های مجدد پیش از اینکه یک بلوک معیوب در نظر گرفته شود، تا حدی توسط صفحه حالت Verify Error Recovery کنترل می‌شود. یادداشتی در پیش‌نویس SBC\-3 (نگارش ۲۹، بخش 6.4.9 درباره صفحه حالت Verify Error Recovery) توصیه می‌کند که برای به حداقل رساندن تعداد بررسی‌ها (و در نتیجه داشتن «حساس‌ترین» بررسی اعتبارسنجی)، موارد زیر در آن صفحه حالت انجام شود: بیت EER روی ۰، بیت PER روی ۱، بیت DTE روی ۱، بیت DCR روی ۱، شمارنده تلاش مجدد اعتبارسنجی (verify retry count) روی ۰ و محدودیت زمانی بازیابی اعتبارسنجی (verify recovery time limit) روی ۰ تنظیم شوند. صفحات حالت را می‌توان با ابزار .B sdparm تغییر داد. .PP دستور SCSI VERIFY(6) که در استاندارد SSC\-2 و پس از آن تعریف شده است (یعنی برای سامانه‌های درایو نوار مغناطیسی)، توسط این ابزار پشتیبانی نمی‌شود. .SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج sg_verify در صورت موفقیت برابر با ۰ است. هنگامی که \fIBCH\fR مقداری غیر از ۰ داشته باشد، یک مقایسه صورت می‌گیرد و اگر با شکست مواجه شود، وضعیت خروج ۱۴ خواهد بود که همان مقدار کلید سنس MISCOMPARE است. در غیر این صورت، بخش EXIT STATUS در صفحه راهنمای sg3_utils(8) را ببینید. .PP نسخه‌های پیشین این ابزار در صورت بروز MISCOMPARE وضعیت خروج را روی ۹۸ تنظیم می‌کردند. .SH "نویسندگان (AUTHORS)" نوشته‌شده توسط Douglas Gilbert. .SH "گزارش باگ‌ها (REPORTING BUGS)" گزارش باگ‌ها را به ارسال کنید. .SH "حق نشر (COPYRIGHT)" حق نشر \(co 2004\-2019 Douglas Gilbert .br این نرم‌افزار تحت مجوز BSD\-2\-Clause توزیع شده است. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" .B sdparm(sdparm), sg_modes(sg3_utils), sg_readcap(sg3_utils), .B sg_inq(sg3_utils)