SG_GET_ELEM_STATUS(8) SG3_UTILS SG_GET_ELEM_STATUS(8)

sg_get_elem_status - ارسال دستور SCSI GET PHYSICAL ELEMENT STATUS

sg_get_elem_status [--brief] [--filter=FLT] [--help] [--hex] [--inhex=FN] [--json[=JO]] [--js-file=JFN] [--maxlen=LEN] [--raw] [--readonly] [--report-type=RT] [--starting=ELEM] [--verbose] [--version] DEVICE

دستور SCSI GET PHYSICAL ELEMENT STATUS را به DEVICE ارسال کرده و پاسخ را در خروجی نمایش می‌دهد. این دستور در ویرایش ۱۶ پیش‌نویس استاندارد SBC-4 معرفی شد.

پیش‌نویس‌های T10 اکنون هم از عنصرهای «فیزیکی» (physical) و هم «ذخیره‌سازی» (storage) صحبت می‌کنند. اصطلاح دوم خاص‌تر است (یعنی عنصرهای ذخیره‌سازی زیرمجموعه‌ای از عنصرهای فیزیکی هستند) و به منابع دیسکی که ذخیره‌سازی داده‌های کاربر را کنترل می‌کنند اشاره دارد. نمونه‌ای از یک عنصر ذخیره‌سازی، داده‌های کاربری مرتبط با یک هد در یک دیسک سخت چرخان است. هنگامی که یک عنصر ذخیره‌سازی «تخلیه» (depopulated) می‌شود، فضای ذخیره‌سازی پیشین آن که از طریق LBAها در دسترس بود دیگر در دسترس نیست. عنصرهای فیزیکی عام‌تر هستند و شامل عنصرهای ذخیره‌سازی شده و ممکن است علاوه بر موارد دیگر، منابع دیسک مورد استفاده برای تنظیمات «ذخیره‌شده» در صفحه حالت (mode page) را نیز در بر گیرند.

عملکرد پیش‌فرض این ابزار، رمزگشایی پاسخ به یک هدر و حداکثر ۳۲ توصیف‌گر وضعیت عنصر فیزیکی است. توصیف‌گرهای وضعیت در هر خط یکی چاپ می‌شوند. مقدار خروجی را می‌توان با گزینه --brief کاهش داد.

به‌جای ارسال این دستور SCSI به DEVICE، اگر گزینه --inhex=FN داده شود، محتویات پرونده‌ای با نام FN به‌صورت هگزادسیمال اسکی (یا در صورت تعیین --raw به‌صورت باینری) رمزگشایی شده و سپس طوری پردازش می‌شود که گویی پاسخ دستور GET PHYSICAL ELEMENT STATUS بوده است.

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

