| SDPARM(8) | SDPARM | SDPARM(8) |
نام (NAME)
sdparm - دسترسی و دستکاری پارامترهای دستگاههای SCSI و ATA
خلاصه دستور (SYNOPSIS)
sdparm [--all] [--dbd] [--examine] [--flexible] [--get=STR] [--hex] [--long] [--num-desc] [--out-mask=OM] [--page=PG[,SPG]] [--quiet] [--readonly] [--six] [--transport=TN] [--vendor=VN] [--verbose] DEVICE [DEVICE...]
sdparm [--clear=STR] [--defaults] [--dummy] [--flexible] [--page=PG[,SPG]] [--quiet] [--readonly] [--save] [--set=STR] [--six] [--transport=TN] [--vendor=VN] [--verbose] DEVICE [DEVICE...]
sdparm --command=CMD [--hex] [--long] [--readonly] [--verbose] DEVICE [DEVICE...]
sdparm --inquiry [--all] [--examine] [--flexible] [--hex] [--num-desc] [--page=PG[,SPG]] [--quiet] [--readonly] [--transport=TN] [--verbose] DEVICE [DEVICE...]
sdparm --enumerate [--all] [--inquiry] [--long] [--page=PG[,SPG]] [--transport=TN] [--vendor=VN]
sdparm --inhex=FN [--all] [--flexible] [--hex] [--inquiry] [--long] [--pdt=DT] [--raw] [--six] [--transport=TN] [--vendor=VN] [--verbose]
sdparm --wscan [--verbose]
sdparm [--help] [--version]
توضیحات (DESCRIPTION)
این ابزار صفحات وضعیت (mode pages) دستگاههای SCSI (مانند دیسک) را دریافت کرده و در صورت امکان تغییر میدهد. دادههای پرسوجو (Inquiry) از جمله صفحات دادههای حیاتی محصول (VPD) نیز میتوانند نمایش داده شوند. دستورهای مربوط به راهاندازی و متوقف کردن رسانه ذخیرهسازی، بارگذاری و تخلیه رسانه، و سایر عملکردهای نگهداری سیستم نیز میتوانند توسط این ابزار صادر شوند.
اولین شیوه فراخوانی که در خلاصه دستور نشان داده شده، برای دسترسی (یعنی خواندن) فیلدهای صفحات وضعیت نگهداریشده در DEVICE است. حالت دوم برای تغییر فیلدهای صفحات وضعیت در DEVICE به کار میرود. حالت سوم برای اجرای برخی از دستورهای ساده SCSI است. حالت چهارم (یعنی حالت «--inquiry ... DEVICE») برای واکشی و رمزگشایی صفحات VPD از DEVICE دادهشده است. حالت --enumerate برای فهرست کردن دادههای فیلدهای وضعیت یا VPD نگهداریشده توسط این ابزار است (و در صورت ارائه DEVICE نادیده گرفته میشود). حالت --inhex=FN دادههای پاسخ وضعیت یا VPD ارائهشده در فایل نامبرده (یا در صورت ارائه FN=- از ورودی استاندارد stdin) را رمزگشایی میکند؛ این دادهها میتوانند به صورت هگزادسیمال یا باینری باشند. یکی مانده به آخرین حالت فقط برای ویندوز بوده و نامهای دستگاههای ذخیرهسازی موجود را فهرست میکند؛ مدخل --wscan را در بخش گزینهها ببینید. حالت پایانی برای ارائه راهنمای خط فرمان یا شماره نسخه (و تاریخ انتشار) این ابزار است.
اگر هیچ گزینهای (به جز DEVICE) داده نشود، مجموعهای از فیلدهای رایج صفحات وضعیت برای آن دستگاه فهرست میشوند. اگر گزینه --long نیز داده شود، توضیحی درباره هر فیلد در سمت راست هر سطر قرار میگیرد. اگر گزینه --all داده شود، تمام فیلدهای شناختهشده صفحات وضعیت برای آن دستگاه فهرست میشوند. فیلدهای منفرد را میتوان با گزینه --get=STR نمایش داد (برای نمونه «--get=WCE» برای واکشی وضعیت فیلد Writeback Cache Enable).
این ابزار در صورت موفقیت با کد خروج 0 به پایان میرسد. برای سایر مقادیر به بخش کدهای خروج در زیر مراجعه کنید.
میتوان یک یا چند آرگومان DEVICE را مشخص کرد. این ابزار اساساً گزینههای ارائهشده را برای هر DEVICE در فهرست اعمال میکند. در صورت تشخیص خطا، ثبت شده و اجرای ابزار ادامه مییابد. مقدار خطای 5 (مشکل در باز کردن یا بستن فایل) در صورت بروز سایر خطاها به عنوان خطای با اولویت کمتر در نظر گرفته میشود. وضعیت خروج نشاندهنده آخرین مقدار خطای شناساییشده است (به استثنای خطای 5 در صورتی که خطاهای دیگری تشخیص داده شده باشند). اگر تمام عملیاتها موفقیتآمیز باشند، کد خروج صفر خواهد بود.
بهطور پیشفرض این ابزار صفحات وضعیتی را نمایش میدهد که بین تمامی پروتکلهای انتقال مشترک هستند. به این صفحات اصطلاحاً صفحات وضعیت «عمومی» (generic) گفته میشود. اگر نام یا فیلد یک صفحه وضعیت عمومی منطبق نشود، صفحات مخصوص پروتکل انتقال SAS بررسی میشوند. صفحات وضعیت وابسته به پروتکل انتقال با استفاده از گزینه --transport=TN انتخاب میشوند؛ بخش پروتکلهای انتقال را در زیر ببینید. صفحات وضعیت مخصوص تولیدکنندگان خاص با گزینه --vendor=VN انتخاب میشوند؛ بخش تولیدکنندگان را در زیر ببینید.
اگرچه این ابزار در اصل برای دیسکهای SCSI (یا دستگاههای ذخیرهسازی که برای سیستمعامل به صورت دیسک SCSI به نظر میرسند) طراحی شده، اما بسیاری از صفحات وضعیت برای انواع دیگر دستگاههای SCSI هستند. این موارد شامل پخشکنندههای CD/DVD که از پروتکل ATAPI (یا هر نوع پروتکل دیگر) استفاده میکنند، درایوهای نوار مغناطیسی SCSI و محفظههای SCSI (SCSI enclosures) میشوند.
هنگامی که گزینه --inquiry بدون شماره صفحه داده شود، صفحه شناسایی دستگاه در VPD (شماره صفحه 0x83) درخواست میشود و در صورت یافت شدن، رمزگشایی و چاپ میگردد. اگر شماره صفحهای داده نشود و گزینه --all مشخص گردد، فهرستی از نامهای صفحات VPD پشتیبانیشده توسط DEVICE (اما بدون محتوای آنها) در خروجی نمایش داده میشود. هنگامی که هر دو گزینه --inquiry و --page=PG داده شوند، صفحه VPD میتواند با یک نام اختصاری (مانند «sp» برای صفحه پورتهای SCSI) یا به صورت عددی (مانند «0x88») مشخص شود. اگر صفحه VPD توسط DEVICE بازگردانده شود اما sdparm نتواند آن را رمزگشایی کند یا گزینه --hex داده شده باشد، به صورت هگزادسیمال در خروجی چاپ میشود.
گزینهها (OPTIONS)
آرگومانهای اجباری برای گزینههای طولانی، برای گزینههای کوتاه نیز اجباری هستند. اگر گزینهای یک آرگومان عددی بپذیرد، آن آرگومان دهدهی (decimal) فرض میشود مگر آنکه خلاف آن مشخص شده باشد (مثلاً با پیشوند «0x» یا پسوند «h»). گزینهها بر اساس نام گزینه طولانی به ترتیب الفبایی مرتب شدهاند.
- -a, --all
- تمام
فیلدهای
شناساییشده
برای نوع
دستگاه
(مانند
دیسک) مربوط
به DEVICE را در
خروجی
نمایش
میدهد.
بدون این
گزینه (یا
گزینه --page=PG[,SPG])
عمل
پیشفرض
چاپ تعداد
نسبتاً
اندکی از
فیلدهای
پرکاربرد
از صفحات
مختلف است.
هنگامی که
شماره صفحه
وضعیت
مشخصی با
گزینه --page=PG[,SPG]
داده شود،
تمام
فیلدهای آن
صفحه
(صرفنظر از
تنظیم این
گزینه)
خروجی داده
میشوند.
برای
عملکرد این
گزینه در
زمان
استفاده
همراه با
گزینه --enumerate،
بخش شمارش
را در زیر
ببینید.
هنگامی که همراه با گزینه --inquiry و یک DEVICE استفاده شود، صفحه صفحات VPD پشتیبانیشده [0x0] در خروجی چاپ میشود. هنگامی که این گزینه دو بار استفاده شود (شکل کوتاه: «-iaa»)، تمام صفحات VPD (فهرستشده در صفحه صفحات VPD پشتیبانیشده) خروجی داده میشوند.
به طور پیشفرض --inhex=FN فقط اولین صفحه وضعیت یافتشده در FN را رمزگشایی میکند. با این گزینه، در صورت وجود، صفحات وضعیت بیشتری رمزگشایی خواهند شد. هنگامی که --transport=TN یا --vendor=VN نیز مشخص شده باشد، اگر صفحه وضعیت دادهشده برای آن پروتکل یا تولیدکننده تعریف نشده باشد، به عنوان یک صفحه وضعیت عمومی رمزگشایی میشود. - -c, --clear=STR
- در سادهترین حالت STR شامل نام اختصاری فیلد (acronym_name) یا یک توصیفگر عددی فیلد است. در صورت نبود آرگومان مقدار مشخص (مانند «--clear=WCE=1»)، مقدار فیلد صفر میشود. بخش پارامترها را در ادامه ببینید.
- -C, --command=CMD
- دستور CMD دادهشده را اجرا میکند. بخش دستورها را در زیر ببینید. برای برشمردن دستورهای پشتیبانیشده از «-e -C x» استفاده کنید (با هر نام دستور فرضی CMD، چه معتبر و چه نامعتبر).
- -B, --dbd
- توصیفگرهای بلوک را غیرفعال میکند (disable block descriptors). این بیتی در بلوکهای توصیف دستور (cdb) برای MODE SENSE است که بهندرت نیاز به تنظیم آن است. یک مورد شناختهشده ارسال MODE SENSE 6 به یک دستگاه فرمانهای بلوکی کاهشیافته (RBC) است که استاندارد RBC تعیین کرده این بیت باید تنظیم باشد.
- -D, --defaults
- صفحه وضعیت
مشخصشده
را به
مقادیر
پیشفرض آن
بازمیگرداند.
نیازمند
ارائه
گزینه --page=PG[,SPG]
برای مشخص
کردن صفحه
وضعیت است.
برای آنکه
مقادیر
پیشفرض
صفحه وضعیت
به عنوان
مقادیر
ذخیرهشده
(saved) نیز ثبت
شوند،
گزینه --save را
نیز همراه
آن به کار
ببرید.
هنگامی که این گزینه دو بار استفاده شود، مقادیر جاری در تمام صفحات وضعیت به پیشفرضهایشان بازگردانده میشوند. اگر گزینه --save نیز ارائه شود، مقادیر جاری و ذخیرهشده در تمامی صفحات وضعیت به پیشفرضهایشان بازمیگردند. این قابلیت از بیت RTD در دستور MODE SELECT استفاده میکند که در پیشنویس بازنگری 11 از استاندارد SPC-5 اضافه شده است. - -d, --dummy
- هنگامی که فعال باشد، از اعمال تغییرات در صفحه وضعیت DEVICE جلوگیری میکند. در عوض دادههای وضعیتی که قرار بود با دستور MODE SELECT ارسال شوند، به صورت هگزادسیمال اسکی در کنسول چاپ میشوند. این گزینه عمدتاً برای آزمایش و بررسی است.
- -e, --enumerate
- اطلاعات توصیفی درباره صفحات و فیلدهای شناختهشده توسط این ابزار را فهرست میکند. آرگومان DEVICE و سایر گزینهها به جز گزینههای --all، --inquiry، --long، --page=PG[,SPG]، --transport=TN و --vendor=VN را نادیده میگیرد. اگر --enumerate بدون گزینههای دیگر داده شود، صفحات وضعیت شناختهشده (عمومی) فهرست میشوند. بخش شمارش را در زیر ببینید.
- -E, --examine
- برای صفحات
وضعیت،
تنها
آنهایی که
نام
فیلدهای
شناختهشده
دارند
هنگام
ارائه
گزینه --all
پویش
میشوند.
برای صفحات
VPD، تنها
صفحات
فهرستشده
در «Supported VPD pages page»
رمزگشایی
میشوند. در
هر دو حالت
ممکن است
برخی صفحات
نادیده
بمانند. با
این گزینه
(یعنی --examine)
میتوان
تمامی
صفحات
وضعیت و VPD را
بررسی و
کاوش کرد.
برای صفحات وضعیت، این گزینه تمام صفحات وضعیت از شماره 0x0 تا 0x3e را بررسی میکند. برای بررسی زیرصفحات وضعیت، یک شماره صفحه وضعیت با --page=PG تعیین کنید تا تمام زیرصفحات (از 0x0 تا 0xfe) پویش شوند.
برای صفحات VPD، از این گزینه همراه با --inquiry استفاده کنید. این کار به طور پیشفرض موجب پویش تمام صفحات VPD از 0x0 تا 0xbf میشود. توالیای از صفحات VPD را میتوان با --page=PG[,SPG] بررسی کرد که در این صورت صفحات VPD از PG (شماره کمتر) تا SPG (شماره بیشتر) به طور فراگیر پویش میشوند. صفحات VPD مخصوص تولیدکننده از 0xc0 تا 0xff هستند و میتوان با تنظیم SPG از 0xc0 تا 0xff آنها را بررسی نمود. - -f, --flexible
- برخی دستگاهها، پلها یا درایورها تلاش میکنند بدون بازسازی صحیح پاسخ، تبدیلات ناپختهای میان دستورهای 6 بایتی و 10 بایتی mode sense انجام دهند. این امر باعث تفسیر نادرست پاسخ میشود (معمولاً با خطایی مبنی بر ناقص یا خراب بودن پاسخ). با این گزینه، طول پاسخ بررسی میشود و در صورت نادرست به نظر رسیدن آن، اصلاحات گوناگونی انجام میگیرد. این گزینه همچنین اجازه میدهد صفحات وضعیتی که متعلق به نوع دستگاه جانبی فعلی نیستند نیز فهرست شوند.
- -g, --get=STR
- در سادهترین حالت، STR شامل نام اختصاری فیلد یا توصیفگر عددی فیلد است. فیلد مورد نظر از صفحه وضعیت واکشی میشود. بخش پارامترها را در زیر ببینید. گزینههای --long و --hex بر قالب خروجی اثر میگذارند. همچنین اگر مقدار «1» مشخص شود (مانند «--get=WCE=1»)، فقط مقدار جاری خروجی داده میشود (یعنی ماسک تغییر، مقدار پیشفرض و مقدار ذخیرهشده نمایش داده نمیشوند).
- -h, --help
- پیام راهنمای نحوه استفاده را چاپ کرده و خارج میشود.
- -H, --hex
- به جای تلاش
برای
رمزگشایی
صفحات
وضعیت (یا VPD)،
آنها را به
صورت
هگزادسیمال
چاپ میکند.
هنگامی که
با گزینه --get=STR
استفاده
شود،
مقادیر
جاری، قابل
تغییر،
پیشفرض و
ذخیرهشده
متناظر با
پیشوند «0x»
و با فاصله
جداشده به
صورت
هگزادسیمال
خروجی داده
میشوند.
اگر با
گزینه --get=STR
مقدار «1»
داده شود
(مثلاً
«--get=WCE=1»)، فقط
مقدار جاری
به صورت
هگزادسیمال
با پیشوند
«0x» خروجی
داده
میشود. اگر
با گزینه --get=STR
مقدار «2»
داده شود،
تنها مقدار
جاری به
صورت یک عدد
صحیح
(علامتدار)
خروجی داده
میشود. این
گزینه
میتواند
چندین بار
تکرار شود
(مانند «-HH»).
این گزینه
در ترکیب با
صفحه ATA Information VPD که
معمولاً
پاسخ IDENTIFY (PACKET) DEVICE
خود را در
کلمات هگز 16
بیتی نمایش
میدهد
مفید است؛
با «-HH» پاسخ
به صورت
بایتهای
هگز خروجی
داده
میشود؛ با
«-HHH» همان
پاسخ در
قالبی
مناسب برای
رمزگشایی
توسط «hdparm --Istdin»
چاپ میشود.
خروجی صفحه وضعیت با گزینه «-HHH» برای فراخوانیهای بعدی sdparm با گزینه --inhex=FN مناسب است. - -i, --inquiry
- صفحه VPD موجود در پاسخ دستور SCSI INQUIRY ارسالشده به DEVICE را خروجی میدهد. در نبود این گزینه، رفتار پیشفرض خروجی دادن صفحات وضعیت است. اگر گزینه --inquiry بدون گزینه --page=PG[,SPG] داده شود، صفحه شناسایی دستگاه در VPD (0x83) رمزگشایی و چاپ میشود. اگر این گزینه همراه با گزینه --all داده شود، صفحه صفحات پشتیبانیشده VPD (0x0) رمزگشایی و خروجی داده میشود.
- -I, --inhex=FN
- انتظار
میرود FN
نام یک فایل
(یا «-» برای
ورودی
استاندارد)
باشد که
حاوی
دادههای
هگزادسیمال
اسکی (یا
باینری)
نمایانگر
پاسخ به
دستور MODE SENSE(10)
است. اگر --six
نیز مشخص
شده باشد،
پاسخ حاصل
از MODE SENSE(6) فرض
میشود. یک
پاسخ MODE SENSE
شامل یک هدر
پارامتر
وضعیت، سپس
0 یا چند
توصیفگر
بلوک و به
دنبال آن یک
یا چند صفحه
وضعیت است.
این ابزار
تنها اولین
صفحه وضعیت
را
رمزگشایی
میکند مگر
اینکه
گزینه --all
ارائه شده
باشد. به
منظور
رمزگشایی
یک صفحه
وضعیت اغلب
نوع دستگاه
جانبی لازم
است که
میتواند
با گزینه --pdt=DT
تأمین شود.
اگر --pdt=DT داده
نشود، صفحه
وضعیتی که
در
استانداردهای
دو نوع
دستگاه
وجود دارد
(مانند SBC و SSC)
ممکن است دو
بار
رمزگشایی
شود.
اگر --inquiry داده شود، آنگاه FN به عنوان دادههای پاسخ یک صفحه منفرد VPD تفسیر میشود.
دادههای هگزادسیمال در FN باید به صورت 1 یا 2 رقم بیانگر یک بایت باشند که با فاصله یا کاما از هم جدا شدهاند. هر چیزی از علامت هش (#) تا انتهای خط نادیده گرفته میشود. اگر گزینه --raw داده شود، فایل FN به عنوان داده باینری در نظر گرفته میشود. - -l, --long
- اطلاعات
بیشتری را
چاپ میکند.
در مورد
فیلدهای
صفحات
وضعیت،
توضیحی
(همراه با
یکا در صورت
وجود) در
سمت راست
چاپ میشود.
اگر دو بار
استفاده
شود، برای
برخی
فیلدها
اطلاعات
بیشتری
درباره
مقادیر
ممکن در یک
یا چند خط
بعدی که هر
کدام با یک
نویسه تب
شروع
میشوند
نمایش
مییابد.
برای
کاربرد
همراه با
--enumerate، بخش
شمارش را در
زیر ببینید.
هنگامی که این گزینه همراه با --command=capacity استفاده شود، دستور READ CAPACITY(16) به DEVICE ارسال میشود و در صورت موفقیت، پاسخ مبسوط آن چاپ میگردد. - -n, --num-desc
- برای صفحه وضعیتی که میتواند توصیفگر داشته باشد، تعداد توصیفگرهای آن صفحه روی DEVICE را خروجی میدهد. در غیر این صورت 0 خروجی داده میشود.
- -o, --out-mask=OM
- آرگومان OM یک ماسک بیتی برای بخشهایی از صفحه وضعیت است که چاپ یا خروجی داده میشوند. مقدار 0x1 برای مقادیر «جاری» (current)، مقدار 0x2 برای مقادیر «قابل تغییر» (changeable)، مقدار 0x4 برای مقادیر «پیشفرض» (default) و مقدار 0x8 برای مقادیر «قابل ذخیره» (saveable) است. مقدار پیشفرض 0xf است (یعنی ترکیب بیتی OR هر چهار مقدار). این گزینه برای محدود کردن حجم خروجی با «-HHH» کاربرد دارد.
- -p, --page=PG[,SPG]
- شماره صفحه (PG) و به طور اختیاری شماره زیرصفحه (SPG) از صفحه وضعیت (یا VPD) مورد نظر برای واکشی را مشخص میکند. این اعداد به صورت دهدهی تفسیر میشوند مگر آنکه پیشوند «0x» یا پسوند «h» داشته باشند. شمارههای زیرصفحه فقط برای صفحات وضعیت معتبر هستند (نه صفحات VPD). همچنین میتوان نام اختصاری یک صفحه را مشخص کرد (مدخل بعدی را ببینید).
- -p, --page=STR
- میتوان یک اختصار دو یا سه حرفی برای صفحه ارائه داد. ابتدا اختصارهای شناختهشده صفحات وضعیت و سپس اختصارهای شناختهشده صفحات VPD بررسی میشوند. برای نمونه «--page=ca» با صفحه وضعیت caching مطابقت دارد. اگر موردی یافت نشود، خطایی صادر شده و فهرستی از احتمالات در زمینه فعلی ارائه میشود (بنابراین «-p x» میتواند بسیار مفید باشد). اگر STR با یک اختصار شناختهشده صفحه VPD مطابقت داشته باشد، گزینه --inquiry مفروض گرفته میشود. برای کاربرد همراه با --enumerate بخش شمارش را در زیر ببینید.
- -P, --pdt=DT
- این گزینه تنها زمانی فعال است که گزینه --inhex=FN داده شده باشد. DT نوع دستگاه جانبی (peripheral Device Type) است، مقداری بین 0 تا 31 که میتواند در پاسخ دستور INQUIRY یافت شود. مقدار پیشفرض -1 است (که میتوان آن را نیز برای DT وارد کرد) و به صورت SPC (یعنی صفحات وضعیت مشترک) یا به عنوان یک کاراکتر عام (wildcard) تفسیر میشود. در صورت دسترسی، این گزینه باید همراه با گزینه --inhex=FN ارسال شود.
- -q, --quiet
- چاپ نام
دستگاه به
همراه
رشتههای
سازنده،
محصول و
شماره
بازنگری
واکشیشده
از پاسخ INQUIRY را
سرکوب
میکند.
بدون این
گزینه،
چنین خطی
معمولاً
اولین خط
خروجی توسط
sdparm است.
همچنین
خروجی حاصل
از صفحه
شناسایی
دستگاه در VPD
را کاهش
میدهد،
معمولاً به
یک خط (یا
هیچ) برای
هر یک از di_lu،
di_port، di_target و di_asis.
اگر این گزینه دو بار استفاده شود، علاوه بر این در خروجی صفحه وضعیت، مقادیر قابل تغییر، پیشفرض و ذخیرهشده که معمولاً داخل کروشهها یا آکولادها نشان داده میشوند در صورت موجود بودن سرکوب میگردند. - -r, --readonly
- سایر منطقهای باز کردن DEVICE در حالت فقطخواندنی را نادیده میگیرد. حالت پیشفرض باز کردن فقطخواندنی/خواندنی-نوشتنی به عملیات درخواستی بستگی دارد (برای نمونه یک عملیات --set=STR به طور پیشفرض تلاش میکند DEVICE را در حالت خواندن-نوشتن باز کند). این گزینه ممکن است زمانی مفید باشد که دستوری از طریق مجموعه دستورات SCSI به یک دیسک ATA ارسال میشود. برای نمونه در لینوکس، «-C stop» ممکن است نیازمند این گزینه باشد تا از راهاندازی مجدد فوری دیسک ATA جلوگیری کند.
- -R, --raw
- این گزینه تنها زمانی فعال است که همراه با گزینه --inhex=FN استفاده شود. هنگامی که این گزینه مشخص شود، فایل FN به عنوان باینری تفسیر میشود؛ حالت پیشفرض (یعنی زمانی که این گزینه ارائه نشده باشد) تفسیر FN به عنوان هگزادسیمال اسکی است.
- -S, --save
- هنگامی که یک صفحه وضعیت اصلاح میشود (با استفاده از گزینههای --clear=STR و/یا --set=STR)، عمل پیشفرض این است که فقط مقادیر جاری صفحه وضعیت تغییر داده شوند. هنگامی که این گزینه ارائه شود، مقادیر متناظر در صفحه مقادیر ذخیرهشده (saved values) نیز تغییر مییابند. دفعه بعدی که دستگاه خاموش و روشن (یا بازنشانی) شود، صفحه مقادیر ذخیرهشده تبدیل به صفحه مقادیر جاری میشود (یعنی در آن رونوشت میشود). این گزینه فیلد SP را در دستور MODE SELECT تنظیم میکند. بخش یادداشتها را در زیر ببینید.
- -s, --set=STR
- در سادهترین حالت، STR شامل یک نام اختصاری فیلد یا توصیفگر عددی فیلد است. در صورت نبود مقدار مشخص، مقدار هر نام اختصاری روی همگی یک (all ones) تنظیم میشود. این بدان معناست که یک فیلد 16 بیتی روی 0xffff تنظیم میشود که در دهدهی معادل 65535 است. به طور جایگزین، هر نام اختصاری یا توصیفگر عددی میتواند به دنبال خود «=<n>» داشته باشد که در آن <n> مقداری است که فیلد باید روی آن تنظیم شود. بخش پارامترها را در ادامه ببینید.
- -6, --six
- عمل
پیشفرض
این ابزار
صدور
دستورات SCSI
مربوط به MODE SENSE
و MODE SELECT با cdbهای 10
بایتی است.
هنگامی که
این گزینه
ارائه شود،
انواع 6
بایتی cdb به
کار گرفته
میشوند.
دستگاههای
RBC و
دستگاههای
قدیمی SCSI
ممکن است به
این گزینه
نیاز داشته
باشند. اگر
وضعیت SCSI
نشان دهد که
نوع 10 بایتی cdb
پشتیبانی
نمیشود،
این ابزار
پیشنهادی
مبنی بر
استفاده از
این گزینه
چاپ میکند.
استاندارد SPC-4 (و پیشنویسهای SPC-5) شامل یادداشتی است که بیان میکند پیادهسازان باید از دستورهای SCSI یعنی MODE SELECT(6) و MODE SENSE(6) به سمت گونههای 10 بایتی (مانند MODE SENSE(10)) مهاجرت کنند. - -t, --transport=TN
- پروتکل انتقال را مشخص میکند که در آن TN یا عددی در محدوده 0 تا 15 (شامل هر دو) یا یک نام اختصاری است (مثلاً «fcp» برای Fibre Channel Protocol). برخی پروتکلهای انتقال چندین اختصار را میپذیرند، برای نمونه srp (مخفف SCSI RDMA Protocol) و ib (مخفف InfiniBand) هر دو برای پروتکل انتقال 0x4 پذیرفته میشوند. همچنین حروف کوچک و بزرگ هر دو پذیرفته هستند، بنابراین iscsi و iSCSI هر دو برای پروتکل 0x5 قابل قبولند. یک راه برای فهرست کردن شمارههای پروتکل انتقال موجود و اختصارهای مرتبط با آنها وارد کردن یک نام پروتکل انتقال نامعتبر مانند «-t x» است؛ راه دیگر استفاده از «-e -l» است. توجه: ممکن است گزینه --all همچنان برای نمایش تمام فیلدهای موجود مورد نیاز باشد.
- -M, --vendor=VN
- تولیدکننده
(سازنده) را
مشخص
میکند که
در آن VN یا
یک عدد (0 یا
بیشتر) یا
یک نام
اختصاری
است (مثلاً
«sea» برای
موارد
مخصوص
تولیدکننده
دیسک Seagate).
برای
درایوهای
نوار، «lto5» و
«lto6» به
عنوان
تولیدکننده
در نظر
گرفته
میشوند. یک
راه برای
فهرست کردن
شمارههای
تولیدکننده
موجود و
اختصارهای
وابسته،
ارائه یک
شماره
تولیدکننده
نامعتبر
مانند «-M x»
است؛ راه
دیگر
استفاده از
«-e -l» است.
این گزینه فقط روی رمزگشایی صفحات وضعیت اثر میگذارد و روی صفحات VPD اثری ندارد. برای صفحات VPD مخصوص تولیدکننده، ابزار sg_vpd را ببینید. - -v, --verbose
- سطح پرگویی را افزایش میدهد (یعنی خروجی اشکالزدایی). در برخی موارد رمزگشایی بیشتری انجام میشود (مانند فیلدهای درون پاسخ استاندارد INQUIRY).
- -V, --version
- رشته نسخه برنامه را چاپ کرده و خارج میشود.
- -w, --wscan
- این گزینه فقط در ویندوز موجود است. نام دستگاههای ذخیرهسازی و درایوهای منطقی (volumes) متناظر، در صورت وجود، را فهرست میکند. با دو بار استفاده، «نوع گذرگاه» (bus type) نزدیکترین پروتکل انتقال را اضافه میکند (برای نمونه یک دیسک SATA در یک محفظه متصل با USB نوع گذرگاه Usb دارد). هنگامی که سه بار استفاده شود، پویش آداپتور SCSI اضافه میشود. با چهار بار استفاده تنها پویش آداپتور SCSI نشان داده میشود. مثالهای زیر و بخش «Win32 port» را در فایل README ببینید.
یادداشتها (NOTES)
سند مرجع استفادهشده برای تفسیر صفحات وضعیت و VPD (و پاسخ استاندارد INQUIRY)، سند T10/BSR INCITS 502 بازنگری 17 (SPC-5، مورخ 19 سپتامبر 2017) موجود در http://www.t10.org است. موارد منسوخ و رزروشده در خروجی پاسخ استاندارد INQUIRY داخل قلاب نشان داده میشوند. پیشنویسهای جدید دیگر اسناد T10 نیز استفاده شدهاند: SBC-4 (دیسکها)، SSC-5 (نوارها)، SPL-5 (انتقال SAS) و SAT-4 (ترجمه SCSI به ATA).
صفحه وضعیتی که هیچ نام اختصاری شناختهشدهای برای آن وجود ندارد (مانند صفحه وضعیت مخصوص یک تولیدکننده)، میتواند با ترکیب گزینههای «--page=PG --hex» به صورت هگزادسیمال فهرست شود.
اعداد ورودی به sdparm (مانند آرگومانهای خط فرمان) دهدهی فرض میشوند مگر اینکه نشانگر هگزادسیمال وجود داشته باشد. نشانگر هگزادسیمال شامل پیشوند «0x» یا «0X» (قرارداد زبان C) یا پسوند «h» یا «H» (قرارداد استفادهشده در www.t10.org) است. در مورد --page= یا یک رشته یا یک عدد انتظار میرود، بنابراین اعداد هگز مانند «ch» (12) باید با صفر شروع شوند (مثلاً «0ch»).
پیشنویس SPC-4 (بازنگری 2) بیان میکند که دستگاههایی که تمایزی میان صفحات جاری و ذخیرهشده قائل نمیشوند، در صورتی که بیت SP (که متناظر با گزینه --save است) تنظیم _نشده_ باشد، میتوانند خطایی بازگردانند (ILLEGAL REQUEST, invalid field in cdb). در چنین مواردی لازم است گزینه --save مشخص شود.
اگر گزینه --save داده شود اما صفحه وضعیت موجود (از طریق بیت PS خود) نشان دهد که صفحه قابل ذخیره نیست، این ابزار یک پیام خطا تولید میکند. آن پیام پیشنهاد میدهد که دوباره بدون گزینه --save تلاش شود.
از آنجا که صفحه VPD شناسایی دستگاه (نام اختصاری «di») به طور بالقوه شامل شناساگرهای گوناگون فراوانی است، چندین نام اختصاری مرتبط در دسترس هستند. آنها عبارتند از «di_lu» برای شناساگرهای مرتبط با واحد منطقی آدرسدهیشده، «di_port» برای شناساگرهای مرتبط با پورت مقصد (که دستور از طریق آن وارد شده است) و «di_target» برای شناساگرهای مرتبط با دستگاه مقصد. هنگامی که «di» استفاده میشود، شناساگرها ابتدا بر اساس lu، سپس پورت و سپس دستگاه مقصد گروهبندی میشوند. برای مشاهده تمامی شناساگرها به همان ترتیبی که در صفحه VPD آمدهاند، از «di_asis» استفاده کنید.
تنها آن دسته از صفحات VPD که توسط t10.org تعریف شدهاند با این ابزار رمزگشایی میشوند. استاندارد SPC-4 کدهای صفحات VPD از 0xc0 تا 0xff (شامل هر دو) را برای صفحات مخصوص تولیدکنندگان کنار گذاشته که برخی از آنها در ابزار sg_vpd رمزگشایی میشوند.
برای مشاهده تمامی صفحات VPD پشتیبانیشده توسط یک DEVICE، از «sg_vpd --all» استفاده کنید.
در سری هسته لینوکس 2.6 و 3، هر گره دستگاهی که مجموعه دستورات SCSI را بفهمد (مانند دیسکهای SCSI و درایوهای CD/DVD) میتواند مشخص شود. به طور دقیقتر، درایوری که مالک گره دستگاه است باید از فراخوانی SG_IO ioctl پشتیبانی کند. در سری هسته 2.4 تنها گرههای عمومی SCSI (sg) از ioctl به نام SG_IO پشتیبانی میکنند. با این حال در سری هسته 2.4، سایر گرههای دستگاههای SCSI در داخل این ابزار به گرههای sg متناظرشان نگاشت میشوند. بنابراین اگر یک دیسک SCSI در مسیر /dev/sda وجود داشته باشد، دستور «sdparm /dev/sda» هم در سری هسته 2.4 و هم نسخههای بعدی کار خواهد کرد. با این حال اگر یک درایو cd/dvd از نوع ATAPI در مسیر /dev/hdc باشد، «sdparm /dev/hdc» فقط در سری هسته 2.6 و بالاتر کار خواهد کرد.
در سری لینوکس 2.6 و 3، بهویژه در دیسکهای ATA، استفاده از sdparm برای توقف (کاهش دور یا spin down) یک دیسک ممکن است کافی نباشد و مکانیسمهای دیگر بعد از مدتی دیسک را مجدداً راهاندازی کنند. کاربر میتواند علاوه بر این، با اجرای «echo offline > /sys/block/sda/device/state» دیسک را به عنوان «offline» علامتگذاری کند که در آن sda نام بلوک دستگاه است. برای راهاندازی مجدد دیسک میتوان «offline» را با «running» جایگزین کرد.
پارامترها (PARAMETERS)
در سادهترین حالت، گزینههای --clear=، --get= و --set= (یا اشکال کوتاه آنها) یک نام اختصاری فیلد مانند «WCE» را دریافت میکنند. در حالت «--get=WCE»، مقدار «Writeback Cache Enable» در صفحه وضعیت caching واکشی میشود. در حالت «--set=WCE»، آن بیت روی یک تنظیم میشود. در حالت «--clear=WCE»، آن بیت پاک شده و صفر میشود. هنگامی که یک نام اختصاری مشخص شود، صفحه وضعیت به طور خودکار از روی آن نام مشخص میگردد (مثلاً WCE در صفحه وضعیت caching قرار دارد).
به جای یک نام اختصاری، یک فیلد در صفحه وضعیت میتواند به صورت عددی با یک چندتایی سهگانه به شکل <start_byte>:<start_bit>:<num_bits> توصیف شود. این موارد عبارتند از <start_byte> (بایت شروع، بر مبنای صفر) در صفحه وضعیت، یک <start_bit> (بیت شروع، از 0 تا 7 فراگیر) و <num_bits> (تعداد بیتها، از 1 تا 64 فراگیر). برای نمونه، نمایش سطح پایین بیت RCD (بیت «Read Cache Disable» در صفحه وضعیت caching) به صورت «2:0:1» است. مقدار <start_byte> میتواند به صورت اختیاری در قالب هگزادسیمال نیز داده شود (مانند «--set=0x2:0:1» یا «--set=2h:0:1»). در این حالت برای مشخص کردن صفحه وضعیت مورد استفاده، گزینه --page= الزامی است.
هر دو حالت میتوانند به صورت اختیاری با «=<val>» همراه باشند. به طور پیشفرض مقدار <val> دهدهی است اما میتواند به روش معمولی به صورت هگزادسیمال نیز داده شود. در اینجا چند نمونه آمده است: «--set=2h:0:1=1h» و «-s MRIE=0x3». هنگامی که برای نام اختصاری یا فرمت عددی بعد از --clear= مقدار صریح «=<val>» داده نشود، مقدار پیشفرض صفر خواهد بود. هنگامی که برای نام اختصاری یا فرمت عددی بعد از --set= مقدار صریح «=<val>» داده نشود، مقدار پیشفرض «همه یک» خواهد بود (یعنی به اندازهای که <num_bits> اجازه میدهد). برای نمونه، «--clear=WCE» و «--clear=WCE=0» معنای یکسانی دارند: پاک کردن Writeback Cache Enable، یا به بیان سادهتر: غیرفعال کردن کش writeback.
با ارائه فهرستی از نامهای اختصاری و/یا فرمت عددی جداشده با کاما، میتوان چندین فیلد در یک صفحه وضعیت مشابه را تغییر داد. برای نمونه: «--set=TEST,MRIE=6».
برخی صفحات وضعیت توصیفگرهای متعددی دارند. آنها معمولاً دارای یک بخش هدر ثابت در ابتدای صفحه وضعیت هستند که شامل فیلدی حاوی تعداد توصیفگرهای بعدی است. پس از هدر، تعداد متغیری از توصیفگرها قرار دارند. یک نمونه آن صفحه وضعیت SAS Phy Control and Discover است. یک نام اختصاری میتواند شامل یک «.<num>» در انتهای خود باشد که در آن «<num>» شماره توصیفگر است (بر مبنای صفر). برای نمونه «-t sas -g PHID.0» و «-t sas -g PHID» شناسه پورت فیزیکی (phy identifier) اولین توصیفگر صفحه وضعیت فوق را بازمیگردانند؛ «-t sas -g PHID.1» شناسه phy توصیفگر دوم را بازمیگرداند.
شمارش (ENUMERATE)
گزینه --enumerate اساساً اطلاعات استاتیک نگهداریشده توسط این ابزار را استخراج میکند. در زیر فهرستی از گونههای مختلف --enumerate و عملکرد آنها آمده است. برای اختصار، نمونههای گزینهها در فرم کوتاه نمایش داده شدهاند.
--enumerate فهرست کردن اطلاعات صفحات وضعیت عمومی
-e --all فهرست کردن محتویات صفحات وضعیت عمومی
(یعنی پارامترها)
-e --page=rw فهرست کردن محتویات صفحه وضعیت
بازیابی خطای خواندن و نوشتن (read write error recovery)
-e --inquiry فهرست کردن صفحات VPD قابل رمزگشایی توسط این ابزار
-e --long فهرست کردن صفحات وضعیت عمومی، پروتکلهای انتقال،
صفحات وضعیت به ازای هر پروتکل انتقال پشتیبانیشده
و دستورهای پشتیبانیشده
-e -l --all علاوه بر این، فهرست کردن محتویات هر صفحه وضعیت
-e --transport=fcp فهرست کردن صفحات وضعیت برای پروتکل انتقال fcp
-e -t fcp --all علاوه بر این، فهرست کردن محتویات هر صفحه وضعیت
-e --vendor=sea فهرست کردن صفحات وضعیت مخصوص تولیدکننده برای «sea» (Seagate)
-e -M sea --all علاوه بر این، فهرست کردن محتویات صفحات وضعیت
مخصوص تولیدکننده برای «sea» (Seagate)
-e -p pcd -l فهرست کردن محتویات صفحه وضعیت SAS phy control and discovery
به همراه برخی اطلاعات قالب توصیفگر (به دلیل «-l»)
هنگامی که صفحات وضعیت شناختهشده فهرست میشوند (از طریق گزینه --enumerate)، هر سطر با یک نام اختصاری دو یا سه حرفی آغاز میشود. به دنبال آن شماره صفحه (در قالب هگز با پیشوند «0x») و در صورت وجود به صورت اختیاری کاما و شماره زیرصفحه میآید. در نهایت، نام توصیفی صفحه وضعیت (برای نمونه همانطور که در SPC-4 آمده است) چاپ میشود.
هنگامی که پارامترها (فیلدهای) شناختهشده یک صفحه وضعیت فهرست میشوند، هر سطر با یک نام اختصاری شروع میشود (که با چند فاصله تورفتگی دارد). این نام با توصیف آن فیلد در استانداردهای (پیشنویس) مطابقت دارد (یا مخفف آن است). در ادامه سه عدد جدا شده با دو نقطه داخل براکت قرار دارند. این اعداد عبارتند از بایت شروع (به صورت هگز با پیشوند «0x») از آغاز فیلد در داخل صفحه وضعیت؛ بیت شروع (از 0 تا 7 فراگیر) و سپس تعداد بیتها. سپس نام توصیفی پارامتر (فیلد) داده میشود. در صورت لزوم، نام توصیفی شامل یکاها نیز میشود (برای نمونه «(ms)» به این معناست که یکا میلیثانیه است). افزودن گزینه «-ll» اطلاعاتی درباره مقادیر ممکن فیلد برای پارامترهای برگزیده صفحه وضعیت را فهرست میکند.
پارامترهای وضعیتی که مقدار num_bits در آنها بیشتر از 1 است میتوانند به عنوان اعداد صحیح بدون علامت دیده شوند. اغلب فیلدهای 16 و 32 بیتی به ترتیب روی 0xffff و 0xffffffff (همگی یک) تنظیم میشوند که معمولاً معنای ویژهای دارد (پیشنویسها را ببینید). این ابزار چنین مقادیری را برای صرفهجویی در فضا به جای معادلهای عدد صحیح بدون علامت آنها، به صورت «-1» نمایش میدهد. مقدار «-1» میتواند به عنوان مقدار یک فیلد اختصاری صفحه وضعیت نیز داده شود (برای نمونه «--set=INTT=-1» فیلد interval timer را در صفحه وضعیت Informational Exceptions control روی 0xffffffff تنظیم میکند).
پروتکلهای انتقال (TRANSPORTS)
پروتکلهای انتقال SCSI حوزهای نسبتاً تخصصی هستند که توسط اکثریت کاربران میتوانند نادیده گرفته شوند.
برخی پروتکلهای انتقال دارای صفحات وضعیت مخصوص پروتکل هستند. این صفحات معمولاً عبارتند از صفحات وضعیت قطع-وصل مجدد (0x2)، واحد منطقی مخصوص پروتکل (0x18) و پورت مخصوص پروتکل (0x19). در برخی موارد صفحه وضعیت آخری دارای چندین زیرصفحه است. متداولترین اختصارات پروتکلهای انتقال که احتمالاً مورد استفاده قرار میگیرند «fcp»، «spi» و «sas» هستند.
بسیاری از نامهای فیلدها در جایگاه یکسانی دوباره استفاده شدهاند، بنابراین فضای نام acronym_name میان صفحات وضعیت عمومی (یعنی زمانی که گزینه --transport= داده _نشده_ باشد) و یک فضای نام برای هر پروتکل انتقال تقسیم شده است. یک فیلد LUPID از صفحه وضعیت واحد منطقی مخصوص پروتکل (0x18) و فیلد PPID از صفحه وضعیت پورت مخصوص پروتکل (0x19) در صفحات وضعیت عمومی گنجانده شدهاند؛ این کار برای آن است که بتوان شناسههای پروتکل (انتقال) مربوطه را مشاهده کرد. در بیشتر موارد کاربر میداند که انتقال «port» چیست (یعنی همان انتقال متناظر با HBA در رایانه)، اما انتقال واحد منطقی ممکن است متفاوت باشد.
تولیدکنندگان (VENDORS)
استاندارد SCSI فضای زیادی را برای اطلاعات مخصوص تولیدکننده باقی میگذارد. اغلب این موارد در کتابچههای راهنمای محصول شرح داده شدهاند. گزینه --vendor=VN (یا -M=VN) امکان بررسی و/یا اصلاح صفحات وضعیت شناختهشده مخصوص تولیدکننده را با استفاده از نام اختصاری فراهم میکند.
در این ابزار، نحو و معانی صفحات وضعیت مخصوص تولیدکننده بسیار شبیه به صفحات وضعیت مخصوص پروتکل انتقال است. نمیتوان هر دو را با هم مشخص کرد. صفحات وضعیت مخصوص تولیدکننده همچنان میتوانند به صورت عددی در دسترس باشند (همانطور که در انتهای بخش مثالها نشان داده شده است).
دستورها (COMMANDS)
گزینه command یک دستور SCSI به DEVICE ارسال میکند. اگر دستور با شکست روبرو شود، این موضوع در کد خروج غیر صفر بازتاب مییابد. برای کسب اطلاعات بیشتر درباره خطا از گزینه -v استفاده کنید.
- capacity
- به طور پیشفرض یک دستور READ CAPACITY(10) ارسال میکند (معتبر برای دیسکها و رسانههای cd/dvd). در صورت موفقیت، فیلدهای «blocks: » [تعداد بلوکها]، «block_length: » [معمولاً 512 یا 2048] و «capacity_mib: » [ظرفیت بر حسب مبیبایت (واحدهای 1048576 بایتی)] را ارائه میدهد.
اگر تعداد بلوکها بزرگتر از آن باشد که در فیلد 4 بایتی ارائهشده توسط READ CAPACITY(10) جا شود، یا گزینه --long داده شده باشد، آنگاه دستور READ CAPACITY(16) ارسال میشود. اگر گزینه --long داده شده باشد، فیلدهای اضافه موجود در پاسخ READ CAPACITY(16) در خروجی چاپ میشوند.
- eject
- رسانه ذخیرهسازی را متوقف کرده و آن را از دستگاه بیرون میدهد (eject). توجه داشته باشید که خروج رسانه (توسط دستور یا دکمه سختافزاری) ممکن است ممانعت شود که در این صورت در شرایط حاد دستور «unlock» میتواند مفید باشد. به طور معمول تنها برای درایوهای cd/dvd و درایوهای دیسک دارای رسانه جداشدنی مناسب است. در صورت ارسال به نوع دیگری از دستگاههای جانبی اعتراض میکند (اما این ممانعت را میتوان با گزینه «-f» لغو کرد).
- load
- رسانه ذخیرهسازی را بارگذاری کرده و آن را راهاندازی میکند (یعنی دور موتور آن را بالا میبرد). برای انواع دستگاههای پشتیبانیشده به دستور «eject» مراجعه کنید.
- profile
- قالبهای گوناگونی را که درایو CD/DVD/HD-DVD/BD پشتیبانی میکند فهرست مینماید. به این موارد در استاندارد MMC اصطلاحاً «نمایه» (profile) گفته میشود. نمایهها در هر سطر یکی فهرست میشوند. اگر رسانه در درایو قرار داشته باشد، نمایهای که با رسانه مطابقت دارد (در صورت وجود) یک علامت «*» در سمت راست خط خواهد داشت.
- ready
- دستور SCSI با عنوان «Test Unit Ready» را به DEVICE ارسال میکند. در صورتی که دستگاه در بازه زمانی معقول به درخواستهای داده (مانند READ) پاسخ دهد، هیچ خطایی گزارش نمیشود. برای نمونه اگر دیسک متوقف شده باشد، وضعیت «not ready» را گزارش میکند. تمام دستگاهها باید به این دستور پاسخ دهند.
- sense
- یک دستور REQUEST SENSE ارسال میکند. این دستور در صورت علامتگذاری، عبور از آستانه سختافزاری، هشدار یا وضعیت مصرف انرژی پایین را گزارش میکند. اگر نشانگر پیشرفت وجود داشته باشد (برای نمونه حین قالببندی)، به صورت درصد چاپ میشود. در صورتی که دستور موفق شود و کلید sense برابر با 0 باشد، وضعیت پروسه 0 خواهد بود؛ در غیر این صورت 1 برمیگرداند. گزینه --quiet میتواند برای کاهش خروجی و --hex برای خروجی دادن دادههای sense به صورت هگزادسیمال استفاده شود.
- speed=SPEED
- امکان تنظیم (یا حداقل اعمال اثر بر) سرعت یک دیسک CD، DVD، HD_DVD یا BD در درایو را میدهد. قالب آن بدین صورت است: --command=speed=SPEED که در آن SPEED بر حسب کیلوبایت بر ثانیه است. در این حالت یک کیلوبایت معادل 1000 بایت است. سرعت استاندارد یکبرابر («times one») برای یک CD برابر 176.4 کیلوبایت بر ثانیه، برای DVD برابر 1350 کیلوبایت بر ثانیه و برای هر دوی HD-DVD و BD برابر 4500 کیلوبایت بر ثانیه است. اگر SPEED صفر باشد، درایو روی سرعتی تنظیم میشود که به نظر خودش بازدهی بهینه دارد. این دستور یک دستور چندرسانهای SET STREAMING (مربوط به MMC) به درایو میفرستد. بیت EXACT در آن صفر است بنابراین درایو در صورت نیاز مقدار SPEED دادهشده را گرد خواهد کرد. این دستور برای کنترل سرعت خواندن طراحی شده است؛ تنظیم سرعت نوشتن باید به برنامههای «رایت» (burning) واگذار شود.
- start
- رسانه ذخیرهسازی را راهاندازی میکند (یعنی دور موتور آن را بالا میبرد). اگر رسانه از قبل راهاندازی شده باشد بیضرر است. برای انواع دستگاههای پشتیبانیشده به دستور «eject» مراجعه کنید. اگر DEVICE یک دیسک ATA در لینوکس باشد، ممکن است به گزینه «--readonly» نیاز باشد.
- stop
- رسانه ذخیرهسازی را متوقف میکند (یعنی دور موتور آن را کاهش میدهد). اگر رسانه قبلاً متوقف شده باشد بیضرر است. برای انواع دستگاههای پشتیبانیشده به دستور «eject» مراجعه کنید. اگر DEVICE یک دیسک ATA در لینوکس باشد، ممکن است به گزینه «--readonly» نیاز باشد. بخش یادداشتها را در بالا ببینید.
- sync
- یک دستور SYNCHRONIZE CACHE ارسال میکند. دستگاه باید هرگونه داده نگهداریشده در بافرهای موقت (فرار) خود را در رسانه ذخیرهسازی تخلیه (flush) کند.
- unlock
- به دستگاه دستور میدهد که اجازه خارج کردن رسانه را بدهد. این کار از دستور SCSI با عنوان «prevent allow medium removal» استفاده میکند. این اقدام برای شرایط اضطراری است و احتمالاً ممانعت اعمالشده توسط سیستمعامل روی یک سیستمفایل سوارشده را نادیده میگیرد. ابزار «eject» (از بسته «eject») انعطافپذیرتر و مناسبتر است و باید ابتدا امتحان شود. این دستور تنها برای دستگاههایی با رسانه جداشدنی مناسب است.
برای بارگذاری و خارج کردن نوارهای مغناطیسی باید از ابزار mt استفاده شود (یعنی نه از این دستورات). دستور «ready» برای دستگاههای نوار معتبر است.
مثالها (EXAMPLES)
برای فهرست کردن پارامترهای وضعیت رایج (عمومی) یک دیسک:
sdparm /dev/sda
برای فهرست کردن شناساگرهای موجود در صفحه VPD شناسایی دستگاه مربوط به یک دیسک:
sdparm --inquiry /dev/sda
برای مشاهده تمامی پارامترها برای صفحه وضعیت caching:
sdparm --page=ca /dev/sda
برای مشاهده تمامی پارامترها برای صفحه وضعیت caching همراه با توضیحات پارامترها در سمت راست:
sdparm --page=ca --long /dev/sda
برای دریافت مقادیر WCE (جاری، قابل تغییر، پیشفرض و ذخیرهشده) به صورت هگزادسیمال:
sdparm -g WCE -H /dev/sda
0x01 0x00 0x01 0x01
برای دریافت مقدار جاری WCE به صورت هگزادسیمال:
sdparm -g WCE=1 -H /dev/sda
0x01
برای تنظیم بیت «Writeback Cache Enable» در صفحه مقادیر جاری:
sdparm --set=WCE /dev/sda
برای تنظیم بیت «Writeback Cache Enable» در صفحه مقادیر جاری و ذخیرهشده:
sdparm --set=WCE --save /dev/sda
برای تنظیم «Writeback Cache Enable» و پاک کردن «Read Cache Disable»:
sdparm --set=WCE --clear=RCD --save /dev/sda
مثال قبلی را میتوان به این صورت نیز نوشت:
sdparm -s WCE=1,RCD=0 -S /dev/sda
برای بازگرداندن پیشفرضهای سازنده در مقادیر جاری و ذخیرهشده صفحه وضعیت caching:
sdparm --page=ca --defaults --save /dev/sda
اگر یک درایو cd/dvd از نوع ATAPI در مسیر /dev/hdc باشد، پارامترهای (وضعیت) رایج آن میتوانند در سری لینوکس 2.6 و 3 با دستور زیر فهرست شوند:
sdparm /dev/hdc
اگر یک DVD درون درایو در مسیر /dev/hdc باشد، در سری لینوکس 2.6 و 3 میتواند با دستور زیر خارج شود:
sdparm --command=eject /dev/hdc
اگر از خروج دیسک توسط نرمافزار جلوگیری میشود، میتوان آن را با دستور زیر لغو کرد:
sdparm --command=unlock /dev/hdc
یکی از سازندگان دیسک دارای بیت «Performance Mode» (PM) در صفحه وضعیت unit attention مخصوص سازنده [0x0,0x0] است. مقدار PM=0 حالت سرور (پیشفرض) و مقدار PM=1 حالت رومیزی است. حالت رومیزی را میتوان (برای هر دو مقادیر جاری و ذخیرهشده) با دستور زیر تنظیم کرد:
sdparm --page=0 --set=2:7:1=1 --save /dev/sda
تغییر حاصلشده میتواند با گزینه --hex به صورت هگز مشاهده شود زیرا هنوز نام اختصاری برای الحاقات سازندگان وجود ندارد. بیت PM اکنون توسط صفحات وضعیت مخصوص تولیدکننده پوشش داده شده و عمل فوق را میتوان با دستور زیر نیز انجام داد:
sdparm --vendor=sea --set=PM --save /dev/sda
آنچه در ادامه میآید چند مثال از ویندوز با استفاده از گزینه «--wscan» است. ایده کار فهرست کردن نامهای دستگاههای ذخیرهسازی در سیستم است که ممکن است در کاربردهای دیگر sdparm فراخوانی شوند.
# sdparm --wscan PD0 [C] FUJITSU MHY2160BH 0000 PD1 [DF] WD 2500BEV External 1.05 WD-WXE90 CDROM0 [E] MATSHITA DVD/CDRW UJDA775 CB03
بنابراین «sdparm -a CDROM0» و «sdparm -a E» تمام فیلدهای (شناختهشده) صفحه وضعیت را برای درایو DVD/CD شرکت Matshita نشان خواهند داد. با استفاده دو بار از گزینه «--wscan»، نوع گذرگاه (آنطور که توسط سیستمعامل دیده میشود) به خروجی افزوده میشود:
# sdparm -ww PD0 [C] <Ata > FUJITSU MHY2160BH 0000 PD1 [DF] <Usb > WD 2500BEV External 1.05 WD-WXE90 CDROM0 [E] <Atapi> MATSHITA DVD/CDRW UJDA775 CB03
و همین الگو برای افزودن پویش آداپتور SCSI ادامه مییابد. این مورد در صورتی مفید است که دستگاههای تخصصی مرتبط با ذخیرهسازی وجود داشته باشند (برای نمونه یک دستگاه SES در یک محفظه)، اما در این حالت اطلاعات اضافی زیادی اضافه میکند.
# sdparm -www PD0 [C] <Ata > FUJITSU MHY2160BH 0000 PD1 [DF] <Usb > WD 2500BEV External 1.05 WD-WXE90 CDROM0 [E] <Atapi> MATSHITA DVD/CDRW UJDA775 CB03 SCSI0:0,0,0 claimed=1 pdt=0h FUJITSU MHY2160BH 0000 SCSI1:0,0,0 claimed=1 pdt=5h MATSHITA DVD/CDRW UJDA775 CB03
کدهای خروج (EXIT STATUS)
برای کمک به اسکریپتهایی که sdparm را فراخوانی میکنند، وضعیت خروج برای نشان دادن موفقیت (0) یا شکست (1 یا بیشتر) تنظیم شده است. توجه داشته باشید که برخی از مقادیر پایینتر متناظر با مقادیر کلید sense در SCSI هستند. مقادیر وضعیت خروج عبارتند از:
- 0
- موفقیتآمیز.
- 1
- خطای نگارشی (سینتکس). شامل گزینههای غیرمجاز خط فرمان، گزینههایی با آرگومانهای نادرست یا ترکیبی از گزینهها که مجاز نیستند.
- 2
- دستگاه DEVICE گزارش میدهد که برای عملیات درخواستی آماده نیست. دستگاه ممکن است در حال آماده شدن باشد (برای نمونه بالا بردن دور موتور اما نرسیدن به سرعت نامی) بنابراین ممکن است ابزار پس از مدتی انتظار کار کند.
- 3
- دستگاه DEVICE یک خطای رسانه یا سختافزار (یا blank check) را گزارش میدهد. برای نمونه تلاش برای خواندن یک بلوک آسیبدیده روی دیسک این مقدار را بازمیگرداند.
- 5
- دستگاه DEVICE یک درخواست غیرمجاز («illegal request») همراه با کد sense اضافی به جز «invalid operation code» را گزارش میدهد. این حالت اغلب نشاندهنده یک دستور پشتیبانیشده با فیلدی تنظیمشده برای قابلیتی پشتیبانینشده است. برای دستورهایی که به فیلد «service action» نیاز دارند، این مقدار میتواند نشان دهد که دستور پشتیبانی نمیشود.
- 6
- دستگاه DEVICE یک وضعیت «unit attention» را گزارش میدهد. این وضعیت معمولاً نشان میدهد اتفاقی نامرتبط با دستور درخواستی رخ داده است (مانند بازنشانی دستگاه) که احتمالاً پیش از ارسال دستور فعلی SCSI رخ داده است. دستور درخواستی توسط دستگاه اجرا نشده است. توجه داشته باشید که وضعیتهای unit attention معمولاً فقط یکبار توسط یک دستگاه گزارش میشوند.
- 7
- دستگاه DEVICE یک کلید sense از نوع «data protect» را گزارش میدهد. این بدان معناست که سازوکاری مانع از نوشتن (یا احتمالاً تمامی دسترسیها به رسانه) شده است.
- 9
- دستگاه DEVICE یک درخواست غیرمجاز همراه با کد sense اضافی از نوع «invalid operation code» را گزارش میدهد که بدان معناست دستور درخواستی را پشتیبانی نمیکند.
- 10
- دستگاه DEVICE وضعیت «copy aborted» را گزارش میدهد. این بدان معناست که دستور دیگر یا مشکلی در دستگاه یک عملیات رونوشت را متوقف کرده است. خانواده دستورهای EXTENDED COPY (شامل WRITE USING TOKEN) ممکن است این کلید sense را بازگردانند.
- 11
- دستگاه DEVICE یک دستور لغوشده (aborted command) را گزارش میدهد. در برخی موارد دستورهای لغوشده را میتوان بلافاصله دوباره تکرار کرد (برای نمونه اگر پروتکل انتقال دستور را به دلیل ازدحام لغو کرده باشد).
- 14
- دستگاه DEVICE یک کلید sense از نوع عدم تطابق (miscompare) را گزارش میدهد. دستورهای VERIFY و COMPARE AND WRITE ممکن است این مقدار را گزارش کنند.
- 15
- ابزار قادر به باز کردن، بستن یا استفاده از DEVICE مشخصشده نیست. نام فایل دادهشده ممکن است اشتباه باشد یا مشکلات مربوط به دسترسیها وجود داشته باشد. افزودن گزینه -v ممکن است اطلاعات بیشتری ارائه دهد.
- 20
- دستگاه DEVICE گزارش میدهد که وضعیت بررسی دارد اما «no sense» است. برخی دستورهای نظرسنجی (مانند REQUEST SENSE) میتوانند چنین واکنشی نشان دهند. بعید است که این مقدار به عنوان وضعیت خروج ظاهر شود.
- 21
- دستگاه DEVICE یک «recovered error» (خطای بازیابیشده) را گزارش میدهد. دستور درخواستی موفق بوده است. به احتمال زیاد ابزار خطای بازیابیشده را به stderr گزارش داده و ادامه میدهد و در نتیجه ابزار با وضعیت خروج 0 پایان مییابد.
- 22
- دستگاه DEVICE گزارش میدهد که دستور فعلی یا پارامترهای آن بیانگر یک نشانی بلوک منطقی (LBA) خارج از محدوده است.
- 24
- دستگاه DEVICE یک وضعیت SCSI از نوع تداخل در رزرو («reservation conflict») را گزارش میدهد. این بدان معناست که دسترسی به DEVICE با دستور فعلی مسدود شده است زیرا ماشین دیگری (HBA یا یک «initiator» دیگر در SCSI) یک رزرو فعال روی این DEVICE دارد. در سیستمهای نوین SCSI این موضوع به استفاده از خانواده دستورهای PERSISTENT RESERVATION مربوط میشود.
- 25
- دستگاه DEVICE یک وضعیت SCSI از نوع «condition met» را گزارش میدهد. در حال حاضر فقط دستور PRE-FETCH (سند SBC-4 را ببینید) این وضعیت را ایجاد میکند.
- 26
- دستگاه DEVICE یک وضعیت SCSI از نوع مشغول («busy») را گزارش میدهد. استاندارد SAM-5 این وضعیت را اینگونه تعریف میکند که واحد منطقی به طور موقت قادر به پردازش دستور نیست. توصیه میشود دستور دوباره ارسال شود.
- 27
- دستگاه DEVICE یک وضعیت SCSI از نوع پر بودن صف وظایف («task set full») را گزارش میدهد.
- 28
- دستگاه DEVICE یک وضعیت SCSI از نوع «ACA active» را گزارش میدهد. عبارت ACA مخفف «auto contingent allegiance» بوده و به ندرت استفاده میشود.
- 29
- دستگاه DEVICE یک وضعیت SCSI از نوع «task aborted» را گزارش میدهد. استاندارد SAM-5 میگوید: «این وضعیت زمانی بازگردانده میشود که دستوری توسط یک تابع مدیریت دستور یا وظیفه در I_T nexus دیگری لغو شده باشد و بیت TAS در صفحه وضعیت Control روی یک تنظیم شده باشد».
- 33
- دستور ارسالشده به DEVICE دچار مهلت زمانی (timeout) شده است. این وضعیت تنها در لینوکس رخ میدهد؛ در سایر سیستمعاملها اتمام مهلت دستور به صورت یک خطای پروتکل انتقال (یا سیستمعامل) ظاهر میشود.
- 40
- دستور ارسالشده به DEVICE یک کلید sense از نوع «aborted command» با کد sense اضافی 0x10 دریافت کرده است. این مقدار مربوط به مشکلات اطلاعات حفاظت (PI یا DIF) است. برای نمونه این خطا ممکن است هنگام خواندن بلوکی روی یک درایو که هرگز روی آن نوشته نشده است (یا نگاشتنشده است) در صورتی رخ دهد که درایو با حفاظت نوع 1، 2 یا 3 قالببندی شده باشد.
- 48
- این یک پیام داخلی است که نشان میدهد فیلد وضعیت NVMe (SF) پس از اجرای یک دستور مقداری غیر از صفر دارد (یعنی مشکلی رخ داده است). کار در این زمینه در حال حاضر تجربی است.
- 49
- درایور سطح پایین گزارش میدهد که تعداد باقیمانده بایتهای پاسخ (residual count، یعنی تعداد بایتهایی که در عمل توسط HBA دریافت شدهاند برابر است با 'requested_bytes - residual_count') بسیار زیاد است. بنابراین هیچ پردازش مفیدی با آن پاسخ نمیتوان انجام داد.
- 50 + <os_error_number>
- فراخوانیهای سیستمی که با شکست مواجه میشوند اغلب یک عدد صحیح کوچک برای کمک به نشان دادن نوع خطا بازمیگردانند. برای نمونه در یونیکس ناتوانی یک فراخوانی سیستم در تخصیص حافظه (در 'errno') مقدار ENOMEM را برمیگرداند که اغلب با عدد صحیح 12 همراه است. بنابراین در این حالت ممکن است مقدار 62 (یعنی '50 + 12') توسط ابزار بازگردانده شود.
- 97
- پاسخ به دستور SCSI در بررسیهای سلامت اولیه (sanity checks) رد شده است.
- 98
- دستگاه DEVICE گزارش میدهد که وضعیت check condition دارد اما خطا در هیچیک از دستههای فوق قرار نمیگیرد.
- 99
- هر خطایی که نتوان در مقادیر 1 تا 98 دستهبندی کرد ممکن است این مقدار را بازگرداند. این شامل خطاهای پروتکل انتقال و سیستمعامل پس از ارسال دستور به دستگاه میشود.
- 126
- ابزار پیدا شد اما قابل اجرا نبود. این حالت ممکن است زمانی رخ دهد که فایل اجرایی دسترسیهای اجرا نداشته باشد.
- 127
- این وضعیت خروج برای حالتی است که ابزار پیدا نشود. این ممکن است زمانی رخ دهد که اسکریپتی ابزاری در این بسته را فراخوانی میکند اما متغیر محیطی PATH به درستی تنظیم نشده است، بنابراین اسکریپت نمیتواند فایل اجرایی را پیدا کند.
- 128 + <signum>
- اگر سیگنالی ابزار را متوقف کند، وضعیت خروج برابر با 128 به علاوه شماره سیگنال خواهد بود. برای نمونه اگر خطای تکهتکهشدن حافظه (segmentation fault) رخ دهد، ابزار معمولاً با سیگنال SIGSEGV خاتمه مییابد که طبق 'man 7 signal' شماره سیگنال متناظر آن 11 است؛ بنابراین وضعیت خروج 139 خواهد بود.
- 255
- ابزار تلاش کرده است وضعیت خروج 255 یا بزرگتر را ارائه دهد. این اتفاق نباید رخ دهد؛ در اینجا برای کامل بودن ذکر شده است.
بیشتر شرایط خطای گزارششده در بالا تکرارپذیر خواهند بود (یک نمونه که تکرارپذیر نیست «unit attention» است)، بنابراین میتوان ابزار را دوباره با گزینه -v (یا چند بار تکرار آن) اجرا کرد تا اطلاعات بیشتری به دست آید.
نویسندگان (AUTHORS)
نوشتهشده توسط Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش باگها را به <dgilbert at interlog dot com> ارسال کنید.
حق نشر (COPYRIGHT)
حق نشر © 2005-2021
Douglas Gilbert
این
نرمافزار
تحت مجوز FreeBSD
توزیع
میشود. هیچ
ضمانتی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
تناسب با یک
هدف خاص.
وبگاه (WEB SITE)
یک صفحه وب برای بحث درباره این بسته در آدرس زیر وجود دارد: https://sg.danny.cz/sg/sdparm.html
همچنین ببینید (SEE ALSO)
hdparm(hdparm), sg_modes, sg_wr_mode, sginfo, sg_inq, sg_vpd(all in sg3_utils), smartmontools(smartmontools.sourceforge.net), mt, eject(eject)
| April 2021 | sdparm-1.12 |