| SG_GET_LBA_STATUS(8) | SG3_UTILS | SG_GET_LBA_STATUS(8) |
نام (NAME)
sg_get_lba_status - ارسال دستور SCSI GET LBA STATUS(16 یا 32)
خلاصه دستور (SYNOPSIS)
sg_get_lba_status [--16] [--32] [--blockhex] [--brief] [--element-id=EI] [--help] [--hex] [--inhex=FN] [--json[=JO]] [--js-file=JFN] [--lba=LBA] [--maxlen=LEN] [--raw] [--readonly] [--report-type=RT] [--scan-len=SL] [--verbose] [--version] DEVICE
توضیحات (DESCRIPTION)
دستور SCSI GET LBA STATUS(16) یا GET LBA STATUS(32) را به DEVICE ارسال کرده و پاسخ را در خروجی نمایش میدهد. گونهٔ ۱۶ بایتی این دستور در پیشنویس (draft) استاندارد SBC-3 بازنگری ۲۰ معرفی شد و دستگاههایی که از تخصیص بلوک منطقی (logical block provisioning) پشتیبانی میکنند، باید از این دستور نیز پشتیبانی نمایند. دستور GET LBA STATUS(32) در پیشنویس SBC-4 بازنگری ۱۴ اضافه شد.
عملکرد پیشفرض این است که پاسخ را به یک توصیفگر وضعیت LBA در هر خط رمزگشایی کرده و سپس یک سرآیند و توصیفگرهای وضعیت را در خروجی استاندارد (stdout) نمایش دهد. آدرس LBA توصیفگر در مبنای شانزده (با پیشوند '0x') چاپ میشود و تعداد بلوکها در مبنای دهدهی چاپ شده و به دنبال آن وضعیت تخصیص، قابلیت دسترسی به LBA و وضعیتهای اضافی در مبنای دهدهی میآیند. وضعیت تخصیص میتواند در بازهٔ ۰ تا ۱۵ باشد که در حال حاضر تنها مقادیر 0 (نگاشتشده یا نامشخص)، 1 (نگاشتنشده)، 2 (مهارشده / anchored)، 3 (نگاشتشده) و 4 (نامشخص) استفاده میشوند. حجم خروجی را میتوان با استفاده از گزینهٔ --brief کاهش داد.
اگر به جای ارسال این دستور SCSI به DEVICE ، گزینهٔ --inhex=FN داده شود، محتوای پروندهٔ مشخصشده با FN به عنوان بایتهای هگزادسیمال اسکی (ASCII hex) رمزگشایی شده و به گونهای پردازش میشود که گویی پاسخ این دستور بوده است.
گزینهها (OPTIONS)
آرگومانهای گزینههای بلند برای گزینههای کوتاه نیز اجباری هستند.
- -S, --16
- ارسال دستور SCSI GET LBA STATUS(16) که گونهٔ ۱۶ بایتی است. در صورت نبود گزینههای --16 یا --32 ، دستور SCSI GET LBA STATUS(16) ارسال میشود. اگر هر دو گزینهٔ --16 و --32 داده شوند، دستور GET LBA STATUS(16) ارسال خواهد شد.
- -T, --32
- ارسال دستور SCSI GET LBA STATUS(32) که گونهٔ ۳۲ بایتی است. هنگامی که همراه با گزینهٔ --16 داده شود، این گزینه نادیده گرفته میشود (بنابراین دستور GET LBA STATUS(16) ارسال میگردد).
- -b, --brief
- هنگامی که یک بار استفاده شود، در هر خط یک توصیفگر وضعیت LBA در خروجی استاندارد چاپ میشود. هر خط دارای این قالب است: "0x<descriptor_LBA> 0x<blocks> <provisioning_status> <additional_status>". بنابراین LBA شروع توصیفگر و تعداد بلوکها در مبنای شانزده چاپ میشوند در حالی که وضعیت تخصیص و وضعیت اضافی در مبنای دهدهی هستند. هنگامی که دو بار استفاده شود (مانند '-bb' یا '--brief --brief')، وضعیت تخصیص LBA دادهشده (یا LBA 0 در صورتی که گزینهٔ --lba داده نشده باشد) در خروجی استاندارد نمایش داده میشود. بررسی میشود که LBA دادهشده در محدودهٔ نخستین توصیفگر وضعیت LBA بازگرداندهشده قرار داشته باشد (همانطور که طبق SBC-3 بازنگری ۲۰ باید باشد) و در صورت عدم تطابق، هشدارهایی به stderr ارسال میشود.
- -B, --blockhex
- تعداد بلوکها در هر توصیفگر وضعیت LBA معمولاً در مبنای دهدهی نمایش داده میشود. یک استثنا زمانی است که گزینهٔ --brief مشخص شده باشد که در آن صورت در مبنای شانزده نشان داده میشود. هنگامی که این گزینه یک بار مشخص شود، هر دو حالت در مبنای شانزده چاپ میشوند. هنگامی که این گزینه دو بار مشخص شود، هر دو حالت در مبنای دهدهی چاپ میشوند.
- -e, --element-id=EI
- که در آن EI
شناسهٔ
عنصر
فیزیکی است
که LBAهای
مربوط به آن
بر اساس
مقدار فیلد
نوع گزارش
(یعنی RT)
گزارش
خواهند شد.
این گزینه
تنها با
دستور SCSI GET LBA STATUS(32)
فعال است
(یعنی در
صورت ارسال
دستور GET LBA STATUS(16)
نادیده
گرفته
میشود که
معادل صفر
قرار دادن
آن است).
شناسههای عنصر معتبر از ۱ شروع شده و به ترتیب اعداد صحیح افزایش مییابند. مقدار پیشفرض 0 برای EI بدان معناست که همهٔ شناسههای عنصر بر اساس مقدار فیلد نوع گزارش بررسی میشوند. - -h, --help
- نمایش پیام راهنمای نحوهٔ استفاده و خروج.
- -H, --hex
- پاسخ این دستور را به صورت هگزادسیمال اسکی (ASCII hex) نمایش میدهد. برای تولید خروجی هگزادسیمال مناسب جهت واکشی در فراخوانیهای بعدی با گزینهٔ --inhex=FN ، این گزینه را سه بار استفاده کنید. شکل کوتاه این گزینه استفاده از آن را راحتتر میکند: '-HHH'.
- -i, --inhex=FN
- که در آن FN نام پروندهای است که فرض میشود محتوای آن بایتهای هگزادسیمال اسکی است. برای اطلاعات بیشتر بخش "HEX, BINARY AND JSON FORMATS" را در صفحه راهنمای sg3_utils ببینید. اگر DEVICE نیز مشخص شده باشد، نادیده گرفته میشود. اگر گزینهٔ --raw نیز داده شده باشد، محتوای FN به عنوان باینری در نظر گرفته میشود.
- -j[=JO], --json[=JO]
- خروجی به
جای قالب
متنی ساده،
در قالب JSON
ارائه
میشود.
توجه داشته
باشید که
آرگومانهای
شکل کوتاه و
بلند خود
اختیاری
هستند و در
صورت وجود
با "=" شروع
میشوند و
هیچ
فاصلهای
در اطراف "="
مجاز نیست.
صفحه راهنمای sg3_utils_json را ببینید یا از '?' برای JO جهت دریافت یک خلاصه استفاده کنید. - -J, --js-file=JFN
- خروجی در
قالب JSON بوده
و به
پروندهای
با نام JFN
ارسال
میشود. اگر
این پرونده
وجود داشته
باشد،
کوتاه (truncate)
خواهد شد.
به صورت
پیشفرض،
خروجی JSON به
خروجی
استاندارد
ارسال
میشود.
هنگامی که این گزینه مشخص شود، گزینهٔ --json[=JO] به صورت ضمنی فعال شده و نیازی به ذکر آن نیست. با این حال ممکن است همچنان به گزینهٔ --json[=JO] برای تنظیم پارامتر JO به مقادیر غیرپیشفرض نیاز باشد. - -l, --lba=LBA
- که در آن LBA آدرس بلوک منطقی (LBA) شروع برای بررسی وضعیت تخصیص است. توجه داشته باشید که DEVICE انتخاب میکند وضعیت تخصیص چند بلوک متوالی پس از آن را بازگرداند، که این تعداد با --maxlen=LEN محدود میشود.
- -m, --maxlen=LEN
- که در آن LEN (حداکثر) طول پاسخ بر حسب بایت است. این مقدار در فیلد "allocation length" در cdb قرار میگیرد. اگر مشخص نشود، از مقدار 24 استفاده میشود. مقدار 24 فضای کافی برای سرآیند پاسخ و یک توصیفگر وضعیت LBA است. LEN باید 8 به علاوه مضربی از 16 باشد (برای نمونه 24، 40 و 56 مناسب هستند).
- -r, --raw
- پاسخ را به صورت باینری (به خروجی استاندارد) ارسال میکند، مگر اینکه گزینهٔ --inhex=FN نیز مشخص شده باشد. در این حالت نام پرونده ورودی (FN) به عنوان باینری رمزگشایی میشود (و خروجی به صورت باینری نخواهد بود).
- -R, --readonly
- دستگاه DEVICE را به صورت فقطخواندنی باز میکند (مثلاً در یونیکس با پرچم O_RDONLY). حالت پیشفرض باز کردن آن به صورت خواندن-نوشتن است.
- -t, --report-type=RT
- که در آن RT
برای گزارش
تمام LBAها
برابر 0؛
برای گزارش
LBAهای دارای
وضعیت
تخصیص
غیرصفر
برابر 1؛
برای گزارش
LBAهای
نگاشتشده
برابر 2؛
برای گزارش
LBAهای
واگذارشده
(de-allocated) برابر 3؛
برای گزارش
LBAهای
مهارشده (anchored)
برابر 4؛ و
برای گزارش
LBAهایی که
ممکن است یک
خطای
غیرقابلبازیابی
بازگردانند
برابر 16 است.
فیلد REPORT TYPE در sbc4r12
به cdb دستور GET LBA
STATUS اضافه شد.
از آنجا که فیلد REPORT TYPE جدیدتر از این دستور است، پاسخ حاوی بیت RTP است تا نشان دهد آیا DEVICE بر اساس فیلد REPORT TYPE عمل میکند یا خیر (در صورتی که بر اساس آن عمل کند فعال میشود، و در غیر این صورت غیرفعال است). - -s, --scan-len=SL
- که در آن SL
طول اسکن
است که
حداکثر
تعداد
بلوکهای
منطقی
متوالی را
مشخص
میکند که
باید برای
یافتن
بلوکهای
منطقی
منطبق با
نوع گزارش
دادهشده
(یعنی RT)
اسکن شوند.
این گزینه
تنها با
دستور SCSI GET LBA STATUS(32)
فعال است
(یعنی در
صورت ارسال
دستور GET LBA STATUS(16)
نادیده
گرفته
میشود).
مقدار پیشفرض SL برابر 0 است که باید توسط DEVICE به عنوان عدم وجود محدودیت در تعداد LBAهایی که باید اسکن شوند تفسیر گردد. - -v, --verbose
- افزایش سطح پرگویی (یعنی خروجی اشکالزدایی). خروجیهای اضافی ناشی از این گزینه به stderr ارسال میشوند.
- -V, --version
- نمایش نگارش برنامه و خروج.
نکات (NOTES)
یک بازهٔ LBA (یا LBA extent) مجموعهای از بلوکهای منطقی متوالی است که آدرس آن برابر با آدرس پایینترین بلوک منطقی (LB) است.
در بازنگری ۲۵ استاندارد SBC-3 محاسبات مربوط به فیلد Parameter Data Length در پاسخ اصلاح شد. پیش از آن آفست بایتی ۸ بود و در بازنگری ۲۵ به ۴ تغییر یافت.
برای بررسی مباحث مربوط به تخصیص بلوک منطقی، بخش 4.7 از سند sbc4r14.pdf در https://www.t10.org (یا بخش متناظر در پیشنویسهای بعدی) را ببینید.
مثالها (EXAMPLES)
این مثال به جای یک DEVICE واقعی، از یک پروندهٔ هگزادسیمال از پیش آمادهشده ("canned") استفاده میکند.
# cd <folder at root of sg3_utils source package> # sg_get_lba_status --inhex=inhex/get_lba_status.hex
Command completed due to meeting capacity of medium RTP=0x0 [1] LBA: 0x0 blocks: 287453952 mapped (or unknown); LBA accessibility not reported [2] LBA: 0x11223300 blocks: 68 deallocated; LBA access not reported [may contain unrecovered errors] [3] LBA: 0x11223344 blocks: 51 deallocated; LBA extent inaccessible [may contain unrecovered errors]
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_get_lba_status در صورت موفقیت 0 است. در غیر این صورت صفحه راهنمای sg3_utils(8) را ببینید.
نویسندگان (AUTHORS)
نوشتهشده توسط Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش باگها به <dgilbert at interlog dot com>.
حق نشر (COPYRIGHT)
حق نشر © 2009-2026
Douglas Gilbert
این
نرمافزار
تحت مجوز BSD-2-Clause
توزیع شده
است.
هیچگونه
ضمانتی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
مناسب بودن
برای یک هدف
خاص.
همچنین ببینید (SEE ALSO)
sg_write_same,sg_unmap,sg3_utils,sg3_utils_json(sg3_utils)
| 2026-06-01 | sg3_utils-1.49 |