'\" 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 UDFLABEL 8 "udftools" "Commands" .SH "نام (NAME)" udflabel \(em نمایش یا تغییر برچسب سیستم فایل UDF .SH "خلاصه دستور (SYNOPSIS)" .BI "udflabel [encoding\-options] [block\-options] [identifier\-options] \ " device " [" new\-label "]" .SH "توضیحات (DESCRIPTION)" هنگامی که \fBudflabel\fP بدون \fBidentifier\-options\fP و بدون مشخص کردن \fInew\-label\fP فراخوانی شود، برچسب فعلی سیستم فایل UDF روی \fIdevice\fP را در خروجی استاندارد چاپ می‌کند که با یک خط جدید پایان می‌یابد. در غیر این صورت، سیستم فایل UDF (تا بازبینی 2.60) روی \fIdevice\fP را با شناسه‌های جدید مشخص‌شده از طریق \fBidentifier\-options\fP به‌روزرسانی می‌کند. مشخص کردن \fInew\-label\fP معادل هم‌زمان گزینه‌های \fB\-\-lvid\fP و \fB\-\-vid\fP است؛ به بخش \fBبرچسب UDF و شناسه یکتا (UDF LABEL AND UUID)\fP مراجعه کنید. .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های عمومی (GENERAL OPTIONS)" .TP .B \-h,\-\-help نمایش راهنمای استفاده و فهرست گزینه‌ها. .SS "گزینه‌های بلوک (BLOCK OPTIONS)" .TP .BI \-b,\-\-blocksize= " block\-size " مشخص کردن اندازه بلوک‌ها به بایت. اندازه بلوک معتبر برای سیستم فایل UDF توانی از دو در محدوده \fI512\fP تا \fI32768\fP است و باید با اندازه منطقی (سکتور) دستگاه مطابقت داشته باشد. در صورت حذف این گزینه، \fBudflabel\fP تلاش می‌کند اندازه بلوک را به صورت خودکار شناسایی کند. ابتدا اندازه منطقی (سکتور) و سپس تمامی اندازه‌های بلوک معتبر را بررسی می‌کند. .TP .BI \-\-startblock= " start\-block " مشخص کردن مکان بلوکی که سیستم فایل UDF از آنجا شروع می‌شود. این گزینه برای محاسبه مکان بلوک دنباله شناسایی دیسک (Volume Recognition Sequence - ۳۲ کیلوبایت پس از بلوک شروع) و اولین اشاره‌گر توصیف‌گر لنگر دیسک (Anchor Volume Descriptor Pointer - ۲۵۶ بلوک پس از بلوک شروع) استفاده می‌شود. به طور معمول بلوک شروع \fI0\fP است، اما برای دیسک‌های نوری چندنشستی (Multisession UDF) مکان بلوکی است که آخرین نشست دیسک از آنجا آغاز می‌شود. در صورت عدم مشخص کردن، \fBudflabel\fP برای دیسک‌های نوری تلاش می‌کند بلوک شروع آخرین نشست را از جدول محتویات (Table Of Contents) دیسک تشخیص دهد. در غیر این صورت مقدار \fI0\fP استفاده می‌شود. برای دسترسی به نشست‌های قبلی دیسک نوری Multisession UDF، مشخص کردن بلوک صحیح شروع آن نشست قبلی الزامی است. همچنین باید از طریق گزینه \fB\-\-lastblock\fP پایان آن نشست مشخص شود. برای ایمیج‌های دیسک Multisession UDF ذخیره‌شده در فایل، راهی برای تشخیص شروع آخرین نشست وجود ندارد و بنابراین لازم است مکان صحیح بلوک شروع به صورت دستی از جدول محتویات دیسک نوری اصلی مشخص گردد. (این گزینه از نسخه 2.3 udflabel در دسترس است) .TP .BI \-\-lastblock= " last\-block " مشخص کردن مکان بلوکی که سیستم فایل UDF در آن به پایان می‌رسد. این گزینه برای محاسبه مکان بلوک دومین و سومین اشاره‌گر توصیف‌گر لنگر دیسک (۲۵۶ بلوک قبل از بلوک پایانی و خود بلوک پایانی) استفاده می‌شود. به طور معمول بلوک پایانی برابر با \fIتعداد بلوک‌های دیسک منهای یک\fP است، اما برای دیسک‌های نوری چندنشستی هنگام خواندن نشستی غیر از آخرین نشست (مشخص‌شده با \fB\-\-startblock\fP)، مکان بلوکی است که نشست مشخص‌شده در آن به پایان می‌رسد. در صورت عدم مشخص کردن، \fBudflabel\fP برای دیسک‌های نوری تلاش می‌کند آخرین بلوک ضبط‌شده را تشخیص دهد و در صورت عدم موفقیت، از آخرین بلوک دستگاه یا ایمیج فایل دیسک استفاده می‌کند. برای دسترسی به نشست قبلی دیسک نوری Multisession UDF، تعیین مقادیر صحیح برای هر دو گزینه \fB\-\-startblock\fP و \fB\-\-lastblock\fP الزامی است. (این گزینه از نسخه 2.3 udflabel در دسترس است) .TP .BI \-\-vatblock= " vat\-block " مشخص کردن مکان بلوک جدول تخصیص مجازی (Virtual Allocation Table). جدول تخصیص مجازی فقط در دیسک‌های UDF با نگاشت پارتیشن مجازی وجود دارد و باید در آخرین بلوک نوشته/ضبط‌شده دیسک قرار داشته باشد. در صورت عدم مشخص کردن، \fBudflabel\fP برای دیسک‌های نوری تلاش می‌کند آخرین بلوک ضبط‌شده را شناسایی کند و در صورت عدم موفقیت، از آخرین بلوک دستگاه بلوکی یا فایل ایمیج دیسک یا بلوک مشخص‌شده با \fB\-\-lastblock\fP استفاده می‌کند. در بیشتر موارد، این جایگزینی لزوماً کار نمی‌کند و برای ایمیج‌های فایل دیسک دارای جدول تخصیص مجازی لازم است مکان صحیح به صورت دستی مشخص شود. جدول تخصیص مجازی شامل شناسه دیسک منطقی (برچسب UDF) است. .TP .B \-\-force اجبار به به‌روزرسانی دیسک‌های UDF بدون پشتیبانی از نوشتن یا دیسک‌های محافظت‌شده در برابر نوشتن. برخی دیسک‌های UDF ممکن است فلگ محافظت در برابر نوشتن را فعال کرده باشند. برخی رسانه‌ها مانند CD-ROM، DVD-ROM یا BD-ROM فقط‌خواندنی هستند. رسانه‌های دیگر مانند CD-RW یا DVD-RW یک‌بار‌نوشتنی (write-once) هستند. UDF همچنین برای چنین رسانه‌هایی طراحی شده است که در آن‌ها به‌روزرسانی برچسب یا شناسه‌ها ممکن نیست. اما در موارد نادری، ممکن است تلاش برای بازنویسی برچسب یا شناسه‌های موجود برای سیستم فایل UDF با نوع دسترسی فقط‌خواندنی یا قابل ضبط منطقی باشد. این کار تنها در صورتی ممکن است که رسانه زیرین از بازنویسی پشتیبانی کند؛ مانند ایمیج UDF از یک CD-ROM ذخیره‌شده روی دیسک سخت، یا ایمیج UDF فقط‌خواندنی رایت‌شده روی دیسک‌های DVD-RAM یا BD-RE. گزینه \fB\-\-force\fP نوع دسترسی UDF را نادیده گرفته و با آن مانند قابل بازنویسی (Overwritable) رفتار می‌کند. همچنین فلگ‌های \fISoftWriteProtect\fP و \fIHardWriteProtected\fP مربوط به UDF را نادیده می‌گیرد. .TP .B \-n,\-\-no\-write عدم نوشتن واقعی روی \fIdevice\fP. صرفاً شبیه‌سازی و نمایش آنچه روی \fIdevice\fP رخ خواهد داد. برای تعیین اینکه کدام بلوک‌های UDF بازنویسی می‌شوند مفید است. .SS "گزینه‌های شناسه (IDENTIFIER OPTIONS)" .TP .BI \-u,\-\-uuid= " uuid " مشخص کردن uuid سیستم فایل UDF. باید دقیقاً شامل ۱۶ رقم هگزادسیمال با حروف کوچک باشد و برای ۱۶ کاراکتر اول گزینه \fB\-\-fullvsid\fP استفاده می‌شود. مقدار ویژه \fIrandom\fP یک uuid جدید بر اساس زمان محلی و یک عدد تصادفی تولید می‌کند. به بخش \fBبرچسب UDF و شناسه یکتا (UDF LABEL AND UUID)\fP مراجعه کنید. .TP .BI \-\-lvid= " new\-logical\-volume\-identifier " مشخص کردن شناسه جدید دیسک منطقی (Logical Volume Identifier). .TP .BI \-\-vid= " new\-volume\-identifier " مشخص کردن شناسه جدید دیسک (Volume Identifier). .TP .BI \-\-vsid= " new\-volume\-set\-identifier " مشخص کردن کاراکترهای ۱۷ تا ۱۲۷ شناسه مجموعه دیسک (Volume Set Identifier). به بخش \fBبرچسب UDF و شناسه یکتا (UDF LABEL AND UUID)\fP مراجعه کنید. .TP .BI \-\-fsid= " new\-file\-set\-identifier " مشخص کردن شناسه جدید مجموعه فایل (File Set Identifier). .TP .BI \-\-fullvsid= " new\-full\-volume\-set\-identifier " مشخص کردن شناسه کامل جدید مجموعه دیسک. گزینه‌های قبلی \fB\-\-uuid\fP و \fB\-\-vsid\fP را بازنویسی می‌کند. به بخش \fBبرچسب UDF و شناسه یکتا (UDF LABEL AND UUID)\fP مراجعه کنید. .TP .BI \-\-owner= " new\-owner\-name " مشخص کردن نام مالک جدید، فردی که رسانه یا سیستم فایل را ایجاد کرده است. این مقدار در UDF Logical Volume Info1، بخشی از توصیف‌گر دیسک کاربرد پیاده‌سازی UDF ذخیره می‌شود. (در دسترس از نسخه 2.3 udflabel) .TP .BI \-\-organization= " new\-organization\-name " مشخص کردن نام سازمان جدید مسئول ایجاد رسانه یا سیستم فایل. این مقدار در UDF Logical Volume Info2، بخشی از توصیف‌گر دیسک کاربرد پیاده‌سازی UDF ذخیره می‌شود. (در دسترس از نسخه 2.3 udflabel) .TP .BI \-\-contact= " new\-contact\-information " مشخص کردن اطلاعات تماس جدید برای رسانه یا سیستم فایل. این مقدار در UDF Logical Volume Info3، بخشی از توصیف‌گر دیسک کاربرد پیاده‌سازی UDF ذخیره می‌شود. (در دسترس از نسخه 2.3 udflabel) .TP .BI \-\-appid= " new\-application\-identifier " مشخص کردن شناسه برنامه کاربردی جدید که برنامه‌سازنده رسانه یا سیستم فایل را معرفی می‌کند. در توصیف‌گر اولیه دیسک UDF ذخیره می‌شود. این شناسه می‌تواند خالی باشد یا باید با \fI*\fP شروع شده و فقط شامل نویسه‌های 7-bit ASCII باشد. (در دسترس از نسخه 2.3 udflabel) .TP .BI \-\-impid= " new\-developer\-identifier " مشخص کردن شناسه توسعه‌دهنده جدید برای شناسه پیاده‌سازی (Implementation Identifier). این شناسه یکتای پیاده‌سازی است که رسانه یا سیستم فایل را ساخته است. در توصیف‌گر اولیه دیسک UDF ذخیره می‌شود. این شناسه باید با \fI*\fP شروع شده و فقط شامل نویسه‌های 7-bit ASCII باشد. (در دسترس از نسخه 2.3 udflabel) .SS "گزینه‌های کدگذاری (ENCODING OPTIONS)" .TP .B \-\-locale رفتار با گزینه‌های رشته‌ای شناسه به عنوان رشته‌های کدگذاری‌شده طبق تنظیمات محلی (locale) فعلی (پیش‌فرض). باید به عنوان اولین آرگومان مشخص شود. .TP .B \-\-u8 رفتار با گزینه‌های رشته‌ای شناسه به عنوان رشته‌های کدگذاری‌شده در قالب یونیکد فشرده OSTA هشت بیتی بدون بایت فشرده‌سازی ابتدایی، که معادل Latin1 (ISO-8859-1) است. باید به عنوان اولین آرگومان مشخص شود. .TP .B \-\-u16 رفتار با گزینه‌های رشته‌ای شناسه به عنوان رشته‌های کدگذاری‌شده در قالب یونیکد فشرده OSTA شانزده بیتی بدون بایت فشرده‌سازی ابتدایی، که معادل UTF-16BE است. توجه داشته باشید که گنجاندن بایت صفر در گزینه‌های خط فرمان ممکن نیست، بنابراین هر نویسه‌ای که حداقل یک بایت صفر داشته باشد نمی‌تواند ارائه شود (این مورد شامل تمام نویسه‌های Latin1 می‌شود). باید به عنوان اولین آرگومان مشخص شود. .TP .B \-\-utf8 رفتار با گزینه‌های رشته‌ای شناسه به عنوان رشته‌های کدگذاری‌شده با UTF-8. باید به عنوان اولین آرگومان مشخص شود. .SH "برچسب UDF و شناسه یکتا (UDF LABEL AND UUID)" مشخصات فنی UDF اشاره‌ای به برچسب دیسک نمی‌کند، اما شرح می‌دهد که شناسه دیسک منطقی UDF (UDF Logical Volume Identifier) یک فیلد بسیار مهم برای شناسایی رسانه در یک جوک‌باکس است چرا که این فیلد به کاربر نمایش داده می‌شود. بر اساس این قاعده، در اکثر پیاده‌سازی‌های UDF مرسوم است که از شناسه دیسک منطقی UDF به عنوان برچسب دیسک UDF استفاده شود. مشخصات UDF بر خلاف سایر سیستم‌های فایل مفهومی به نام UUID دیسک ندارد. اما الزام می‌کند که ۱۶ نویسه اول شناسه مجموعه دیسک UDF (UDF Volume Set Identifier) یکتا، غیرثابت و غیربدیهی باشد. علاوه بر این، هشت نویسه اول ارقام هگزادسیمال هستند. برنامه ویندوزی \fBformat.exe\fP و برنامه مکینتاش \fBnewfs_udf\fP مشهور به نقض این الزامات هستند و تنها ۸ نویسه اول را یکتا تعیین می‌کنند (بقیه ثابت هستند). از آنجا که هنوز پیاده‌سازی‌های زیادی از UDF وجود دارند که در ۱۶ نویسه اول فقط از ارقام هگزادسیمال استفاده می‌کنند و تمام پیاده‌سازی‌های منطبق بر استاندارد UDF دارای ارقام هگزادسیمال در ۸ نویسه اول هستند، الگوریتم زیر برای تولید UUID پایدار به صورت غیررسمی انتخاب شده و اکنون توسط udftools، util-linux، grub2 و سایر پروژه‌ها استفاده می‌شود: .RS 0. اگر شناسه مجموعه دیسک کمتر از ۸ نویسه دارد، با یک UUID خالی متوقف شو. .br 1. دریافت ۱۶ بایت اول از رشته کدگذاری‌شده UTF-8 شناسه مجموعه دیسک. .br 2. اگر تمام بایت‌ها ارقام هگزادسیمال هستند، استفاده از فرم حروف کوچک آن‌ها به عنوان UUID. .br 3. اگر ۸ بایت اول همگی ارقام هگزادسیمال نیستند، تبدیل آن ۸ بایت به نمایش هگزادسیمال آن‌ها (حاصل ۱۶ بایت) و استفاده به عنوان UUID. .br 4. در غیر این صورت، ترکیب UUID از دو بخش ۸ بایتی: .RS بخش 1: استفاده از حالت حروف کوچک ۸ بایت اول (که ارقام هگزادسیمال هستند). .br بخش 2: تبدیل ۴ بایت بعدی (موقعیت‌های ۹ تا ۱۲) به نمایش هگزادسیمال آن‌ها. .RE .RE این بدان معناست که این UUID تولیدشده همیشه ۱۶ رقم هگزادسیمال با حروف کوچک دارد. در بیشتر موارد، این UUID بدون حساسیت به حروف کوچک و بزرگ با ۱۶ نویسه اول شناسه مجموعه دیسک UDF مطابقت دارد و برای تمام دیسک‌های سازگار با استاندارد UDF، هشت بایت اول UUID بدون حساسیت به حروف کوچک و بزرگ با ۸ نویسه اول شناسه مجموعه دیسک مطابقت دارد. در این الگوریتم کدگذاری UTF-8 انتخاب شد زیرا تنها تبدیل رایج یونیکد به بایت با نقاط ثابت در تمام ارقام هگزادسیمال است. .SH "وضعیت خروج (EXIT STATUS)" دستور \fBudflabel\fP در صورت موفقیت مقدار 0 و در صورت بروز مشکلاتی نظیر عدم وجود سیستم فایل UDF روی دستگاه یا شکست به‌روزرسانی، مقداری غیرصفر برمی‌گرداند. .SH "محدودیت‌ها (LIMITATIONS)" دستور \fBudflabel\fP قادر به تنظیم برچسب جدید، شناسه دیسک منطقی و شناسه مجموعه فایل برای دیسک‌های دارای جدول تخصیص مجازی (مورد استفاده در رسانه‌های یک‌بار‌نوشتنی) نیست. دستور \fBudflabel\fP قبل از نسخه 2.3 قادر به مدیریت صحیح دیسک‌های Multisession UDF نبود. همیشه فقط به اولین نشست (قدیمی‌ترین) دسترسی داشت و به آخرین نشست (جدیدترین) دسترسی پیدا نمی‌کرد. دستور \fBudflabel\fP قبل از نسخه 2.2 قادر به چاپ و پردازش صحیح رشته‌های یونیکد با کدهای بالاتر از U+FFFF نبود. هنگامی که گزینه \fB\-\-utf8\fP مشخص می‌شد رشته‌های ورودی به توالی‌های ۳ بایتی UTF-8 محدود می‌شدند و زمانی که گزینه \fB\-\-u16\fP مشخص می‌شد رشته‌های ورودی تنها به رشته‌های UCS-2BE (زیرمجموعه UTF-16BE) محدود بودند. دستور \fBudflabel\fP قبل از نسخه 2.2 فلگ‌های \fISoftWriteProtect\fP و \fIHardWriteProtected\fP مربوط به UDF را نادیده می‌گرفت و بدون هیچ هشداری چنین دیسک‌هایی را بازنویسی می‌کرد. دستور \fBudflabel\fP قبل از نسخه 2.2 قادر به تنظیم برچسب جدید، شناسه دیسک منطقی و شناسه مجموعه فایل برای دیسک‌های دارای پارتیشن فراداده (Metadata Partition - مورد استفاده در بازبینی‌های UDF بالاتر از 2.01) نبود. دستور \fBudflabel\fP قبل از نسخه 2.1 در صورتی که دیسک دارای جدول تخصیص مجازی ذخیره‌شده در خارج از بلوک کنترل اطلاعات بود، قادر به خواندن صحیح برچسب نبود. .SH "نویسنده (AUTHOR)" .nf Pali Rohár .fi .SH "دسترس‌پذیری (AVAILABILITY)" ابزار \fBudflabel\fP از نسخه 2.0 بخشی از بسته udftools است و از نشانی https://github.com/pali/udftools در دسترس می‌باشد. .SH "همچنین ببینید (SEE ALSO)" \fBmkudffs\fP(8), \fBpktsetup\fP(8), \fBcdrwtool\fP(1), \fBudfinfo\fP(1), \fBwrudf\fP(1)