| MKFS.XFS(8) | دستورات مدیریت سیستم | MKFS.XFS(8) |
نام (NAME)
mkfs.xfs - ساخت فایلسیستم XFS بر روی دستگاه ذخیرهسازی
خلاصه دستور (SYNOPSIS)
mkfs.xfs [ -b block_size_options ] [
-c config_file_options ] [ -m
global_metadata_options ] [ -d data_section_options ] [
-f ] [ -i inode_options ] [ -l
log_section_options ] [ -n naming_options ] [ -p
protofile_options ] [ -q ] [ -r
realtime_section_options ] [ -s sector_size_options ] [
-L label ] [ -N ] [ -K ] device
mkfs.xfs -V
توضیحات (DESCRIPTION)
دستور mkfs.xfs یک فایلسیستم XFS با قابلیت تنظیم ساختارهای تخصیص، اندازه بلوک و ژورنال بر روی دستگاه یا پارتیشن میسازد. این دستور با نوشتن روی یک فایل ویژه بر اساس مقادیر مشخصشده در آرگومانهای خط فرمان، فایلسیستم را ایجاد میکند. زمانی که گزینه -t xfs به دستور mkfs(8) داده شود، این برنامه به طور خودکار فراخوانی خواهد شد.
در سادهترین (و رایجترین) حالت، اندازه فایلسیستم از درایور دیسک به دست میآید. به عنوان مثال، برای ایجاد یک فایلسیستم با ژورنال داخلی روی اولین پارتیشن در دیسک اول SCSI:
- mkfs.xfs /dev/sda1
ژورنال فراداده را میتوان برای کاهش جابهجاییهای هد دیسک (disk seeks) روی دستگاه دیگری قرار داد. برای ساخت یک فایلسیستم روی اولین پارتیشن دیسک اول SCSI با ژورنال ۱۰۰ مگابایتی روی اولین پارتیشن دیسک دوم SCSI:
mkfs.xfs -l logdev=/dev/sdb1,size=100m /dev/sda1
هر یک از عناصر option در فهرست آرگومانهای بالا را میتوان در صورت اعمال چند زیرگزینه، به صورت چندین زیرگزینه جدا شده با کاما مشخص کرد. به طور مشابه، هر گزینه اصلی را میتوان چندین بار با زیرگزینههای مختلف تکرار کرد. به عنوان مثال، -l internal,size=100m و -l internal -l size=100m معادل هستند.
در توضیحات زیر، اندازهها بر حسب سکتور، بایت، بلوک، کیلوبایت، مگابایت، گیگابایت و غیره بیان میشوند. اندازهها در صورت داشتن پیشوند 0x یا 0X به عنوان هگزادسیمال، با پیشوند 0 به عنوان اکتال (هشتهشتی) و در غیر این صورت به عنوان دهدهی در نظر گرفته میشوند. فهرست پسوندهای ضرب ممکن به شرح زیر است:
s - ضرب در اندازه سکتور (پیشفرض = ۵۱۲، گزینه -s در زیر را ببینید).
b - ضرب در اندازه بلوک فایلسیستم (پیشفرض = 4K، گزینه -b در زیر را ببینید).
k - ضرب در یک کیلوبایت (۱٬۰۲۴ بایت).
m - ضرب در یک مگابایت (۱٬۰۴۸٬۵۷۶ بایت).
g - ضرب در یک گیگابایت (۱٬۰۷۳٬۷۴۱٬۸۲۴ بایت).
t - ضرب در یک ترابایت (۱٬۰۹۹٬۵۱۱٬۶۲۷٬۷۷۶ بایت).
p - ضرب در یک پتابایت (۱٬۰۲۴ ترابایت).
e - ضرب در یک اگزابایت (۱٬۰۴۸٬۵۷۶ ترابایت).
هنگام مشخص کردن پارامترها بر حسب واحدهای سکتور یا بلوکهای فایلسیستم، میتوان از گزینه -s یا گزینه -b برای تعیین اندازه سکتور یا بلوک استفاده کرد. اگر اندازه بلوک یا سکتور مشخص نشود، از اندازههای پیشفرض (بلوک: 4KiB، سکتور: 512B) استفاده خواهد شد.
بسیاری از گزینههای ویژگیها یک آرگومان اختیاری 0 یا 1 را میپذیرند تا عملکرد مربوطه صریحاً غیرفعال یا فعال شود.
صحت پیادهسازی چکسام crc32c پیش از قالببندی فایلسیستم آزمایش میشود. اگر آزمون ناموفق باشد، فرآیند متوقف خواهد شد.
گزینهها (OPTIONS)
گزینهها را میتوان در خط فرمان یا در یک فایل پیکربندی مشخص کرد. همه گزینههای خط فرمان در فایلهای پیکربندی قابل تعیین نیستند؛ تنها گزینههایی که پس از آنها برچسب [section] آمده است میتوانند در فایل پیکربندی به کار روند.
گزینههای قابل استفاده در فایلهای پیکربندی در بخشهای مرتبط حاوی چندین گزینه گروهبندی شدهاند. گزینههای خط فرمان و فایلهای پیکربندی از بخشها و گروهبندیهای یکسانی استفاده میکنند. نام بخشهای فایل پیکربندی در بخشهای مربوط به گزینههای خط فرمان در زیر ذکر شده است. نام گزینهها و مقادیر آنها در خط فرمان و فایل پیکربندی یکسان هستند.
مجموعه گزینههای مشخصشده حاصل ترکیب پارامترهای خط فرمان و پارامترهای فایل پیکربندی است. گزینههای تکراری، بدون توجه به محلی که مشخص شدهاند، منجر به خطای بازتعریف (respecification error) میشوند.
- -c configuration_file_option
- این گزینه فایلهایی را مشخص میکند که پیکربندی mkfs از آنها خوانده خواهد شد. گزینه معتبر configuration_file_option عبارت است از:
- options=name
- گزینههای پیکربندی از فایل مشخصشده توسط رشته name خوانده میشوند. این گزینه میتواند از مسیر نسبی یا مطلق برای فایل پیکربندی استفاده کند. نمونه فایلهای پیکربندی را میتوان در مسیر /usr/share/xfsprogs/mkfs یافت.
-b block_size_options
- Section Name: [block]
- این گزینه اندازه پایه بلوک فایلسیستم را مشخص میکند. گزینه معتبر block_size_option عبارت است از:
- size=value
- اندازه بلوک فایلسیستم با یک value بر حسب بایت مشخص میشود. مقدار پیشفرض ۴۰۹۶ بایت (4 KiB)، حداقل ۵۱۲ و حداکثر ۶۵۵۳۶ (64 KiB) است.
- اگرچه mkfs.xfs هر یک از این مقادیر را پذیرفته و فایلسیستم معتبری میسازد، اما XFS در لینوکس تنها میتواند فایلسیستمهایی با اندازه بلوک برابر یا کوچکتر از اندازه صفحه حافظه (pagesize) را سوار کند.
-m global_metadata_options
- Section Name: [metadata]
- این گزینهها ویژگیهای قالب فراداده را مشخص میکنند که یا بر کل فایلسیستم اعمال میشوند یا به سادگی در گروه عملکردی خاصی قرار نمیگیرند. گزینههای معتبر global_metadata_options عبارتند از:
- bigtime=value
- این گزینه پشتیبانی از برچسبهای زمانی اینود از دسامبر ۱۹۰۱ تا ژوئیه ۲۴۸۶ و انقضای تایمر سهمیهبندی را از ژانویه ۱۹۷۰ تا ژوئیه ۲۴۸۶ فعال میسازد. مقدار 0 این ویژگی را غیرفعال و مقدار 1 آن را فعال میکند.
- در صورت غیرفعال بودن این ویژگی، فایلسیستم تنها میتواند زمانها را از دسامبر ۱۹۰۱ تا ژانویه ۲۰۳۸ و تایمرهای سهمیهبندی را از ژانویه ۱۹۷۰ تا فوریه ۲۱۰۶ مدیریت کند.
- به طور پیشفرض، mkfs.xfs این ویژگی را فعال میکند. در صورت استفاده از گزینه -m crc=0 ویژگی زمانهای بزرگ پشتیبانی نشده و غیرفعال خواهد بود.
- crc=value
- این گزینه برای ایجاد فایلسیستمی استفاده میشود که اطلاعات چکسام CRC را در تمام اشیاء فراداده روی دیسک نگهداری و بررسی میکند. مقدار 0 برای غیرفعالسازی و 1 برای فعالسازی CRC به کار میرود.
- چکسامهای CRC تشخیص خطای ناشی از مسائل سختافزاری را ارتقا میدهند و تغییرات قالب، الگوریتمهای بازیابی از خرابی و توانایی ابزارهای مختلف در اعتبارسنجی و تعمیر خرابیهای فراداده را بهبود میبخشد. الگوریتم استفادهشده CRC32c است، بنابراین سربار پردازشی به معماری CPU بستگی دارد (برخی پردازندهها شتابدهنده سختافزاری این الگوریتم را دارند). معمولاً سربار محاسبه و بررسی CRC در عملکرد عادی احساس نمیشود.
- به طور پیشفرض، mkfs.xfs ویژگی CRC فراداده را فعال میکند.
- قالببندی بدون CRC قالب V4 را انتخاب میکند که منسوخ شده و در سپتامبر ۲۰۳۰ از پروژه بالادستی حذف خواهد شد. توزیعها ممکن است پیش از این تاریخ پشتیبانی از قالب V4 را قطع کنند. چندین گزینه دیگر که در ادامه اشاره شدهاند تنها در قالبهای V4 قابل تنظیم هستند و همراه با خود قالب V4 حذف خواهند شد.
- finobt=value
- این گزینه استفاده از یک نمایه درخت btree مجزا برای اینودهای آزاد را در هر گروه تخصیص فعال میکند. مقدار 0 برای غیرفعال کردن و 1 برای ساخت این نمایه است.
- نمایه اینودهای آزاد بازتابدهنده نمایه اینودهای موجود است که هم اینودهای پر و هم آزاد را دربرمیگیرد. بیتری اینودهای آزاد اینودهای پر را نمایه نمیکند و موجب عملکرد تخصیص سریعتر و باثباتتر اینود در طول عمر فایلسیستم میشود.
- به طور پیشفرض، mkfs.xfs برای فایلسیستمهای ساختهشده با گزینه پیشفرض -m crc=1 این نمایه را ایجاد میکند. در صورت استفاده از گزینه -m crc=0 این قابلیت پشتیبانی نشده و غیرفعال است.
- inobtcount=value
- این گزینه باعث میشود فایلسیستم تعداد بلوکهای استفادهشده توسط درختهای btree اینود و اینودهای آزاد را ثبت کند. از این قابلیت برای کاهش زمان سوار کردن (mount) هنگام فعال بودن درخت اینودهای آزاد استفاده میشود.
- به طور پیشفرض، mkfs.xfs این گزینه را فعال میکند. این ویژگی تنها برای فایلسیستمهای ایجادشده با گزینه پیشفرض -m finobt=1 در دسترس است. با استفاده از گزینه -m finobt=0 شمارنده درخت اینود غیرفعال خواهد بود.
- metadir=value
- این گزینه یک درخت دایرکتوری داخلی برای نگهداری فراداده فایلسیستم ایجاد میکند.
- به طور پیشفرض، mkfs.xfs این ویژگی را فعال نمیکند. اگر گزینه -m crc=0 استفاده شود، دایرکتوری فراداده پشتیبانی نشده و غیرفعال میشود.
- uuid=value
- از مقدار دادهشده به عنوان UUID فایلسیستم تازه ایجادشده استفاده میکند. پیشفرض تولید یک UUID تصادفی است.
- rmapbt=value
- این گزینه ساخت نمایه نگاشت معکوس (reverse-mapping btree) را در هر گروه تخصیص فعال میکند. مقدار 0 برای غیرفعال کردن و 1 برای ساخت درخت است.
- درخت نگاشت معکوس، بلوکهای فایلسیستم را به مالک آن بلوک نگاشت میکند. بیشتر نگاشتها به شماره اینود و آفست خواهد بود، گرچه نگاشتهایی به فراداده فایلسیستم نیز وجود دارد. این فراداده ثانویه برای اعتبارسنجی فراداده اولیه یا یافتن دقیق دادههای از دست رفته در زمان خطای دیسک به کار میرود.
- به طور پیشفرض، mkfs.xfs در صورت امکان درخت نگاشت معکوس را ایجاد میکند. این ویژگی تنها با گزینه پیشفرض -m crc=1 در دسترس است و در صورت استفاده از -m crc=0 پشتیبانی نمیشود.
- reflink=value
- این گزینه استفاده از نمایه درخت شمارش مرجع (reference count btree) را در هر گروه تخصیص فعال میسازد. مقدار 0 برای غیرفعال کردن و 1 برای ساخت درخت است.
- درخت شمارش مرجع امکان اشتراک اکستنتهای فیزیکی را بین فورکهای داده فایلهای مختلف فراهم میکند که عموماً با عنوان "reflink" شناخته میشود. برخلاف فایلسیستمهای سنتی یونیکس که در آنها هر جفت اینود و بلوک منطقی به یک بلوک فیزیکی یکتا نگاشت میشود، فایلسیستم XFS با قابلیت reflink این محدودیت را برمیدارد و اجازه میدهد تا ۴ میلیارد جفت اینود/بلوک منطقی به یک بلوک فیزیکی نگاشت شوند. اگر برنامهای روی بلوکی با چند ارجاع بنویسد، عملیات نوشتن به بلوک جدیدی هدایت شده و نگاشت آن فایل به بلوک جدید منتقل میشود ("کپی هنگام نوشتن" یا copy on write). این ویژگی امکان اسنپشات در سطح فایل و دادهزدایی (deduplication) را فراهم میکند و تنها برای فورکهای داده فایلهای معمولی معتبر است.
- به طور پیشفرض، mkfs.xfs درختهای شمارش مرجع را ساخته و reflink را فعال میکند. این ویژگی تنها با گزینه -m crc=1 در دسترس است و با -m crc=0 غیرفعال خواهد بود.
- autofsck=value
- ویژگی autofsck فایلسیستم را روی این مقدار تنظیم میکند. برای اطلاعات بیشتر درباره این ویژگی، صفحه راهنمای xfs_scrub(8) را مشاهده فرمایید.
- uquota
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m uquota حسابداری و اعمال سهمیه کاربر را در زمان قالببندی پیکربندی میکند؛ بنابراین نیازی به مشخص کردن گزینههای سهمیه در fstab نخواهد بود. اگر دایرکتوری فراداده فعال نباشد، سهمیهها باید همچنان از طریق fstab فعال شوند.
- gquota
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m gquota حسابداری و اعمال سهمیه گروه را در زمان قالببندی پیکربندی میکند و نیاز به تعیین آن در fstab مرتفع میشود.
- pquota
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m pquota حسابداری و اعمال سهمیه پروژه را در زمان قالببندی پیکربندی میکند.
- uqnoenforce
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m uqnoenforce تنها حسابداری سهمیه کاربر را در زمان قالببندی فعال میکند (بدون اعمال محدودیت سهمیه).
- gqnoenforce
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m gqnoenforce تنها حسابداری سهمیه گروه را در زمان قالببندی فعال میکند (بدون اعمال محدودیت).
- pqnoenforce
- در صورت فعال بودن دایرکتوری فراداده، گزینه -m pqnoenforce تنها حسابداری سهمیه پروژه را در زمان قالببندی فعال میکند (بدون اعمال محدودیت).
-d data_section_options
- Section Name: [data]
- این گزینهها مکان، اندازه و سایر پارامترهای بخش داده فایلسیستم را مشخص میکنند. گزینههای معتبر data_section_options عبارتند از:
- agcount=value
- برای تعیین تعداد گروههای تخصیص (allocation groups) به کار میرود. بخش داده فایلسیستم به گروههای تخصیص تقسیم میشود تا کارایی XFS افزایش یابد. گروههای تخصیص بیشتر به معنای دستیابی به موازیسازی بالاتر در تخصیص بلوکها و اینودها است. حداقل اندازه هر گروه تخصیص ۱۶ مگابایت و حداکثر اندازه آن کمی کمتر از ۱ ترابایت است. بخش داده فایلسیستم به value گروه تخصیص تقسیم میشود (مقدار پیشفرض بر اساس اندازه دستگاه مربوطه به طور خودکار تعیین میشود).
- agsize=value
- این یک جایگزین برای زیرگزینه agcount است. مقدار value اندازه دلخواه گروه تخصیص بر حسب بایت است (معمولاً با پسوند m یا g مشخص میشود). این مقدار باید مضربی از اندازه بلوک فایلسیستم باشد و حداقل ۱۶ مگابایت و حداکثر ۱ ترابایت باشد، و ممکن است برای همترازی با هندسه خطوط استرایپ (stripe) به صورت خودکار تنظیم شود. زیرگزینههای agcount و agsize مانعةالجمع هستند.
- cowextsize=value
- نشانه اندازه اکستنت copy-on-write را روی تمام اینودهای ایجادشده توسط mkfs.xfs تنظیم میکند. مقدار باید بر حسب بلوکهای فایلسیستم باشد. اگر مقدار صفر باشد، مقدار پیشفرض (در حال حاضر ۳۲ بلوک) استفاده میشود. دایرکتوریها این نشانه را به فایلها و دایرکتوریهای جدید منتقل میکنند.
- name=value
- برای مشخص کردن نام فایل ویژه حاوی فایلسیستم استفاده میشود. در این حالت، بخش لاگ باید به صورت internal (همراه با اندازه، گزینه -l در زیر را ببینید) مشخص شود و نمیتوان بخش بیدرنگ (real-time) داشت.
- file[=value]
- برای مشخص کردن اینکه فایل تعیینشده توسط زیرگزینه name یک فایل معمولی است به کار میرود. مقدار value یا 0 است یا 1، که 1 نشاندهنده فایل معمولی است. این زیرگزینه فقط برای ساخت ایمیج فایلسیستم استفاده میشود. در صورت حذف مقدار، 1 در نظر گرفته میشود.
- size=value
- برای تعیین اندازه بخش داده استفاده میشود. اگر گزینه -d file[=1] داده شده باشد، این زیرگزینه الزامی است. در غیر این صورت، تنها در صورتی نیاز است که فایلسیستم بخواهد فضایی کمتر از اندازه فایل ویژه را اشغال کند.
- اندازه بخش داده باید حداقل ۳۰۰ مگابایت باشد.
- sunit=value
- برای مشخص کردن واحد خطوط استرایپ (stripe unit) برای دستگاه RAID یا حجم منطقی (logical volume) به کار میرود. مقدار value باید بر حسب بلوکهای ۵۱۲ بایتی مشخص شود. از زیرگزینه su برای مشخص کردن اندازه به بایت استفاده کنید. این زیرگزینه تضمین میکند که تخصیصهای داده در زمان امتداد انتهای فایل (و در فایلهای بزرگتر از 512KiB) با واحد استرایپ همتراز شوند. همچنین تخصیصهای اینود و لاگ داخلی با واحد استرایپ همتراز خواهند شد.
- su=value
- جایگزینی برای گزینه sunit است. برای تعیین واحد استرایپ برای دستگاه RAID یا حجم منطقی به کار میرود. مقدار value باید به بایت مشخص شود (معمولاً با پسوند m یا g ). این مقدار باید مضربی از اندازه بلوک فایلسیستم باشد.
- swidth=value
- برای مشخص کردن عرض استرایپ (stripe width) برای دستگاه RAID یا حجم منطقی استفاده میشود. مقدار value باید بر حسب واحدهای ۵۱۲ بایتی باشد. از زیرگزینه sw برای تعیین اندازه به بایت استفاده کنید. این زیرگزینه در صورت مشخص بودن -d sunit الزامی است و باید مضربی از آن باشد.
- sw=value
- جایگزینی برای گزینه swidth است. زیرگزینه sw عرض استرایپ را برای دستگاه RAID یا حجم منطقی مشخص میکند. مقدار value به صورت ضریبی از واحد استرایپ بیان میشود که معمولاً برابر با تعداد اعضای استرایپ در حجم منطقی یا دیسکهای داده در دستگاه RAID است.
- هنگامی که فایلسیستم روی یک دستگاه بلوکی ساخته میشود، اگر دستگاه و فایلسیستم بزرگتر از ۱ گیگابایت باشند، mkfs.xfs به طور خودکار مقادیر مناسب sunit و swidth را از دستگاه پرسوجو میکند.
- noalign
- این گزینه تشخیص خودکار هندسه استرایپ را غیرفعال کرده و فایلسیستم را بدون همترازی با هندسه استرایپ میسازد، حتی اگر دستگاه زیرین این اطلاعات را ارائه دهد.
- rtinherit=value
- اگر مقدار روی 1 تنظیم شود، تمام اینودهای ایجادشده توسط mkfs.xfs با فلگ بیدرنگ (realtime) ایجاد خواهند شد. پیشفرض 0 است. دایرکتوریها این فلگ را به فایلها و دایرکتوریهای جدید منتقل میکنند.
- projinherit=value
- تمام اینودهای ایجادشده توسط mkfs.xfs شناسه سهمیه پروژه ارائهشده در value را دریافت میکنند. دایرکتوریها این شناسه را به فرزندان جدید منتقل میکنند.
- extszinherit=value
- تمام اینودهای ایجادشده توسط mkfs.xfs این مقدار نشانه اندازه اکستنت را اعمال خواهند کرد. مقدار باید بر حسب واحدهای بلوک فایلسیستم باشد. دایرکتوریها این نشانه را به فایلها و دایرکتوریهای جدید منتقل میکنند.
- daxinherit=value
- اگر روی 1 تنظیم شود، تمام اینودهای ایجادشده توسط mkfs.xfs با فلگ DAX ساخته میشوند. پیشفرض 0 است. دایرکتوریها این فلگ را به فایلها و دایرکتوریهای جدید منتقل میکنند. به طور پیشفرض حالت DAX فعال نمیشود.
- concurrency=value
- ایجاد تعداد کافی از گروههای تخصیص برای مدیریت سطح همروندی دلخواه. هدف این طرح محاسباتی، تنظیم تعداد گروههای تخصیص به مضربی صحیح از تعداد نخهای نویسنده دلخواه است تا رقابت بر سر قفلهای AG به حداقل برسد. این روش نه AGهای کمتری نسبت به پیشفرض میسازد و نه AGهای کوچکتر از ۴ گیگابایت ایجاد میکند. این گزینه با گزینههای agcount یا agsize ناسازگار است. مقادیر جادویی nr_cpus یا 1 یا بدون مقدار، این پارامتر را روی تعداد پردازندههای فعال سیستم تنظیم میکنند. اگر هسته گزارش دهد که دستگاه داده یک دستگاه ذخیرهسازی غیرمکانیکی (مانند SSD) است، mkfs.xfs از این روش محاسباتی جدید استفاده خواهد کرد. مقدار جادویی 0 استفاده از محاسبات هندسی قدیمیتر AG را که برای حافظههای مکانیکی استفاده میشود تحمیل میکند.
- -f
- در صورت تشخیص فایلسیستم موجود روی دستگاه، بازنویسی را تحمیل میکند. به طور پیشفرض، mkfs.xfs اگر مشکوک شود که دیسک دارای فایلسیستم یا جدول پارتیشن است، روی آن نمینویسد.
-i inode_options
- Section Name: [inode]
- این گزینه اندازه اینود فایلسیستم و سایر پارامترهای تخصیص اینود را مشخص میکند. اینود XFS شامل بخش با اندازه ثابت و بخش با اندازه متغیر است. بخش با اندازه متغیر (که اندازه آن تحت تأثیر این گزینه قرار میگیرد) میتواند شامل دادههای دایرکتوری برای دایرکتوریهای کوچک، دادههای صفات برای صفات کوچک، پیوند نمادین برای لینکهای کوچک، فهرست اکستنتها برای فایلهایی با اکستنت کم، و ریشه درختی از مکان اکستنتها برای فایلهایی با اکستنت زیاد باشد.
- گزینههای معتبر inode_options عبارتند از:
- size=value | perblock=value
- اندازه اینود یا با value بر حسب بایت توسط size= مشخص میشود یا به عنوان تعداد جایگرفته در یک بلوک توسط perblock=. حداقل (و پیشفرض) value بدون crc برابر ۲۵۶ بایت و با فعال بودن crc برابر ۵۱۲ بایت است. حداکثر مقدار ۲۰۴۸ بایت (2 KiB) است، مشروط بر اینکه اندازه اینود از نصف اندازه بلوک فایلسیستم تجاوز نکند.
- فایلسیستم XFS در داخل خود از شمارههای اینود ۶۴ بیتی استفاده میکند؛ با این حال، تعداد بیتهای معنادار در شماره اینود تحت تأثیر هندسه فایلسیستم قرار دارد. در عمل، اندازه فایلسیستم و اندازه اینود عوامل تعیینکننده هستند. هسته لینوکس (روی پلتفرمهای سختافزاری ۳۲ بیتی) و اکثر برنامهها نمیتوانند شماره اینودهای بزرگتر از ۳۲ بیت را مدیریت کنند؛ بنابراین اگر اندازه اینود در خط فرمان مشخص نشود، mkfs.xfs تلاش میکند اندازهای انتخاب کند که شماره اینودها کمتر از ۳۲ بیت باشند. اگر اندازه اینود مشخص شده باشد یا فایلسیستم به اندازه کافی بزرگ باشد، mkfs.xfs در صورت تولید شمارههای اینود بزرگتر از ۳۲ بیت هشدار خواهد داد.
- maxpct=value
- حداکثر درصد فضای فایلسیستم را که میتواند به اینودها اختصاص یابد مشخص میکند. مقدار پیشفرض ۲۵٪ برای فایلسیستمهای زیر ۱ ترابایت، ۵٪ برای زیر ۵۰ ترابایت و ۱٪ برای بالای ۵۰ ترابایت است.
- تنظیم مقدار روی 0 به این معنی است که اساساً تمام فایلسیستم میتواند بلوکهای اینود شود (مشروط به محدودیتهای گزینه سوار کردن inode32، توضیحات xfs(5) را ببینید).
- این مقدار را میتوان با xfs_growfs(8) تغییر داد.
- align[=value]
- مشخص میکند که آیا تخصیص اینود همتراز باشد یا خیر. مقدار 0 یا 1 است که 1 نشاندهنده تخصیص همتراز است. اگر مقدار حذف شود، 1 فرض میشود. پیشفرض همترازی است. دسترسی به اینودهای همتراز سریعتر است.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- attr=value
- برای مشخص کردن نسخه سیاست تخصیص درونخطی صفت گسترشیافته (extended attribute) استفاده میشود. پیشفرض 2 است که از الگوریتمی کارآمد برای مدیریت فضای موجود اینود میان صفت و اکستنت بهره میبرد.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- projid32bit[=value]
- برای فعالسازی شناسههای ۳۲ بیتی پروژه سهمیهبندی استفاده میشود. مقدار 0 یا 1 است. پیشفرض 1 است.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- sparse[=value]
- تخصیص تکهای پراکنده (sparse) اینودها را فعال میکند. مقدار 0 یا 1 است. به طور پیشفرض فعال است. این ویژگی تنها با -m crc=1 در دسترس است.
- در صورت فعال بودن، به فایلسیستم اجازه میدهد در زمان محدودیت شدید فضای آزاد، تکههای کوچکتر از ۶۴ اینود استاندارد را تخصیص دهد. این ویژگی برای جلوگیری از خطای کمبود فضا در فایلسیستمهای به شدت تکهتکه (fragmented) بسیار مفید است.
- nrext64[=value]
- حداکثر مقادیر شمارندههای اکستنت فورک داده و صفت اینود را به ترتیب از ۲^۳۱ منهای ۱ و ۲^۱۵ منهای ۱ به ۲^۴۸ منهای ۱ و ۲^۳۲ منهای ۱ افزایش میدهد. در صورت امکان این ویژگی فعال میشود (فقط با -m crc=1).
- exchange[=value]
- در صورت فعال بودن، برنامهها میتوانند محتویات فایلها را از طریق ioctl با نام XFS_IOC_EXCHANGE_RANGE به صورت اتمیک مبادله کنند. ابزار تعمیر برخط (online repair) از این قابلیت برای بازسازی صفات گسترشیافته، دایرکتوریها، پیوندهای نمادین و فایلهای فراداده بلادرنگ استفاده میکند. این ویژگی به طور پیشفرض غیرفعال است (فقط با -m crc=1).
-l log_section_options
- Section Name: [log]
- این گزینهها مکان، اندازه و سایر پارامترهای بخش لاگ (ژورنال) فایلسیستم را مشخص میکنند. گزینههای معتبر log_section_options عبارتند از:
- agnum=value
- اگر لاگ داخلی باشد، آن را در این گروه تخصیص (AG) قرار میدهد.
- internal[=value]
- مشخص میکند که بخش لاگ بخشی از بخش داده است به جای اینکه دستگاه یا حجم منطقی دیگری باشد. مقدار 0 یا 1 است که 1 به معنای لاگ داخلی است. پیشفرض 1 است.
- logdev=device
- مشخص میکند که بخش لاگ باید روی دستگاه جداگانه device قرار گیرد. گزینههای internal=1 و logdev مانعةالجمع هستند.
- size=value
- اندازه بخش لاگ را مشخص میکند.
- اگر لاگ در بخش داده قرار داشته باشد و size مشخص نشود، mkfs.xfs تلاش میکند اندازه لاگ مناسبی بسته به اندازه فایلسیستم انتخاب کند. اندازه واقعی لاگ به اندازه بلوک فایلسیستم و اندازه بلوک دایرکتوری بستگی دارد.
- در غیر این صورت، زیرگزینه size تنها در صورتی نیاز است که بخش لاگ بخواهد فضایی کمتر از اندازه فایل ویژه اشغال کند. حداقل اندازه لاگ ۵۱۲ بلوک است. اندازه لاگ باید حداقل ۶۴ مگابایت و حداکثر ۲ گیگابایت باشد.
- version=value
- نسخه لاگ را مشخص میکند. پیشفرض فعلی 2 است که امکان استفاده از بافرهای بزرگتر لاگ و نوشتن همتراز با استرایپ را فراهم میکند.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- sunit=value
- همترازی مورد استفاده برای نوشتن در لاگ را مشخص میکند. مقدار بر حسب واحدهای ۵۱۲ بایتی است. از زیرگزینه su برای تعیین اندازه به بایت استفاده کنید. نوشتن در لاگ با این مرز همتراز شده و به بالا گرد میشود. این کار بهبود عملکرد چشمگیری به ویژه در پیکربندیهایی مانند نرمافزاری RAID5 دارد. در صورت مشخص شدن این گزینه، نسخه لاگ به طور خودکار روی 2 قرار میگیرد.
- su=value
- برای مشخص کردن استرایپ لاگ استفاده میشود. مقدار باید به بایت مشخص شود (معمولاً با پسوند s یا b ). این مقدار باید مضربی از اندازه بلوک فایلسیستم باشد.
- lazy-count=value
- روش ثبت گزارش شمارندههای ماندگار مختلف در ابربلوک (superblock) را تغییر میدهد. در صورت بارهای کاری با فراداده سنگین، این شمارندهها مکرراً بهروزرسانی میشوند به طوری که بهروزرسانی ابربلوک به یک گلوگاه ترتیبی تبدیل میشود. مقدار 0 یا 1 است.
- با lazy-count=1، ابربلوک با هر تغییر در شمارندهها بازنویسی نمیشود، بلکه اطلاعات کافی در بخشهای دیگر ذخیره میشود تا مقادیر شمارنده بدون ثبت مکرر در ابربلوک حفظ شوند. پیشفرض 1 است.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- concurrency=value
- اختصاص لاگی که برآورد میشود برای مدیریت سطح همروندی دلخواه به اندازه کافی بزرگ باشد تا نخهای برنامه بر سر فضای لاگ رقابت نکنند. این روش لاگی کوچکتر از حداقل لازم یا بزرگتر از حداکثر ممکن ایجاد نخواهد کرد. این گزینه تنها برای لاگهای داخلی معتبر است و با گزینه size یا logdev سازگار نیست. مقدار جادویی nr_cpus یا 1 آن را روی تعداد پردازندههای فعال تنظیم میکند.
-n naming_options
- Section Name: [naming]
- این گزینهها پارامترهای نسخه و اندازه مربوط به بخش نامگذاری (دایرکتوری) فایلسیستم را تعیین میکنند. گزینههای معتبر naming_options عبارتند از:
- size=value
- اندازه بلوک دایرکتوری با یک value بر حسب بایت مشخص میشود. اندازه بلوک باید توانی از ۲ باشد و نمیتواند کمتر از اندازه بلوک فایلسیستم باشد. مقدار پیشفرض برای دایرکتوریهای نسخه ۲ برابر ۴۰۹۶ بایت (4 KiB) است، مگر اینکه اندازه بلوک فایلسیستم بزرگتر از ۴۰۹۶ باشد.
- version=value
- مقدار نسخه نامگذاری (دایرکتوری) میتواند 2 یا 'ci' باشد (پیشفرض 2).
- در صورت انتخاب version=ci ، هسته برخی بایتها را در نام فایلها قبل از عملیات جستجو تبدیل میکند (تبدیل حروف کوچک و بزرگ در ISO 8859-1). نام اصلی بدون تغییر ذخیره میشود. این ویژگی با کدگذاریهای دیگر (مانند UTF-8) ناسازگار است. این ویژگی منسوخ شده و در سپتامبر ۲۰۳۰ حذف خواهد شد.
- توجه: دایرکتوریهای نسخه ۱ پشتیبانی نمیشوند.
- ftype=value
- این ویژگی اجازه میدهد نوع اینود در ساختار دایرکتوری ذخیره شود تا توابع readdir(3) و getdents(2) نیازی به جستجوی مجدد اینود برای تعیین نوع آن نداشته باشند. مقدار 0 یا 1 است (پیشفرض 1). در صورت فعال بودن CRC (پیشفرض)، این قابلیت همواره فعال بوده و نمیتوان آن را خاموش کرد.
- این گزینه تنها در قالب منسوخشده V4 قابل تنظیم است.
- parent=value
- این ویژگی ارجاعات معکوس از فایلهای فرزند به دایرکتوریهای والد (parent pointers) ایجاد میکند تا ابزار تعمیر برخط بتواند دایرکتوریهای آسیبدیده را بازسازی کند. مقدار 0 برای غیرفعالسازی یا 1 برای ساخت این اشارهگرها است. پیشفرض غیرفعال است (تنها با -m crc=1).
- -p protofile_options
- Section Name: [proto]
- این گزینهها پارامترهای فایل پیشنمونه (protofile) را برای پر کردن اولیه محتوای فایلسیستم مشخص میکنند. گزینههای معتبر protofile_options عبارتند از:
- [file=]protofile
- پیشوند file= به دلایل تاریخی در آرگومان خط فرمان الزامی نیست، اما در صورت مشخص شدن در فایل پیکربندی الزامی است.
- اگر
آرگومان
اختیاری protofile
داده شود،
mkfs.xfs از آن به
عنوان فایل
پیشنمونه
استفاده
کرده و
دستورالعملهای
خود را از
آن فایل
دریافت
میکند.
مشخصکنندههای
بلوکها و
اینودها در
protofile برای
سازگاری با
گذشته در
نظر گرفته
شدهاند و
استفاده
نمیشوند.
قواعد
نگارش فایل
پیشنمونه
توسط
توکنهای
جدا شده با
فاصله یا خط
جدید تعریف
میشود.
خطهای
شمارهدار
بخشی از
ساختار
نیستند و
صرفاً برای
راهنمایی
آورده
شدهاند:
1 /stand/diskboot 2 4872 110 3 d--777 3 1 4 usr d--777 3 1 5 sh ---755 3 1 /bin/sh 6 ken d--755 6 1 7 $ 8 b0 b--644 3 1 0 0 9 c0 c--644 3 1 0 0 10 fifo p--644 3 1 11 slink l--644 3 1 /a/symbolic/link 12 : This is a comment line 13 $ 14 $
- خط ۱ یک رشته ساختگی است (قبلاً نام فایل بوت بود) که برای سازگاری با گذشته حفظ شده است. خط ۲ شامل دو مقدار عددی است (قبلاً تعداد بلوکها و اینودها). خطوط ۳ تا ۱۱ فایلها و دایرکتوریهایی را که میخواهید در فایلسیستم قرار دهید مشخص میکنند. خط ۳ دایرکتوری ریشه را تعریف میکند. علامت دلار ($) در خط ۷ به دستور اعلام میکند که شاخه جاری دایرکتوری را خاتمه داده و از دایرکتوری خط بعدی (خط ۸) ادامه دهد. علامت دو نقطه در خط ۱۲ نشاندهنده یادداشت (کامنت) است. علامتهای $ در خطهای ۱۳ و ۱۴ فرآیند را به پایان میرسانند.
- مشخصات فایل موارد زیر را فراهم میکند: حالت دسترسی فایل (file mode)، شناسه کاربر (user ID)، شناسه گروه (group ID) و محتوای اولیه فایل. یک رشته ۶ کاراکتری حالت فایل را تعیین میکند. اولین کاراکتر نوع فایل است: -bcdpl (فایل معمولی، فایل ویژه بلوکی، فایل ویژه کاراکتری، دایرکتوری، پایپ نامگذاریشده، پیوند نمادین). کاراکتر دوم برای حالت setuid (کاراکتر u یا - )، کاراکتر سوم برای حالت setgid (کاراکتر g یا - ) و کاراکترهای باقیمانده یک عدد اکتال سه رقمی شامل دسترسیهای خواندن، نوشتن و اجرا هستند.
- slashes_are_spaces=value
- در صورت تنظیم روی 1، اسلشها ("/") در اولین توکن هر خط فایل پیشنمونه به فاصله تبدیل میشوند. این ویژگی امکان ایجاد فایلسیستم با نامهای حاوی فاصله را فراهم میکند (پیشفرض 0 است).
- -q
- گزینه بیصدا. معمولاً mkfs.xfs پارامترهای فایلسیستم در حال ساخت را چاپ میکند؛ فلگ -q این خروجی را سرکوب میکند.
-r realtime_section_options
- Section Name: [realtime]
- این گزینهها مکان، اندازه و سایر پارامترهای بخش بیدرنگ (real-time) فایلسیستم را مشخص میکنند. گزینههای معتبر realtime_section_options عبارتند از:
- rtdev=device
- دستگاهی را مشخص میکند که باید بخش بیدرنگ فایلسیستم را دربربگیرد. مقدار آن نام یک دستگاه بلوکی است.
- extsize=value
- اندازه بلوکها در بخش بیدرنگ را مشخص میکند. این مقدار باید مضربی از اندازه بلوک فایلسیستم باشد. حداقل اندازه مجاز، اندازه بلوک فایلسیستم یا ۴ کیلوبایت (هرکدام بزرگتر باشد) است؛ پیشفرض اندازه عرض استرایپ برای حجمهای استرایپشده یا ۶۴ کیلوبایت برای حجمهای ساده است؛ حداکثر اندازه مجاز ۱ گیگابایت است.
- size=value
- اندازه بخش بیدرنگ را مشخص میکند. این زیرگزینه فقط در صورتی لازم است که بخش بیدرنگ بخواهد فضایی کمتر از اندازه پارتیشن یا حجم منطقی را اشغال کند.
- noalign
- تشخیص اندازه استرایپ را غیرفعال کرده و یک دستگاه بیدرنگ بدون هندسه استرایپ را اعمال میکند.
- rgcount=value
- تعداد گروههای تخصیص در بخش بیدرنگ را مشخص میکند. بخش بیدرنگ فایلسیستم میتواند برای بهبود کارایی به گروههای تخصیص تقسیم شود تا موازیسازی بالاتری در تخصیص بلوکها حاصل شود. حداقل اندازه گروه تخصیص ۲ اکستنت بیدرنگ و حداکثر آن ۲^۳۱ بلوک است.
- rgsize=value
- جایگزینی برای rgcount است. مقدار، اندازه دلخواه گروه تخصیص بیدرنگ بر حسب بایت است (معمولاً با پسوندهای m یا g ). این مقدار باید مضربی از اندازه اکستنت بیدرنگ، حداقل ۲ اکستنت و حداکثر ۲^۳۱ بلوک باشد. گزینههای rgcount و rgsize مانعةالجمع هستند.
- concurrency=value
- ایجاد گروههای تخصیص بیدرنگ کافی برای مدیریت سطح همروندی دلخواه. هدف این محاسبات تنظیم تعداد گروههای rt به مضربی صحیح از نخهای نویسنده دلخواه است تا رقابت بر سر قفلها کاهش یابد. این گزینه با rgcount یا rgsize ناسازگار است. مقادیر nr_cpus یا 1 یا بدون مقدار، آن را روی تعداد پردازندههای فعال تنظیم میکند.
-s sector_size_options
- Section Name: [sector]
- این گزینه اندازه پایه سکتور فایلسیستم را مشخص میکند. گزینه معتبر sector_size_option عبارت است از:
- size=value
- اندازه سکتور با یک value بر حسب بایت مشخص میشود. مقدار پیشفرض ۵۱۲ بایت است. حداقل ۵۱۲ و حداکثر ۳۲۷۶۸ (32 KiB) است. اندازه سکتور باید توانی از ۲ باشد و نمیتواند بزرگتر از اندازه بلوک فایلسیستم باشد.
- -L label
- برچسب (label) فایلسیستم را تنظیم میکند. برچسب فایلسیستم XFS حداکثر میتواند ۱۲ کاراکتر باشد؛ اگر برچسب طولانیتر از ۱۲ کاراکتر باشد، mkfs.xfs فایلسیستم را نخواهد ساخت. برای اطلاعات تکمیلی به صفحات راهنمای mount(8) و xfs_admin(8) مراجعه کنید.
- -N
- باعث میشود پارامترهای فایلسیستم چاپ شوند بدون آنکه فایلسیستم واقعاً ایجاد گردد.
- -K
- در زمان اجرای mkfs تلاشی برای دور انداختن (discard/trim) بلوکها انجام ندهد.
- -V
- شماره نسخه را چاپ کرده و خارج میشود.
قالب فایل پیکربندی (Configuration File Format)
فایل پیکربندی از قالب پایه INI برای تعیین بخشها و گزینههای درون هر بخش استفاده میکند. نام بخشها و گزینهها به حروف کوچک و بزرگ حساس هستند. نام بخشها نباید حاوی فاصله خالی باشد. گزینهها جفتهای نام و مقدار هستند که با اولین فاصله خالی در خط پایان میابند. نام گزینهها نباید حاوی فاصله خالی باشد. کامنتهای کامل را میتوان با قرار دادن نویسه # در ابتدای خط اضافه کرد. اگر مقادیر دارای فاصله خالی باشند، باید داخل علامت نقلقول (کوتیشن) قرار گیرند.
مثال زیر اندازه بلوک را روی ۴۰۹۶ بایت تنظیم کرده، درخت نگاشت معکوس را فعال ساخته و اندازه اینود را روی ۲۰۴۸ بایت تنظیم میکند:
# Example mkfs.xfs configuration file
[block]
size=4k
[metadata]
rmapbt=1
[inode]
size=2048
همچنین ببینید (SEE ALSO)
اشکالات (BUGS)
با استفاده از یک فایل پیشنمونه (prototype file)، امکان تعیین پیوندهای سخت (hard links) وجود ندارد.
| مه ۲۰۲۵ | xfsprogs |