UDFINFO(1) General Commands Manual UDFINFO(1)

udfinfo - نمایش اطلاعات مربوط به سیستم‌فایل UDF

udfinfo [ options ] device

udfinfo اطلاعات گوناگونی را دربارهٔ سیستم‌فایل UDF ذخیره‌شده بر روی یک دستگاه بلوکی یا در فایل ایمیج دیسک نمایش می‌دهد. خروجی udfinfo برای تجزیه و پردازش توسط برنامه‌ها یا اسکریپت‌های خارجی مناسب است.

نمایش راهنمای استفاده و فهرست گزینه‌ها.
تعیین اندازهٔ بلوک‌ها برحسب بایت. اندازهٔ بلوک معتبر برای سیستم‌فایل UDF توانی از ۲ در بازهٔ 512 تا 32768 است و باید با اندازهٔ منطقی (سکتور) دستگاه مطابقت داشته باشد. در صورت حذف، udfinfo تلاش می‌کند اندازهٔ بلوک را به صورت خودکار تشخیص دهد. ابتدا اندازهٔ منطقی (سکتور) و سپس تمام اندازه‌های معتبر بلوک را بررسی می‌کند.
تعیین موقعیت بلوکی که سیستم‌فایل 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 به بعد در دسترس است)

تعیین موقعیت بلوکی که سیستم‌فایل UDF در آن پایان می‌یابد. این مقدار برای محاسبهٔ موقعیت بلوک اشاره‌گرهای دوم و سوم Anchor Volume Descriptor (۲۵۶ بلوک پیش از آخرین بلوک و خودِ آخرین بلوک) استفاده می‌شود.

به‌طور معمول آخرین بلوک برابر با تعداد کل بلوک‌های دیسک منهای یک است، اما برای دیسک‌های نوری Multisession UDF هنگام خواندن نشستی غیر از آخرین نشست (مشخص‌شده با --startblock)، موقعیت بلوکی است که نشست مشخص‌شده در آن به پایان می‌رسد.

در صورت حذف، udfinfo برای دیسک‌های نوری تلاش می‌کند آخرین بلوک ضبط‌شده را تشخیص دهد و در صورت عدم موفقیت، به عنوان جایگزین به آخرین بلوک دستگاه یا فایل ایمیج دیسک رجوع می‌کند.

برای دسترسی به نشست‌های قبلی یک دیسک نوری Multisession UDF، تعیین مقادیر صحیح برای هر دو گزینهٔ --startblock و --lastblock الزامی است.

(گزینه از udfinfo 2.3 به بعد در دسترس است)

تعیین موقعیت بلوک جدول تخصیص مجازی (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 را بازنویسی می‌کند.

کدگذاری شناسه‌های رشته‌ای UDF در خروجی بر اساس تنظیمات محلی (locale) فعلی (پیش‌فرض).
کدگذاری شناسه‌های رشته‌ای UDF در خروجی به قالب ۸-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشرده‌سازی (Compression ID)، که معادل با کدگذاری Latin1 (ISO-8859-1) است. این گزینه تنها برای رشته‌هایی کار خواهد کرد که همهٔ کدپوینت‌های یونی‌کد آن‌ها کمتر از U+100 باشد.
کدگذاری شناسه‌های رشته‌ای UDF در خروجی به قالب ۱۶-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشرده‌سازی، که معادل با UTF-16BE است.
کدگذاری شناسه‌های رشته‌ای UDF در خروجی به UTF-8.

در صورت موفقیت، udfinfo مقدار 0 و در صورت بروز مشکل (مانند عدم وجود سیستم‌فایل UDF روی دستگاه بلوکی)، مقداری غیرصفر بازمی‌گرداند.

بخش اول خروجی استاندارد udfinfo شامل اطلاعاتی در قالب key=value است. فهرست تمام کلیدها به همراه مفهوم آن‌ها در جدول زیر آمده است:

نام فایل دستگاه بلوکی یا ایمیج فایل دیسک انتخاب‌شده
عنوان دیسک که نام مستعاری برای lvid است؛ بخش UDF LABEL AND UUID در udflabel(8) را ببینید
شناسهٔ UUID که ۱۶ رقم هگزادسیمال کوچک ابتدایی fullvsid است؛ بخش UDF LABEL AND UUID در udflabel(8) را ببینید
شناسهٔ Logical Volume Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Logical Volume Descriptor
شناسهٔ Volume Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor
مقدار fullvsid پس از بخش uuid، معمولاً نویسه‌های ۱۷ تا ۱۲۷
شناسهٔ File Set Identifier سیستم‌فایل UDF ذخیره‌شده در UDF File Set Descriptor
شناسهٔ Volume Set Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor
اطلاعات UDF Logical Volume Info1 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ نام مالک، فرد ایجادکنندهٔ رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد)
اطلاعات UDF Logical Volume Info2 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ نام سازمان مسئول ایجاد رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد)
اطلاعات UDF Logical Volume Info3 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ اطلاعات تماس مربوط به رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد)
شناسهٔ Application Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor؛ برنامه‌ای را که رسانه یا سیستم‌فایل را ایجاد کرده مشخص می‌کند (از udfinfo 2.3 به بعد)
شناسهٔ Developer Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Implementation Identifier از UDF Primary Volume Descriptor؛ پیاده‌سازی سازندهٔ رسانه یا سیستم‌فایل را به‌طور منحصربه‌فرد مشخص می‌کند (از udfinfo 2.3 به بعد)
مقدار Volume Serial Number مختص سیستم‌عامل ویندوز
اندازهٔ بلوک UDF
تعداد کل بلوک‌ها روی دستگاه بلوکی یا فایل ایمیج دیسک انتخاب‌شده
تعداد بلوک‌های فضای استفاده‌شده در دیسک UDF برای ذخیره‌سازی داده
تعداد بلوک‌های فضای آزاد در دیسک UDF برای ذخیره‌سازی داده
تعداد بلوک‌هایی که بعد از آخرین بلوک استفاده‌شده توسط دیسک UDF قرار دارند
تعداد فایل‌های ذخیره‌شده روی دیسک UDF
تعداد دایرکتوری‌های ذخیره‌شده روی دیسک UDF
نسخهٔ بازنگری (revision) سیستم‌فایل UDF موردنیاز برای خواندن دیسک UDF
نسخهٔ بازنگری سیستم‌فایل UDF موردنیاز برای نوشتن یا اصلاح دیسک UDF
موقعیت بلوکی که سیستم‌فایل UDF در آن آغاز می‌شود (تنها زمانی که غیرصفر باشد نمایش داده می‌شود، از udfinfo 2.3 به بعد)
موقعیت بلوکی که سیستم‌فایل UDF در آن پایان می‌یابد (تنها زمانی که با آخرین بلوک دیسک یکسان نباشد نمایش داده می‌شود، از udfinfo 2.3 به بعد)
موقعیت بلوک Virtual Allocation Table سیستم‌فایل UDF (تنها در صورت موجود بودن نمایش داده می‌شود)
یکپارچگی Logical Volume سیستم‌فایل UDF، یکی از مقادیر: opened، closed، unknown
نوع دسترسی UDF، یکی از مقادیر: overwritable، rewritable، writeonce، readonly، pseudo-overwritable، unknown
وضعیت پرچم SoftWriteProtect در UDF، به صورت yes یا no (از udfinfo 2.2 به بعد)
وضعیت پرچم HardWriteProtect در UDF، به صورت yes یا no (از udfinfo 2.2 به بعد)

