| XFS_DB(8) | دستورات مدیریت سیستم | XFS_DB(8) |
نام (NAME)
xfs_db - ابزار خطایابی و بازرسی داخلی سیستم پرونده XFS
خلاصه دستور (SYNOPSIS)
xfs_db [ -c cmd ] ... [
-i|r|x|F ] [ -f ] [ -l
logdev ] [ -R rtdev ] [ -p progname ]
device
xfs_db -V
توضیحات (DESCRIPTION)
دستور xfs_db ابزاری تعاملی و قدرتمند برای بازرسی، دستکاری سطح پایین و خطایابی ساختارهای داخلی فایلسیستم XFS است. در شرایط نادر همچنین میتوان از آن برای اصلاح و دستکاری فایلسیستم XFS استفاده کرد، اما این وظیفه معمولاً به xfs_repair(8) یا به اسکریپتهایی مانند xfs_admin(8) که xfs_db را اجرا میکنند واگذار میشود.
گزینهها (OPTIONS)
- -c cmd
- دستورات xfs_db را میتوان به صورت تعاملی (حالت پیشفرض) یا به عنوان آرگومان در خط فرمان اجرا کرد. میتوان چندین آرگومان -c مشخص نمود. دستورات به ترتیب ارائه شده اجرا میشوند و سپس برنامه خارج میشود.
- -f
- مشخص میکند که تصویر فایلسیستم مورد پردازش در یک پرونده معمولی در device ذخیره شده است (گزینه file از mkfs.xfs(8) -d را ببینید). این حالت ممکن است زمانی رخ دهد که با استفاده از xfs_copy(8) یک رونوشت تصویری از فایلسیستم در یک پرونده عادی ایجاد شده باشد.
- -F
- مشخص میکند که حتی اگر عدد جادویی (magic number) سوپربلاک نادرست باشد، عملیات ادامه یابد. برای استفاده در xfs_metadump.
- -i
- اجازه اجرا روی یک فایلسیستم سوارشده (mounted) را میدهد، به شرطی که فقطخواندنی سوار شده باشد. برای اسکریپتهای شل که باید تنها روی فایلسیستمهایی با وضعیت پایدار تضمینشده (سوارنشده یا سوارشده به صورت فقطخواندنی) کار کنند مفید است. معنای این گزینه اندکی با گزینه -r متفاوت است.
- -l logdev
- دستگاهی را که لاگ خارجی فایلسیستم در آن قرار دارد مشخص میکند. تنها برای فایلسیستمهایی که از لاگ خارجی استفاده میکنند کاربرد دارد. به گزینه mkfs.xfs(8) -l و برای توضیحات تفصیلی درباره لاگ XFS به xfs(5) مراجعه کنید.
- -p progname
- نام برنامه را برای اعلانها (prompts) و برخی پیامهای خطا به progname تنظیم میکند؛ مقدار پیشفرض xfs_db است.
- -R
- rtdev دستگاهی را که دادههای بلادرنگ (realtime) در آن قرار دارد مشخص میکند. این گزینه تنها برای فایلسیستمهایی که بخش realtime دارند مرتبط است. به گزینه mkfs.xfs(8) -r و برای توضیحات تفصیلی درباره بخش realtime در XFS به xfs(5) مراجعه کنید.
- -r
- دستگاه device یا پرونده filename را به صورت فقطخواندنی باز میکند. اگر فایلسیستم سوار شده باشد، این گزینه الزامی است. تنها در صورتی که دستوری برای تغییر دادهها (write، blocktrash، crc) مورد نیاز باشد، باید این فلگ حذف گردد.
- -x
- حالت کارشناسی (expert mode) را مشخص میکند. این گزینه دستورات تغییردهنده داده (write، blocktrash، crc ابطال/اعتبارسنجی مجدد) را فعال میکند.
- -V
- شماره نسخه برنامه را چاپ کرده و خارج میشود.
مفاهیم (CONCEPTS)
دستورات xfs_db را میتوان به دو دسته تقسیم کرد. بیشتر دستورات برای پیمایش و نمایش ساختارهای داده در فایلسیستم هستند. دستورات دیگر برای پویش فایلسیستم به روشهای مختلف به کار میروند.
دستوراتی که برای پیمایش ساختار فایلسیستم استفاده میشوند، آرگومانهایی دریافت میکنند که منعکسکننده نام فیلدهای ساختار فایلسیستم هستند. در صورتی که ساختارهای زیرین تودرتو باشند، مشابه ساختارهای زبان C، نامهای فیلدها میتوانند با نقطه از یکدیگر جدا شوند. اگر فیلد زیرین یک آرایه باشد، نامهای فیلد میتوانند اندیسگذاری شوند (به عنوان اندیس آرایه). اندیسهای آرایه را میتوان به صورت یک محدوده، یعنی دو عدد جداشده با خط تیره مشخص نمود.
ابزار xfs_db یک آدرس جاری را در فایلسیستم نگهداری میکند. دانهبندی (granularity) آدرس معادل یک ساختار فایلسیستم است. این ساختار میتواند یک بلوک فایلسیستم، یک inode یا رکورد سهمیهبندی (کوچکتر از یک بلوک فایلسیستم)، یا یک بلوک دایرکتوری (که میتواند بزرگتر از یک بلوک فایلسیستم باشد) باشد. دستورات متنوعی برای تنظیم آدرس جاری وجود دارد. متناظر با آدرس جاری، نوع داده جاری (data type) مشخص میشود که نوع ساختاری این داده است. دستوراتی که ساختار فایلسیستم را دنبال میکنند همواره نوع داده و همچنین آدرس را تنظیم میکنند. دستوراتی که بخشهایی از یک پرونده منفرد (inode) را بررسی میکنند نیازمند تنظیم inode جاری هستند؛ این کار با دستور inode انجام میشود.
اطلاعات آدرس/نوع جاری در واقع در یک پشته (stack) نگهداری میشوند که میتوان آن را مستقیماً با دستورات push، pop، و stack دستکاری کرد. این قابلیت بررسی آسان ساختارهای تودرتوی فایلسیستم را فراهم میسازد. همچنین، چند مکان اخیر بازدیدشده در یک بافر حلقوی ذخیره میشوند که با دستورات forward، back، و ring قابل پیمایش است.
فایلسیستمهای XFS به تعداد مشخصی گروه تخصیص (allocation group یا AG) تقسیم میشوند. xfs_db مفهومی از گروه تخصیص جاری را حفظ میکند که توسط برخی دستورات قابل تغییر است. گروه تخصیص اولیه 0 است.
دستورات (COMMANDS)
بسیاری از دستورات دارای راهنمای آنلاین گسترده هستند. از دستور help برای دریافت جزئیات بیشتر در مورد هر دستور استفاده کنید.
- a
- به دستور addr مراجعه کنید.
- ablock filoff
- آدرس جاری را به آفست filoff (یک شماره بلوک فایلسیستم) در ناحیه ویژگیهای (attribute) اینود جاری تنظیم میکند.
- addr [field-expression]
- آدرس جاری را به مقدار field-expression تنظیم میکند. این دستور برای «دنبال کردن» یک ارجاع در یک ساختار به شیء ارجاعشده استفاده میشود. در صورت عدم ارائه آرگومان، آدرس جاری چاپ میشود.
- agf [agno]
- آدرس جاری را به بلوک AGF برای گروه تخصیص agno تنظیم میکند. اگر آرگومانی داده نشود، از گروه تخصیص جاری استفاده میشود.
- agfl [agno]
- آدرس جاری را به بلوک AGFL برای گروه تخصیص agno تنظیم میکند. اگر آرگومانی داده نشود، از گروه تخصیص جاری استفاده میشود.
- agi [agno]
- آدرس جاری را به بلوک AGI برای گروه تخصیص agno تنظیم میکند. اگر آرگومانی داده نشود، از گروه تخصیص جاری استفاده میشود.
- agresv [agno]
- طول، تعداد بلوکهای آزاد، اندازه رزرو به ازای هر AG و میزان مصرف رزرو هر AG را برای یک AG مشخص نمایش میدهد. اگر هیچ آرگومانی داده نشود، اطلاعات برای تمام AGها نمایش داده میشود.
- attr_get [-p|-r|-u|-s|-Z] [-N namefile|name]
- مقدار ویژگی گسترشیافته مشخصشده را از فایل جاری چاپ میکند.
- -p
- ویژگی را در فضای نام والد (parent) قرار میدهد. تنها یک گزینه فضای نام مجاز است.
- -r
- ویژگی را در فضای نام ریشه (root) قرار میدهد. تنها یک گزینه فضای نام مجاز است.
- -u
- ویژگی را در فضای نام کاربر (user) قرار میدهد. تنها یک گزینه فضای نام مجاز است.
- -s
- ویژگی را در فضای نام امن (secure) قرار میدهد. تنها یک گزینه فضای نام مجاز است.
- -Z
- یک ویژگی فایلسیستم را در فضای نام ریشه تنظیم میکند. تنها یک گزینه فضای نام مجاز است.
- -N
- نام را از این پرونده میخواند.
- attr_list [-p|-r|-u|-s|-Z] [-v]
- فهرست ویژگیهای گسترشیافته فایل جاری را نمایش میدهد.
- -p
- ویژگی را در فضای نام والد (parent) قرار میدهد.
- -r
- ویژگی را در فضای نام ریشه (root) قرار میدهد.
- -u
- ویژگی را در فضای نام کاربر (user) قرار میدهد.
- -s
- ویژگی را در فضای نام امن (secure) قرار میدهد.
- -Z
- یک ویژگی فایلسیستم را در فضای نام ریشه تنظیم میکند.
- -v
- مقادیر ویژگیهای گسترشیافته را نیز چاپ میکند.
- attr_remove [-p|-r|-u|-s|-Z] [-n] [-N namefile|name]
- ویژگی گسترشیافته مشخصشده را از فایل جاری حذف میکند.
- -p
- ویژگی را در فضای نام والد قرار میدهد.
- -r
- ویژگی را در فضای نام ریشه قرار میدهد.
- -u
- ویژگی را در فضای نام کاربر قرار میدهد.
- -s
- ویژگی را در فضای نام امن قرار میدهد.
- -Z
- ویژگی فایلسیستم را در فضای نام ریشه حذف میکند.
- -N
- نام را از این پرونده میخواند.
- -n
- حالت 'noattr2' را روی فایلسیستمهای V4 فعال نمیکند.
- attr_set [-p-r|-u|-s|-Z] [-n] [-R|-C] [-v valuelen|-V valuefile] [-N namefile|name] [value]
- یک ویژگی گسترشیافته با نام مشخص را روی فایل جاری تنظیم میکند.
- -p
- ویژگی را در فضای نام والد تنظیم میکند.
- -r
- ویژگی را در فضای نام ریشه تنظیم میکند.
- -u
- ویژگی را در فضای نام کاربر تنظیم میکند.
- -s
- ویژگی را در فضای نام امن تنظیم میکند.
- -Z
- ویژگی فایلسیستم را در فضای نام ریشه تنظیم میکند.
- -N
- نام را از این پرونده میخواند.
- -n
- حالت 'noattr2' را روی فایلسیستمهای V4 فعال نمیکند.
- -R
- جایگزینی ویژگی موجود؛ در صورتی که ویژگی از قبل وجود نداشته باشد، دستور با شکست مواجه میشود.
- -C
- ایجاد ویژگی جدید؛ اگر ویژگی از قبل وجود داشته باشد، دستور با شکست مواجه میشود.
- -V
- مقدار ویژگی را از این پرونده میخواند.
- -v
- مقدار ویژگی را به رشتهای با این طول حاوی حرف 'v' تنظیم میکند.
- b
- به دستور back مراجعه کنید.
- back
- به مکان قبلی در حلقه موقعیتها بازمیگردد.
- blockfree
- اطلاعات مصرف بلوکها را که در آخرین اجرای دستور blockget گردآوری شده بود آزاد میکند. این کار باید پیش از اجرای مجدد دستور blockget (احتمالاً با آرگومانهای متفاوت) انجام شود.
- blockget [-npvs] [-b bno] ... [-i ino] ...
- دریافت اطلاعات مصرف بلوکها. اطلاعات جمعآوریشده برای استفاده در دستورات بعدی blockuse، ncheck یا blocktrash ذخیره میشود.
- -b
- برای مشخص کردن شماره بلوکهای فایلسیستم به کار میرود که اطلاعات تفصیلی درباره آنها چاپ شود.
- -i
- برای مشخص کردن شماره اینودهایی به کار میرود که اطلاعات تفصیلی درباره آنها چاپ شود.
- -n
- برای ذخیره نام مسیر اینودهای بازدیدشده به کار میرود؛ این گزینه جهت پشتیبانی از دستور xfs_ncheck(8) استفاده میشود. همچنین باعث میشود نام مسیر اینودهایی که دارای مشکل هستند چاپ شود. این گزینه حافظه زیادی مصرف میکند و به صورت پیشفرض فعال نیست.
- -p
- باعث میشود نام فایلسیستم مورد پردازش به عنوان پیشوند پیامهای خطا درج شود. این گزینه زمانی که چندین نمونه xfs_db به صورت موازی اجرا میشوند بسیار مفید است.
- -s
- خروجی را تنها به خطاهای شدید محدود میکند. زمانی مفید است که حجم خروجی بسیار زیاد باشد.
- -v
- خروجی تفصیلی (verbose) را فعال میکند. پیامها برای تکتک بلوکها و اینودهای پردازششده چاپ خواهند شد.
- blocktrash [-z] [-o offset] [-n count] [-x min] [-y max] [-s seed] [-0|1|2|3] [-t type] ...
- خرابسازی تصادفی بلوکهای فراداده فایلسیستم انتخابشده. خرابسازی روی بیتهای تصادفی در بلوکهای انتخابشده اعمال میشود. این دستور تنها در نسخههای اشکالزدایی xfs_db موجود است و برای آزمودن xfs_repair(8) کاربرد دارد.
- -0 | -1 | -2 | -3
- برای تعیین حالت عملیاتی blocktrash به کار میروند. تنها یکی از این موارد قابل استفاده است: -0 بیتهای تغییریافته صفر میشوند؛ -1 بیتهای تغییریافته یک میشوند؛ -2 بیتهای تغییریافته معکوس میشوند؛ -3 بیتهای تغییریافته به مقادیر تصادفی تبدیل میشوند.
- -n
- تعداد دفعات خرابسازی بلوک (count) را مشخص میکند (پیشفرض 1).
- -o
- آفست بیتی offset را که خرابسازی باید از آن شروع شود مشخص میکند. اگر مقدار با '+' آغاز شود، شروع خرابسازی در آفست تصادفی بزرگتر از مقدار دادهشده خواهد بود. پیشفرض یک آفست تصادفی در هر کجای بلوک است.
- -s
- مقدار بذر (seed) را برای تولیدکننده اعداد تصادفی فراهم میکند.
- -t
- نوع type بلوکهایی را که باید برای خرابسازی انتخاب شوند تعیین میکند. میتوان چندین گزینه -t مشخص کرد. اگر هیچ گزینهای داده نشود، تمامی انواع فراداده ممکن است خرابسازی شوند.
- -x
- حداقل (minimum) اندازه محدوده بیتی برای خرابسازی را مشخص میکند. مقدار پیشفرض 1 است.
- -y
- حداکثر (maximum) اندازه محدوده بیتی برای خرابسازی را مشخص میکند. مقدار پیشفرض 1024 است.
- -z
- بلوک بالای پشته را خراب میکند. در صورت ارائه این گزینه، نیازی به اجرای blockget نیست.
- blockuse [-n] [-c count]
- چاپ وضعیت مصرف بلوک(های) جاری فایلسیستم. برای هر بلوک، نوع و اینود متناظر (در صورت وجود) چاپ میشود.
- bmap [-a] [-d] [block [len]]
- نمایش نقشه بلوکها برای اینود جاری. نمایش نقشه را میتوان با آرگومانهای block و len به ناحیه مشخصی از پرونده محدود کرد. اگر block داده شود و len حذف شود، مقدار 1 برای طول فرض میشود.
- گزینههای -a و -d به ترتیب برای انتخاب ناحیه ویژگیها (attribute) یا ناحیه دادهها (data) در اینود استفاده میشوند. اگر هیچیک مشخص نشوند، هر دو ناحیه نمایش داده میشوند.
- bmapinflate [-d dirty_bytes] [-e] [-n nr]
- نخستین نگاشت شاخه داده را این تعداد بار تکثیر میکند، گویی نگاشت مکرراً reflink شده باشد. این یک دستور در حالت کارشناسی (expert-mode) صرفاً برای به چالش کشیدن فایلسیستمهای با refcount بالا است. نگاشتهای موجود شاخه داده نادیده گرفته شده و btree شمارش مراجع بهروز نخواهد شد. این دستور حداقل btree شمارش مراجع و اینود را در وضعیت ناهماهنگ باقی میگذارد؛ پس از آن باید xfs_repair اجرا شود.
- btdump [-a] [-i]
- اگر مکاننما به یک گره btree اشاره کند، btree را از آن بلوک به پایین تخلیه (dump) میکند. اگر مکاننما به یک اینود اشاره کند، btree نگاشت بلوکهای شاخه داده را (در صورت وجود) تخلیه میکند. اگر مکاننما به گره btree یک دایرکتوری یا ویژگی گسترشیافته اشاره کند، آن را تخلیه میکند. به طور پیشفرض، تنها رکوردهای ذخیرهشده در btree تخلیه میشوند.
- btheight [-b blksz] [-n recs] [-w max|min|absmax] btree types...
- برای تعداد
مشخصی
رکورد btree و یک
نوع btree،
تعداد
رکوردها و
بلوکها را
برای هر سطح
از btree، و
تعداد کل
بلوکها را
گزارش
میدهد. نوع
btree باید پس از
گزینهها
مشخص شود.
یک هندسه خام btree را میتوان در قالب "record_bytes:key_bytes:ptr_bytes:header_type" ارائه کرد، که در آن header_type یکی از مقادیر "short"، "long"، "shortcrc" یا "longcrc" است.
انواع پشتیبانیشده btree عبارتند از: bnobt، cntbt، inobt، finobt، bmapbt، refcountbt، و rmapbt. مقدار جادویی all میتواند برای پیمایش تمامی انواع btree استفاده شود.
گزینهها عبارتند از:
- -b
- برای لغو اندازه بلوک btree استفاده میشود. پیشفرض اندازه بلوک فایلسیستم است.
- -n
- برای مشخص کردن تعداد رکوردهای ذخیرهشده به کار میرود. این آرگومان الزامی است.
- -w absmax
- حداکثر ارتفاع ممکن را برای انواع دادهشده btree نمایش میدهد.
- -w max
- تنها بهترین سناریو را نمایش میدهد، یعنی زمانی که بلوکهای btree به طور کامل پر شدهاند.
- -w min
- تنها بدترین سناریو را نمایش میدهد، یعنی زمانی که بلوکهای btree نیمهپر هستند.
- convert type number [type number] ... type
- تبدیل از یک قالب آدرس به قالب دیگر. انواع type شناختهشده به همراه نامهای جایگزین آنها عبارتند از:
agblock یا agbno (بلوک فایلسیستم در یک گروه تخصیص)
agino یا aginode (شماره اینود در یک گروه تخصیص)
agnumber یا agno (شماره گروه تخصیص)
bboff یا daddroff (آفست بایتی در یک daddr)
blkoff یا fsboff یا agboff (آفست بایتی در یک agblock یا fsblock)
byte یا fsbyte (آدرس بایتی در فایلسیستم)
daddr یا bb (آدرس دیسک، بر حسب بلوکهای ۵۱۲ بایتی)
fsblock یا fsb یا fsbno (بلوک فایلسیستم، به دستور fsblock مراجعه کنید)
ino یا inode (شماره اینود)
inoidx یا offset (اندیس اینود در بلوک فایلسیستم)
inooff یا inodeoff (آفست بایتی در اینود)
- تنها تبدیلهایی مجاز هستند که منطقی باشند. فرم ترکیبی (با بیش از سه آرگومان) برای تبدیلهایی مانند convert agno ag agbno agb fsblock مفید است.
- crc [-i|-r|-v]
- ابطال، محاسبه مجدد، یا اعتبارسنجی فیلد CRC (چکسام) ساختار جاری، در صورت وجود. این دستور تنها در فایلسیستمهایی با قابلیت CRC فعال در دسترس است. بدون آرگومان، عملیات اعتبارسنجی انجام میشود. هر دستور مقدار CRC حاصل و وضعیت آن را نمایش میدهد.
- daddr [-r] [d]
- آدرس جاری
را به daddr (بلوک
۵۱۲ بایتی)
مشخصشده
با d تنظیم
میکند. اگر
مقداری
برای d داده
نشود، آدرس
جاری در
قالب daddr چاپ
میشود. نوع
داده به data
(دادههای
خام و
تفسیرنشده)
تنظیم
میشود.
اگر آدرس و گزینه -l مشخص شوند، آدرس جاری به دستگاه لاگ خارجی تنظیم میشود. اگر آدرس و گزینه -r مشخص شوند، آدرس جاری به دستگاه دادههای بلادرنگ (realtime) تنظیم میشود.
- dblock filoff
- آدرس جاری را به آفست filoff (یک شماره بلوک فایلسیستم) در ناحیه دادههای اینود جاری تنظیم میکند.
- debug [flagbits]
- بیتهای گزینه اشکالزدایی را تنظیم میکند. این بیتها برای اشکالزدایی داخلی xfs_db استفاده میشوند. در صورت عدم ارائه مقداری برای flagbits، بیتهای گزینه اشکالزدایی جاری چاپ میشوند. این بیتها برای استفاده توسعهدهندگان هستند.
- dquot [-g|-p|-u] id
- آدرس جاری را به بلوک سهمیهبندی گروهی، پروژهای یا کاربری برای شناسه دادهشده تنظیم میکند. پیشفرض سهمیهبندی کاربری است.
- dump_iunlinked [-a agno ] [-b bucket ] [-q] [-v]
- تخلیه (dump)
محتویات
سطلهای unlinked
(پیوندزدودهشده).
گزینهها عبارتند از:
- echo [arg] ...
- آرگومانها را به خروجی اکو میکند.
- f
- به دستور forward مراجعه کنید.
- forward
- به ورودی بعدی در حلقه موقعیتها حرکت میکند.
- frag [-adflqRrv]
- دریافت اطلاعات تکهتکه شدن (تفرق یا fragmentation) فایلها. این دستور اطلاعاتی را درباره پراکندگی دادههای فایل در فایلسیستم چاپ میکند (برخلاف تفرق فضای آزاد، که برای آن به دستور freesp مراجعه فرمایید). تکتک پروندههای فایلسیستم بررسی میشوند تا مشخص شود نگاشتهای قطعه (extent) آنها چقدر از حالت بهینه فاصله دارد. خلاصهای از مجموع مقادیر چاپ میشود.
- -v
- حالت تفصیلی را فعال میکند؛ اطلاعات برای تکتک اینودها چاپ میشود. گزینههای باقیمانده تعیین میکنند که کدام اینودها و قطعات بررسی شوند. اگر هیچ گزینهای داده نشود، فرض میشود همه فعال هستند؛ در غیر این صورت تنها موارد مشخصشده فعال خواهند بود.
- -a
- پردازش دادههای ویژگی (attribute) را فعال میکند.
- -d
- پردازش دادههای دایرکتوری را فعال میکند.
- -f
- پردازش دادههای فایلهای معمولی را فعال میکند.
- -l
- پردازش دادههای پیوند نمادین (symlink) را فعال میکند.
- -q
- پردازش دادههای پرونده سهمیهبندی (quota) را فعال میکند.
- -R
- پردازش دادههای پرونده کنترل بلادرنگ (realtime) را فعال میکند.
- -r
- پردازش دادههای فایلهای بلادرنگ (realtime) را فعال میکند.
- freesp [-bcds] [-A alignment] [-a ag] ... [-e i] [-h h1] ... [-m m]
- خلاصه فضای آزاد برای فایلسیستم. بلوکهای آزاد بررسی و مجموع آنها محاسبه شده و به شکل یک هیستوگرام با تعداد قطعات در هر محدوده از اندازههای قطعه آزاد نمایش داده میشود.
- -A
- تنها قطعات آزادی را گزارش میدهد که بلوکهای شروع آنها با بلوکهای alignment همتراز شده باشد.
- -a
- گروه تخصیص ag را به لیست گروههای مورد پردازش میافزاید. اگر گزینهای داده نشود، همه گروههای تخصیص پردازش میشوند.
- -b
- مشخص میکند که سطلهای هیستوگرام اندازههای دودویی داشته باشند و اندازههای شروع توانهایی از ۲ باشند.
- -c
- مشخص میکند که freesp به جای Btree پیشفرض بر پایه بلوک (bno)، در Btree بر پایه اندازه (cnt) جستجو کند.
- -d
- مشخص میکند که تکتک قطعات آزاد نمایش داده شوند.
- -e
- مشخص میکند که سطلهای هیستوگرام هماندازه باشند و اندازه آنها با i تعیین شود.
- -h
- شماره بلوک شروع یک سطل هیستوگرام را با h1 مشخص میکند. برای تعیین مجموعه کامل سطلها میتوان چندین گزینه -h به کار برد.
- -m
- مشخص میکند که شمارههای بلوک شروع هیستوگرام توانهایی از m باشند. این حالت کلی گزینه -b است.
- -s
- مشخص میکند که خلاصهای نهایی از کل قطعات آزاد، بلوکهای آزاد و میانگین اندازه قطعات آزاد چاپ شود.
- fsb
- به دستور fsblock مراجعه کنید.
- fsblock [fsb]
- آدرس جاری را به مقدار fsblock دادهشده توسط fsb تنظیم میکند. اگر مقداری داده نشود، آدرس جاری در قالب fsb چاپ میشود. نوع داده به data (تفسیرنشده) تنظیم میشود. شمارههای بلوک فایلسیستم XFS به صورت ((agno << agshift) | agblock) محاسبه میشوند که در آن agshift به اندازه گروه تخصیص بستگی دارد. از دستور convert برای تبدیل به و از این فرمت استفاده کنید. شمارههای بلوک ارائهشده برای بلوکهای فایل (مثلاً از دستور bmap) در این فرمت هستند.
- fsmap [ start ] [ end ]
- نگاشت بلوکهای دیسک مورد استفاده در فایلسیستم XFS را چاپ میکند. این نقشه تکتک قطعات مورد استفاده توسط فایلها، فراداده گروههای تخصیص، لاگهای ژورنال و فراداده ایستا و همچنین نواحی استفادهنشده را فهرست میکند. تمام بلوکها، آفستها و طولها بر حسب واحدهای ۵۱۲ بایتی بیان میشوند، صرفنظر از اینکه اندازه بلوک فایلسیستم چقدر باشد. آرگومانهای اختیاری start و end میتوانند برای محدود کردن خروجی به محدوده خاصی از بلوکهای دیسک استفاده شوند.
- fuzz [-c] [-d] field action
- نوشتن دادههای نامعتبر (زباله) در یک فیلد ساختار مشخص روی دیسک. برای استفاده از این دستور حالت کارشناسی (expert mode) باید فعال باشد. عملیات بلافاصله انجام میشود و هیچ میانگیری (buffering) وجود ندارد.
- دستور fuzz میتواند actionهای زیر را روی یک فیلد انجام دهد:
- zeroes
- تمام بیتهای موجود در فیلد را صفر میکند.
- ones
- تمام بیتهای موجود در فیلد را یک میکند.
- firstbit
- نخستین بیت فیلد را معکوس (flip) میکند. برای یک مقدار عددی (اسکالر)، این بالاترین بیت (باارزشترین بیت) است.
- middlebit
- بیت میانی فیلد را معکوس میکند.
- lastbit
- آخرین بیت فیلد را معکوس میکند. برای یک مقدار اسکالر، این پایینترین بیت (کمارزشترین بیت) است.
- add
- یک مقدار کوچک را به فیلد اسکالر میافزاید.
- sub
- یک مقدار کوچک را از فیلد اسکالر کسر میکند.
- random
- محتویات فیلد را تصادفی میکند.
- سوییچهای زیر بر رفتار نوشتن تأثیر میگذارند:
- hash [-d|-p parent_ino] strings
- مقدار هش string
را با
استفاده از
تابع هش
پیادهسازی
دایرکتوری
و ویژگی XFS
چاپ میکند.
اگر گزینه -d مشخص شود، از تابع هش مخصوص دایرکتوری استفاده میشود. این گزینه تنها در فایلسیستمهایی که جستجوی غیرحساس به حروف بزرگ و کوچک اسکی (ascii case-insensitive) در آنها فعال است تفاوت ایجاد میکند.
اگر گزینه -p مشخص شود، از تابع هش مخصوص اشارهگر والد (parent pointer) استفاده میشود. شماره اینود دایرکتوری والد باید به عنوان آرگومان ارائه شود. این گزینه نیز تنها در فایلسیستمهای دارای قابلیت جستجوی غیرحساس به حروف تفاوتی ایجاد میکند.
- hashcoll [-a] [-s seed] [-n nr] [-p path] -i | names...
- ایجاد ورودیهای دایرکتوری یا نامهای ویژگیهای گسترشیافته که همگی مقدار هش یکسانی دارند. در اینجا از الگوریتم مبهمسازی نام در metadump استفاده میشود. نامها در خروجی استاندارد نوشته میشوند و میان هر نام یک نویسه NULL جهت استفاده با xargs -0 قرار میگیرد.
- -a
- ایجاد نامهای ویژگیهای گسترشیافته.
- -i
- خواندن نخستین نام جهت ایجاد از ورودی استاندارد. تا ۲۵۵ بایت خوانده میشود. در صورت عدم ذکر، نخستین نامها از خط فرمان گرفته میشوند.
- -n nr
- ایجاد این تعداد نام تکراری. پیشفرض ایجاد یک نام است.
- -p path
- ایجاد ورودیهای دایرکتوری یا ویژگیهای گسترشیافته در این فایل به جای نوشتن نامها در خروجی استاندارد.
- -s seed
- مقداردهی بذر اولیه (seed) برای تولیدکننده اعداد تصادفی.
- help [command]
- چاپ راهنما برای یک یا تمامی دستورات.
- info
- اطلاعات هندسه منتخب درباره فایلسیستم را نمایش میدهد. خروجی این دستور همان قالبی را دارد که mkfs.xfs(8) هنگام ایجاد فایلسیستم یا xfs_info(8) هنگام پرسوجو از فایلسیستم چاپ میکند.
- inode [inode#]
- تنظیم شماره اینود جاری. اگر شمارهای داده نشود، شماره اینود جاری چاپ میشود.
- iunlink [-n nr ]
- تخصیص
اینودها و
قرار دادن
آنها در
لیست unlinked.
گزینهها عبارتند از:
- -n
- ایجاد این تعداد اینود unlinked. در صورت عدم تعیین، ۱ اینود ایجاد میشود.
- label [label]
- تنظیم برچسب (label) فایلسیستم. برچسب فایلسیستم میتواند در mount(8) به جای پرونده ویژه دستگاه به کار رود. حداکثر طول برچسب XFS برابر ۱۲ کاراکتر است؛ استفاده از برچسب طولانیتر موجب کوتاهشدن آن و صدور هشدار خواهد شد. اگر مقداری برای label داده نشود، برچسب جاری فایلسیستم چاپ میشود.
- link [-i ino] [-m] [-p path] [-t ftype] name
- در دایرکتوری جاری، یک ورودی دایرکتوری با نام name ایجاد میکند که به یک فایل اشاره دارد. فایل مورد نظر باید یا به عنوان یک مسیر درخت دایرکتوری از طریق گزینه path یا مستقیماً به عنوان شماره اینود از طریق گزینه ino مشخص شود. نوع فایل در ورودی دایرکتوری بر اساس حالت (mode) فایل فرزند تعیین میشود، مگر اینکه گزینه ftype ارائه گردد. گزینه -m مشخص میکند که جستجوی مسیر باید در درخت دایرکتوری فراداده (metadata) انجام شود. فایل مورد نظر نباید در لیست iunlink باشد.
- log [stop | start filename]
- شروع ثبت لاگ خروجی در filename، توقف ثبت لاگ، یا چاپ وضعیت لاگگیری جاری.
- logblock [logbno]
- تنظیم آدرس جاری به مقدار بلوک لاگ دادهشده با logbno. در صورت عدم ارائه مقداری برای logbno، آدرس جاری در قالب fsb چاپ میشود. نوع به data (تفسیرنشده) تنظیم میگردد. اگر فایلسیستم دارای لاگ خارجی باشد، آدرس در دستگاه لاگ خواهد بود؛ اگر لاگ داخلی داشته باشد، آدرس در لاگ داخلی خواهد بود.
- logformat [-c cycle] [-s sunit]
- فرمت مجدد لاگ به چرخه لاگ (log cycle) و واحد خطکشی لاگ (log stripe unit) مشخصشده. این کار موجب پاکسازی تخریبی لاگ میشود. اگر چرخه لاگ مشخص نشود، لاگ به چرخه جاری فرمت مجدد میشود. اگر واحد خطکشی مشخص نشود، از مقدار موجود در سوپربلاک فایلسیستم استفاده خواهد شد.
- logres
- چاپ اطلاعات اندازه رزرو تراکنش برای هر نوع تراکنش. این کار یافتن تناقضات در محاسبات رزرو میان ابزارهای xfsprogs و هسته لینوکس را آسانتر میکند که هنگام خطایابی محاسبات حداقل اندازه لاگ مفید خواهد بود.
- ls [-im] [paths]...
- فهرست کردن
محتویات یک
دایرکتوری.
اگر یک مسیر
به یک
دایرکتوری
ختم شود، آن
دایرکتوری
فهرست
میشود. اگر
هیچ مسیری
داده نشود و
مکاننمای
ورودی/خروجی
به یک اینود
دایرکتوری
اشاره کند،
محتویات آن
دایرکتوری
فهرست
خواهد شد.
قالب خروجی عبارت است از: کوکی دایرکتوری، شماره اینود، نوع فایل، هش، طول نام، نام.
- metadump [-egow] filename
- تخلیه فراداده به یک پرونده. برای اطلاعات بیشتر به xfs_metadump(8) مراجعه کنید.
- ncheck [-s] [-i ino] ...
- چاپ جفتهای نام-اینود. ابتدا باید یک دستور blockget -n برای گردآوری اطلاعات اجرا شده باشد.
- p
- به دستور print مراجعه کنید.
- parent [-m] [paths]...
- فهرست کردن
والدین (parents)
یک پرونده.
اگر مسیری
به یک فایل
ختم شود،
والدین آن
فایل فهرست
میشوند.
اگر هیچ
مسیری داده
نشود و
مکاننما
به یک اینود
اشاره کند،
والدین آن
فایل فهرست
میشوند.
گزینه -m
باعث
میشود
مسیرهای
مطلق از
ریشه درخت
دایرکتوری
فراداده
پیمایش
شوند.
قالب خروجی عبارت است از: شماره اینود، نسل اینود (inode generation)، هش نام روی دیسک، هش نام، طول نام، نام.
- path [-m] dir_path
- پیمایش درخت دایرکتوری به سمت یک اینود با استفاده از مسیر ارائهشده. از هر دو مسیر مطلق و نسبی پشتیبانی میشود. گزینه -m باعث میشود مسیرهای مطلق از ریشه درخت دایرکتوری فراداده پیمایش شوند.
- pop
- بیرون کشیدن (pop) موقعیت از پشته.
- print [field-expression] ...
- چاپ مقادیر فیلدها. اگر آرگومانی داده نشود، تمام فیلدهای ساختار جاری چاپ میشوند.
- push [command]
- قرار دادن (push) موقعیت در پشته. اگر command ارائه شود، موقعیت جاری پس از فشردن موقعیت پیشین در پشته، به نتایج command تنظیم میشود.
- q
- به دستور quit مراجعه کنید.
- quit
- خروج از xfs_db.
- rtblock [rtbno]
- تنظیم آدرس جاری به مکان روی دستگاه بلادرنگ (realtime) دادهشده توسط rtbno. این مقدار باید یک شماره بلوک بلادرنگ باشد. اگر مقداری داده نشود، آدرس جاری در قالب rtbno چاپ میشود. نوع داده به data (تفسیرنشده) تنظیم میشود.
- rtextent [rtxno]
- تنظیم آدرس جاری به مکان روی دستگاه بلادرنگ دادهشده توسط rtextent. این مقدار باید یک آدرس خطی بر حسب واحدهای قطعات بلادرنگ (realtime extents) باشد. اگر مقداری داده نشود، آدرس جاری در قالب rtextent چاپ میشود. نوع داده به data (تفسیرنشده) تنظیم میشود.
- ring [index]
- نمایش حلقه موقعیتها (اگر آرگومان index داده نشود)، یا حرکت به یک ورودی خاص در حلقه موقعیتها که توسط index مشخص شده است.
- rtconvert type number [type number] ... type
- تبدیل از یک قالب آدرس به قالب دیگر برای آدرسهای بخش بلادرنگ (realtime). انواع شناختهشده type با نامهای جایگزین آنها عبارتند از:
rgblock یا rgbno (بلوک بلادرنگ درون یک گروه بلادرنگ)
rgnumber یا rgno (شماره گروه بلادرنگ)
bboff یا daddroff (آفست بایتی در یک daddr)
blkoff یا fsboff یا rtboff (آفست بایتی در یک rtblock یا rtextent)
byte یا fsbyte (آدرس بایتی در فایلسیستم)
daddr یا bb (آدرس دیسک، بر حسب بلوکهای ۵۱۲ بایتی)
rtblock یا rtb یا rtbno (بلوک فایلسیستم بلادرنگ، به دستور fsblock مراجعه کنید)
rtx یا rtextent (قطعه بلادرنگ)
rbmblock یا rbmb (بلوک بیتمپ بلادرنگ)
rbmword یا rbmw (کلمه ۳۲ بیتی درون یک بلوک بیتمپ بلادرنگ)
rsumblock یا rsmb (بلوک فایل خلاصه بلادرنگ)
rsuminfo یا rsmi (شمارنده ۳۲ بیتی درون یک بلوک خلاصه بلادرنگ)
rsumlog یا rsml (پارامتر log2len مورد استفاده برای محاسبات آفست فایل خلاصه)
- تنها
تبدیلهایی
مجاز هستند
که منطقی
باشند. فرم
ترکیبی (با
بیش از سه
آرگومان)
برای
تبدیلهایی
مانند convert rgno rg
rgbno rgb rtblock مفید
است.
تبدیلهای مکان در فایل خلاصه بلادرنگ دارای قوانین زیر هستند: هر کلمه اطلاعاتی در فایل خلاصه بلادرنگ تعداد قطعات آزاد با یک log2(length) مشخص را که در یک بلوک بیتمپ بلادرنگ مشخص شروع میشوند میشمارد.
برای محاسبه اطلاعات مکان در فایل خلاصه برای یک بلوک بیتمپ rt معین، باید log2(طول قطعه) به عنوان آخرین جفت نوع/شماره قبل از نوع تبدیل مشخص شود و نوع آن باید rsumlog باشد.
برای مثال، این دستورات به ما میگویند کجای فایل خلاصه rt را برای یافتن تعداد rtextentهای آزاد با طول 2^21 که در بلوک بیتمپ شماره 30 شروع میشوند بررسی کنیم:
rtconvert rbmblock 30 rsumlog 21 rsumblock
rtconvert rbmblock 30 rsumlog 21 rsuminfo
برای محاسبه بلوک بیتمپ بلادرنگ از روی مکان فایل خلاصه، جفتهای نوع/شماره باید دقیقاً به ترتیب زیر مشخص شوند: rsumlog، rsuminfo، rsumblock.
برای مثال، این دستور به ما میگوید کدام بلوک در فایل بیتمپ rt توسط کلمه اطلاعاتی 809 در بلوک خلاصه 10 خلاصه شده است، با این فرض که حداکثر طول قطعه آزاد 2^21 قطعه بلادرنگ است:
rtconvert rsumlog 21 rsuminfo 809 rsumblock 10 rbmblock
- sb [agno]
- تنظیم آدرس جاری به سرآیند سوپربلاک (SB) در گروه تخصیص agno. اگر agno داده نشود، از شماره گروه تخصیص جاری استفاده میشود.
- source source-file
- پردازش دستورات از پرونده منبع source-file. دستورات source میتوانند به صورت تودرتو فراخوانی شوند.
- stack
- مشاهده پشته موقعیتها.
- type [type]
- تنظیم نوع داده جاری به type. در صورت عدم ارائه آرگومان، نوع داده جاری نمایش داده میشود. انواع داده ممکن عبارتند از: agf، agfl، agi، attr، bmapbta، bmapbtd، bnobt، cntbt، data، dir، dir2، dqblk، inobt، inode، log، refcntbt، rmapbt، rtbitmap، rtsummary، sb، symlink و text. برای اطلاعات بیشتر درباره این انواع داده، به بخش TYPES در زیر مراجعه فرمایید.
- timelimit [OPTIONS]
- چاپ حداقل و حداکثر مقادیر مجاز برای مهرهای زمانی اینود، تایمرهای انقضای سهمیهبندی و دورههای مهلت سهمیهبندی که توسط این فایلسیستم پشتیبانی میشوند. گزینهها عبارتند از:
- --bigtime
- چاپ محدودیتهای زمانی یک فایلسیستم XFS که ویژگی bigtime روی آن فعال است.
- --classic
- چاپ محدودیتهای زمانی یک فایلسیستم کلاسیک XFS.
- --compact
- چاپ تمام محدودیتها به عنوان مقادیر خام در یک سطر واحد.
- --pretty
- چاپ مهرهای زمانی در قالب تاریخ و ساعت محلی جاری به جای ثانیههای خام از مبدا یونیکس.
- unlink name
- در دایرکتوری جاری، ورودی دایرکتوری با نام name را حذف میکند. پرونده هدف در لیست iunlink قرار نخواهد گرفت.
- uuid [uuid | generate | rewrite | restore]
- تنظیم شناسه یکتای جهانی (UUID) فایلسیستم. شناسه UUID فایلسیستم میتواند توسط mount(8) به جای پرونده ویژه دستگاه استفاده شود. مقدار uuid را میتوان مستقیماً به UUID دلخواه تنظیم کرد، یا میتوان با استفاده از گزینه generate آن را به طور خودکار تولید نمود. هر دوی این گزینهها UUID را در تمامی رونوشتهای سوپربلاک در فایلسیستم مینویسند. در یک فایلسیستم با CRC فعال، این کار یک فلگ ناسازگار سوپربلاک تنظیم میکند و فایلسیستم با هستههای قدیمیتر قابل سوار شدن نخواهد بود. این مورد را میتوان با گزینه restore بازگرداند، که UUID اصلی را به جای خود برگردانده و فلگ ناسازگار را در صورت نیاز پاک میکند. گزینه rewrite مقدار UUID جاری را از سوپربلاک اصلی به تمام رونوشتهای ثانویه سوپربلاک کپی میکند. در صورت عدم ارائه آرگومان، شناسه UUID جاری فایلسیستم چاپ میشود.
- version [feature | versionnum features2]
- فعالسازی ویژگیهای انتخابشده برای فایلسیستم (برخی ویژگیها را میتوان روی یک فایلسیستم سوارنشده، پس از آنکه توسط mkfs.xfs(8) ایجاد شد، فعال کرد). پشتیبانی از قطعات نوشتهنشده (unwritten extents) را میتوان با گزینه extflg فعال کرد. پشتیبانی از قالب لاگ نسخه ۲ با گزینه log2 فعال میشود. پشتیبانی از ویژگیهای گسترشیافته با گزینههای attr1 یا attr2 فعال میشود. پس از فعالسازی، ویژگیهای گسترشیافته غیرقابل غیرفعالسازی هستند، اما کاربر میتواند بنا به میل خود بین attr1 و attr2 تغییر وضعیت دهد (هستههای قدیمیتر ممکن است از نسخه جدیدتر پشتیبانی نکنند).
- اگر آرگومانی داده نشود، نسخه جاری و بیتهای ویژگیها چاپ میشوند. با یک آرگومان، این دستور شماره نسخه بهروزرسانیشده را در تمامی رونوشتهای سوپربلاک در فایلسیستم مینویسد. اگر دو آرگومان داده شوند، به عنوان مقادیر عددی برای بیتهای versionnum و features2 استفاده شده و معادل رشتهای آنها گزارش داده میشود (اما هیچ تغییری اعمال نمیشود).
- write [-c|-d] [field value] ...
- نوشتن یک مقدار روی دیسک. فیلدهای مشخصی را میتوان در ساختارها تنظیم کرد (حالت struct)، یا یک بلوک را میتوان با مقادیر داده تنظیم نمود (حالت data)، یا یک بلوک را با مقادیر رشتهای پر کرد (حالت string، برای بلوکهای پیوند نمادین). عملیات بلافاصله انجام میشود و هیچ بافری وجود ندارد.
- حالت struct زمانی برقرار است که نوع جاری ساختاری باشد (یعنی داده خام نباشد). برای حالت struct ساختار نگارش به این صورت است: "write field value".
- حالت data زمانی برقرار است که نوع جاری data باشد. در این حالت محتویات بلوک را میتوان به چپ یا راست شیفت داد یا چرخاند، یا آن را با یک توالی، یک مقدار ثابت، یا یک مقدار تصادفی پر کرد. در این حالت دستور write بدون آرگومان اطلاعات بیشتری درباره دستورات مجاز ارائه میدهد.
- -c
- اعتبارسنجهای نوشتن و محاسبه مجدد CRC را نادیده میگیرد؛ اجازه میدهد دادههای نامعتبر روی دیسک نوشته شوند.
- -d
- اعتبارسنجهای نوشتن را نادیده میگیرد اما محاسبه مجدد CRC را انجام میدهد. این امر اجازه میدهد دادههای نامعتبر برای آزمایش شناسایی دادههای خراب روی دیسک نوشته شوند (این کار برای برخی انواع امکانپذیر نیست).
انواع داده (TYPES)
این بخش فیلدهای موجود در هر نوع ساختار و معانی آنها را بیان میکند. توجه داشته باشید که برخی از انواع بلوکها چندین ساختار واقعی را در بر میگیرند، مانند بلوکهای دایرکتوری.
- agf
- بلوک AGF سرآیند اطلاعات تخصیص بلوک است؛ این ساختار در دومین بلوک ۵۱۲ بایتی هر گروه تخصیص قرار دارد. فیلدهای زیر تعریف شدهاند:
- magicnum
- عدد جادویی بلوک AGF، برابر با 0x58414746 ('XAGF').
- versionnum
- شماره نسخه، در حال حاضر 1.
- seqno
- شماره توالی که از 0 آغاز میشود.
- length
- اندازه گروه تخصیص بر حسب بلوکهای فایلسیستم. تمام گروههای تخصیص به جز آخرین گروه در فایلسیستم دارای مقدار agblocks سوپربلاک در اینجا هستند.
- bnoroot
- شماره بلوک ریشه Btree حاوی اطلاعات فضای آزاد که بر اساس شماره بلوک مرتب شده است.
- cntroot
- شماره بلوک ریشه Btree حاوی اطلاعات فضای آزاد که بر اساس تعداد بلوک مرتب شده است.
- bnolevel
- تعداد سطوح در Btree مرتبشده بر پایه شماره بلوک.
- cntlevel
- تعداد سطوح در Btree مرتبشده بر پایه اندازه (تعداد بلوک).
- flfirst
- اندیس نخستین ورودی فعال در بلوک AGFL.
- fllast
- اندیس آخرین ورودی فعال در بلوک AGFL.
- flcount
- تعداد ورودیهای فعال در بلوک AGFL.
- freeblks
- تعداد بلوکهای ارائهشده در Btreeهای فضای آزاد.
- longest
- بزرگترین فضای آزاد ارائهشده در Btreeهای فضای آزاد.
- btreeblks
- تعداد بلوکهای نگهداریشده در Btreeهای AGF.
- agfl
- بلوک AGFL شامل شمارههای بلوک برای استفاده تخصیصدهنده بلوک است؛ این ساختار در چهارمین بلوک ۵۱۲ بایتی هر گروه تخصیص قرار دارد. هر ورودی در لیست فعال، شماره یک بلوک درون گروه تخصیص است که در صورت کمبود فضا میتواند برای هر هدفی استفاده شود. فیلدهای بلوک AGF شامل flfirst، fllast، و flcount مشخص میکنند که کدام ورودیها در حال حاضر فعال هستند. فضای ورودیها به صورت حلقوی درون بلوک AGFL تخصیص مییابد. فیلدهای تعریفشده:
- bno
- آرایهای از تمام شمارههای بلوک. حتی آنهایی که فعال نیستند نیز چاپ میشوند.
- agi
- بلوک AGI سرآیند اطلاعات تخصیص اینود است؛ این ساختار در سومین بلوک ۵۱۲ بایتی هر گروه تخصیص قرار دارد. فیلدهای تعریفشده:
- magicnum
- عدد جادویی بلوک AGI، برابر با 0x58414749 ('XAGI').
- versionnum
- شماره نسخه، در حال حاضر 1.
- seqno
- شماره توالی که از 0 آغاز میشود.
- length
- اندازه گروه تخصیص بر حسب بلوکهای فایلسیستم.
- count
- تعداد اینودهای تخصیصیافته.
- root
- شماره بلوک ریشه Btree حاوی اطلاعات تخصیص اینود.
- level
- تعداد سطوح در Btree تخصیص اینود.
- freecount
- تعداد اینودهای تخصیصیافتهای که در حال استفاده نیستند (آزاد هستند).
- newino
- آخرین شماره اینود تخصیصیافته.
- dirino
- استفادهنشده.
- unlinked
- آرایهای از شمارههای اینود درون گروه تخصیص. ورودیهای موجود در بلوک AGI سرلیست زنجیرههایی هستند که از طریق فیلد next_unlinked اینودها عبور میکنند. این اینودها دفعه بعدی که فایلسیستم سوار شود پیوندزدوده (unlinked) خواهند شد.
- attr
- شاخه ویژگیها (attribute fork) به صورت یک Btree سازماندهی شده که دادههای واقعی درون بلوکهای برگ جاسازی شدهاند. ریشه Btree در بلوک شماره 0 شاخه قرار دارد. اندیس (ترتیب مرتبسازی) Btree مقدار هش نام ویژگی است. تمام بلوکها دارای ساختار blkinfo در ابتدای خود هستند، برای توضیحات به نوع dir مراجعه کنید. بلوکهای غیربرگ از نظر فرمت دقیقاً مشابه دایرکتوریهای نسخه ۱ و ۲ هستند، به توضیحات نوع dir مراجعه کنید. بلوکهای برگ میتوانند به مقادیر ویژگی «محلی» (local) یا «دور» (remote) ارجاع دهند. مقادیر محلی مستقیماً در بلوک برگ ذخیره میشوند. بلوکهای برگ حاوی فیلدهای زیر هستند:
- hdr
- سرآیند حاوی ساختار blkinfo با نام info (عدد جادویی 0xfbee)، count ورودیهای فعال، usedbytes کل بایتهای نامها و مقادیر، firstused نخستین بایت استفادهشده در ناحیه نام، holes تنظیم در صورتی که بلوک نیاز به فشردهسازی داشته باشد، و آرایه freemap مانند بلوکهای برگ dir.
- entries
- آرایهای از ساختارهای حاوی hashval، nameidx (اندیس نام درون بلوک)، و پرچمهای incomplete، root، و local.
- nvlist
- آرایهای از ساختارهای توصیفکننده نامها و مقادیر ویژگیها. فیلدهایی که همیشه حضور دارند: valuelen (طول مقدار بر حسب بایت)، namelen، و name. فیلدهای حاضر برای مقادیر محلی: value (رشته مقدار). فیلدهای حاضر برای مقادیر دور: valueblk (شماره بلوک شاخه حاوی مقدار).
- مقادیر دور در یک بلوک مستقل در شاخه ویژگیها ذخیره میشوند. پیش از نسخه 5، بلوکهای مقدار هیچ ساختاری نداشتند، اما در نسخه 5 دارای ساختار سرآیند با فیلدهای زیر شدند:
- magic
- عدد جادویی بلوک دوردست attr3، برابر با 0x5841524d ('XARM').
- offset
- آفست بایتی این بلوک داده درون کل مقدار ویژگی.
- bytes
- تعداد بایتهای ذخیرهشده در این بلوک.
- crc
- چکسام محتویات بلوک ویژگی.
- uuid
- شناسه یکتای جهانی (UUID) فایلسیستم.
- owner
- اینودی که مالک این مقدار ویژگی است.
- bno
- آفست بلوکی این بلوک درون شاخه ویژگی اینود.
- lsn
- شماره سریال لاگ (LSN) آخرین باری که این بلوک در لاگ ثبت شده است.
- data
- دادههای مقدار ویژگی.
- bmapbt
- پروندههایی با قطعات (extents) بسیار در شاخه داده یا ویژگی، قطعات آنها توسط محتویات یک Btree برای آن شاخه توصیف خواهد شد، به جای آنکه مستقیماً در اینود ذخیره شوند. هر Btree نگاشت بلوک (bmap) با یک بلوک ریشه که درون اینود قرار دارد آغاز میشود. سطوح دیگر Btree در بلوکهای فایلسیستم ذخیره میشوند. بلوکها در هر سطح به بلوکهای همسایه چپ و راست پیوند دارند و همچنین توسط اشارهگرها از بلوکهای والد به فرزند متصل هستند. هر بلوک حاوی فیلدهای زیر است:
- magic
- عدد جادویی بلوک Btree نگاشت بلوک، برابر با 0x424d4150 ('BMAP').
- level
- سطح این بلوک بالاتر از سطح برگ.
- numrecs
- تعداد رکوردها یا کلیدها در بلوک.
- leftsib
- بلوک همسایه سمت چپ (از نظر منطقی کمتر)، اگر وجود نداشته باشد 0.
- rightsib
- بلوک همسایه سمت راست (از نظر منطقی بیشتر)، اگر وجود نداشته باشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای قطعه (extent). هر رکورد شامل startoff، startblock، blockcount، و extentflag (1 اگر قطعه هنوز نوشته نشده باشد) است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای کلید. اینها نخستین مقدار کلید هر بلوک در سطح زیرین این بلوک هستند. هر رکورد شامل startoff است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوکهای فرزند. هر اشارهگر یک شماره بلوک فایلسیستم به سطح بعدی در Btree است.
- bnobt
- یک مجموعه از بلوکهای فایلسیستم وجود دارد که Btree تخصیص بر پایه شماره بلوک را برای هر گروه تخصیص تشکیل میدهند. بلوک ریشه این Btree توسط فیلد bnoroot در بلوک AGF متناظر تعیین میشود. بلوکها در هر سطح به بلوکهای همسایه چپ و راست و همچنین با اشارهگرها از والد به فرزند متصل هستند. هر بلوک دارای فیلدهای زیر است:
- magic
- عدد جادویی بلوک BNOBT، برابر با 0x41425442 ('ABTB').
- level
- شماره سطح این بلوک، 0 برگ است.
- numrecs
- تعداد ورودیهای داده در بلوک.
- leftsib
- بلوک همسایه چپ (منطقاً کمتر)، اگر نباشد 0.
- rightsib
- بلوک همسایه راست (منطقاً بیشتر)، اگر نباشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای فضای آزاد. هر رکورد شامل startblock و blockcount است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای کلید. اینها نخستین مقدار هر بلوک در سطح زیر این بلوک هستند. هر رکورد شامل startblock و blockcount است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوک فرزند. هر اشارهگر یک شماره بلوک درون گروه تخصیص به سطح بعدی Btree است.
- cntbt
- یک مجموعه از بلوکهای فایلسیستم وجود دارد که Btree تخصیص بر پایه تعداد بلوک (اندازه) را برای هر گروه تخصیص تشکیل میدهند. بلوک ریشه این Btree توسط فیلد cntroot در بلوک AGF متناظر تعیین میشود. بلوکها در هر سطح به بلوکهای همسایه چپ و راست و همچنین با اشارهگرها از والد به فرزند متصل هستند. هر بلوک دارای فیلدهای زیر است:
- magic
- عدد جادویی بلوک CNTBT، برابر با 0x41425443 ('ABTC').
- level
- شماره سطح این بلوک، 0 برگ است.
- numrecs
- تعداد ورودیهای داده در بلوک.
- leftsib
- بلوک همسایه چپ (منطقاً کمتر)، اگر نباشد 0.
- rightsib
- بلوک همسایه راست (منطقاً بیشتر)، اگر نباشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای فضای آزاد. هر رکورد شامل startblock و blockcount است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای کلید. اینها نخستین مقدار هر بلوک در سطح زیر این بلوک هستند. هر رکورد شامل blockcount و startblock است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوک فرزند. هر اشارهگر یک شماره بلوک درون گروه تخصیص به سطح بعدی Btree است.
- data
- بلوکهای پرونده کاربر و سایر بلوکهایی که نوع آنها ناشناخته است، برای اهداف نمایش در xfs_db دارای این نوع هستند. دادههای بلوک در قالب هگزادسیمال نمایش داده میشوند.
- dir
- یک دایرکتوری نسخه ۱ به صورت یک Btree سازماندهی شده که دادههای دایرکتوری درون بلوکهای برگ جاسازی شدهاند. ریشه Btree در بلوک شماره 0 پرونده یافت میشود. اندیس (ترتیب مرتبسازی) Btree مقدار هش نام ورودی است. تمام بلوکها دارای ساختار blkinfo در ابتدا با فیلدهای زیر هستند:
- بلوکهای غیربرگ (گره) دارای فیلدهای زیر هستند:
- بلوکهای برگ دارای فیلدهای زیر هستند:
- hdr
- سرآیند حاوی ساختار blkinfo با نام info (عدد جادویی 0xfeeb)، count تعداد ورودیهای فعال، namebytes (کل بایتهای رشته نام)، پرچم holes (نیاز بلوک به فشردهسازی)، و freemap (آرایهای از ورودیهای base و size برای نواحی آزاد).
- entries
- آرایهای از ساختارهای حاوی hashval، nameidx (اندیس بایتی به رشته نام در بلوک)، و namelen.
- namelist
- آرایهای از ساختارهای حاوی inumber و name.
- dir2
- یک دایرکتوری نسخه ۲ دارای چهار نوع بلوک است. بلوکهای داده در آفست 0 فایل آغاز میشوند. دو نوع بلوک داده وجود دارد: دایرکتوریهای تکبلوکی اطلاعات برگ را در انتهای بلوک جاسازی کردهاند؛ بلوکهای داده در دایرکتوریهای چندبلوکی چنین نیستند. بلوکهای گره و برگ در آفست 32 گیگابایت آغاز میشوند (با یک بلوک برگ واحد یا بلوک گره ریشه). بلوکهای فضای آزاد در آفست 64 گیگابایت آغاز میشوند. بلوکهای گره و برگ یک Btree را تشکیل میدهند، با ارجاعاتی به دادهها در بلوکهای داده. بلوکهای فضای آزاد یک اندیس از طولانیترین فضاهای آزاد درون بلوکهای داده را تشکیل میدهند.
- یک بلوک دایرکتوری تکبلوکی حاوی فیلدهای زیر است:
- bhdr
- سرآیند حاوی عدد magic برابر با 0x58443242 ('XD2B') و یک آرایه bestfree از ۳ طولانیترین فضای آزاد در بلوک (offset، length).
- bu
- آرایهای از ساختارهای union. هر عنصر یا یک ورودی است یا یک فضای آزاد. برای ورودیها فیلدهای زیر وجود دارد: inumber، namelen، name، و tag. برای فضای آزاد فیلدهای زیر وجود دارد: freetag (مقدار 0xffff)، length، و tag. مقدار tag آفست بایتی شروع ورودی در بلوک است.
- bleaf
- آرایهای از ورودیهای برگ حاوی hashval و address. مقدار address یک آفست کلمه ۶۴ بیتی در پرونده است.
- btail
- ساختار دم شامل count کل ورودیهای برگ و stale تعداد ورودیهای برگ استفادهنشده.
- یک بلوک داده حاوی فیلدهای زیر است:
- بلوکهای برگ دو شکل ممکن دارند. اگر Btree از یک برگ منفرد تشکیل شده باشد، اطلاعات فضای آزاد درون همان بلوک برگ قرار دارد؛ در غیر این صورت در بلوکهای مجزا خواهد بود و ریشه Btree یک بلوک گره است. یک بلوک برگ حاوی فیلدهای زیر است:
- lhdr
- سرآیند حاوی ساختار blkinfo با نام info (عدد جادویی 0xd2f1 برای حالت تکبرگ، 0xd2ff برای حالت Btree واقعی)، تعداد کل count ورودیهای برگ، و stale تعداد ورودیهای برگ بدون استفاده.
- lents
- ورودیهای برگ، مشابه bleaf.
- lbests
- [تنها حالت تکبرگ] آرایهای از مقادیر که طولانیترین فضای آزاد در هر بلوک داده دایرکتوری را نشان میدهند.
- ltail
- [تنها حالت تکبرگ] ساختار دنباله حاوی bestcount تعداد lbests.
- یک بلوک گره
دقیقاً
مشابه
انواع attr و dir
است.
یک بلوک فضای آزاد حاوی فیلدهای زیر است:
- dqblk
- اطلاعات سهمیهبندی (quota) در فایلهایی ذخیره میشوند که توسط فیلدهای uquotino و pquotino سوپربلاک ارجاع داده شدهاند. هر بلوک فایلسیستم در پرونده سهمیهبندی حاوی تعداد ثابتی از ورودیهای سهمیهبندی است. اندازه ورودی سهمیهبندی در حال حاضر ۱۳۶ بایت است، بنابراین با اندازه بلوک ۴ کیلوبایتی ۳۰ ورودی سهمیهبندی در هر بلوک وجود دارد. از دستور dquot برای تعیین موقعیت این ورودیها در فایلسیستم استفاده میشود. ورودیهای فایل بر اساس شناسه کاربر یا پروژه اندیسگذاری میشوند تا بلوک و آفست مشخص گردد. هر ورودی سهمیهبندی دارای فیلدهای زیر است:
- magic
- عدد جادویی، برابر با 0x4451 ('DQ').
- version
- شماره نسخه، در حال حاضر 1.
- flags
- پرچمها؛ مقادیر شامل 0x01 برای سهمیهبندی کاربر و 0x02 برای سهمیهبندی پروژه.
- id
- شناسه کاربر یا پروژه.
- blk_hardlimit
- محدودیت قطعی (سختگیرانه یا hard limit) برای بلوکهای در حال استفاده.
- blk_softlimit
- محدودیت توصیهشده (انعطافپذیر یا soft limit) برای بلوکهای در حال استفاده.
- ino_hardlimit
- محدودیت قطعی برای اینودهای در حال استفاده.
- ino_softlimit
- محدودیت توصیهشده برای اینودهای در حال استفاده.
- bcount
- بلوکهایی که عملاً استفاده میشوند.
- icount
- اینودهایی که عملاً استفاده میشوند.
- itimer
- زمانی که در صورت نقض محدودیت نرم برای اینودها، خدمات متوقف خواهد شد.
- btimer
- زمانی که در صورت نقض محدودیت نرم برای بلوکها، خدمات متوقف خواهد شد.
- iwarns
- تعداد هشدارهای صادرشده درباره نقض محدودیت اینود.
- bwarns
- تعداد هشدارهای صادرشده درباره نقض محدودیت بلوک.
- rtb_hardlimit
- محدودیت قطعی برای بلوکهای بلادرنگ (realtime) در حال استفاده.
- rtb_softlimit
- محدودیت نرم برای بلوکهای بلادرنگ در حال استفاده.
- rtbcount
- بلوکهای بلادرنگی که عملاً در حال استفاده هستند.
- rtbtimer
- زمانی که در صورت نقض محدودیت نرم برای بلوکهای بلادرنگ، خدمات متوقف خواهد شد.
- rtbwarns
- تعداد هشدارهای صادرشده درباره نقض محدودیت بلوکهای بلادرنگ.
- inobt
- یک مجموعه از بلوکهای فایلسیستم وجود دارد که Btree تخصیص اینود را برای هر گروه تخصیص تشکیل میدهند. بلوک ریشه این Btree توسط فیلد root در بلوک AGI متناظر تعیین میشود. بلوکها در هر سطح به بلوکهای همسایه چپ و راست و همچنین با اشارهگرها از والد به فرزند متصل هستند. هر بلوک دارای فیلدهای زیر است:
- magic
- عدد جادویی بلوک INOBT، برابر با 0x49414254 ('IABT').
- level
- شماره سطح این بلوک، 0 برگ است.
- numrecs
- تعداد ورودیهای داده در بلوک.
- leftsib
- بلوک همسایه سمت چپ (منطقاً کمتر)، اگر نباشد 0.
- rightsib
- بلوک همسایه سمت راست (منطقاً بیشتر)، اگر نباشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای اینود. هر رکورد شامل startino (شماره اینود نسبی به گروه تخصیص)، freecount (تعداد اینودهای آزاد در این قطعه)، و بیتمپ free است که کمارزشترین بیت (LSB) آن متناظر با اینود 0 است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای کلید. اینها نخستین مقدار هر بلوک در سطح زیرین این بلوک هستند. هر رکورد شامل startino است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوکهای فرزند. هر اشارهگر یک شماره بلوک درون گروه تخصیص به سطح بعدی در Btree است.
- inode
- اینودها در «قطعات» (chunks) ۶۴ عددی تخصیص مییابند. معمولاً یک قطعه شامل چندین بلوک فایلسیستم است، اگرچه در مواردی با بلوکهای بزرگ فایلسیستم، یک قطعه کمتر از یک بلوک است. Btree اینود (نوع inobt در بالا) به شمارههای اینود در هر گروه تخصیص ارجاع میدهد. شمارههای اینود مستقیماً مکان بلوک اینود را روی دیسک منعکس میکنند. از دستور inode برای هدایت xfs_db به یک اینود مشخص استفاده کنید. هر اینود شامل چهار ناحیه است: core، next_unlinked، u، و a. ناحیه core شامل اطلاعات ثابت است. next_unlinked به دلیل ملاحظات ژورنالنویسی از هسته جدا شده است (فیلد unlinked از نوع agi را ببینید). u یک ساختار union است که بسته به نوع و نمایش دادههای فایل («شاخه داده» یا data fork) دارای اندازه و قالب متفاوتی است. a یک ساختار union اختیاری برای توصیف دادههای ویژگی است که بسته به وجود و نمایش دادههای ویژگی و اندازه دادههای u دارای اندازه، قالب و موقعیت متفاوتی است («شاخه ویژگی» یا attribute fork). ابزار xfs_db به طور خودکار اعضای مناسب union را بر اساس اطلاعات موجود در اینود انتخاب میکند.
- موارد زیر فیلدهای موجود در هسته (core) اینود هستند:
- magic
- عدد جادویی اینود، برابر با 0x494e ('IN').
- mode
- حالت و نوع فایل، همانگونه که در chmod(2)، mknod(2)، و stat(2) شرح داده شده است.
- version
- نسخه اینود، 1 یا 2.
- format
- قالب دادههای اتحادیه u (0: dev_t دستگاه، 1: فایل محلی - دایرکتوری یا symlink درون اینود، 2: لیست قطعات، 3: ریشه Btree، 4: شناسه یکتا [استفادهنشده]).
- nlinkv1
- تعداد پیوندها به پرونده در یک اینود نسخه ۱.
- nlinkv2
- تعداد پیوندها به پرونده در یک اینود نسخه ۲.
- projid_lo
- شناسه پروژه مالک (کلمه پایینی؛ تنها در اینود نسخه ۲). projid_hi شناسه پروژه مالک (کلمه بالایی؛ تنها در اینود نسخه ۲).
- uid
- شناسه کاربری (UID) مالک.
- gid
- شناسه گروهی (GID) مالک.
- atime
- زمان آخرین دسترسی (بر حسب ثانیه و نانوثانیه).
- mtime
- زمان آخرین اصلاح دادهها.
- ctime
- زمان ایجاد یا آخرین اصلاح وضعیت اینود.
- size
- تعداد بایتهای پرونده.
- nblocks
- تعداد کل بلوکهای پرونده شامل بلوکهای غیرمستقیم و ویژگی.
- extsize
- اندازه قطعه پایه/حداقل برای پرونده.
- nextents
- تعداد قطعات در شاخه داده.
- naextents
- تعداد قطعات در شاخه ویژگی.
- forkoff
- آفست شاخه ویژگی در اینود، بر حسب کلمات ۶۴ بیتی از شروع u.
- aformat
- قالب دادههای a (1: داده ویژگی محلی، 2: لیست قطعات، 3: ریشه Btree).
- dmevmask
- ماسک رویداد DMAPI.
- dmstate
- اطلاعات وضعیت DMAPI.
- newrtbm
- پرونده، بیتمپ بلادرنگ و با فرمت «جدید» است.
- prealloc
- پرونده دارای فضای داده پیشتخصیصیافته پس از EOF است.
- realtime
- دادههای فایل در زیرحجم بلادرنگ (realtime) قرار دارند.
- gen
- شماره نسل (generation) اینود.
- فیلدهای زیر در ساختار union شاخه داده u قرار دارند:
- bmbt
- ریشه Btree نگاشت بلوک (bmap). این شبیه یک بلوک bmapbtd با اطلاعات افزونه حذفشده است.
- bmx
- آرایهای از توصیفکنندههای قطعه (extent descriptors).
- dev
- مقدار dev_t برای پرونده دستگاه بلوکی یا نویسهای.
- sfdir
- دایرکتوری کوتاه (درون اینود) نسخه ۱. این ساختار از یک سرآیند hdr شامل شماره اینود والد parent و تعداد count ورودیهای فعال در دایرکتوری تشکیل شده که به دنبال آن آرایهای با نام list شامل hdr.count ورودی میآید. هر ورودی شامل inumber، namelen، و رشته name است.
- sfdir2
- دایرکتوری کوتاه (درون اینود) نسخه ۲. این ساختار از یک سرآیند hdr شامل تعداد count ورودیهای فعال در دایرکتوری، i8count (تعداد ورودیهایی با شماره اینودی که در یک مقدار ۳۲ بیتی جا نمیشوند)، و شماره اینود والد parent تشکیل شده که به دنبال آن آرایهای با نام list از ورودیها قرار دارد. هر ورودی شامل namelen، یک آفست ذخیرهشده offset (هنگام تبدیل دایرکتوری به فرمت بزرگتر)، یک رشته name، و شماره اینود inumber است.
- symlink
- مقدار رشتهای پیوند نمادین.
- فیلدهای زیر در اتحادیه شاخه ویژگی a (در صورت وجود) قرار دارند:
- bmbt
- ریشه Btree نگاشت بلوک، مطابق بالا.
- bmx
- آرایهای از توصیفکنندههای قطعه.
- sfattr
- مقادیر ویژگی کوتاه (درون اینود). شامل یک سرآیند hdr شامل totsize (کل اندازه بر حسب بایت) و count ورودیهای فعال، و به دنبال آن آرایهای به نام list شامل ورودیها است. هر ورودی شامل namelen، valuelen، پرچم root، name، و value است.
- log
- بلوکهای لاگ حاوی ورودیهای ژورنال برای XFS هستند. بررسی این بلوکها با xfs_db مفید نیست؛ به جای آن از xfs_logprint(8) استفاده کنید.
- refcntbt
- یک مجموعه از بلوکهای فایلسیستم وجود دارد که Btree شمارش مراجع (reference count) را برای هر گروه تخصیص تشکیل میدهند. بلوک ریشه این Btree توسط فیلد refcntroot در بلوک AGF متناظر تعیین میشود. بلوکها در هر سطح به بلوکهای همسایه چپ و راست و همچنین با اشارهگرها از والد به فرزند متصل هستند. هر بلوک دارای فیلدهای زیر است:
- magic
- عدد جادویی بلوک REFC، برابر با 0x52334643 ('R3FC').
- level
- شماره سطح این بلوک، 0 برگ است.
- numrecs
- تعداد ورودیهای داده در بلوک.
- leftsib
- بلوک همسایه چپ (منطقاً کمتر)، اگر نباشد 0.
- rightsib
- بلوک همسایه راست (منطقاً بیشتر)، اگر نباشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای شمارش مراجع. هر رکورد شامل startblock، blockcount، و refcount است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای کلید. اینها نخستین مقدار هر بلوک در سطح زیرین این بلوک هستند. هر رکورد شامل startblock است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوکهای فرزند. هر اشارهگر یک شماره بلوک درون گروه تخصیص به سطح بعدی Btree است.
- rmapbt
- یک مجموعه از بلوکهای فایلسیستم وجود دارد که Btree نگاشت معکوس (reverse mapping) را برای هر گروه تخصیص تشکیل میدهند. بلوک ریشه این Btree توسط فیلد rmaproot در بلوک AGF متناظر تعیین میشود. بلوکها در هر سطح به بلوکهای همسایه چپ و راست و همچنین با اشارهگرها از والد به فرزند متصل هستند. هر بلوک دارای فیلدهای زیر است:
- magic
- عدد جادویی بلوک RMAP، برابر با 0x524d4233 ('RMB3').
- level
- شماره سطح این بلوک، 0 برگ است.
- numrecs
- تعداد ورودیهای داده در بلوک.
- leftsib
- بلوک همسایه چپ (منطقاً کمتر)، اگر نباشد 0.
- rightsib
- بلوک همسایه راست (منطقاً بیشتر)، اگر نباشد 0.
- recs
- [تنها بلوکهای برگ] آرایهای از رکوردهای شمارش مراجع. هر رکورد شامل startblock، blockcount، owner، offset، attr_fork، bmbt_block، و unwritten است.
- keys
- [تنها بلوکهای غیربرگ] آرایهای از رکوردهای دوکلیدی (double-key). کلید نخست («پایین») حاوی نخستین مقدار هر بلوک در سطح زیرین این بلوک است. کلید دوم («بالا») شامل بزرگترین کلیدی است که میتواند برای شناسایی هر رکورد در زیردرخت استفاده شود. هر رکورد شامل startblock، owner، offset، attr_fork، و bmbt_block است.
- ptrs
- [تنها بلوکهای غیربرگ] آرایهای از اشارهگرها به بلوکهای فرزند. هر اشارهگر یک شماره بلوک درون گروه تخصیص به سطح بعدی Btree است.
- rtbitmap
- اگر فایلسیستم دارای زیرحجم بلادرنگ (realtime subvolume) باشد، فیلد rbmino در سوپربلاک به فایلی ارجاع میدهد که شامل بیتمپ بلادرنگ است. هر بیت در پرونده بیتمپ، تخصیص یک قطعه بلادرنگ منفرد را کنترل میکند (تنظیم بودن به معنی آزاد بودن است: set == free). بیتمپ در قالب کلمات ۳۲ بیتی پردازش میشود و کمارزشترین بیت (LSB) یک کلمه برای نخستین قطعه تحت کنترل آن کلمه بیتمپ استفاده میشود. فیلد atime اینود بیتمپ بلادرنگ شامل یک شمارنده است که برای کنترل محل شروع فایل بلادرنگ جدید بعدی استفاده میشود.
- rtsummary
- اگر فایلسیستم دارای زیرحجم بلادرنگ باشد، فیلد rsumino در سوپربلاک به فایلی ارجاع میدهد که حاوی دادههای خلاصه بلادرنگ است. پرونده خلاصه شامل یک آرایه دوبعدی از مقادیر ۱۶ بیتی است. هر مقدار، تعداد توالیهای قطعه آزاد (قطعات بلادرنگ آزاد متوالی) با یک محدوده اندازه مشخص را میشمارد که در یک بلوک بیتمپ معین شروع میشوند. محدودههای اندازه، سطلهای باینری هستند (اندازه پایین در سطل توان ۲ است). به تعداد مورد نیاز با توجه به اندازه زیرحجم بلادرنگ، محدودههای اندازه وجود دارد. بُعد نخست، محدوده اندازه است و بُعد دوم، شماره بلوک بیتمپ شروع است (ورودیهای مجاور برای اندازه یکسان و بلوکهای بیتمپ مجاور هستند).
- sb
- به ازای هر گروه تخصیص یک ساختار sb (سوپربلاک) وجود دارد. این ساختار نخستین بلوک دیسک در گروه تخصیص است. تنها نخستین سوپربلاک (بلوک 0 فایلسیستم) عملاً استفاده میشود؛ سایر بلوکها اطلاعات افزونه برای استفاده xfs_repair(8) در صورت آسیب دیدن سوپربلاک اول هستند. فیلدهای تعریفشده:
- magicnum
- عدد جادویی سوپربلاک، برابر با 0x58465342 ('XFSB').
- blocksize
- اندازه بلوک فایلسیستم بر حسب بایت.
- dblocks
- تعداد بلوکهای فایلسیستم موجود در زیرحجم داده.
- rblocks
- تعداد بلوکهای فایلسیستم موجود در زیرحجم بلادرنگ.
- rextents
- تعداد قطعات بلادرنگ که rblocks شامل آن است.
- uuid
- شناسه یکتای عمومی (UUID) فایلسیستم.
- logstart
- شماره بلوک شروع لاگ (ژورنال) فایلسیستم. اگر این مقدار 0 باشد، لاگ خارجی است.
- rootino
- شماره اینود ریشه.
- rbmino
- شماره اینود بیتمپ بلادرنگ.
- rsumino
- شماره اینود دادههای خلاصه بلادرنگ.
- rextsize
- اندازه قطعه بلادرنگ بر حسب بلوکهای فایلسیستم.
- agblocks
- اندازه یک گروه تخصیص بر حسب بلوکهای فایلسیستم.
- agcount
- تعداد گروههای تخصیص.
- rbmblocks
- تعداد بلوکهای بیتمپ بلادرنگ.
- logblocks
- تعداد بلوکهای لاگ (بلوکهای فایلسیستم).
- versionnum
- اطلاعات نسخه فایلسیستم. این مقدار در حال حاضر 1، 2، 3 یا 4 در 4 بیت پایینی است. اگر بیتهای پایینی 4 باشند، سایر بیتها معانی اضافی دارند: 1 مقدار اصلی است؛ 2 یعنی ویژگیها استفاده شدهاند؛ 3 یعنی اینودهای نسخه ۲ (تعداد پیوندهای بزرگ) استفاده شدهاند؛ 4 نسخه بیتماسک شماره نسخه است. در این حالت سایر بیتها به عنوان پرچم استفاده میشوند: (0x0010: ویژگیها استفاده شدهاند، 0x0020: اینودهای نسخه ۲ استفاده شدهاند، 0x0040: سهمیهبندیها استفاده شدهاند، 0x0080: همترازی خوشهای اینود برقرار است، 0x0100: همترازی خطکشی داده برقرار است، 0x0200: فیلد shared_vn استفاده شده است، 0x1000: ردیابی قطعات نوشتهنشده فعال است، 0x2000: دایرکتوریهای نسخه ۲ در حال استفاده هستند).
- sectsize
- اندازه بخش (sector) بر حسب بایت، در حال حاضر همواره ۵۱۲. این اندازه سوپربلاک و سایر بلوکهای سرآیند است.
- inodesize
- اندازه اینود بر حسب بایت.
- inopblock
- تعداد اینودها در هر بلوک فایلسیستم.
- fname
- منسوخ، نام فایلسیستم.
- fpack
- منسوخ، نام بسته فایلسیستم.
- blocklog
- لگاریتم بر مبنای ۲ از blocksize.
- sectlog
- لگاریتم بر مبنای ۲ از sectsize.
- inodelog
- لگاریتم بر مبنای ۲ از inodesize.
- inopblog
- لگاریتم بر مبنای ۲ از inopblock.
- agblklog
- لگاریتم بر مبنای ۲ از agblocks (گرد شده به بالا).
- rextslog
- لگاریتم بر مبنای ۲ از rextents.
- inprogress
- اجرای mkfs.xfs(8) یا xfs_copy(8) پیش از تکمیل این فایلسیستم متوقف شده است.
- imax_pct
- حداکثر درصد فضای فایلسیستم مورد استفاده برای بلوکهای اینود.
- icount
- تعداد اینودهای تخصیصیافته.
- ifree
- تعداد اینودهای تخصیصیافتهای که استفاده نشدهاند.
- fdblocks
- تعداد بلوکهای داده آزاد.
- frextents
- تعداد قطعات بلادرنگ آزاد.
- uquotino
- شماره اینود سهمیهبندی کاربر.
- pquotino
- شماره اینود سهمیهبندی پروژه؛ این فیلد در حال حاضر استفاده نمیشود.
- qflags
- پرچمهای وضعیت سهمیهبندی (0x01: حسابداری سهمیهبندی کاربر فعال است، 0x02: محدودیتهای سهمیهبندی کاربر اعمال میشوند، 0x04: دستور quotacheck روی سهمیهبندیهای کاربر اجرا شده است، 0x08: حسابداری سهمیهبندی پروژه فعال است، 0x10: محدودیتهای سهمیهبندی پروژه اعمال میشوند، 0x20: دستور quotacheck روی سهمیهبندیهای پروژه اجرا شده است).
- flags
- پرچمهای متفرقه. 0x01: تنها سوار کردن فقطخواندنی مجاز است.
- شماره نسخه مشترک (فایلسیستمهای مشترک فقطخواندنی).
- inoalignmt
- همترازی قطعه اینود بر حسب بلوکهای فایلسیستم.
- unit
- واحد خطکشی (stripe) یا واحد RAID.
- width
- عرض خطکشی یا عرض RAID.
- dirblklog
- لگاریتم بر مبنای ۲ از اندازه بلوک دایرکتوری (بلوکهای فایلسیستم).
- symlink
- بلوکهای پیوند نمادین تنها زمانی استفاده میشوند که مقدار پیوند نمادین درون اینود جا نشود. محتوای بلوک صرفاً مقدار رشتهای است. بایتهای پس از انتهای منطقی مقدار پیوند نمادین دارای مقادیر دلخواهی هستند.
- text
- بلوکهای فایل کاربر و سایر بلوکهایی که نوع آنها ناشناخته است، برای اهداف نمایش در xfs_db دارای این نوع هستند. دادههای بلوک در دو ستون نمایش داده میشوند: قالب هگزادسیمال و نویسههای اسکی قابل چاپ.
پیامهای تشخیصی (DIAGNOSTICS)
پیامهای متعددی ممکن است از دستور blockget صادر شوند. اگر فایلسیستم کاملاً خراب شده باشد، ممکن است به جای پیام زیر یک core dump تولید شود:
اگر فایلسیستم بسیار بزرگ باشد (فایلهای بسیار زیادی داشته باشد)، ممکن است دستور blockget با کمبود حافظه مواجه شود. در این حالت پیام زیر چاپ میشود:
موارد زیر شرحی از محتملترین مشکلات و پیامهای مرتبط هستند. بیشتر پیامهای تشخیصی تولیدشده تنها با درک ساختار فایلسیستم قابل فهم و معنادار هستند.
- agf_freeblks n, counted m in ag a
- تعداد بلوکهای آزاد در سرآیند گروه تخصیص برای گروه تخصیص a با تعداد بلوکهای شمردهشده آزاد مطابقت ندارد.
- agf_longest n, counted m in ag a
- طولانیترین قطعه آزاد در سرآیند گروه تخصیص برای گروه تخصیص a با طولانیترین قطعه آزاد یافتشده در گروه تخصیص مطابقت ندارد.
- agi_count n, counted m in ag a
- تعداد اینودهای تخصیصیافته در سرآیند گروه تخصیص برای گروه تخصیص a با تعداد اینودهای شمردهشده در گروه تخصیص مطابقت ندارد.
- agi_freecount n, counted m in ag a
- تعداد اینودهای آزاد در سرآیند گروه تخصیص برای گروه تخصیص a با تعداد اینودهای شمردهشده آزاد در گروه تخصیص مطابقت ندارد.
- block a/b expected inum 0 got i
- شماره بلوک به صورت یک جفت (شماره گروه تخصیص، بلوک در گروه تخصیص) مشخص شده است. بلوک چندین بار (اشتراکی) میان چندین اینود استفاده شده است. این پیام معمولاً به دنبال پیامی از نوع بعدی میآید.
- block a/b expected type unknown got y
- بلوک چندین بار استفاده شده است (اشتراکی).
- block a/b type unknown not expected
- نوع ناشناخته بلوک مورد انتظار نیست.
همچنین ببینید (SEE ALSO)
mkfs.xfs(8)، xfs_admin(8)، xfs_copy(8)، xfs_logprint(8)، xfs_metadump(8)، xfs_ncheck(8)، xfs_repair(8)، mount(8)، chmod(2)، mknod(2)، stat(2)، xfs(5).
| مه ۲۰۲۵ | xfsprogs |