هنگامی که یک بار استفاده شود، خروجی هر توصیف‌گر وضعیت عنصر فیزیکی در مقایسه با حالتی که این گزینه داده نشده خلاصه می‌شود. همچنین عبارت "associated capacity: not specified;" به دلیل اینکه اطلاعات چندانی منتقل نمی‌کند حذف می‌گردد.
هنگامی که دو بار استفاده شود، خروجی هر توصیف‌گر وضعیت عنصر فیزیکی به این شکل خلاصه می‌شود: <element_id>: <element_type>,<element_health> . هر سه مقدار به‌صورت اعداد صحیح در مبنای ۱۰ نمایش داده می‌شوند. در صورت استفاده دو بار، خط معرفی‌کننده توصیف‌گرهای وضعیت یعنی "Element descriptors:" چاپ نمی‌شود. در صورت استفاده سه بار یا بیشتر، تنها هدر پاسخ در خروجی نمایش داده می‌شود.
که در آن FLT در یک فیلد دو بیتی به نام FILTER در دستور GET PHYSICAL ELEMENT STATUS قرار می‌گیرد. تنها دو مقدار برای این فیلد تعریف شده است: ۰ برای تمام توصیف‌گرهای عنصر؛ ۱ برای توصیف‌گرهایی که خارج از «مشخصات» (spec) هستند یا اطلاعات تخلیه (depopulation) برای گزارش دارند. در هر دو حالت، فیلدهای REPORT TYPE و STARTING ELEMENT ممکن است تعداد توصیف‌گرهای بازگردانده شده را بیشتر محدود (کمتر) کنند. مقدار پیش‌فرض صفر است.
نمایش پیام راهنمای نحوه استفاده و سپس خروج.
نمایش پاسخ به این دستور به‌صورت هگزادسیمال اسکی. در ابتدای هر خطِ ۱۶ بایتی یک آدرس یا نمایه که از ۰ شروع می‌شود قرار می‌گیرد و آدرس نیز در مبنای ۱۶ است. اگر دو بار داده شود، نمایش اسکی هر بایت به انتهای خط خروجی اضافه می‌شود. اگر سه بار یا بیشتر داده شود، تنها هگزادسیمال اسکی هر بایت، به‌صورت ۱۶ بایت در هر خط نمایش داده می‌شود (یعنی بدون آدرس در ابتدا و بدون نمایش کاراکتری اسکی در انتها). این شکل اخیر برای ذخیره در یک پرونده و استفاده با گزینه --inhex=FN در اجراهای بعدی مناسب است.
که در آن FN نام پرونده‌ای است که فرض می‌شود محتوای آن هگزادسیمال اسکی است. اگر DEVICE نیز داده شود، DEVICE نادیده گرفته شده، یک هشدار صادر می‌شود و ابزار با رمزگشایی پرونده FN به کار خود ادامه می‌دهد. برای اطلاعات بیشتر بخش "HEX, BINARY AND JSON FORMATS" در صفحه راهنمای sg3_utils را ببینید. اگر گزینه --raw نیز داده شده باشد، محتویات FN به‌صورت باینری در نظر گرفته می‌شود.
خروجی به‌جای متن ساده در قالب JSON ارائه می‌شود. توجه داشته باشید که آرگومان‌های شکل‌های کوتاه و بلند خود اختیاری بوده و در صورت وجود با "=" شروع می‌شوند و هیچ فاصله‌ای در اطراف آن "=" مجاز نیست.
برای اطلاعات بیشتر صفحه راهنمای sg3_utils_json را ببینید یا برای دریافت خلاصه، برای JO مقدار '?' قرار دهید.
خروجی در قالب JSON بوده و به پرونده‌ای با نام JFN ارسال می‌شود. اگر آن پرونده وجود داشته باشد بازنویسی (کوتاه) می‌شود. به‌طور پیش‌فرض، خروجی JSON به خروجی استاندارد (stdout) فرستاده می‌شود.
هنگامی که این گزینه داده شود، گزینه --json[=JO] به‌طور ضمنی در نظر گرفته می‌شود و نیازی به ذکر آن نیست. ممکن است همچنان برای تنظیم پارامتر JO به مقادیر غیرپیش‌فرض، به گزینه --json[=JO] نیاز باشد.
که در آن LEN طول (حداکثر) پاسخ بر حسب بایت است. این مقدار در فیلد "allocation length" در cdb قرار می‌گیرد. در صورت مشخص نشدن، از ۱۰۵۶ استفاده می‌شود. مقدار ۱۰۵۶ فضای کافی برای هدر پاسخ به همراه ۳۲ توصیف‌گر وضعیت عنصر فیزیکی است. LEN باید مضربی از ۳۲ باشد (برای نمونه ۳۲، ۶۴ و ۹۶ مناسب هستند).
خروجی پاسخ را به‌صورت باینری (در stdout) ارسال می‌کند، مگر اینکه گزینه --inhex=FN نیز داده شده باشد. در این حالت، نام پرونده ورودی (FN) به‌صورت باینری رمزگشایی می‌شود (و خروجی به‌صورت باینری نخواهد بود).
دستگاه DEVICE را فقط‌خواندنی باز می‌کند (مثلاً در یونیکس با پرچم O_RDONLY). حالت پیش‌فرض، باز کردن آن به‌صورت خواندنی-نوشتنی است.
که در آن RT در فیلد REPORT TYPE دستور GET PHYSICAL ELEMENT STATUS قرار می‌گیرد. در حال حاضر تنها دو مقدار تعریف شده است: ۰ برای «عنصر فیزیکی» (physical element) و ۱ برای «عنصر ذخیره‌سازی» (storage element). مقدار پیش‌فرض ۰ است.
که در آن ELEM در فیلد STARTING ELEMENT دستور GET PHYSICAL ELEMENT STATUS قرار می‌گیرد. تنها عنصرهای فیزیکی با شناسه‌های بزرگ‌تر یا مساوی با ELEM بازگردانده می‌شوند. مقدار پیش‌فرض صفر است که اگرچه یک شناسه عنصر معتبر نیست (چون باید غیرصفر باشند)، در یک مثال در پیوست L از SBC-4 ویرایش ۱۷ آورده شده است. بنابراین مقدار صفر برای ELEM در این زمینه معتبر در نظر گرفته می‌شود.
افزایش سطح پرگویی (یعنی خروجی اشکال‌زدایی). خروجی‌های اضافی ناشی از این گزینه به خطای استاندارد (stderr) فرستاده می‌شوند.
چاپ نگارش برنامه و سپس خروج.

کد حس اضافی "Warning - physical element status change" مقدار [0xb, 0x14] خاص است و باید کلاینت برنامه را وادار به فراخوانی دستور GET PHYSICAL ELEMENT STATUS کند. نحوه فعال شدن این هشدار به تنظیمات موجود در صفحه حالت Informational Exceptions Control [0xc, 0x0] بستگی دارد.

پس از شناسایی یک یا چند عنصر ذخیره‌سازی خارج از مشخصات (out-of-spec)، دیسک مورد نظر باید از رده خارج شود یا دستور REMOVE ELEMENT AND TRUNCATE (یا ... AND MODIFY ZONES) برای تعمیر (و کاهش ظرفیت ذخیره‌سازی) دیسک روی آن فراخوانی شود.

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

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

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

حق نشر © 2019-2022 Douglas Gilbert
این نرم‌افزار تحت مجوز BSD-2-Clause توزیع می‌شود. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

sg_get_lba_status,sg3_utils,sg3_utils_json(sg3_utils)

June 2023 sg3_utils-1.48