'\" t -*- coding: UTF-8 -*- .\" Copyright (C) 2017-2021 Pali Rohár .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License along .\" with this program; if not, write to the Free Software Foundation, Inc., .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. .\" .TH UDFINFO 1 "udftools" "Commands" .SH "نام (NAME)" udfinfo \- نمایش اطلاعات مربوط به سیستم‌فایل UDF .SH "خلاصه دستور (SYNOPSIS)" .BI "udfinfo [ options ] " device .SH "توضیحات (DESCRIPTION)" \fBudfinfo\fP اطلاعات گوناگونی را دربارهٔ سیستم‌فایل UDF ذخیره‌شده بر روی یک دستگاه بلوکی یا در فایل ایمیج دیسک نمایش می‌دهد. خروجی \fBudfinfo\fP برای تجزیه و پردازش توسط برنامه‌ها یا اسکریپت‌های خارجی مناسب است. .SH "گزینه‌ها (OPTIONS)" .TP .B \-h,\-\-help نمایش راهنمای استفاده و فهرست گزینه‌ها. .TP .BI \-b,\-\-blocksize= " block\-size " تعیین اندازهٔ بلوک‌ها برحسب بایت. اندازهٔ بلوک معتبر برای سیستم‌فایل UDF توانی از ۲ در بازهٔ \fI512\fP تا \fI32768\fP است و باید با اندازهٔ منطقی (سکتور) دستگاه مطابقت داشته باشد. در صورت حذف، \fBudfinfo\fP تلاش می‌کند اندازهٔ بلوک را به صورت خودکار تشخیص دهد. ابتدا اندازهٔ منطقی (سکتور) و سپس تمام اندازه‌های معتبر بلوک را بررسی می‌کند. .TP .BI \-\-startblock= " start\-block " تعیین موقعیت بلوکی که سیستم‌فایل UDF در آن آغاز می‌شود. این گزینه برای محاسبهٔ موقعیت بلوک «توالی شناسایی حجم» (Volume Recognition Sequence یا ۳۲ کیلوبایت پس از بلوک آغازین) و نخستین «اشاره‌گر توصیف‌گر حجم مهار» (Anchor Volume Descriptor Pointer یا ۲۵۶ بلوک پس از بلوک آغازین) به کار می‌رود. به‌طور معمول بلوک آغازین \fI0\fP است، اما برای دیسک‌های نوری چندنشستی (Multisession) UDF، این مقدار موقعیت بلوکی است که آخرین نشست دیسک UDF در آن شروع می‌شود. در صورت حذف، \fBudfinfo\fP برای دیسک نوری تلاش می‌کند بلوک آغازین آخرین نشست را از «جدول محتویات» (Table Of Contents) دیسک تشخیص دهد. در غیر این صورت مقدار \fI0\fP استفاده می‌شود. برای دسترسی به نشست‌های قبلی دیسک نوری Multisession UDF، لازم است بلوک صحیحی که آن نشست در آن آغاز می‌شود مشخص شود. همچنین باید محل پایان آن نشست از طریق گزینهٔ \fB\-\-lastblock\fP تعیین گردد. برای فایل‌های ایمیج دیسک Multisession UDF هیچ راهی برای تشخیص خودکار محل شروع آخرین نشست وجود ندارد و بنابراین ضروری است که موقعیت صحیح بلوک آغازین به صورت دستی از روی جدول محتویات (TOC) دیسک نوری اصلی تعیین شود. (گزینه از udfinfo 2.3 به بعد در دسترس است) .TP .BI \-\-lastblock= " last\-block " تعیین موقعیت بلوکی که سیستم‌فایل UDF در آن پایان می‌یابد. این مقدار برای محاسبهٔ موقعیت بلوک اشاره‌گرهای دوم و سوم Anchor Volume Descriptor (۲۵۶ بلوک پیش از آخرین بلوک و خودِ آخرین بلوک) استفاده می‌شود. به‌طور معمول آخرین بلوک برابر با \fIتعداد کل بلوک‌های دیسک منهای یک\fP است، اما برای دیسک‌های نوری Multisession UDF هنگام خواندن نشستی غیر از آخرین نشست (مشخص‌شده با \fB\-\-startblock\fP)، موقعیت بلوکی است که نشست مشخص‌شده در آن به پایان می‌رسد. در صورت حذف، \fBudfinfo\fP برای دیسک‌های نوری تلاش می‌کند آخرین بلوک ضبط‌شده را تشخیص دهد و در صورت عدم موفقیت، به عنوان جایگزین به آخرین بلوک دستگاه یا فایل ایمیج دیسک رجوع می‌کند. برای دسترسی به نشست‌های قبلی یک دیسک نوری Multisession UDF، تعیین مقادیر صحیح برای هر دو گزینهٔ \fB\-\-startblock\fP و \fB\-\-lastblock\fP الزامی است. (گزینه از udfinfo 2.3 به بعد در دسترس است) .TP .BI \-\-vatblock= " vat\-block " تعیین موقعیت بلوک جدول تخصیص مجازی (Virtual Allocation Table). جدول تخصیص مجازی تنها روی دیسک‌های UDF دارای نگاشت افراز مجازی (Virtual Partition Map) وجود دارد و باید در آخرین بلوک نوشته/ضبط‌شدهٔ دیسک قرار گیرد. در صورت حذف، \fBudfinfo\fP برای دیسک‌های نوری سعی می‌کند آخرین بلوک ضبط‌شده را تشخیص دهد و در صورت عدم موفقیت، به عنوان جایگزین به آخرین بلوک دستگاه بلوکی یا فایل ایمیج دیسک یا بلوک مشخص‌شده با \fB\-\-lastblock\fP رجوع می‌کند. در اغلب موارد این روش جایگزین کارایی ندارد و برای فایل‌های ایمیج دیسک دارای Virtual Allocation Table تعیین موقعیت دقیق الزامی است. جدول تخصیص مجازی شامل موقعیت بلوک‌های دیسک UDF است که برای خواندن فضای ذخیره‌سازی داده، تعیین بلوک‌های فضای استفاده‌شده و آزاد، خواندن File Set Identifier و محاسبهٔ Volume Serial Number مختص ویندوز لازم هستند. همچنین حاوی Logical Volume Identifier بوده و مقادیر ذخیره‌شدهٔ قبلی در Logical Volume Descriptor را بازنویسی می‌کند. .TP .B \-\-locale کدگذاری شناسه‌های رشته‌ای UDF در خروجی بر اساس تنظیمات محلی (locale) فعلی (پیش‌فرض). .TP .B \-\-u8 کدگذاری شناسه‌های رشته‌ای UDF در خروجی به قالب ۸-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشرده‌سازی (Compression ID)، که معادل با کدگذاری Latin1 (ISO-8859-1) است. این گزینه تنها برای رشته‌هایی کار خواهد کرد که همهٔ کدپوینت‌های یونی‌کد آن‌ها کمتر از U+100 باشد. .TP .B \-\-u16 کدگذاری شناسه‌های رشته‌ای UDF در خروجی به قالب ۱۶-بیتی OSTA Compressed Unicode بدون بایت آغازین شناسهٔ فشرده‌سازی، که معادل با UTF-16BE است. .TP .B \-\-utf8 کدگذاری شناسه‌های رشته‌ای UDF در خروجی به UTF-8. .SH "وضعیت خروج (EXIT STATUS)" در صورت موفقیت، \fBudfinfo\fP مقدار 0 و در صورت بروز مشکل (مانند عدم وجود سیستم‌فایل UDF روی دستگاه بلوکی)، مقداری غیرصفر بازمی‌گرداند. .SH "قالب خروجی (OUTPUT FORMAT)" بخش اول خروجی استاندارد \fBudfinfo\fP شامل اطلاعاتی در قالب \fIkey\fP=\fIvalue\fP است. فهرست تمام کلیدها به همراه مفهوم آن‌ها در جدول زیر آمده است: .RS .TP 1.7i .I filename نام فایل دستگاه بلوکی یا ایمیج فایل دیسک انتخاب‌شده .TP .I label عنوان دیسک که نام مستعاری برای \fIlvid\fP است؛ بخش \fBUDF LABEL AND UUID\fP در \fBudflabel\fP(8) را ببینید .TP .I uuid شناسهٔ UUID که ۱۶ رقم هگزادسیمال کوچک ابتدایی \fIfullvsid\fP است؛ بخش \fBUDF LABEL AND UUID\fP در \fBudflabel\fP(8) را ببینید .TP .I lvid شناسهٔ Logical Volume Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Logical Volume Descriptor .TP .I vid شناسهٔ Volume Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor .TP .I vsid مقدار \fIfullvsid\fP پس از بخش \fIuuid\fP، معمولاً نویسه‌های ۱۷ تا ۱۲۷ .TP .I fsid شناسهٔ File Set Identifier سیستم‌فایل UDF ذخیره‌شده در UDF File Set Descriptor .TP .I fullvsid شناسهٔ Volume Set Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor .TP .I owner اطلاعات UDF Logical Volume Info1 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ نام مالک، فرد ایجادکنندهٔ رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد) .TP .I organization اطلاعات UDF Logical Volume Info2 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ نام سازمان مسئول ایجاد رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد) .TP .I contact اطلاعات UDF Logical Volume Info3 ذخیره‌شده در UDF Implementation Use Volume Descriptor؛ نشان‌دهندهٔ اطلاعات تماس مربوط به رسانه یا سیستم‌فایل (از udfinfo 2.3 به بعد) .TP .I appid شناسهٔ Application Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Primary Volume Descriptor؛ برنامه‌ای را که رسانه یا سیستم‌فایل را ایجاد کرده مشخص می‌کند (از udfinfo 2.3 به بعد) .TP .I impid شناسهٔ Developer Identifier سیستم‌فایل UDF ذخیره‌شده در UDF Implementation Identifier از UDF Primary Volume Descriptor؛ پیاده‌سازی سازندهٔ رسانه یا سیستم‌فایل را به‌طور منحصربه‌فرد مشخص می‌کند (از udfinfo 2.3 به بعد) .TP .I winserialnum مقدار Volume Serial Number مختص سیستم‌عامل ویندوز .TP .I blocksize اندازهٔ بلوک UDF .TP .I blocks تعداد کل بلوک‌ها روی دستگاه بلوکی یا فایل ایمیج دیسک انتخاب‌شده .TP .I usedblocks تعداد بلوک‌های فضای استفاده‌شده در دیسک UDF برای ذخیره‌سازی داده .TP .I freeblocks تعداد بلوک‌های فضای آزاد در دیسک UDF برای ذخیره‌سازی داده .TP .I behindblocks تعداد بلوک‌هایی که بعد از آخرین بلوک استفاده‌شده توسط دیسک UDF قرار دارند .TP .I numfiles تعداد فایل‌های ذخیره‌شده روی دیسک UDF .TP .I numdirs تعداد دایرکتوری‌های ذخیره‌شده روی دیسک UDF .TP .I udfrev نسخهٔ بازنگری (revision) سیستم‌فایل UDF موردنیاز برای خواندن دیسک UDF .TP .I udfwriterev نسخهٔ بازنگری سیستم‌فایل UDF موردنیاز برای نوشتن یا اصلاح دیسک UDF .TP .I startblock موقعیت بلوکی که سیستم‌فایل UDF در آن آغاز می‌شود (تنها زمانی که غیرصفر باشد نمایش داده می‌شود، از udfinfo 2.3 به بعد) .TP .I lastblock موقعیت بلوکی که سیستم‌فایل UDF در آن پایان می‌یابد (تنها زمانی که با آخرین بلوک دیسک یکسان نباشد نمایش داده می‌شود، از udfinfo 2.3 به بعد) .TP .I vatblock موقعیت بلوک Virtual Allocation Table سیستم‌فایل UDF (تنها در صورت موجود بودن نمایش داده می‌شود) .TP .I integrity یکپارچگی Logical Volume سیستم‌فایل UDF، یکی از مقادیر: \fIopened\fP، \fIclosed\fP، \fIunknown\fP .TP .I accesstype نوع دسترسی UDF، یکی از مقادیر: \fIoverwritable\fP، \fIrewritable\fP، \fIwriteonce\fP، \fIreadonly\fP، \fIpseudo\-overwritable\fP، \fIunknown\fP .TP .I softwriteprotect وضعیت پرچم SoftWriteProtect در UDF، به صورت \fIyes\fP یا \fIno\fP (از udfinfo 2.2 به بعد) .TP .I hardwriteprotect وضعیت پرچم HardWriteProtect در UDF، به صورت \fIyes\fP یا \fIno\fP (از udfinfo 2.2 به بعد) .RE زمانی که یکپارچگی UDF برابر با \fIclosed\fP نباشد، بدین معنی است که دیسک UDF به درستی پیاده (unmount) نشده است، در وضعیتی ناسازگار قرار دارد و نیاز به ترمیم دارد. اگر هر یک از پرچم‌های \fIsoftwriteprotect\fP یا \fIhardwriteprotect\fP فعال باشند، باید با دیسک UDF به عنوان یک دیسک فقط‌خواندنی رفتار شود. تمام شناسه‌های رشته‌ای UDF به صورت یونی‌کد روی دیسک ذخیره می‌شوند؛ بنابراین مستقل از تنظیمات محلی (locale) یا صفحهٔ کد هستند. گزینه‌های \fB\-\-locale\fP، \fB\-\-u8\fP، \fB\-\-u16\fP و \fB\-\-utf8\fP نحوهٔ کدگذاری شناسه‌ها را در خروجی تعیین می‌کنند. تمام نویسه‌های خط جدید (newline) از شناسه‌های رشته‌ای UDF حذف می‌شوند، از این رو تضمین می‌گردد که نویسهٔ خط جدید تنها به عنوان یک جداکننده وجود داشته باشد. بخش دوم خروجی استاندارد \fBudfinfo\fP شامل فهرستی از انواع بلوک‌های UDF ذخیره‌شده روی دستگاه است که در هر سطر با قالب زیر نمایش می‌یابد: .RS start=\fIblock\-num\fP, blocks=\fIblock\-count\fP, type=\fIblock\-type\fP .RE بدین مفهوم که \fIblock\-type\fP از بلوک UDF به شمارهٔ \fIblock\-num\fP آغاز شده و به اندازهٔ \fIblock\-count\fP بلوک روی دستگاه گسترش می‌یابد. مقدار \fIVolume Serial Number\fP مختص ویندوز، یک چکسام غیراستاندارد ۳۲-بیتی است که به صورت چهار چکسام ۸-بیتی XOR مجزا از توصیف‌گر File Set Descriptor با اندازهٔ ۵۱۲ بایت محاسبه می‌شود. بنابراین برخلاف UUID که ۶۴ بیتی است، امکان تعیین یا تغییر آن وجود ندارد. این چکسام غیراستاندارد تنها توسط سیستم‌های ویندوزی (از دوران Windows 98 که معرفی شد) به کار می‌رود و در سیستم‌های ویندوزی توسط برنامه‌هایی نظیر \fBvol\fP، \fBdir\fP یا \fBfsutil.exe\fP قابل نمایش است. .SH "محدودیت‌ها (LIMITATIONS)" \fBudfinfo\fP در نسخه‌های پیش از 2.3 قادر به مدیریت صحیح دیسک‌های Multisession UDF نبود. این ابزار همواره تنها اطلاعات مربوط به نشست نخست (قدیمی‌ترین) را نمایش می‌داد و نه نشست آخر (تازه‌ترین). \fBudfinfo\fP در نسخه‌های پیش از 2.2 قادر به چاپ صحیح رشته‌های یونی‌کد با کدپوینت‌های فراتر از U+FFFF نبود. \fBudfinfo\fP در نسخه‌های پیش از 2.2 قادر به خواندن پارتیشن فراداده (Metadata Partition) نبود. بنابراین تعیین بلوک‌های فضای مصرف‌شده و آزاد، خواندن File Set Identifier و محاسبهٔ Volume Serial Number مختص ویندوز برای دیسک‌های دارای نسخهٔ بازنگری UDF بالاتر از 2.01 که پارتیشن فراداده داشتند، لزوماً در دسترس یا با محاسبهٔ دقیق نبود. \fBudfinfo\fP در نسخه‌های پیش از 2.1 قادر به خواندن Virtual Allocation Table ذخیره‌شده در خارج از Information Control Block نبود. بنابراین محدودیت فوق برای برخی رسانه‌های یک‌بارنوشتنی (Write Once) نیز اعمال می‌شد. .SH "نویسندگان (AUTHORS)" .nf Pali Rohár .fi .SH "در دسترس بودن (AVAILABILITY)" \fBudfinfo\fP از نسخهٔ 2.0 بخشی از بستهٔ udftools است و از در دسترس می‌باشد. .SH "همچنین ببینید (SEE ALSO)" \fBmkudffs\fP(8), \fBpktsetup\fP(8), \fBudflabel\fP(8), \fBcdrwtool\fP(1), \fBwrudf\fP(1)