زمانی که یکپارچگی UDF برابر با closed نباشد، بدین معنی است که دیسک UDF به درستی پیاده (unmount) نشده است، در وضعیتی ناسازگار قرار دارد و نیاز به ترمیم دارد.

اگر هر یک از پرچم‌های softwriteprotect یا hardwriteprotect فعال باشند، باید با دیسک UDF به عنوان یک دیسک فقط‌خواندنی رفتار شود.

تمام شناسه‌های رشته‌ای UDF به صورت یونی‌کد روی دیسک ذخیره می‌شوند؛ بنابراین مستقل از تنظیمات محلی (locale) یا صفحهٔ کد هستند. گزینه‌های --locale، --u8، --u16 و --utf8 نحوهٔ کدگذاری شناسه‌ها را در خروجی تعیین می‌کنند.

تمام نویسه‌های خط جدید (newline) از شناسه‌های رشته‌ای UDF حذف می‌شوند، از این رو تضمین می‌گردد که نویسهٔ خط جدید تنها به عنوان یک جداکننده وجود داشته باشد.

بخش دوم خروجی استاندارد udfinfo شامل فهرستی از انواع بلوک‌های UDF ذخیره‌شده روی دستگاه است که در هر سطر با قالب زیر نمایش می‌یابد:

start=block-num, blocks=block-count, type=block-type

بدین مفهوم که block-type از بلوک UDF به شمارهٔ block-num آغاز شده و به اندازهٔ block-count بلوک روی دستگاه گسترش می‌یابد.

مقدار Volume Serial Number مختص ویندوز، یک چکسام غیراستاندارد ۳۲-بیتی است که به صورت چهار چکسام ۸-بیتی XOR مجزا از توصیف‌گر File Set Descriptor با اندازهٔ ۵۱۲ بایت محاسبه می‌شود. بنابراین برخلاف UUID که ۶۴ بیتی است، امکان تعیین یا تغییر آن وجود ندارد. این چکسام غیراستاندارد تنها توسط سیستم‌های ویندوزی (از دوران Windows 98 که معرفی شد) به کار می‌رود و در سیستم‌های ویندوزی توسط برنامه‌هایی نظیر vol، dir یا fsutil.exe قابل نمایش است.

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) نیز اعمال می‌شد.

Pali Rohár <pali.rohar@gmail.com>

udfinfo از نسخهٔ 2.0 بخشی از بستهٔ udftools است و از https://github.com/pali/udftools در دسترس می‌باشد.

mkudffs(8), pktsetup(8), udflabel(8), cdrwtool(1), wrudf(1)

udftools Commands