| SG_FORMAT(8) | SG3_UTILS | SG_FORMAT(8) |
نام (NAME)
sg_format - قالببندی، قالببندی با پیشتنظیم، تغییر اندازه دیسک SCSI و قالببندی نوار
خلاصه دستور (SYNOPSIS)
sg_format [--cappid] [--cmplst={0|1}] [--count=COUNT] [--dcrt] [--dry-run] [--early] [--ffmt=FFMT] [--fmtmaxlba [--format] [--help] [--ip-def] [--long] [--mode=MP] [--pfu=PFU] [--pie=PIE] [--pinfo] [--poll=PT] [--preset=ID] [--quick] [--resize] [--rto_req] [--security] [--six] [--size=LB_SZ] [--tape=FM] [--timeout=SECS] [--verbose] [--verify] [--version] [--wait] DEVICE
توضیحات (DESCRIPTION)
همه دستگاههای دسترسی مستقیم SCSI نیازی به قالببندی ندارند و برخی دارای رویههای قالببندی ویژه سازنده هستند. دیسکهای SCSI با رسانه چرخان احتمالاً بزرگترین گروهی هستند که از عملیات قالببندی «استاندارد» پشتیبانی میکنند. آنها معمولاً در کارخانه با اندازه بلوک ۵۱۲ بایت و با بیشترین تعداد بلوکی که سازنده توصیه میکند قالببندی میشوند. توصیه سازنده معمولاً تعداد معینی از شیارها (tracks) را در سراسر رسانه برای انتساب مجدد بلوکها به آدرسهای بلوک منطقی در طول عمر دیسک کنار میگذارد.
این ابزار یکی از سه دستور قالببندی SCSI را صادر میکند: FORMAT UNIT، FORMAT MEDIUM یا FORMAT WITH PRESET. در توضیحات زیر، بخشهای بدون قید معمولاً به دستور SCSI FORMAT UNIT اشاره دارند. هر دو دستور FORMAT UNIT و FORMAT WITH PRESET برای دیسکها (یا دستگاههای شبهدیسک) کاربرد دارند. دستور FORMAT MEDIUM مخصوص نوارها است. پاسخ SCSI INQUIRY «نوع دستگاه جانبی» (PDT) هر دستگاه SCSI را دستهبندی میکند. این ابزار از PDT برای بررسی تعارض میان DEVICE و گزینه دادهشده استفاده میکند (برای نمونه، دادن گزینه --tape=FM هنگامی که DEVICE یک دیسک معمولی است). در صورت وجود تعارض، این ابزار ادامه نخواهد داد.
این ابزار میتواند دیسکهای مدرن SCSI را قالببندی کرده و در صورت مجاز بودن، اندازه بلوک و تعداد بلوکهای آنها را تغییر دهد (یعنی تعداد بلوکهای قابل دسترسی روی رسانه که به «تغییر اندازه» یا resizing نیز معروف است). تغییر اندازه دیسک به کمتر از تعداد بلوکهای توصیهشده توسط سازنده گاهی «کورس کوتاه» (short stroking) نامیده میشود (بخش «نکات» را ببینید). تغییر اندازه تعداد بلوکها در حالی که اندازه بلوک تغییر نکند ممکن است نیازی به عملیات قالببندی نداشته باشد. استاندارد SBC-2 (به سایت www.t10.org مراجعه فرمایید) صفحه حالت «format device» را منسوخ کرده است. بسیاری از جزئیات سطح پایین موجود در آن صفحه حالت اکنون به صلاحدید سازنده واگذار شده است. یک صفحه لاگ وضعیت قالببندی (Format Status) وجود دارد که عملیاتهای قالببندی موفق قبلی را گزارش میدهد.
هنگامی که این ابزار بدون گزینه استفاده شود (یعنی فقط یک آرگومان DEVICE به آن داده شود)، اندازه بلوک و تعداد بلوکهای موجود را که از دو منبع به دست آمدهاند چاپ میکند. این دو منبع عبارتند از توصیفگر بلوک در پاسخ به دستور MODE SENSE و پاسخ به دستور READ CAPACITY. دلیل این بررسی دوگانه، شناسایی وضعیت «قالب خراب» (format corrupt) است (بخش «نکات» را ببینید). این شیوه استفاده دیسک را تغییر نخواهد داد.
هنگامی که این ابزار با یکی از گزینههای --format، --preset=ID یا --tape=FM استفاده شود، تلاش میکند DEVICE مشخصشده را قالببندی کند. در غیاب گزینه --quick یک توقف ۱۵ ثانیهای وجود دارد که در طول این مدت کاربر سه بار (با فاصله ۵ ثانیه) برای لغو sg_format دعوت میشود. این رخداد دقیقاً پیش از صدور دستور SCSI FORMAT UNIT، FORMAT WITH PRESET یا FORMAT MEDIUM اتفاق میافتد. برای اطلاعات بیشتر بخش «نکات» را ببینید.
اطلاعات محافظت (PI) اختیاری است و از یک یا چند فاصله محافظت تشکیل شده است که هر کدام از ۸ بایت مرتبط با یک بلوک منطقی تشکیل شدهاند. هنگامی که PI فعال باشد، هر بلوک منطقی دارای ۱، ۲، ۴، ۸ یا بیشتر فاصله محافظت (توانی از دو) خواهد بود که در میان دادههای کاربر مربوطه قرار گرفته و پس از آن میآیند. چهار نوع محافظت تعریف شده است که نوع ۰ به معنای عدم وجود فواصل محافظت است. برای اطلاعات بیشتر بخش «اطلاعات محافظت» را در ادامه ببینید.
هنگامی که گزینه --tape=FM داده شود، دستور SCSI FORMAT MEDIUM به DEVICE ارسال میشود. دستور FORMAT MEDIUM در اسناد SSC در T10 تعریف شده و یک حجم را برای استفاده آماده میکند. این کار ممکن است شامل پارتیشنبندی رسانه باشد. برای اطلاعات بیشتر بخش «نوار» را در ادامه ببینید.
دستور FORMAT WITH PRESET در پیشنویس SBC-4 ویرایش ۱۸ افزوده شد. یک الگوی پیشتنظیم که توسط فیلد PRESET IDENTIFIER انتخاب میشود (--id=FWPID)، روی دیسک نوشته میشود. صفحه FORMAT PRESETS VPD (کد 0xb8) را برای فهرستی از شناسههای پیشتنظیم قالببندی موجود و دادههای مرتبط با آنها بررسی کنید.
گزینهها (OPTIONS)
آرگومانهای گزینههای بلند برای گزینههای کوتاه نیز اجباری هستند. گزینهها بر اساس حروف الفبای نام گزینه بلند مرتب شدهاند.
- -a, --cappid
- این گزینه
بیت CAPPID را در
سرآیند MODE SELECT
که بخشی از
فهرست
پارامترهای
آن دستور
است تنظیم
میکند.
هنگامی که
COUNT (تعداد
بلوکهای
منطقی) در
حال تغییر
است، به
دستور MODE SELECT
نیاز است.
دستور MODE SELECT
باید پیش از
اجرای
دستور FORMAT UNIT با
موفقیت به
پایان برسد.
بیت CAPPID
(معرفیشده
در SBC-5 ویرایش
۴) ارتباط
نزدیکی با
صفحه VPD
نگاشت
ظرفیت/شناسایی
محصول (0xba)
دارد. اگر
آن صفحه VPD
وجود
نداشته
باشد، بیت CAPPID
تنظیم
نمیشود
مگر اینکه
این گزینه
دو بار داده
شود. اگر
بیت CAPPID
پشتیبانی
نشود، یک
کلید حس (sense key)
خطای illegal request
همراه با حس
اضافی «invalid field in
parameter list» باید
گزارش شود.
در صورت موفقیت، این گزینه ممکن است منجر به تغییر فیلد شناسایی محصول در پاسخ استاندارد INQUIRY شود. در این صورت، وضعیت Unit attention با حس اضافی «Inquiry data has changed» تنظیم میشود. - -C, --cmplst={0|1}
- بیت CMPLST («فهرست کامل») را در cdb دستور FORMAT UNIT روی ۰ یا ۱ تنظیم میکند. اگر مقدار ۰ باشد، GLIST موجود (فهرست رشدیافته عیوب) در نظر گرفته میشود. اگر مقدار ۱ باشد، GLIST موجود نادیده گرفته میشود. مقدار پیشفرض CMPLST برابر ۱ است، مگر زمانی که مقدار گزینه --ffmt=FFMT غیرصفر باشد که در این حالت پیشفرض CMPLST برابر ۰ است. بخش «فهرستها» را در ادامه ببینید. در بیشتر موارد این بیت باید در مقدار پیشفرض خود باقی بماند.
- -c, --count=COUNT
- که در آن COUNT
تعداد
بلوکها
برای
قالببندی
یا تغییر
اندازه
رسانه به آن
است.
میتواند
با --format یا --resize
استفاده
شود. همراه
با --format نیازی
به دادن این
گزینه نیست
که در این
صورت صفر
فرض میشود.
با --format تفسیر COUNT چنین است:(COUNT > 0) : فقط COUNT بلوک نخست را قالببندی میکند و READ CAPACITY پس از قالببندی COUNT بلوک را گزارش میدهد (COUNT = 0) و اندازه بلوک بدون تغییر : استفاده از تعداد بلوکهای موجود (COUNT = 0) و اندازه بلوک تغییر یافته : حداکثر تعداد بلوک پیشنهادی برای اندازه بلوک جدید (COUNT = -1) : استفاده از حداکثر تعداد بلوک پیشنهادی (COUNT < -1) : غیرمجاز
با --resize این گزینه باید داده شود و COUNT چنین تفسیری دارد:(COUNT > 0) : پس از تغییر اندازه READ CAPACITY مقدار COUNT بلوک را گزارش میدهد (COUNT = 0) : پس از تغییر اندازه READ CAPACITY مقدار ۰ بلوک را گزارش میدهد (COUNT = -1) : پس از تغییر اندازه READ CAPACITY حداکثر تعداد بلوکهای خود را گزارش میدهد (COUNT < -1) : غیرمجاز
در هر دو حالت اگر COUNT دادهشده از حداکثر تعداد بلوکها (برای آن اندازه بلوک) فراتر رود، دیسک خطا گزارش میدهد. بخش «نکات» را در ادامه ببینید. - -D, --dcrt
- این گزینه
بیت DCRT را در
سرآیند
فهرست
پارامترهای
دستور FORMAT UNIT
تنظیم
میکند. این
کار
«اعتبارسنجی
را
غیرفعال»
میکند.
اعتبارسنجی
بررسی
میکند که
بلوکها در
طول فرآیند
قالببندی
قابل
استفاده
باشند.
استفاده از
این گزینه
ممکن است
سرعت
قالببندی
را بالا
ببرد اما
--ffmt=FFMT در صورت
موجود
بودن،
احتمالاً
بهتر خواهد
بود. رفتار
پیشفرض
این ابزار
(زمانی که
این گزینه
داده
نمیشود)
پاک کردن
بیت DCRT و در
نتیجه
درخواست
«اعتبارسنجی
رسانه» است
(همچنین مگر
اینکه
گزینه
دیگری نیاز
داشته
باشد، بیت FOV
پاک خواهد
شد). هنگامی
که بیت DCRT
تنظیم
میشود،
بیت FOV نیز
باید تنظیم
شود و sg_format این
کار را
انجام
میدهد.
اگر این گزینه دو بار داده شود، اعتبارسنجی با پاک کردن بیت DCRT و تنظیم بیت FOV فعال میشود. هر دوی این بیتها در فهرست پارامترهای مرتبط با cdb دستور FORMAT UNIT یافت میشوند. - -d, --dry-run
- این گزینه خط فرمان را تجزیه کرده، تمام مراحل آمادهسازی را انجام میدهد اما از اجرای واقعی دستورات FORMAT UNIT، FORMAT WITH PRESET یا FORMAT MEDIUM صرفنظر میکند. همچنین اگر گزینهها موجب تغییر اندازه بلوک منطقی میشدند، از دستور MODE SELECT نیز در زمان اجرای آزمایشی (dry run) صرفنظر میشود.
- -e, --early
- در طول عملیات قالببندی، رفتار پیشفرض این ابزار نظرسنجی دیسک در هر ۶۰ ثانیه (یا هر ۱۰ ثانیه در صورت غیرصفر بودن FFMT) برای تعیین پیشرفت عملیات قالببندی تا اتمام آن است. هنگامی که این گزینه داده شود این ابزار «زودهنگام» خارج میشود، یعنی به محض اینکه عملیات قالببندی آغاز شد. سپس کاربر میتواند پیشرفت عملیات را با ابزارهای دیگر (مانند sg_turs(8) یا sg_requests(8)) نظارت کند. این گزینه و --wait ناسازگار با یکدیگر هستند.
- -t, --ffmt=FFMT
- مقدار FFMT
(قالببندی
سریع) در
فیلدی به
همین نام در
cdb دستور FORMAT UNIT
قرار
میگیرد.
این فیلد در
SBC-4 ویرایش ۱۰
معرفی شد.
مقدار
پیشفرض ۰
است که
نشاندهنده
رفتار
پیشین است
که معمولاً
بازنویسی
تمام
بلوکها
روی DEVICE است.
این کار
میتواند
زمان زیادی
ببرد (مثلاً
در
دیسکهای
سخت بیش از
۱۰ ترابایت
ممکن است
چند روز طول
بکشد). با
تنظیم FFMT
این زمان
ممکن است به
چند دقیقه
یا کمتر
کاهش یابد؛
بنابراین
در صورت در
دسترس
بودن، ارزش
امتحان
کردن دارد.
FFMT مقادیر ۱ و ۲ را برای قالببندی سریع دارد و ۳ در حال حاضر رزرو شده است. این دو مقدار شامل این توصیف هستند: «سرور دستگاه رسانه را راهاندازی اولیه میکند... بدون بازنویسی رسانه (یعنی منابع لازم برای مدیریت دسترسی به رسانه راهاندازی اولیه میشوند و روی رسانه نوشته نمیشود)». تفاوت میان ۱ و ۲ مربوط به عملیات خواندن روی LBAهایی است که پس از قالببندی سریع دادهای روی آنها نوشته نشده است. هنگامی که FFMT برابر ۱ باشد، عملیات خواندن باید «دادههای نامشخص بلوک منطقی» را برگرداند و بدون خطا به پایان برسد. هنگامی که FFMT برابر ۲ باشد، عملیات خواندن ممکن است وضعیت check condition را با کلید حس تنظیمشده روی خطای سختافزاری، خطای رسانه یا لغو دستور بازگرداند. برای جزئیات بیشتر پیشنویس SBC-4 ویرایش ۱۶ بخش 4.34 را ببینید. - -b, --fmtmaxlba
- این گزینه تنها زمانی فعال است که همراه با گزینه --preset=ID داده شود. در این صورت، فیلد FMTMAXLBA را در دستور FORMAT WITH PRESET تنظیم میکند.
- -f, --fmtpinfo=FPI
- فیلد FMTPINFO را در cdb دستور FORMAT UNIT روی مقداری بین ۰ تا ۳ تنظیم میکند. مقدار پیشفرض ۰ است. فیلد FMTPINFO از SBC-3 ویرایش ۱۶ یک فیلد ۲ بیتی است (بیتهای ۷ و ۶ از بایت ۱ در cdb). پیش از آن ویرایش، یک فیلد تکبیتی بود (بیت ۷ از بایت ۱ در cdb) و بیتی همراه به نام RTO_REQ (بیت ۶ از بایت ۱ در cdb) وجود داشت. گزینههای منسوخشده «--pinfo» و «--rto-req» نشاندهنده استفاده قدیمیتر هستند. این گزینه باید بهجای آنها استفاده شود. برای اطلاعات بیشتر بخش «اطلاعات محافظت» را در ادامه ببینید.
- -F, --format
- یکی از سه
دستور
«قالببندی»
SCSI را صادر
میکند. در
غیاب
گزینههای
--preset=ID و --tape=FM،
دستور SCSI FORMAT UNIT
صادر
میشود.
این
دستورات
تمام
دادههای
موجود روی
رسانه را
نابود
خواهند
کرد. این
گزینه برای
تغییر
اندازه
بلوک دیسک
الزامی است.
در غیاب
گزینه --quick،
یک شمارش
معکوس ۱۵
ثانیهای
به کاربر
داده
میشود تا
درباره
درستی این
کار تأمل
کند؛ در طول
این مدت
میتوان از
Control-C (در میان
سایر
دستورات
یونیکس)
برای متوقف
کردن این
فرآیند پیش
از ایجاد
آسیب
استفاده
کرد.
هنگامی که سه بار (یا بیشتر) استفاده شود، از دستورات مقدماتی MODE SENSE و SELECT صرفنظر میشود و تنها دستورات اولیه INQUIRY و FORMAT UNIT باقی میمانند. این حالت برای استفاده اضطراری است (مثلاً زمانی که دستورات MODE SENSE/SELECT کار نمیکنند) و نمیتواند اندازه بلوک منطقی را تغییر دهد.
دستگاههای ناحیهبندیشده تحت مدیریت میزبان (مانند بسیاری از دیسکهای ناحیهای) دارای PDT متفاوتی نسبت به سایر دیسکها هستند اما همچنان میتوان آنها را مانند دیسکهای «معمولی» قالببندی کرد.
برای جزئیات پیادهسازی بخش «نکات» و برای کاربردهای متداول بخش «مثالها» را ببینید. - -h, --help
- اطلاعات نحوه استفاده را چاپ کرده و خارج میشود.
- -I, --ip-def
- الگوی راهاندازی اولیه (Initialization Pattern) پیشفرض را تنظیم میکند. برخی دیسکها (SSDها) از این گزینه برای نشان دادن این که قالببندی باید تخصیص کامل (fully provision - یعنی انتساب یک بلوک فیزیکی به هر بلوک منطقی) انجام دهد استفاده میکنند. همین دیسکها (SSDها) اگر این گزینه داده نشود ممکن است تخصیص پویا (thin provision) را اعمال کنند. در صورت تعیین این گزینه، گزینه --security نمیتواند داده شود. همچنین --ip_def را نیز برای این گزینه میپذیرد.
- -l, --long
- رفتار پیشفرض این ابزار فرض آدرسهای بلوک منطقی ۳۲ بیتی است. با اندازه بلوک ۵۱۲ بایتی، این امکان بیش از ۲ ترابایت (تقریباً ۲ به توان ۴۱ بایت) را روی یک دیسک منفرد فراهم میکند. این گزینه دستورات و پارامترهایی را انتخاب میکند که امکان آدرسهای بلوک منطقی ۶۴ بیتی را فراهم میسازند. بهطور مشخص این گزینه پرچم «longlba» را در دستور MODE SENSE (10) تنظیم کرده و بهجای READ CAPACITY (10) از READ CAPACITY (16) استفاده میکند. اگر این گزینه داده نشود و READ CAPACITY (10) یا MODE SELECT دیسکی را شناسایی کند که برای نمایش بلوکهای منطقی خود به بیش از ۳۲ بیت نیاز دارد، بهطور داخلی فعال میشود. این گزینه بیت LONGLIST را در دستور FORMAT UNIT تنظیم نمیکند. بیت LONGLIST بسته به سایر پارامترها در صورت نیاز تنظیم میشود (مثلاً زمانی که '--pie=PIE' بزرگتر از صفر باشد).
- -M, --mode=MP
- مقدار MP
شماره صفحه
حالت (۰ تا
۶۲ شامل هر
دو) است که
برای
خواندن و
احتمالاً
تغییر
اندازه
بلوک منطقی
دستگاه
استفاده
خواهد شد.
مقدار
پیشفرض ۱
است که صفحه
حالت
«بازیابی
خطای
خواندن-نوشتن»
(Read-Write Error Recovery)
میباشد.
ترجیحاً صفحه حالت انتخابی (یا پیشفرض) باید قابل ذخیرهسازی باشد (یعنی پذیرش تنظیم بیت SP در دستور MODE SELECT استفادهشده هنگام تغییر اندازه بلوک منطقی). نسخه اخیر این ابزار در صورتی که گونه SP=1 با کلید حس ILLEGAL REQUEST با شکست مواجه شود، دستور MODE SELECT را دوباره تلاش میکند. آن تلاش مجدد از همان دستور MODE SELECT اما با SP=0 استفاده خواهد کرد. - -P, --pfu=PFU
- فیلد «کاربرد فیلد محافظت» (Protection Field Usage) را در بلوک پارامتر مرتبط با یک دستور FORMAT UNIT روی PFU تنظیم میکند. مقدار پیشفرض ۰ است و تنها مقدار تعریفشده دیگر در حال حاضر ۱ است. برای اطلاعات بیشتر بخش «اطلاعات محافظت» را در ادامه ببینید.
- -q, --pie=PIE
- فیلد «نمای فواصل محافظت» (Protection Interval Exponent) را در بلوک پارامتر مرتبط با یک دستور FORMAT UNIT روی PIE تنظیم میکند. مقدار پیشفرض ۰ است. PIE تنها میتواند با انواع محافظت ۲ و ۳ غیرصفر باشد. مقدار ۰ برای بلوکهای ۵۱۲ بایتی متداول است؛ با بلوکهای ۴۰۹۶ بایتی مقدار ۳ ممکن است مناسب باشد (یعنی ۸ فاصله محافظت که با ۴۰۹۶ بایت داده کاربر درهمآمیخته شدهاند). یک دستگاه ممکن است از هیچ مقدار غیرصفری پشتیبانی نکند. این فیلد نخستین بار در SBC-3 ویرایش ۱۸ ظاهر شد.
- -p, --pinfo
- این گزینه منسوخ شده است، بهجای آن از گزینه --fmtpinfo=FPI استفاده کنید. در صورت استفاده، بیت ۷ از بایت ۱ را در cdb دستور FORMAT UNIT تنظیم میکند که معادل تنظیم --fmtpinfo=2 است. [بنابراین اگر --pinfo استفاده شود (و --fmtpinfo=FPI و --pfu=PFU داده نشوند یا آرگومانهای آنها ۰ باشد) نوع محافظت ۱ انتخاب میشود.]
- -x, --poll=PT
- که در آن PT نوع نظرسنجی مورد استفاده است. اگر PT برابر ۰ باشد از دستور TEST UNIT READY استفاده میشود، در غیر این صورت از دستور REQUEST SENSE استفاده خواهد شد. پیشفرض در حال حاضر ۰ است اما در آینده نزدیک به ۱ تغییر خواهد کرد. بخش «نکات» را در ادامه ببینید.
- -E, --preset=ID
- این گزینه به این ابزار دستور میدهد یک دستور SCSI FORMAT WITH PRESET صادر کند. فیلد PRESET IDENTIFIER در آن cdb روی ID تنظیم میشود. فیلد IMMED در آن cdb نیز تنظیم میشود مگر اینکه گزینه --wait نیز داده شده باشد که در آن صورت پاک میشود.
- -Q, --quick
- عمل پیشفرض (زمانی که گزینه داده نمیشود) دادن ۱۵ ثانیه به کاربر برای تجدید نظر در انجام عملیات قالببندی روی DEVICE است. با دادن این گزینه، از این مرحله (دوره هشدار ۱۵ ثانیهای) صرفنظر میشود.
- -r, --resize
- بهجای قالببندی دیسک، میتوان اندازه آن را تغییر داد. این به معنای تغییر تعداد بلوکهای روی دستگاه است که توسط دستور READ CAPACITY گزارش میشود. این گزینه باید همراه با گزینه --count=COUNT استفاده شود. محتویات تمام بلوکهای منطقی روی رسانه هنگام استفاده از این گزینه بدون تغییر باقی میمانند. این بدان معناست که هر عملیات تغییر اندازه قابل بازگشت است. این گزینه نمیتواند همراه با --format یا --size=LB_SZ که آرگومان آن متفاوت از اندازه بلوک موجود باشد استفاده شود.
- -R, --rto_req
- این گزینه منسوخ شده است، بهجای آن از گزینه --fmtpinfo=FPI استفاده کنید. در صورت استفاده، بیت ۶ از بایت ۱ را در cdb دستور FORMAT UNIT تنظیم میکند.
- -S, --security
- بیت «راهاندازی اولیه امنیتی» (Security Initialization یا SI) را در توصیفگر الگوی راهاندازی اولیه دستور FORMAT UNIT درون فهرست پارامترها تنظیم میکند. بر اساس SBC-3 الگوی راهاندازی اولیه پیشفرض «باید با استفاده از یک روش نوشتن امحای امنیتی نوشته شود». بخش «نکات» درباره دستور SCSI SANITIZE را ببینید. اگر این گزینه داده شود، گزینه --ip_def نمیتواند داده شود.
- -6, --six
- از گونههای ۶ بایتی دستورات MODE SENSE و MODE SELECT استفاده میکند. رفتار پیشفرض استفاده از گونههای ۱۰ بایتی است. برخی درایوهای نوری-مغناطیسی (MO) هنگام انجام قالببندی نیاز به تنظیم این گزینه دارند.
- -s, --size=LB_SZ
- که در آن LB_SZ
اندازه
بلوک منطقی
(تعداد
بایتهای
داده کاربر
در هر بلوک)
برای
قالببندی
دستگاه به
آن است.
مقدار
پیشفرض
مقداری است
که در حال
حاضر توسط
توصیفگر
بلوک در
دستور MODE SENSE
گزارش
میشود. اگر
اندازه
بلوک
دادهشده
با این
گزینه
متفاوت از
مقدار جاری
باشد، پیش
از شروع
دستور FORMAT UNIT از
یک دستور MODE SELECT
برای تغییر
آن استفاده
میشود
(همانطور
که در
استانداردهای
SBC توصیه شده
است). برخی
دیسکهای SCSI
بهطور
پیشفرض
دارای
بلوکهای
منطقی ۵۱۲
بایتی
هستند و
امکان
استفاده از
اندازه
بلوک
جایگزین
۴۰۹۶ بایتی
را فراهم
میکنند.
اگر اندازه
دادهشده
برای دیسک
غیرقابل
قبول باشد،
به احتمال
زیاد پیام
«Invalid field in parameter list» در
دادههای
حس (sense data) ظاهر
خواهد شد
(نیازمند
استفاده از
'-v' برای
رمزگشایی
دادههای
حس است).
توجه داشته باشید که قالببندی یک دیسک برای افزودن یا حذف اطلاعات محافظت به عنوان تغییری در اندازه بلوک منطقی آن در نظر گرفته نمیشود، بنابراین این گزینه نباید استفاده شود. - -T, --tape=FM
- یک دستور FORMAT MEDIUM را به DEVICE با فیلد FORMAT تنظیمشده روی FM ارسال میکند. این گزینه برای آمادهسازی یک نوار (یعنی «رسانه») در درایو نوار جهت استفاده بهکار میرود. مقادیر برای FM شامل ۰ برای انجام قالببندی «پیشفرض»، ۱ برای پارتیشنبندی یک حجم و ۲ برای انجام قالببندی پیشفرض و سپس پارتیشنبندی است.
- -m, --timeout=SECS
- که در آن SECS مهلت زمانی دستورات FORMAT UNIT، FORMAT WITH PRESET یا FORMAT MEDIUM بر حسب ثانیه است. مقدار SECS تنها در صورتی استفاده خواهد شد که از مهلت زمانی داخلی فراتر رود که در صورت تنظیم بودن بیت IMMED برابر ۲۰ ثانیه و در صورت عدم تنظیم بیت IMMED برابر ۷۲۰۰۰ ثانیه (۲۰ ساعت) یا بیشتر است. اگر اندازه دیسک از ۴ ترابایت فراتر رود، مقدار مهلت زمانی به ۱۴۴۰۰۰ ثانیه (۴۰ ساعت) افزایش مییابد؛ و اگر بزرگتر از ۸ ترابایت باشد مقدار مهلت زمانی به ۲۸۸۰۰۰ ثانیه (۸۰ ساعت) افزایش مییابد. در صورت پایان مهلت زمانی، سیستمعامل معمولاً دستور را لغو میکند. لغو یک دستور ممکن است به بازنشانی LUN (یا بدتر از آن) منجر شود. همچنین مهلت زمانی ممکن است عملیات قالببندی دیسک یا نوار را ناقص رها کند. و این ممکن است منجر به قرار گرفتن دیسک یا نوار در وضعیت «قالب خراب» (format corrupt) شود که برای برطرف کردن آن نیاز به قالببندی مجدد است. بنابراین به دلایل گوناگون بهتر است از منقضی شدن مهلت زمانی دستور اجتناب شود. فرم جایگزین گزینه بلند --tmo=SECS است.
- -v, --verbose
- سطح پرگویی و جزئیات خروجی اشکالزدایی را افزایش میدهد. مقدار «-vvv» خروجی اشکالزدایی بسیار بیشتری ارائه میدهد. برای نمونه دادن این گزینه برای یک بار، دستورات SCSI صادرشده (CDBها) را نمایش میدهد. دادن این گزینه به دفعات بیشتر، علاوه بر آن بافرهای داده (متاداده) ارسالی و دریافتی را نیز نشان خواهد داد.
- -y, --verify
- بیت VERIFY را در cdb دستور FORMAT MEDIUM تنظیم میکند. پیشفرض این است که بیت VERIFY پاک باشد. این گزینه فقط برای نوارها کاربرد دارد.
- -V, --version
- رشته نسخه برنامه را چاپ کرده و خارج میشود.
- -w, --wait
- رفتار
پیشفرض
قالببندی
تنظیم بیت
«IMMED» در
سرآیند
پارامتر
(کوتاه)
دستور FORMAT UNIT
است. اگر
این گزینه
(یعنی --wait)
داده شود،
بیت «IMMED»
تنظیم
نمیشود.
اگر --wait داده
شود،
دستورات FORMAT
UNIT، FORMAT WITH PRESET یا FORMAT MEDIUM
پیش از
بازگرداندن
پاسخ خود تا
زمان اتمام
عملیات
قالببندی
منتظر
میمانند.
این زمان
روی
دیسکهای
بزرگ
میتواند
ساعتهای
متمادی
باشد. گزینه
--timeout=SECS را
ببینید.
از طرف دیگر این گزینه زمانی که همراه با --ffmt=FFMT (و FFMT بزرگتر از ۰) استفاده شود ممکن است مفید باشد، زیرا قالببندی سریع ممکن است تنها چند ثانیه زمان ببرد.
فهرستها (LISTS)
پیشنویس SBC-3 (ویرایش ۲۰) فهرستهای PLIST، CLIST، DLIST و GLIST را در بخش 4.10 تحت عنوان «عیوب رسانه» (Medium defects) تعریف میکند. بهطور خلاصه، PLIST فهرست «اصلی» عیوب شناساییشده توسط سازنده است، CLIST (فهرست «اعتبارسنجی») شامل مواردی است که در طول عملیات قالببندی شناسایی میشوند، DLIST فهرستی از عیوب است که میتوان به عملیات قالببندی ارائه داد. GLIST فهرست رشدیافته (انباشته) است که در فرآیند قالببندی به صورت CLIST+DLIST آغاز میشود و بعداً به دلیل تخصیص مجدد خودکار (بیتهای ARRE و AWRE را در صفحه حالت Read-Write Error Recovery ببینید (به sdparm(8) مراجعه فرمایید)) و استفاده از دستور SCSI REASSIGN BLOCKS (به sg_reassign(8) مراجعه فرمایید) میتواند «رشد» کند.
در استاندارد SBC-3 (به دنبال پیشنویس ویرایش ۳۶) فهرستهای CLIST و DLIST حذف شدند و تنها PLIST و GLIST باقی ماندند. در پیشنویسهای SBC-4 نیز فقط PLIST و GLIST یافت میشوند.
بیت CMPLST (کنترلشده توسط گزینه --cmplst=0|1) تعیین میکند که آیا GLIST موجود هنگام فراخوانی عملیات قالببندی در نظر گرفته شود یا خیر. ابزار sg_format بیت FOV را روی صفر تنظیم میکند که باعث DPRY=0 میشود، بنابراین PLIST در نظر گرفته میشود، و DCRT=0 میشود، بنابراین CLIST در طول فرآیند قالببندی تولید و استفاده میگردد.
ابزار sg_format به کاربر اجازه نمیدهد فهرست عیوب (یعنی DLIST) را ارائه دهد.
اطلاعات محافظت (PROTECTION INFORMATION)
اطلاعات محافظت (PI) اطلاعات اضافی ذخیرهشده همراه با بلوکهای منطقی است تا یک برنامه کاربردی و/یا آداپتور گذرگاه میزبان (HBA) بتواند صحت آن بلوکهای منطقی را بررسی کند. PI در یک یا چند فاصله محافظت که در هر بلوک منطقی درهمآمیخته شدهاند قرار میگیرد. هر فاصله محافظت به دنبال دادههای کاربری که به آن اشاره دارد میآید. یک فاصله محافظت شامل ۸ بایت است که از یک «محافظ بلوک منطقی» (CRC) ۲ بایتی، یک «محافظ برنامه بلوک منطقی» ۲ بایتی و یک «برچسب مرجع بلوک منطقی» ۴ بایتی تشکیل شده است. دستگاههای با اندازه بلوک منطقی ۵۱۲ بایتی معمولاً یک فاصله محافظت به آنها الحاق شده است که دادههای بلوک منطقی آنها را ۵۲۰ بایت میسازد. دستگاههای با اندازه بلوک منطقی ۴۰۹۶ بایتی اغلب دارای ۸ فاصله محافظت پخششده در سراسر دادههای بلوک منطقی خود هستند که اندازه کل را ۴۱۶۰ بایت میسازد. توجه داشته باشید که برای تمام اهداف دیگر، اندازه بلوک منطقی به ترتیب ۵۱۲ و ۴۰۹۶ بایت در نظر گرفته میشود.
استاندارد SBC-3 چندین «نوع محافظت» به PI معرفیشده در استاندارد SBC-2 افزوده است. SBC-3 چهار نوع محافظت (انواع ۰ تا ۳) را تعریف میکند که نوع محافظت ۰ به معنای عدم نگهداری PI است. در حالی که یک دستگاه ممکن است از یک یا چند نوع محافظت پشتیبانی کند، تنها میتواند با یکی از ۴ نوع قالببندی شود. برای تغییر نوع محافظت یک دستگاه، باید مجدداً قالببندی شود. برای اطلاعات بیشتر بخش Protection Information را در بخش 4.21 پیشنویس SBC-4 ویرایش ۱۶ ببینید.
دستگاهی که از اطلاعات PI پشتیبانی میکند (یعنی از یک یا چند نوع محافظت ۱، ۲ و ۳ پشتیبانی میکند) بیت «PROTECT» را در پاسخ استاندارد INQUIRY خود تنظیم میکند. همچنین فیلد SPT را در پاسخ صفحه EXTENDED INQUIRY VPD تنظیم میکند تا نشان دهد از کدام انواع محافظت پشتیبانی میکند. با فرض PROTECT=1، مقدار SPT=0 نشان میدهد که دستگاه تنها از نوع ۱ پشتیبانی میکند، SPT=1 نشان میدهد دستگاه از انواع ۱ و ۲ پشتیبانی میکند و نگاشتهای ناواضح دیگری تا SPT=7 که نشان میدهد انواع محافظت ۱، ۲ و ۳ پشتیبانی میشوند. نوع محافظت جاری یک دیسک را میتوان در فیلدهای «P_TYPE» و «PROT_EN» در پاسخ یک دستور READ CAPACITY (16) یافت (برای نمونه با ابزار 'sg_readcap --long').
با فرض اینکه دستگاه از نوع محافظت خاصی پشتیبانی میکند، کاربر میتواند با تنظیم فیلدهای «FMTPINFO» و «Protection Field Usage» در دستور FORMAT UNIT، آن دیسک را با آن نوع محافظت قالببندی کند. این فیلدها متناظر با گزینههای --fmtpinfo=FPI و --pfu=PFU در این ابزار هستند. فهرست زیر چهار نوع محافظت و به دنبال آن گزینههای این ابزار برای انتخاب آنها را نشان میدهد:
0 : --fmtpinfo=0 --pfu=0 1 : --fmtpinfo=2 --pfu=0 2 : --fmtpinfo=3 --pfu=0 3 : --fmtpinfo=3 --pfu=1مقدار پیشفرض FPI (در --fmtpinfo=FPI) برابر ۰ و مقدار پیشفرض PFU (در --pfu=PFU) برابر ۰ است. بنابراین اگر نه --fmtpinfo=FPI و نه --pfu=PFU داده نشوند، نوع محافظت ۰ (یعنی بدون اطلاعات محافظت) انتخاب میشود.
نکات (NOTES)
پس از قالببندی که اندازه بلوک منطقی یا تعداد بلوکهای منطقی روی یک دیسک را تغییر میدهد، ممکن است لازم باشد به سیستمعامل اطلاع داده شود تا تنظیمات خود را برای آن دیسک مجدداً مقداردهی اولیه کند. در لینوکس میتوان این کار را با دستور زیر انجام داد:
echo 1 > /sys/block/sd{letter(s)}/device/rescan
که در آن "letter(s)" بین 'a' تا 'zzz' خواهد بود. ابزار lsscsi در لینوکس میتواند برای بررسی نامگذاریهای مختلف یک دیسک استفاده شود.
استاندارد SBC-2 بیان میکند که دستور REQUEST SENSE باید برای دریافت نشانگر پیشرفت در حین اجرای دستور قالببندی استفاده شود. با این حال، آزمایشها روی مجموعهای از دیسکها نشان میدهد که دستورات TEST UNIT READY نشانگرهای پیشرفت را بازمیگردانند (اما دستورات REQUEST SENSE خیر). بنابراین نسخه فعلی این ابزار بهطور پیشفرض از دستورات TEST UNIT READY برای نظرسنجی از دیسک جهت اطلاع از پیشرفت قالببندی استفاده میکند. گزینه --poll=PT برای کنترل این رفتار افزوده شده است.
هنگامی که گزینه --format، --preset=ID یا --tape=FM بدون گزینه --wait داده شود، دستور متناظر SCSI با بیت IMMED تنظیمشده صادر میشود که باعث میشود دستور SCSI پس از آغاز عملیات قالببندی بلافاصله بازگردد. گزینه --early باعث میشود sg_format در آن نقطه خارج شود. در غیر این صورت، DEVICE هر ۶۰ ثانیه یا هر ۱۰ ثانیه در صورت غیرصفر بودن FFMT نظرسنجی میشود. این نظرسنجی با دستورات TEST UNIT READY یا REQUEST SENSE انجام میشود تا زمانی که یکی از آنها وضعیت «تکمیل کامل» را گزارش دهد (یعنی عملیات قالببندی به پایان رسیده باشد). بهطور معمول این دستورات نظرسنجی منجر به چاپ یک نشانگر پیشرفت (به درصد) روی صفحه میشوند. اگر کاربر از تماشای گزارش پیشرفت خسته شود، فرآیند sg_format میتواند متوقف شود (مثلاً با Control-C) بدون اینکه تأثیری بر عملیات قالببندی که ادامه مییابد بگذارد. با این حال، بازنشانی مقصد یا دستگاه (یا خاموش و روشن کردن دستگاه) احتمالاً باعث توقف قالببندی و قرار گرفتن DEVICE در وضعیت «قالب خراب» (format corrupt) خواهد شد.
هنگامی که گزینههای --format (--preset=ID یا --tape) و --wait هر دو داده شوند، بازگشت این ابزار ممکن است زمان زیادی ببرد. در این حالت باید دقت شود که هیچ دستور SCSI دیگری به دیسک ارسال نشود، زیرا دیسک ممکن است پاسخ ندهد و آن دستورات پشت سر دستور قالببندی فعال در صف باقی بمانند. این امر ممکن است باعث انقضای مهلت زمانی در درایور سیستمعامل شود (در بازه زمانی بسیار کوتاهتری نسبت به ۲۰ ساعت که برای برخی عملیاتهای قالببندی صادق است). این اتفاق ممکن است منجر به بازنشانی دیسک توسط سیستمعامل شده و عملیات قالببندی را ناقص رها کند. این وضعیت دیسک را در حالت «قالب خراب» قرار میدهد که برای حل آن نیاز به قالببندی مجدد است. دستگاههای مدرن SCSI باید کلید حس «not ready» را با حس اضافی نشاندهنده در جریان بودن قالببندی بازگردانند. در دستگاههای قدیمیتر کاربر باید مراقبت کند که هیچ فرآیندی در حین قالببندی دستگاه تلاش نکند به آن دسترسی پیدا کند. پیاده کردن (unmount) سیستمهای فایل سوارشده روی DEVICE پیش از فراخوانی این ابزار اکیداً توصیه میشود.
هنگامی که اندازه بلوک (تعداد بایتها در هر بلوک) روی یک دیسک تغییر میکند، دو دستور SCSI باید ارسال شوند: یک دستور MODE SELECT برای تغییر اندازه بلوک و به دنبال آن یک دستور FORMAT. اگر دستور MODE SELECT موفق شود و FORMAT با شکست مواجه گردد، دیسک ممکن است در وضعیتی قرار گیرد که استاندارد آن را «قالب خراب» (format corrupt) مینامد. توصیفگر بلوک در دستور بعدی MODE SENSE اندازه بلوک جدید درخواستشده را گزارش میدهد در حالی که دستور READ CAPACITY اندازه بلوک موجود (یعنی قبلی) را گزارش خواهد کرد. از طرف دیگر ممکن است دستور READ CAPACITY با گزارش این که دستگاه آماده نیست با شکست مواجه شود که به احتمال زیاد نیازمند قالببندی خواهد بود. راهحل این وضعیت اجرای مجدد قالببندی (این بار نیازی به تعیین اندازه بلوک جدید نیست) یا بازگرداندن اندازه بلوک به اندازه اولیه است.
استاندارد SBC-2 بیان میکند که تعداد بلوکها را میتوان در یک عملیات قالببندی یا تغییر اندازه به حداکثر مقدار توصیهشده توسط سازنده بازگرداند. این کار را میتوان با قرار دادن آدرس 0xffffffff (یا معادل ۶۴ بیتی آن) در فیلد توصیفگر بلوک مربوطه در دستور MODE SELECT انجام داد. در محاسبات علامتدار (مکمل دو) آن مقدار متناظر با «-1» است. بنابراین --count=-1 باعث میشود تعداد بلوکها به حداکثر مقدار توصیهشده توسط سازنده بازگردانده شود. برای دیدن دقیق این که کدام دستورات SCSI اجرا میشوند و پارامترها چگونه منتقل میگردند، گزینه «-vvv» را به خط فرمان sg_format بیفزایید.
فیلد FMTDATA نمایشدادهشده در cdb دستور FORMAT UNIT گزینه متناظری در این ابزار ندارد. هنگامی که در cdb تنظیم شود نشان میدهد که یک فهرست پارامتر اضافی به همراه cdb به DEVICE ارسال خواهد شد. این فیلد در صورت نیاز تنظیم میشود، اساساً زمانی که هر فیلدی در سرآیند فهرست پارامترها تنظیم گردد.
کورس کوتاه (Short stroking) روشی برای معاوضه ظرفیت با کارایی در دیسکهای سخت است. «دیسک سخت» (Hard disk) اغلب به معنای یک دستگاه ذخیرهسازی با صفحات چرخان است که دادههای کاربر را در بر دارد. دیسک حالت جامد (SSD) فرم جدیدتری از دستگاههای ذخیرهسازی است که فاقد قطعات متحرک است. کارایی دیسک سخت معمولاً در شیارهای بیرونی (معمولاً آدرسهای بلوک منطقی پایینتر) در بالاترین حد است، بنابراین با تغییر اندازه یا قالببندی مجدد دیسک به ظرفیت کمتر، کارایی متوسط معمولاً افزایش خواهد یافت.
سایر ابزارها ممکن است در یافتن اطلاعات مرتبط با قالببندی مفید باشند. این ابزارها شامل sg_inq(8) برای واکشی اطلاعات استاندارد INQUIRY (مانند بیت PROTECT) و واکشی صفحه EXTENDED INQUIRY VPD (مانند بیتهای RTO و GRD_CHK) هستند. ابزار sdparm(8) میتواند برای دسترسی و احتمالاً تغییر صفحه حالت قالببندی منسوخشده کنونی استفاده شود.
ابزار scsiformat ابزار دیگری است که برای قالببندی دیسکهای SCSI در لینوکس در دسترس است. تاریخ آن به سال ۱۹۹۷ (جدیدترین بهروزرسانی) بازمیگردد و ممکن است برای دیسکهایی که سفتافزار آنها متعلق به آن دوران است مفید باشد.
آرگومان عددی COUNT ممکن است شامل یک پسوند ضربی باشد یا در مبنای شانزده (هگزادسیمال) داده شود. بخش «آرگومانهای عددی» را در صفحه راهنمای sg3_utils(8) ببینید.
دستور SCSI SANITIZE در SBC-3 ویرایش ۲۷ معرفی شد. این دستور ارتباط نزدیکی با مجموعه ویژگیهای امحای دیسک (sanitize) در ATA دارد و میتواند برای پاک کردن تمام دادههای موجود از روی یک دیسک استفاده شود. دستور Sanitize در دیسکهای مدرن (از جمله SSDها) نسبت به ویژگی راهاندازی اولیه امنیتی در FORMAT UNIT (گزینه --security را ببینید) بسیار محتملتر است که پیادهسازی شده باشد و در برخی موارد بسیار سریعتر عمل میکند.
دیسکهای SSD که از تخصیص پویا پشتیبانی میکنند معمولاً در طول قالببندی تمام بلوکهای منطقی را لغو نگاشت (unmap) میکنند. دلیل این امر بهبود دوام SSD است. همچنین قالببندیهای با تخصیص پویا معمولاً سریعتر از قالببندیهای با تخصیص کامل روی همان دیسک به پایان میرسند (گزینه --ip_def را ببینید). در هر دو حالت، عملیات قالببندی روی SSDها بسیار سریعتر از دیسکهای سخت با رسانه چرخان است.
دستگاههای
ناحیهبندیشده
تحت مدیریت
میزبان
(معروف به
دیسکهای
ناحیهای)
دارای نوع
دستگاه
جانبی
متفاوتی [PDT=20
یا 0x14] نسبت به
دیسکهای
معمولی
هستند.
آنها را
میتوان
حداقل از
دیدگاه
تعداد
دستورات SCSI
که
پشتیبانی
میکنند،
به عنوان
فوقمجموعهای
از
دیسکهای
معمولی
(مانند SSDها و
دیسکهای
سخت) در نظر
گرفت.
معمولاً
آنها را
میتوان
دقیقاً
مانند سایر
دیسکهای SCSI
قالببندی
کرد. آنها
دارای
استانداردهای
T10 ویژه خود
هستند:
استاندارد ZBC
(INCITS 536-2016) و
پیشنویس ZBC-2.
دو گونه
دیگر از
دیسکهای
ناحیهای
(«آگاه از
میزبان» یا
host aware و
«دامنهها
و قلمروها»
یا Domains and Realms) از
همان PDT
دیسکهای
دیگر
استفاده
میکنند
(یعنی PDT=0) و
میتوان
آنها را
توسط این
ابزار
همانند
دیسکهای
معمولی
قالببندی
کرد.
نوار (TAPE)
سیستمهای نوار از گونهای از دستور FORMAT UNIT استفاده میکنند که روی دیسکها بهکار میرود. سیستمهای نوار از دستور FORMAT MEDIUM استفاده میکنند که سادهتر بوده و معمولاً تنها سه فیلد در cdb آن استفاده میشود. صرفنظر از اشتراک در کد عملیاتی (opcode)، ساختار cdb دستورات FORMAT UNIT و FORMAT MEDIUM کاملاً متفاوت است. فیلدهای FORMAT MEDIUM عبارتند از VERIFY، IMMED و FORMAT (همراه با TRANSFER LENGTH که همیشه روی ۰ تنظیم است). فیلد بیتی VERIFY با گزینه --verify تنظیم میشود. بیت IMMED توسط گزینه --wait به همان شیوهای که برای دیسکها انجام میشود دستکاری میگردد؛ یک تفاوت این است که اگر گزینه --poll=PT داده نشود، پیشفرض PT برابر ۱ است که یعنی نظرسنجی با دستورات REQUEST SENSE انجام میشود.
آرگومان دادهشده به گزینه --tape=FM برای تنظیم فیلد FORMAT استفاده میشود. FM میتواند مقادیری از «-1» تا «15» داشته باشد که در آن «-1» (پیشفرض) به معنای عدم انجام قالببندی نوار است؛ مقادیر «8» تا «15» برای قالببندیهای ویژه سازنده هستند. گزینه --early نیز ممکن است برای تنظیم بیت IMMED و سپس خروج از این ابزار (بهجای نظرسنجی دورهای تا زمان پایان) استفاده شود. در این حالت درایو نوار همچنان تا مدتی مشغول انجام قالببندی خواهد بود، اما طبق T10 باید همچنان به دستورات INQUIRY و REPORT LUNS پاسخ کامل دهد. سایر دستورات (از جمله REQUEST SENSE) باید کلید حس «not ready» با کد حس اضافی «Logical unit not ready, format in progress» را برگردانند. علاوه بر این REQUEST SENSE باید حاوی یک نشانگر پیشرفت در دادههای حس خود باشد.
هنگامی که FM برابر ۱ یا ۲ باشد، تنظیمات موجود در صفحه حالت پارتیشن رسانه (Medium partition) پارتیشنبندی را کنترل میکنند. آن صفحه حالت را میتوان با ابزار sdparm مشاهده و ویرایش کرد.
پیش از فراخوانی این ابزار، ممکن است لازم باشد نوار در ابتدای پارتیشن ۰ قرار گیرد. در لینوکس معمولاً میتوان این کار را با ابزار mt انجام داد (مثلاً 'mt -f /dev/st0 rewind').
مثالها (EXAMPLES)
این مثالها از نامهای دستگاههای لینوکس استفاده میکنند. برای نامهای دستگاههای مناسب در سایر سیستمعاملهای پشتیبانیشده، صفحه راهنمای sg3_utils(8) را ببینید.
در اولین مثال زیر، به سادگی تعداد بلوک و اندازه موجود که از دو منبع به دست آمده است بررسی میشود: یک توصیفگر بلوک در پاسخ دستور MODE SELECT و از پاسخ دستور READ CAPACITY. هیچ تغییری ایجاد نمیشود:
# sg_format /dev/sdm
اکنون یک قالببندی ساده، با حفظ تعداد بلوک و اندازه همانند مقدار قبلی. دستور FORMAT UNIT در حالت IMMED اجرا میشود و دستگاه هر ۶۰ ثانیه برای چاپ نشانگر پیشرفت نظرسنجی میشود:
# sg_format --format /dev/sdm
اکنون همان قالببندی، اما با انتظار (غیرفعال) تا زمان اتمام عملیات قالببندی:
# sg_format --format --wait /dev/sdm
مورد بعدی قالببندی است که در آن اندازه بلوک به ۵۲۰ بایت تغییر یافته و تعداد بلوکها روی حداکثر مقدار سازنده (برای آن اندازه بلوک) تنظیم میشود. توجه داشته باشید که همه دیسکها از تغییر اندازه بلوک پشتیبانی نمیکنند:
# sg_format --format --size=520 /dev/sdm
اکنون یک عملیات تغییر اندازه بهگونهای که فقط نخستین 0x10000 (۶۵۵۳۶) بلوک روی دیسک قابل دسترسی باشند. بلوکهای باقیمانده دستنخورده باقی میمانند:
# sg_format --resize --count=0x10000 /dev/sdm
اکنون تغییر اندازه دیسک به تعداد بلوکهای عادی (حداکثر):
# sg_format --resize --count=-1 /dev/sdm
یکی از دلایل قالببندی دیسک SCSI افزودن اطلاعات محافظت است. ابتدا بررسی کنید کدام انواع محافظت توسط دیسک پشتیبانی میشوند (با بررسی فیلد SPT در صفحه Extended inquiry VPD به همراه بیت Protect در پاسخ استاندارد inquiry):
# sg_vpd -p ei -l /dev/sdb extended INQUIRY data VPD page: ACTIVATE_MICROCODE=0 SPT=1 [protection types 1 and 2 supported] ....
قالببندی با محافظت نوع ۱:
# sg_format --format --fmtpinfo=2 /dev/sdm
پس از یک قالببندی موفقیتآمیز با محافظت نوع ۱، دستور READ CAPACITY(16) باید چیزی شبیه به این را نشان دهد:
# sg_readcap -l /dev/sdm Read Capacity results: Protection: prot_en=1, p_type=0, p_i_exponent=0 [type 1 protection] Logical block provisioning: lbpme=0, lbprz=0 ....
برای قالببندی با محافظت نوع ۳:
# sg_format --format --fmtpinfo=3 --pfu=1 /dev/sdm
برای دیسک نشاندادهشده در بالا این دستور احتمالاً با شکست مواجه خواهد شد زیرا صفحه Extended inquiry VPD نشان داد که تنها انواع محافظت ۱ و ۲ پشتیبانی میشوند.
در اینجا مثالهایی از کاربرد قالببندی سریع (فیلد FFMT در cdb دستور FORMAT UNIT) برای جابهجایی سریع بین اندازه بلوک منطقی ۵۱۲ و ۴۰۹۶ بایتی آورده شده است. فرض کنید دیسک با اندازه بلوک منطقی ۴۰۹۶ بایتی شروع میکند و از تمام دادههای مهم پشتیبانگیری شده است:
# sg_format --format --ffmt=1 --size=512 /dev/sdd
اکنون /dev/sdd باید دارای اندازه بلوک منطقی ۵۱۲ بایتی باشد. و برای برگرداندن آن به حالت قبل:
# sg_format --format --ffmt=1 --size=4096 /dev/sdd
از آنجا که قالببندیهای سریع میتوانند بسیار سریع باشند (در حد چند ثانیه)، استفاده از گزینه --wait ممکن است مناسب باشد.
و برای استفاده از دستور Format with preset این دستور میتواند استفاده شود:
# sg_format --preset=1 --fmtmaxlba /dev/sdd
صفحه FORMAT PRESETS VPD (کد 0xb8) باید بررسی شود تا اطمینان حاصل شود شناسه پیشتنظیم 0x1 در آنجا وجود دارد و قالب مورد انتظار را داراست (یعنی «مدل دستگاه بلوکی ناحیهای پیشفرض آگاه از میزبان با ۵۱۲ بایت داده کاربر در هر بلوک منطقی»). آن صفحه VPD را میتوان با ابزار sg_vpd مشاهده کرد.
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_format در صورت موفقیت ۰ است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید. مگر اینکه گزینه --wait داده شده باشد، وضعیت خروج ممکن است موفقیت یا عدم موفقیت قالببندی را منعکس نکند. استفاده از sg_turs(8) و sg_readcap(8) پس از عملیات قالببندی ممکن است عاقلانه باشد.
قرارداد یونیکس این است که «نبود خبر، خبر خوش است»، اما این موضوع میتواند پس از عملیاتی مانند قالببندی کمی نگرانکننده باشد، بهویژه اگر عملیات سریع تمام شود (یعنی پیش از ارسال نخستین نظرسنجی پیشرفت). دادن گزینه --verbose برای یک بار باید خروجی اضافی کافی برای رفع این نگرانی ارائه دهد.
نویسندگان (AUTHORS)
نوشتهشده توسط Grant Grundler، James Bottomley و Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش باگها را به <dgilbert at interlog dot com> ارسال کنید.
حق نشر (COPYRIGHT)
حق نشر © 2005-2023 Grant
Grundler, James Bottomley and Douglas Gilbert
این
نرمافزار
تحت مجوز GPL
نسخه ۲
توزیع شده
است. هیچ
تضمینی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
تناسب با یک
هدف خاص.
همچنین ببینید (SEE ALSO)
sg_turs(8), sg_requests(8), sg_inq(8), sg_modes(8), sg_vpd(8), sg_reassign(8), sg_readcap(8), sg3_utils(8), sg_sanitize(8) [همگی در sg3_utils], lsscsi(8), mt(mt-st), sdparm(8), scsiformat (قدیمی), hdparm(8)
| September 2023 | sg3_utils-1.49 |