| UDFINFO(1) | General Commands Manual | UDFINFO(1) |
نام (NAME)
udfinfo - نمایش اطلاعات مربوط به سیستمفایل UDF
خلاصه دستور (SYNOPSIS)
udfinfo [ options ] device
توضیحات (DESCRIPTION)
udfinfo اطلاعات گوناگونی را دربارهٔ سیستمفایل UDF ذخیرهشده بر روی یک دستگاه بلوکی یا در فایل ایمیج دیسک نمایش میدهد. خروجی udfinfo برای تجزیه و پردازش توسط برنامهها یا اسکریپتهای خارجی مناسب است.
گزینهها (OPTIONS)
- -h,--help
- نمایش راهنمای استفاده و فهرست گزینهها.
- -b,--blocksize= block-size
- تعیین اندازهٔ بلوکها برحسب بایت. اندازهٔ بلوک معتبر برای سیستمفایل UDF توانی از ۲ در بازهٔ 512 تا 32768 است و باید با اندازهٔ منطقی (سکتور) دستگاه مطابقت داشته باشد. در صورت حذف، udfinfo تلاش میکند اندازهٔ بلوک را به صورت خودکار تشخیص دهد. ابتدا اندازهٔ منطقی (سکتور) و سپس تمام اندازههای معتبر بلوک را بررسی میکند.
- --startblock= start-block
- تعیین
موقعیت
بلوکی که
سیستمفایل
UDF در آن آغاز
میشود. این
گزینه برای
محاسبهٔ
موقعیت
بلوک
«توالی
شناسایی
حجم» (Volume Recognition Sequence
یا ۳۲
کیلوبایت
پس از بلوک
آغازین) و
نخستین
«اشارهگر
توصیفگر
حجم مهار» (Anchor
Volume Descriptor Pointer یا ۲۵۶
بلوک پس از
بلوک
آغازین) به
کار میرود.
بهطور معمول بلوک آغازین 0 است، اما برای دیسکهای نوری چندنشستی (Multisession) UDF، این مقدار موقعیت بلوکی است که آخرین نشست دیسک UDF در آن شروع میشود.
در صورت حذف، udfinfo برای دیسک نوری تلاش میکند بلوک آغازین آخرین نشست را از «جدول محتویات» (Table Of Contents) دیسک تشخیص دهد. در غیر این صورت مقدار 0 استفاده میشود.
برای دسترسی به نشستهای قبلی دیسک نوری Multisession UDF، لازم است بلوک صحیحی که آن نشست در آن آغاز میشود مشخص شود. همچنین باید محل پایان آن نشست از طریق گزینهٔ --lastblock تعیین گردد.
برای فایلهای ایمیج دیسک Multisession UDF هیچ راهی برای تشخیص خودکار محل شروع آخرین نشست وجود ندارد و بنابراین ضروری است که موقعیت صحیح بلوک آغازین به صورت دستی از روی جدول محتویات (TOC) دیسک نوری اصلی تعیین شود.
(گزینه از udfinfo 2.3 به بعد در دسترس است)
- --lastblock= last-block
- تعیین
موقعیت
بلوکی که
سیستمفایل
UDF در آن
پایان
مییابد.
این مقدار
برای
محاسبهٔ
موقعیت
بلوک
اشارهگرهای
دوم و سوم Anchor Volume
Descriptor (۲۵۶ بلوک
پیش از
آخرین بلوک
و خودِ
آخرین بلوک)
استفاده
میشود.
بهطور معمول آخرین بلوک برابر با تعداد کل بلوکهای دیسک منهای یک است، اما برای دیسکهای نوری Multisession UDF هنگام خواندن نشستی غیر از آخرین نشست (مشخصشده با --startblock)، موقعیت بلوکی است که نشست مشخصشده در آن به پایان میرسد.
در صورت حذف، udfinfo برای دیسکهای نوری تلاش میکند آخرین بلوک ضبطشده را تشخیص دهد و در صورت عدم موفقیت، به عنوان جایگزین به آخرین بلوک دستگاه یا فایل ایمیج دیسک رجوع میکند.
برای دسترسی به نشستهای قبلی یک دیسک نوری Multisession UDF، تعیین مقادیر صحیح برای هر دو گزینهٔ --startblock و --lastblock الزامی است.
(گزینه از udfinfo 2.3 به بعد در دسترس است)
- --vatblock= vat-block
- تعیین
موقعیت
بلوک جدول
تخصیص
مجازی (Virtual Allocation Table).
جدول تخصیص
مجازی تنها
روی
دیسکهای UDF
دارای
نگاشت
افراز
مجازی (Virtual Partition Map)
وجود دارد و
باید در
آخرین بلوک
نوشته/ضبطشدهٔ
دیسک قرار
گیرد.
در صورت حذف، udfinfo برای دیسکهای نوری سعی میکند آخرین بلوک ضبطشده را تشخیص دهد و در صورت عدم موفقیت، به عنوان جایگزین به آخرین بلوک دستگاه بلوکی یا فایل ایمیج دیسک یا بلوک مشخصشده با --lastblock رجوع میکند. در اغلب موارد این روش جایگزین کارایی ندارد و برای فایلهای ایمیج دیسک دارای Virtual Allocation Table تعیین موقعیت دقیق الزامی است.
جدول تخصیص مجازی شامل موقعیت بلوکهای دیسک UDF است که برای خواندن فضای ذخیرهسازی داده، تعیین بلوکهای فضای استفادهشده و آزاد، خواندن File Set Identifier و محاسبهٔ Volume Serial Number مختص ویندوز لازم هستند. همچنین حاوی Logical Volume Identifier بوده و مقادیر ذخیرهشدهٔ قبلی در Logical Volume Descriptor را بازنویسی میکند.
- --locale
- کدگذاری شناسههای رشتهای UDF در خروجی بر اساس تنظیمات محلی (locale) فعلی (پیشفرض).
- --u8
- کدگذاری شناسههای رشتهای UDF در خروجی به قالب ۸-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشردهسازی (Compression ID)، که معادل با کدگذاری Latin1 (ISO-8859-1) است. این گزینه تنها برای رشتههایی کار خواهد کرد که همهٔ کدپوینتهای یونیکد آنها کمتر از U+100 باشد.
- --u16
- کدگذاری شناسههای رشتهای UDF در خروجی به قالب ۱۶-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشردهسازی، که معادل با UTF-16BE است.
- --utf8
- کدگذاری شناسههای رشتهای UDF در خروجی به UTF-8.
وضعیت خروج (EXIT STATUS)
در صورت موفقیت، udfinfo مقدار 0 و در صورت بروز مشکل (مانند عدم وجود سیستمفایل UDF روی دستگاه بلوکی)، مقداری غیرصفر بازمیگرداند.
قالب خروجی (OUTPUT FORMAT)
بخش اول خروجی استاندارد udfinfo شامل اطلاعاتی در قالب key=value است. فهرست تمام کلیدها به همراه مفهوم آنها در جدول زیر آمده است:
- filename
- نام فایل دستگاه بلوکی یا ایمیج فایل دیسک انتخابشده
- label
- عنوان دیسک که نام مستعاری برای lvid است؛ بخش UDF LABEL AND UUID در udflabel(8) را ببینید
- uuid
- شناسهٔ UUID که ۱۶ رقم هگزادسیمال کوچک ابتدایی fullvsid است؛ بخش UDF LABEL AND UUID در udflabel(8) را ببینید
- lvid
- شناسهٔ Logical Volume Identifier سیستمفایل UDF ذخیرهشده در UDF Logical Volume Descriptor
- vid
- شناسهٔ Volume Identifier سیستمفایل UDF ذخیرهشده در UDF Primary Volume Descriptor
- vsid
- مقدار fullvsid پس از بخش uuid، معمولاً نویسههای ۱۷ تا ۱۲۷
- fsid
- شناسهٔ File Set Identifier سیستمفایل UDF ذخیرهشده در UDF File Set Descriptor
- fullvsid
- شناسهٔ Volume Set Identifier سیستمفایل UDF ذخیرهشده در UDF Primary Volume Descriptor
- owner
- اطلاعات UDF Logical Volume Info1 ذخیرهشده در UDF Implementation Use Volume Descriptor؛ نشاندهندهٔ نام مالک، فرد ایجادکنندهٔ رسانه یا سیستمفایل (از udfinfo 2.3 به بعد)
- organization
- اطلاعات UDF Logical Volume Info2 ذخیرهشده در UDF Implementation Use Volume Descriptor؛ نشاندهندهٔ نام سازمان مسئول ایجاد رسانه یا سیستمفایل (از udfinfo 2.3 به بعد)
- contact
- اطلاعات UDF Logical Volume Info3 ذخیرهشده در UDF Implementation Use Volume Descriptor؛ نشاندهندهٔ اطلاعات تماس مربوط به رسانه یا سیستمفایل (از udfinfo 2.3 به بعد)
- appid
- شناسهٔ Application Identifier سیستمفایل UDF ذخیرهشده در UDF Primary Volume Descriptor؛ برنامهای را که رسانه یا سیستمفایل را ایجاد کرده مشخص میکند (از udfinfo 2.3 به بعد)
- impid
- شناسهٔ Developer Identifier سیستمفایل UDF ذخیرهشده در UDF Implementation Identifier از UDF Primary Volume Descriptor؛ پیادهسازی سازندهٔ رسانه یا سیستمفایل را بهطور منحصربهفرد مشخص میکند (از udfinfo 2.3 به بعد)
- winserialnum
- مقدار Volume Serial Number مختص سیستمعامل ویندوز
- blocksize
- اندازهٔ بلوک UDF
- blocks
- تعداد کل بلوکها روی دستگاه بلوکی یا فایل ایمیج دیسک انتخابشده
- usedblocks
- تعداد بلوکهای فضای استفادهشده در دیسک UDF برای ذخیرهسازی داده
- freeblocks
- تعداد بلوکهای فضای آزاد در دیسک UDF برای ذخیرهسازی داده
- behindblocks
- تعداد بلوکهایی که بعد از آخرین بلوک استفادهشده توسط دیسک UDF قرار دارند
- numfiles
- تعداد فایلهای ذخیرهشده روی دیسک UDF
- numdirs
- تعداد دایرکتوریهای ذخیرهشده روی دیسک UDF
- udfrev
- نسخهٔ بازنگری (revision) سیستمفایل UDF موردنیاز برای خواندن دیسک UDF
- udfwriterev
- نسخهٔ بازنگری سیستمفایل UDF موردنیاز برای نوشتن یا اصلاح دیسک UDF
- startblock
- موقعیت بلوکی که سیستمفایل UDF در آن آغاز میشود (تنها زمانی که غیرصفر باشد نمایش داده میشود، از udfinfo 2.3 به بعد)
- lastblock
- موقعیت بلوکی که سیستمفایل UDF در آن پایان مییابد (تنها زمانی که با آخرین بلوک دیسک یکسان نباشد نمایش داده میشود، از udfinfo 2.3 به بعد)
- vatblock
- موقعیت بلوک Virtual Allocation Table سیستمفایل UDF (تنها در صورت موجود بودن نمایش داده میشود)
- integrity
- یکپارچگی Logical Volume سیستمفایل UDF، یکی از مقادیر: opened، closed، unknown
- accesstype
- نوع دسترسی UDF، یکی از مقادیر: overwritable، rewritable، writeonce، readonly، pseudo-overwritable، unknown
- softwriteprotect
- وضعیت پرچم SoftWriteProtect در UDF، به صورت yes یا no (از udfinfo 2.2 به بعد)
- hardwriteprotect
- وضعیت پرچم HardWriteProtect در UDF، به صورت yes یا no (از udfinfo 2.2 به بعد)
زمانی که یکپارچگی UDF برابر با closed نباشد، بدین معنی است که دیسک UDF به درستی پیاده (unmount) نشده است، در وضعیتی ناسازگار قرار دارد و نیاز به ترمیم دارد.
اگر هر یک از پرچمهای softwriteprotect یا hardwriteprotect فعال باشند، باید با دیسک UDF به عنوان یک دیسک فقطخواندنی رفتار شود.
تمام شناسههای رشتهای UDF به صورت یونیکد روی دیسک ذخیره میشوند؛ بنابراین مستقل از تنظیمات محلی (locale) یا صفحهٔ کد هستند. گزینههای --locale، --u8، --u16 و --utf8 نحوهٔ کدگذاری شناسهها را در خروجی تعیین میکنند.
تمام نویسههای خط جدید (newline) از شناسههای رشتهای UDF حذف میشوند، از این رو تضمین میگردد که نویسهٔ خط جدید تنها به عنوان یک جداکننده وجود داشته باشد.
بخش دوم خروجی استاندارد udfinfo شامل فهرستی از انواع بلوکهای UDF ذخیرهشده روی دستگاه است که در هر سطر با قالب زیر نمایش مییابد:
بدین مفهوم که block-type از بلوک UDF به شمارهٔ block-num آغاز شده و به اندازهٔ block-count بلوک روی دستگاه گسترش مییابد.
مقدار Volume Serial Number مختص ویندوز، یک چکسام غیراستاندارد ۳۲-بیتی است که به صورت چهار چکسام ۸-بیتی XOR مجزا از توصیفگر File Set Descriptor با اندازهٔ ۵۱۲ بایت محاسبه میشود. بنابراین برخلاف UUID که ۶۴ بیتی است، امکان تعیین یا تغییر آن وجود ندارد. این چکسام غیراستاندارد تنها توسط سیستمهای ویندوزی (از دوران Windows 98 که معرفی شد) به کار میرود و در سیستمهای ویندوزی توسط برنامههایی نظیر vol، dir یا fsutil.exe قابل نمایش است.
محدودیتها (LIMITATIONS)
udfinfo در نسخههای پیش از 2.3 قادر به مدیریت صحیح دیسکهای Multisession UDF نبود. این ابزار همواره تنها اطلاعات مربوط به نشست نخست (قدیمیترین) را نمایش میداد و نه نشست آخر (تازهترین).
udfinfo در نسخههای پیش از 2.2 قادر به چاپ صحیح رشتههای یونیکد با کدپوینتهای فراتر از U+FFFF نبود.
udfinfo در نسخههای پیش از 2.2 قادر به خواندن پارتیشن فراداده (Metadata Partition) نبود. بنابراین تعیین بلوکهای فضای مصرفشده و آزاد، خواندن File Set Identifier و محاسبهٔ Volume Serial Number مختص ویندوز برای دیسکهای دارای نسخهٔ بازنگری UDF بالاتر از 2.01 که پارتیشن فراداده داشتند، لزوماً در دسترس یا با محاسبهٔ دقیق نبود.
udfinfo در نسخههای پیش از 2.1 قادر به خواندن Virtual Allocation Table ذخیرهشده در خارج از Information Control Block نبود. بنابراین محدودیت فوق برای برخی رسانههای یکبارنوشتنی (Write Once) نیز اعمال میشد.
نویسندگان (AUTHORS)
Pali Rohár <pali.rohar@gmail.com>
در دسترس بودن (AVAILABILITY)
udfinfo از نسخهٔ 2.0 بخشی از بستهٔ udftools است و از https://github.com/pali/udftools در دسترس میباشد.
همچنین ببینید (SEE ALSO)
| udftools | Commands |