| COMPOSEFS-DUMP(5) | قالبهای فایل | COMPOSEFS-DUMP(5) |
نام (NAME)
composefs-dump - قالب دادههای متنی و متادیتا برای composefs
توضیحات (DESCRIPTION)
هر دو دستور composefs-info و mkcomposefs از تولید و خواندن توصیفهای متنی محتویات یک ایمیج composefs پشتیبانی میکنند. از این قابلیت میتوان برای بازبینی یا تغییر یک ایمیج، یا برای ساخت یک ایمیج بدون نیاز به وجود دایرکتوری محلی حاوی فایلها استفاده کرد.
قالب فایل بسیار ساده است؛ در هر سطر یک فایل قرار میگیرد که ابتدا با ۱۱ فیلد ثابت شروع میشود و در ادامه تعداد متغیری از ویژگیهای گسترشیافته (xattr) فایل قرار میگیرد. توصیه میشود، اما الزامی نیست، که برای آخرین فایل نیز یک خط جدید در انتها قرار داده شود.
فیلدها با یک فاصله، و سطرها با یک خط جدید جدا میشوند. ویژگیهای گسترشیافته علاوه بر این از '=' برای جداسازی کلید از مقدار استفاده میکنند. بنابراین تمام این کاراکترها و همچنین کاراکترهای غیرقابلچاپ در فیلدها اسکیپ میشوند ('=' فقط در فیلدهای xattr). همچنین، بکاسلشها نیز باید اسکیپ شوند زیرا به عنوان سازوکار اسکیپ به کار میروند.
اسکیپها به صورت \xXY هستند که یک تکبایت را با دو رقم هگزادسیمال اسکیپ میکند. برای نمونه \x00 بایت صفر و \xff بایت ۲۵۵ است. به صورت اختیاری، این اسکیپهای سفارشی نیز پشتیبانی میشوند:
*\\*
: بکاسلش.
\n
: خط جدید (newline).
\r
: بازگشت به
ابتدای سطر
(carriage return).
\t
: تب (tab).
فیلدهای اختیاری که تنظیم نشدهاند حاوی '-' هستند، و اگر مقداری در واقعیت برابر با این کاراکتر باشد، اسکیپ میشود.
فیلدهای ثابت در هر سطر عبارتند از (تمامی اعداد در مبنای ۱۰ هستند مگر اینکه خلاف آن مشخص شده باشد):
- PATH
- مسیر کامل و مطلق فایل در ایمیج. هر دایرکتوری که به عنوان پیشوند در مسیر استفاده میشود باید پیش از این سطر در فایل آمده باشد.
- SIZE
- اندازه فایل. این مقدار برای دایرکتوریها نادیده گرفته میشود.
- MODE
- فیلد st_mode از stat
برای فایل
در مبنای
هشت
(اکتال)، که
هم
دسترسیها
و هم نوع
فایل را در
بر میگیرد.
علاوه بر این، اگر فایل یک پیوند سخت (hardlink) باشد، این فیلد با یک کاراکتر تک '@' آغاز میشود، و فیلد payload به فایل هدف اشاره میکند. توجه داشته باشید که تمام فیلدهای دیگر به طور معمول برای یک پیوند سخت مانند هدف پر میشوند، اما هنگام ساخت یک فایل جدید تمام فیلدها به جز payload نادیده گرفته میشوند.
- NLINK
- فیلد st_nlink از stat.
- UID
- شناسه کاربری (UID) مالک.
- GID
- شناسه گروهی (GID) مالک.
- RDEV
- فیلد st_rdev از stat.
- MTIME
- زمان تغییر بر حسب ثانیه و نانوثانیه از مبدأ زمان یونیکس (epoch)، جدا شده با '.'. توجه داشته باشید که این مقدار یک عدد اعشاری (float) نیست؛ "1.1" به معنی یک ثانیه و یک نانوثانیه است.
- PAYLOAD
- بار دادهای (payload) فایل. برای پیوندهای نمادین، این به معنی هدف پیوند نمادین است. برای فایلهای معمولی، این مسیر نسبی برای فایلهای پشتیبان است. برای پیوندهای سخت (به MODE نگاه کنید)، این مسیر فایل دیگری در همین فایل است که این مورد پیوند سختی از آن محسوب میشود.
- CONTENT
- فایلهای کوچک میتوانند محتوای واقعی را درون ایمیج composefs به صورت درونخطی (inline) قرار دهند. این فیلد شامل نسخه اسکیپشده محتوا است. این مقدار باید با اندازه مشخصشده در SIZE مطابقت داشته باشد.
- DIGEST
- یک دایجست fs-verity برای فایل (تنها برای فایلهای معمولی استفاده میشود، و در صورتی که CONTENT تنظیم شده باشد استفاده نمیشود) که هنگام استفاده در برابر فایلهای پشتیبان اعتبارسنجی میشود.
پس از فیلدهای ثابت، xattrها میآیند که اسکیپ شده و با فاصله جدا میشوند و به صورت KEY=VALUE هستند. توجه داشته باشید که '=' باید در KEY اسکیپ شود.
مثالها (EXAMPLES)
/ 4096 40755 4 1000 1000 0 1695372970.944925700 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00 /a\x20dir\x20w\x20space 27 40755 2 1000 1000 0 1694598852.869646118 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00 /a-dir 45 40755 2 1000 1000 0 1674041780.601887980 - - - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00 /a-dir/a-file 259 100644 1 1000 1000 0 1695368732.385062094 35/d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 - 35d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00 /a-hardlink 259 @100644 1 1000 1000 0 1695368732.385062094 /a-dir/a-file - 35d02f81325122d77ec1d11baba655bc9bf8a891ab26119a41c50fa03ddfb408 security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00 /inline.txt 10 100644 1 1000 1000 0 1697019909.446146440 - some-text\n - security.selinux=unconfined_u:object_r:unlabeled_t:s0\x00
همچنین ببینید (SEE ALSO)
composefs-info(1), mkcomposefs(1)
پروژه
بالادست composefs:
⟨https://github.com/containers/composefs⟩
| سپتامبر ۲۰۲۶ | composefs |