.TH SGINFO "8" "January 2014" "sg3_utils\-1.38" SG3_UTILS .SH "نام (NAME)" sginfo \- دسترسی به اطلاعات صفحه حالت (mode page) برای یک دستگاه SCSI (یا ATAPI) .SH "خلاصه دستور (SYNOPSIS)" .B sginfo [\fIگزینه‌ها\fR] [\fIDEVICE\fR] [\fIپارامترهای_جایگزین\fR] .SH "توضیحات (DESCRIPTION)" ابزار sginfo پورت‌شده از برنامه لینوکسی .B scsiinfo اثر Eric Youngdale است. این ابزار از دستگاه‌های عمومی SCSI موسوم به sg استفاده می‌کند؛ با این حال در برخی موارد می‌توان از نام‌های دستگاه در سطوح بالاتر (مانند sd، sr، st، osst یا hd) نیز استفاده کرد. هدف اصلی این برنامه دسترسی به اطلاعات صفحه حالت (mode page) است. در صورت وجود دسترسی، اطلاعات صفحه حالت را می‌توان تغییر داد. علاوه بر این، اطلاعات حاصل از دستورات INQUIRY و READ DEFECTS نیز در دسترس هستند. .PP این ابزار در حالت قدیمی (legacy) قرار دارد و تنها اشکالات آشکار آن برطرف خواهند شد. گزینه‌هایی مانند \fI\-l\fR (برای فهرست کردن دستگاه‌ها) در نسخه‌های جدید لینوکس (مانند سری ۲.۶ و بعد از آن) کار نمی‌کنند؛ می‌توان به جای آن از ابزار lsscsi(8) استفاده کرد. همچنین با افزوده شدن و تغییر فیلدهای صفحات حالت در https://www.t10.org صفحات حالت در این ابزار به‌روزرسانی نمی‌شوند. کسانی که به صفحات حالت SCSI علاقه‌مند هستند، ممکن است ابزار .B sdparm را به‌روزتر و با کاربردی آسان‌تر، به‌ویژه برای تغییر پارامترها، بیابند. .PP چهار مجموعه از مقادیر توسط یک دستگاه SCSI برای هر صفحه حالت نگهداری می‌شود: جاری یا فعال (current)، پیش‌فرض که مقادیر ارائه‌شده توسط سازنده است (default)، ذخیره‌شده که مقادیر ماندگار پس از خاموش شدن دستگاه هستند (saved)، و قابل‌تغییر که ماسک نشان‌دهنده مقادیر قابل ویرایش است (changeable). به‌طور پیش‌فرض، هنگام نمایش یک صفحه حالت، مقادیر جاری نشان داده می‌شوند. این رفتار را می‌توان با گزینه‌های "\-M" (پیش‌فرض‌ها)، "\-S" (ذخیره‌شده‌ها) یا "\-m" (قابل تغییر) لغو کرد. .PP بسیاری از صفحات حالت رمزگشایی شده‌اند: برای دیسک‌ها (SBC\-2 را ببینید)، برای CD/DVDها (MMC\-2/3/4/5 را ببینید)، برای نوارها (SSC\-2 را ببینید) و برای محفظه‌ها (SES\-2 را ببینید). برخی از صفحات حالت مشترک میان تمام انواع دستگاه‌های جانبی SCSI در SPC\-4 (دستورات پایه) تعریف شده‌اند. یک صفحه حالت رمزگشایی‌شده، نام فیلدهای خود را در ستون اول و مقدار متناظر را در ستون دوم دارد. یک صفحه حالت (و زیرصفحه) «هگزادسیمال»، موقعیت بایت خود را در ستون اول (در مبنای ۱۶ و شروع از 0x2) و مقدار هگز متناظر را در ستون دوم دارد. صفحات رمزگشایی‌شده را می‌توان با گزینه '\-t' یا با یک گزینه خاص (مانند 'c' برای صفحه حالت کشینگ) مشاهده کرد. طبیعتاً صفحات رمزگشایی‌شده باید توسط \fIDEVICE\fR ارائه شده و برای این برنامه شناخته‌شده باشند. در صورت پشتیبانی توسط دستگاه، صفحات رمزگشایی‌شده قابل تغییر هستند. تمام صفحات حالت (و زیرصفحات) که دستگاه پشتیبانی می‌کند را می‌توان به صورت هگزادسیمال (و با امکان تغییر) از طریق گزینه "\-u" مشاهده کرد. .PP اگر گزینه‌ای مشخص نشود که باعث چاپ صفحه(های) حالت یا داده‌های INQUIRY شود، پاسخ کوتاهی از INQUIRY خروجی داده می‌شود. این پاسخ شامل نام سازنده، محصول و سطح بازنگری دستگاه است. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-6\fR اجرای دستورات ۶ بایتی MODE SENSE و MODE SELECT؛ به صورت پیش‌فرض از گونه‌های ۱۰ بایتی استفاده می‌شود. .TP \fB\-a\fR نمایش برخی از داده‌های INQUIRY و شماره سریال واحد، به همراه تمام صفحات حالت گزارش‌شده توسط دستگاه. عملکردی مشابه گزینه '\-t 0x3f' دارد. اگر صفحه حالت شناخته‌شده باشد، به صورت رمزگشایی‌شده خروجی داده می‌شود و در غیر این صورت به صورت هگزادسیمال نمایش می‌یابد. .TP \fB\-A\fR نمایش برخی داده‌های INQUIRY و شماره سریال واحد، به همراه تمام صفحات حالت و تمام زیرصفحات حالت گزارش‌شده توسط دستگاه. مشابه گزینه '\-t 0x3f,0xff' است. اگر یک (زیر)صفحه حالت شناخته‌شده باشد به صورت رمزگشایی‌شده وگرنه به صورت هگزادسیمال خروجی داده می‌شود. .TP \fB\-c\fR دسترسی به اطلاعات موجود در صفحه حالت Caching (حافظه نهان). .TP \fB\-C\fR دسترسی به اطلاعات موجود در صفحه حالت Control (کنترل). .TP \fB\-d\fR نمایش فهرست‌های نقص (قالب پیش‌فرض: index). .TP \fB\-D\fR دسترسی به اطلاعات موجود در صفحه حالت Disconnect\-Reconnect (قطع و اتصال مجدد). .TP \fB\-e\fR دسترسی به اطلاعات موجود در صفحه حالت Error Recovery (بازیابی خطا). .TP \fB\-E\fR دسترسی به اطلاعات موجود در صفحه حالت Control Extension (توسعه کنترل). .TP \fB\-f\fR دسترسی به اطلاعات موجود در صفحه حالت Format Device (فرمت دستگاه). .TP \fB\-F\fR\fIarg\fR قالب فهرست‌های نقص: \-Flogical \- آدرس‌های بلوک منطقی (۳۲ بیتی) \-Flba64 \- آدرس‌های بلوک منطقی (۶۴ بیتی) \-Fphysical \- بلوک‌های فیزیکی \-Findex \- بایت‌های نقص از شاخص \-Fhead \- مرتب‌سازی بر اساس هد .br همراه با "\-d" یا "\-G" استفاده می‌شود. اگر قالبی مشخص نشود، "index" فرض می‌گردد. .TP \fB\-g\fR دسترسی به اطلاعات موجود در صفحه حالت Rigid Disk Drive Geometry (هندسه درایو دیسک سخت). .TP \fB\-G\fR نمایش فهرست نقص‌های افزوده (قالب پیش‌فرض: index). .TP \fB\-i\fR نمایش پاسخ به یک دستور استاندارد INQUIRY. .TP \fB\-I\fR دسترسی به صفحه حالت Informational Exceptions (استثناهای اطلاعاتی). .TP \fB\-l\fR منسوخ شده است. تنها در نسخه‌های قدیمی لینوکس (مانند ۲.۴ و پیش از آن) استفاده شود. لطفاً در سری ۲.۶ لینوکس و نسخه‌های پس از آن از lsscsi(8) استفاده کنید. فهرست کردن دستگاه‌های SCSI شناخته‌شده در سیستم. .TP \fB\-n\fR دسترسی به اطلاعات موجود در صفحه حالت Notch and Partition. .TP \fB\-N\fR لغو (یعنی متوقف کردن) اعمال تغییرات صفحه حالت در صفحه "saved" (به طور پیش‌فرض تغییرات هم در صفحه جاری و هم در صفحه ذخیره‌شده اعمال می‌شوند). تنها زمانی که همراه با '\-R' استفاده شود فعال است. .TP \fB\-P\fR دسترسی به اطلاعات موجود در صفحه حالت Power Condition (وضعیت مصرف انرژی). .TP \fB\-r\fR نمایش تمامی نام‌های دستگاه‌های خام (یا اولیه) SCSI که در دایرکتوری /dev قابل مشاهده هستند. به عنوان مثال: /dev/sda، /dev/st1 و /dev/scd2. نام دستگاه‌های sg را فهرست نمی‌کند، بنابراین دستگاه‌هایی مانند محفظه SCSI که تنها نام دستگاه sg دارند فهرست نمی‌شوند. .TP \fB\-s\fR نمایش اطلاعات موجود در صفحه شماره سریال واحد، که نوعی از دستور INQUIRY است. .TP \fB\-t\fR \fIPN\fR[,\fISPN\fR] نمایش اطلاعات از صفحه حالت شماره \fIPN\fR (و در صورت تمایل زیرصفحه شماره \fISPN\fR) در قالب رمزگشایی‌شده (در صورت شناخته بودن، وگرنه به صورت هگز). \fIPN\fR شماره صفحه حالت به صورت یک عدد ده‌دهی از 0 تا 63 شامل هر دو است. \fISPN\fR شماره زیرصفحه حالت است و در صورت عدم تعیین 0 فرض می‌شود. \fISPN\fR یک عدد ده‌دهی بین 1 تا 255 شامل هر دو است. شماره صفحه 63 تمام صفحات پشتیبانی‌شده توسط دستگاه را به ترتیب صعودی به جز صفحه 0 برمی‌گرداند که در صورت وجود در انتها قرار می‌گیرد. صفحه 0 مختص سازنده است و الزاماً در قالب صفحه حالت نیست. متناوباً می‌توان مقادیر هگزادسیمال را برای هر دو \fIPN\fR و \fISPN\fR (هر دو با پیشوند '0x') مشخص کرد. .TP \fB\-T\fR ردیابی دستورات برای دریافت خروجی پرگویاتر (برای اشکال‌زدایی). هنگامی که یک‌بار استفاده شود، دستورات SCSI (به صورت هگز) نشان داده می‌شوند و هرگونه خطای این دستورات SCSI به طور کامل شرح داده می‌شود (یعنی با بافر حسگر خام و رمزگشایی‌شده). هنگامی که دو بار استفاده شود، داده‌های اضافی ارسالی با mode select و پاسخ دریافتی از mode sense (به صورت هگز) نشان داده می‌شوند. .TP \fB\-u\fR \fIPN\fR[,\fISPN\fR] نمایش اطلاعات از صفحه حالت شماره \fIPN\fR (و در صورت تمایل \fISPN\fR) در قالب هگز. \fIPN\fR شماره صفحه حالت به عنوان یک عدد ده‌دهی از 0 تا 63 شامل هر دو است. \fISPN\fR شماره زیرصفحه حالت است و در صورت داده نشدن 0 فرض می‌شود. \fISPN\fR یک عدد ده‌دهی از 1 تا 255 شامل هر دو است. شماره صفحه 63 تمام صفحات پشتیبانی‌شده توسط دستگاه را به ترتیب صعودی به جز صفحه 0 برمی‌گرداند که در صورت وجود در انتها است. صفحه 0 مختص سازنده است و الزاماً در قالب صفحه حالت نیست. متناوباً می‌توان مقادیر هگزادسیمال را برای هر دو \fIPN\fR و \fISPN\fR (هر دو با پیشوند '0x') مشخص کرد. برای مثال 63 و 0x3f معادل هستند. .TP \fB\-v\fR نمایش رشته نسخه برنامه و سپس خروج. [توجه: این گزینه در بیشتر ابزارهای دیگر این بسته سطح پرگویی را افزایش می‌دهد، همان‌طور که در 'man 8 sg3_utils' ذکر شده است. این کاربرد متفاوت برای سازگاری رو به عقب با ابزار scsiinfo در نظر گرفته شده است.] .TP \fB\-V\fR دسترسی به اطلاعات در صفحه حالت Verify Error Recovery. [توجه: این گزینه در بیشتر ابزارهای دیگر این بسته رشته نسخه را چاپ می‌کند، همان‌طور که در 'man 8 sg3_utils' ذکر شده است. این کاربرد متفاوت برای سازگاری رو به عقب با ابزار scsiinfo در نظر گرفته شده است.] .TP \fB\-z\fR انجام یک‌باره واکشی برای صفحات حالت (با برآورد بیش‌ازحد طول مورد انتظار پاسخ بازگردانده‌شده). رفتار پیش‌فرض انجام واکشی دو مرحله‌ای است؛ مرحله اول برای یافتن طول پاسخی است که می‌تواند بازگردانده شود. دستگاه‌هایی که به طور دقیق از استانداردهای SCSI پیروی می‌کنند نیازی به این گزینه ندارند، اما برخی دستگاه‌های دنیای واقعی به آن نیاز دارند. .SH "گزینه‌های پیشرفته (ADVANCED OPTIONS)" تنها یکی از سه گزینه زیر می‌تواند مشخص شود. هیچ‌یک از این سه گزینه به معنای بازگرداندن مقادیر جاری نیستند. .TP \fB\-m\fR نمایش فیلدهای قابل تغییر به جای مقادیر جاری .TP \fB\-M\fR نمایش مقادیر پیش‌فرض سازنده به جای مقادیر جاری .TP \fB\-S\fR نمایش مقادیر پیش‌فرض ذخیره‌شده به جای مقادیر جاری .PP موارد زیر گزینه‌های پیشرفته هستند و عموماً برای بیشتر کاربران مناسب نیستند: .TP \fB\-X\fR نمایش مقادیر خروجی در یک فهرست. آن‌ها را برای ویرایش و تحویل مجدد به گزینه '\-R' (دستور جایگزینی) مناسب می‌سازد. .TP \fB\-R\fR جایگزینی پارامترها \- بهترین کاربرد همراه با \-X است (فقط برای استفاده افراد متخصص) .SH "تغییر پارامترهای صفحه حالت (CHANGING MODE PAGE PARAMETERS)" ابتدا پیش از تغییر پارامترهای موجود باید بدانید چه کاری انجام می‌دهید. با در نظر گرفتن صفحه کنترل به عنوان مثال، ابتدا آن را به طور معمول فهرست کنید (مانند "sginfo \-C /dev/sda") و تصمیم بگیرید کدام پارامتر قرار است تغییر کند (به موقعیت آن نسبت به سایر سطرهای خروجی دقت کنید). سپس همان دستور sginfo را با افزودن گزینه "\-X" اجرا کنید؛ این کار مقادیر پارامتر را در یک سطر تکی در همان موقعیت‌های نسبی دستور قبلی خروجی می‌دهد. اکنون دستور "sginfo \-CXR /dev/sda ..." را با جایگزینی "..." با سطر تکی مقادیر خروجی از دستور قبلی که پارامتر مربوطه در آن تغییر کرده است اجرا کنید. در اینجا یک مثال ساده‌شده آمده است: .PP .nf $ sginfo \-C /dev/sda Control mode page (0xa) \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- TST 0 D_SENSE 0 GLTSD 1 RLEC 0 .fi .PP [در واقعیت صفحه کنترل دارای پارامترهای بیشتری از آنچه در بالا نشان داده شده است می‌باشد.] سپس آن پارامترها را در قالب یک سطر تکی خروجی بگیرید: .PP .nf $ sginfo \-CX /dev/sda 0 0 1 0 .fi .PP فرض کنیم قرار است بیت GLTSD پاک (صفر) شود. دستوری که آن را پاک خواهد کرد به شرح زیر است: .PP .nf $ sginfo \-CXR /dev/sda 0 0 0 0 .fi .PP همان تعداد پارامترهای خروجی از دستور "\-CX" باید در انتهای خط فرمان "\-CXR" (پس از نام دستگاه) قرار گیرد. اکنون بررسی کنید که آیا تغییر اعمال شده است: .PP .nf $ sginfo \-C /dev/sda Control mode page (0xa) \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- TST 0 D_SENSE 0 GLTSD 0 RLEC 0 .fi .PP هنگامی که یک صفحه حالت «جایگزین» می‌شود، اقدام پیش‌فرض تغییر هر دو صفحه جاری و صفحه ذخیره‌شده است. [به دلایلی، نسخه‌های sginfo و scsiinfo پیش از 2.0 صفحه "saved" را تغییر نمی‌دادند.] برای تغییر تنها صفحه حالت جاری و دست‌نخورده ماندن صفحه ذخیره‌شده متناظر، از گزینه "\-N" استفاده کنید. .SH "تولید فایل‌های اسکریپت و صفحات هگز (GENERATING SCRIPT FILES AND HEX PAGES)" گزینه "\-aX" یا "\-AX" خروجی مناسبی برای یک فایل اسکریپت تولید می‌کند. صفحات حالت در قالب فهرست (پس از INQUIRY و شماره سریال) یک صفحه در هر سطر خروجی داده می‌شوند. برای تسهیل در اجرای خروجی به عنوان (بخشی از) یک فایل اسکریپت جهت تثبیت مقادیر انتخاب‌شده صفحه حالت، هر سطر با پیشوند "sginfo \-t \fIPN\fR[,\fISPN\fR] \-XR " آغاز می‌شود. هنگامی که چنین فایل اسکریپتی اجرا شود، اثر بازگرداندن مقادیر صفحه حالت به مقادیری را خواهد داشت که در زمان تولید خروجی توسط "\-aX" وجود داشته‌اند. .PP تمامی صفحات حالت (و زیرصفحات) پشتیبانی‌شده توسط دستگاه از طریق گزینه‌های \-t و \-u قابل دسترسی هستند. برای مشاهده تمامی صفحات حالت پشتیبانی‌شده توسط دستگاه از "\-u 63" استفاده کنید. [برای مشاهده تمام صفحات حالت و تمام زیرصفحات از "\-u 63,255" استفاده کنید.] برای فهرست کردن صفحه حالت کنترل به صورت هگز (شاخص صفحه حالت در ستون اول و مقدار بایت متناظر در ستون دوم) از "\-u 0xa" استفاده کنید. صفحات حالت (کد زیرصفحه == 0) از موقعیت شاخص ۲ شروع می‌شوند در حالی که زیرصفحات از موقعیت شاخص ۴ آغاز می‌گردند. اگر گزینه "... Xu\-" استفاده شود، فهرستی از مقادیر هگز که هر مقدار با پیشوند "@" مشخص شده است خروجی داده می‌شود. سپس مقادیر (زیر)صفحه حالت را می‌توان با گزینه "... RXu\-" تغییر داد. .SH "محدودیت‌ها (RESTRICTIONS)" دستور SCSI MODE SENSE توصیف‌گرهای بلوک را به همراه صفحه(های) حالت تولید می‌کند. این ابزار توصیف‌گرهای بلوک را نادیده گرفته و آن‌ها را نمایش نمی‌دهد. سوییچ "disable block descriptor" (یا DBD) در دستور MODE SENSE تنظیم نشده است زیرا برخی دستگاه‌ها در صورت تنظیم آن خطا بازمی‌گردانند. هنگامی که مقادیر صفحه حالت در حال تغییر هستند (گزینه "\-R")، همان توصیف‌گر بلوک به دست آمده از خواندن صفحه حالت (یعنی از طریق یک دستور MODE SENSE) در هنگام نوشتن صفحه حالت (یعنی از طریق یک دستور MODE SELECT) بازگردانده می‌شود. .SH "مراجع (REFERENCES)" پیش‌نویس استانداردهای SCSI را می‌توان در https://www.t10.org یافت. اسناد مربوطه عبارتند از SPC\-4 (صفحات حالت مشترک برای تمامی انواع دستگاه‌ها)، SBC\-2 (دستگاه‌های دسترسی مستقیم [مانند دیسک‌ها])، MMC\-4 (دیسک‌های CD و DVD) و SSC\-2 (نوارها). .SH "نویسندگان (AUTHORS)" نوشته شده توسط Eric Youngdale، Michael Weller، Douglas Gilbert، Kurt Garloff، Thomas Steudten .SH "تاریخچه (HISTORY)" نسخه 1.0 برنامه scsiinfo در ۱ نوامبر ۱۹۹۳ توسط Eric Youngdale منتشر شد. تازه‌ترین نسخه scsiinfo نسخه 1.7 با آخرین پچ‌های Michael Weller است. ابزار sginfo از scsiinfo مشتق شده و از رابط sg برای دور زدن محدودیت بافر ۴ کیلوبایتی در scsiinfo استفاده می‌کند که به‌ویژه نمایش فهرست‌های نقص را محدود می‌کرد. sginfo توسط Douglas Gilbert با پچ‌هایی از Kurt Garloff نوشته شد. این صفحه راهنما با نسخه 2.25 از sginfo مطابقت دارد. .PP این نرم‌افزار تحت مجوز GPL نسخه ۲ توزیع می‌شود. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" .B lsscsi(lsscsi), scsiinfo(internet); sg_modes, sg_inq, sg_vpd (sg3_utils), .B sdparm(sdparm)