DEBUGFS(8) دستورهای مدیریتی و نگهداری DEBUGFS(8)

debugfs - دیباگر تعاملی سیستمفایلهای ext2/ext3/ext4

debugfs [ -b اندازه_بلاک ] [ -s سوپربلاک ] [ -f فایل_دستورات ] [ -R تک_دستور ] [ -V ] [ -d دستگاه_داده ] [ -i فایل_تصویر ] [ -n ] [ -c ] [ -z فایل_لغو ] [ -w ] [ دستگاه ]

برنامه debugfs یک دیباگر تعاملی برای سیستمفایلهای ext2، ext3 و ext4 است. می‌توان از آن برای بررسی و تغییر وضعیت یک سیستم‌فایل ext2، ext3 یا ext4 استفاده کرد.

دستگاه یک دستگاه بلاکی (مانند ‎/dev/sdXX‎) یا فایلی شامل تصویر سیستم‌فایل است.

مشخص می‌کند که سیستم‌فایل باید در حالت خواندن-نوشتن باز شود. بدون این گزینه، سیستم‌فایل در حالت فقط‌خواندنی باز می‌شود.
اعتبارسنجی جمع کنترلی (checksum) فراداده‌ها را غیرفعال می‌کند. این گزینه فقط زمانی باید استفاده شود که با وجود هشدارهای e2fsprogs، مطمئن باشید فراداده‌ها درست هستند.
مشخص می‌کند که سیستم‌فایل در حالت فاجعه‌بار (catastrophic mode) باز شود، که در آن بیت‌مپ‌های آی‌نود و گروه در ابتدا خوانده نمی‌شوند. این حالت برای سیستم‌فایل‌هایی با خرابی شدید می‌تواند مفید باشد، اما به همین دلیل، حالت فاجعه‌بار باز شدن سیستم‌فایل را به صورت فقط‌خواندنی اجبار می‌کند.
مشخص می‌کند که دستگاه نمایانگر یک فایل تصویر ext2 ایجادشده توسط برنامه e2image است. از آنجا که فایل تصویر ext2 تنها شامل سوپربلاک، توصیف‌گر گروه بلاک، بیت‌مپ‌های تخصیص بلاک و آی‌نود، و جدول آی‌نودها است، بسیاری از دستورهای debugfs به‌درستی کار نخواهند کرد. هشدار: هیچ بررسی ایمنی انجام نمی‌شود و در صورت اجرای دستورهایی مانند ls، dump و غیره بدون تعیین دستگاه_داده با گزینه -d، ممکن است debugfs به رفتارهای غیرمنتظره و عجیبی دچار شود. debugfs یک ابزار خطایابی است و لبه‌های ناهموار و حساسی دارد!
در صورت استفاده به همراه گزینه -i، مشخص می‌کند که هنگام خواندن بلاک‌هایی که در فایل تصویر ext2 وجود ندارند (شامل بلاک‌های داده، دایرکتوری و بلاک‌های غیرمستقیم)، از دستگاه_داده استفاده شود.
اجبار به استفاده از اندازه بلاک مشخص‌شده (به بایت) برای سیستم‌فایل، به جای تشخیص خودکار اندازه بلاک درست. (این گزینه به ندرت مورد نیاز است و اساساً زمانی استفاده می‌شود که سیستم‌فایل به شدت آسیب دیده یا تخریب شده باشد.)
باعث می‌شود سوپربلاک سیستم‌فایل از شماره بلاک مشخص‌شده خوانده شود، به جای استفاده از سوپربلاک اصلی (که در آفست ۱۰۲۴ بایتی از ابتدای سیستم‌فایل واقع است). اگر گزینه -s را مشخص کنید، باید اندازه بلاک سیستم‌فایل را نیز با گزینه -b تعیین نمایید. (این گزینه به ندرت لازم می‌شود و معمولاً در مواردی کاربرد دارد که سیستم‌فایل به شدت آسیب دیده باشد.)
باعث می‌شود debugfs دستورات را از فایل فایل_دستورات خوانده و اجرا کند. پس از اجرای تمام دستورات، برنامه خارج خواهد شد.
باعث می‌شود debugfs دستگاه را با استفاده از ورودی/خروجی مستقیم (Direct I/O) و با دور زدن حافظه میانگیر (buffer cache) باز کند. توجه داشته باشید که برخی دستگاه‌ها در لینوکس (به‌ویژه device mapper در زمان نگارش این راهنما) از Direct I/O پشتیبانی نمی‌کنند.
باعث می‌شود debugfs تک‌دستور مشخص‌شده در تک_دستور را اجرا کرده و بلافاصله خارج شود.
چاپ شماره نگارش debugfs و خروج.
پیش از بازنویسی هر بلاک سیستم‌فایل، محتوای پیشین آن را در یک فایل لغو (undo file) ذخیره می‌کند. از این فایل لغو می‌توان با برنامه e2undo(8) برای بازگردانی محتوای قبلی سیستم‌فایل در صورت بروز خطا استفاده کرد. اگر یک رشته خالی به عنوان آرگومان فایل_لغو ارسال شود، فایل لغو در فایلی با نام debugfs-device.e2undo در دایرکتوری تعیین‌شده در متغیر محیطی E2FSPROGS_UNDO_DIR نوشته خواهد شد.
هشدار: از فایل لغو نمی‌توان برای بازیابی ناشی از قطع برق ناگهانی یا کرش سیستم استفاده کرد.

بسیاری از دستورهای debugfs یک مشخصه_فایل (filespec) را به عنوان آرگومان برای تعیین یک آی‌نود (برخلاف مسیر نام فایل) در سیستم‌فایلی که در حال حاضر توسط debugfs باز شده است، دریافت می‌کنند. آرگومان مشخصه_فایل می‌تواند به دو صورت مشخص شود. حالت اول، شماره آی‌نود درون دو علامت کوچکتری و بزرگتری است؛ مانند <2>. حالت دوم، یک مسیر است؛ اگر مسیر با یک اسلش ('/') آغاز شود، نسبت به ریشه سیستم‌فایلی که در حال حاضر در debugfs باز شده است تفسیر می‌گردد. در غیر این صورت، مسیر نسبت به دایرکتوری کاری فعلی نگهداری‌شده توسط debugfs تفسیر خواهد شد. این دایرکتوری کاری را می‌توان با استفاده از دستور cd در debugfs تغییر داد.

این بخش فهرستی از دستوراتی است که debugfs پشتیبانی می‌کند:

چاپ شماره بلاک‌های استفاده‌شده توسط آی‌نود filespec در خروجی استاندارد.
چاپ یا تنظیم شماره بلاک فیزیکی متناظر با شماره بلاک منطقی logical_block در آی‌نود filespec. اگر فلگ -a تعیین شده باشد، در صورت نیاز تلاش می‌کند تا یک بلاک اختصاص دهد.
تخلیه (Dump) بلاک سیستم‌فایل مشخص‌شده با block_num در قالب هگزادسیمال و اسکی (ASCII) در کنسول. اگر گزینه -f مشخص شود، شماره بلاک نسبت به ابتدای filespec داده‌شده محاسبه می‌شود. اگر گزینه -x تعیین شود، بلاک به عنوان یک بلاک صفت‌های گسترده (extended attribute) تفسیر شده و ساختار داده‌های آن چاپ خواهد شد.
تخلیه محتویات آی‌نود filespec در خروجی استاندارد.
تغییر دایرکتوری کاری جاری به filespec.
تغییر دایرکتوری ریشه به دایرکتوری filespec.
بستن سیستم‌فایل باز فعلی. اگر گزینه -a تعیین شود، تمامی تغییرات اعمال‌شده بر روی سوپربلاک و توصیف‌گرهای گروه بلاک، علاوه بر سوپربلاک اصلی، بر روی تمام سوپربلاک‌های پشتیبان (backup) نیز نوشته می‌شوند.
پاک کردن محتوای ساختار آی‌نود filespec.
کپی کردن محتوای ساختار آی‌نود از source_inode و بازنویسی ساختار آی‌نود در destination_inode.
جستجوی دایرکتوری filespec برای یافتن filename.
علامت‌گذاری سیستم‌فایل به عنوان تغییریافته (dirty)، به گونه‌ای که سوپربلاک‌ها هنگام خروج بازنویسی شوند. افزون بر این، پرچم معتبر بودن سوپربلاک پاک می‌شود، مگر آنکه -clean تعیین شده باشد که در این صورت این پرچم تنظیم می‌گردد.
تخلیه محتویات آی‌نود filespec در فایل خروجی out_file. اگر گزینه -p مشخص شود، اطلاعات مالک، گروه و مجوزهای دسترسی out_file مطابق با filespec تنظیم می‌شوند.
نمایش مقادیر فیلدهای حفاظت از اتصال چندگانه (MMP). اگر mmp_block مشخص شود، مقادیر MMP را از شماره بلاک داده‌شده اعتبارسنجی و تخلیه می‌کند؛ در غیر این صورت از فیلد s_mmp_block در سوپربلاک برای یافتن و استفاده از بلاک MMP موجود بهره می‌گیرد.
محاسبه هش دایرکتوری برای filename. گزینه -c پیش از محاسبه هش، حروف نام فایل را کوچک‌سازی (casefold) می‌کند. گزینه -v باعث می‌شود دستور dx_hash با جزئیات بیشتری عمل کرده و الگوریتم هش و مقدار سید (seed) را چاپ کند. اگر سیستم‌فایلی باز باشد، از hash_seed و الگوریتم هش پیش‌فرض سیستم‌فایل استفاده می‌شود، اگرچه این مقادیر را می‌توان با گزینه‌های -h و -s تغییر داد. الگوریتم هش تعیین‌شده با -h می‌تواند legacy، half_md4 یا tea باشد. سید هش مشخص‌شده با -s باید در قالب UUID باشد.
تخلیه درخت گستره (extent tree) آی‌نود filespec. پرچم -n باعث می‌شود dump_extents تنها گره‌های داخلی (interior nodes) در درخت گستره را نمایش دهد. پرچم -l باعث می‌شود dump_extents تنها گره‌های برگ (leaf nodes) در درخت گستره را نمایش دهد.
(لطفاً توجه داشته باشید که طول و محدوده بلاک‌ها برای آخرین گستره در یک گره داخلی، تخمینی توسط توابع کتابخانه extents است و در ساختارهای داده سیستم‌فایل ذخیره نمی‌شود. بنابراین مقادیر نمایش‌داده‌شده لزوماً دقیق نبوده و نشان‌دهنده اشکال یا خرابی در سیستم‌فایل نیستند.)
تخلیه بلاک‌های استفاده‌نشده‌ای که حاوی بایت‌های غیرصفر (non-null) هستند.
بازیابی مقدار صفت گسترده attr_name در فایل filespec و نوشتن آن در خروجی استاندارد یا در outfile.
فهرست کردن صفت‌های گسترده مرتبط با فایل filespec در خروجی استاندارد.
تنظیم مقدار صفت گسترده attr_name در فایل filespec به مقدار رشته‌ای attr_value یا خواندن مقدار آن از infile.
حذف صفت گسترده attr_name از فایل filespec.
گسترش دایرکتوری filespec.
تخصیص و نگاشت بلاک‌های مقداردهی‌نشده در filespec بین بلاک منطقی start_block و end_block، شامل هر دو بلاک. اگر end_block مشخص نشود، این دستور تا جایی که بلاک آزاد روی دیسک وجود داشته باشد یا حداکثر اندازه مجاز فایل حاصل شود، به نگاشت بلاک‌ها ادامه می‌دهد. نگاشت‌های فعلی بدون تغییر باقی می‌مانند.
تنظیم یا غیرفعال کردن قابلیت‌ها و ویژگی‌های مختلف سیستم‌فایل در سوپربلاک. پس از اعمال تغییرات درخواستی، وضعیت جاری مجموعه ویژگی‌های سیستم‌فایل در خروجی چاپ می‌شود.
چاپ تعداد گستره‌های (extents) پیوسته در filespec. اگر filespec یک دایرکتوری باشد و گزینه -d مشخص نشده باشد، filefrag تعداد گستره‌های پیوسته را برای هر فایل موجود در آن دایرکتوری چاپ خواهد کرد. گزینه -v باعث می‌شود filefrag فهرستی جدولی از گستره‌های پیوسته فایل را چاپ کند. گزینه -r باعث پیمایش بازگشتی در دایرکتوری می‌شود.
یافتن نخستین count بلاک آزاد، با شروع از goal و تخصیص دادن آن‌ها. همچنین با نام ffb نیز در دسترس است.
یافتن یک آی‌نود آزاد و تخصیص آن. در صورت مشخص شدن، dir شماره آی‌نود دایرکتوری مقصد را تعیین می‌کند. آرگومان اختیاری دوم، mode، مجوزهای دسترسی آی‌نود جدید را مشخص می‌سازد. (اگر بیت دایرکتوری در mode تنظیم شده باشد، روال تخصیص به شیوه متفاوتی عمل خواهد کرد.) همچنین با نام ffi نیز در دسترس است.
علامت‌گذاری شماره بلاک block به عنوان تخصیص‌نیافته (آزاد). اگر آرگومان اختیاری count ارائه شود، count بلاک با شروع از شماره بلاک block به عنوان تخصیص‌نیافته علامت‌گذاری می‌شوند.
گزارش میزان تکه‌تکه شدن (fragmentation) فضای آزاد در سیستم‌فایل باز فعلی. اگر گزینه -c مشخص شود، دستور تعداد تکه‌های آزاد با اندازه chunk_kb را که می‌توان در سیستم‌فایل یافت چاپ می‌کند. اندازه تکه باید توانی از دو و بزرگ‌تر از اندازه بلاک سیستم‌فایل باشد.
آزاد کردن آی‌نود مشخص‌شده توسط filespec. اگر num مشخص شده باشد، همچنین num-1 آی‌نود پس از آی‌نود مشخص‌شده را نیز آزاد می‌کند.
نمایش اطلاعات سهمیه (quota) برای نوع سهمیه داده‌شده (کاربر user، گروه group، یا پروژه project) و شناسه مربوطه.
چاپ فهرستی از دستورات قابل فهم برای debugfs.
تخلیه دایرکتوری دارای نمایه درهم‌سازی‌شده (hash-indexed) filespec، و نمایش ساختار درختی آن.
چاپ فهرستی از آی‌نودهایی که از یک یا چند بلاک مشخص‌شده در خط فرمان استفاده می‌کنند.
چاپ محتویات ساختار داده آی‌نود در قالب هگزادسیمال و اسکی. گزینه -b باعث می‌شود دستور تنها محتوای آرایه i_blocks را چاپ کند. گزینه -e باعث می‌شود دستور تنها محتوای فضای اضافی آی‌نود را که برای نگهداری صفت‌های گسترده درون‌خطی استفاده می‌شود چاپ کند. گزینه -x باعث می‌شود فضای اضافی آی‌نود به صورت تفسیرشده و در قالب صفت‌های گسترده چاپ شود. این گزینه برای خطایابی آی‌نودهای آسیب‌دیده‌ای که حاوی صفت‌های گسترده هستند بسیار مفید است.
چاپ مکان ساختار داده آی‌نود (درون جدول آی‌نودها) برای آی‌نود filespec.
ایجاد یک سیستم‌فایل ext2 بر روی device با اندازه دستگاه blocksize. توجه داشته باشید که این دستور تمامی ساختارهای داده را به طور کامل مقداردهی اولیه نمی‌کند؛ برای انجام کامل این کار، از برنامه mke2fs(8) استفاده کنید. این دستور صرفاً یک فراخوانی به کتابخانه سطح پایین است که سوپربلاک و توصیف‌گرهای بلاک را ایجاد می‌کند.
بستن ژورنال باز.
باز کردن ژورنال برای خواندن و نوشتن. ایجاد جمع کنترلی برای ژورنال با ارائه -c فعال می‌شود؛ قالب‌های نگارش ۲ و ۳ جمع کنترلی را می‌توان با گزینه -v تعیین کرد. یک ژورنال خارجی را می‌توان از ext_jnl بارگذاری نمود.
اجرای مجدد (Replay) تمامی تراکنش‌های موجود در ژورنال باز.
نوشتن یک تراکنش درون ژورنال باز. فهرست بلاک‌ها برای نوشتن باید به صورت فهرستی جداشده با کاما در blocks ارائه شود؛ خود بلاک‌ها باید از فایل file قابل خواندن باشند. فهرستی از بلاک‌ها برای لغو و ابطال را می‌توان به صورت فهرستی با کاما در revoke ارائه کرد. به طور پیش‌فرض، یک رکورد ثبت نهایی (commit) در پایان نوشته می‌شود؛ سوییچ -c یک تراکنش ثبت‌نشده (uncommitted) می‌نویسد.
لغو تخصیص آی‌نود filespec و بلاک‌های آن. توجه داشته باشید که این دستور هیچ‌یک از ورودی‌های دایرکتوری (در صورت وجود) که به این آی‌نود اشاره می‌کنند را حذف نمی‌کند. اگر می‌خواهید پیوند یک فایل را حذف نمایید، دستور rm(1) را بررسی کنید.
تغییر دایرکتوری کاری جاری فرایند debugfs به دایرکتوری directory بر روی سیستم‌فایل محلی میزبان.
نمایش اطلاعات سهمیه برای نوع سهمیه مشخص‌شده (کاربر، گروه یا پروژه).
ایجاد یک پیوند با نام dest_file که یک پیوند سخت (hard link) به filespec است. توجه داشته باشید که این دستور شمارنده‌های ارجاع آی‌نود را تغییر نمی‌دهد.
تخلیه محتویات ژورنال ext3. به صورت پیش‌فرض، آی‌نود ژورنال مشخص‌شده در سوپربلاک تخلیه می‌شود. با این حال، می‌توان این رفتار را با گزینه -i تغییر داد، که ژورنال را از آی‌نود داخلی مشخص‌شده در filespec تخلیه می‌کند. یک فایل معمولی حاوی داده‌های ژورنال را می‌توان با استفاده از گزینه -f تعیین نمود. در نهایت، گزینه -s از اطلاعات پشتیبان موجود در سوپربلاک برای یافتن موقعیت ژورنال استفاده می‌کند.
گزینه -S باعث می‌شود logdump محتویات سوپربلاک ژورنال را چاپ کند.
گزینه -a باعث می‌شود logdump محتوای تمام بلاک‌های توصیف‌گر را چاپ نماید. گزینه -b باعث می‌شود logdump تمامی رکوردهای ژورنال را که به بلاک مشخص‌شده اشاره می‌کنند چاپ کند. گزینه -c محتوای تمام بلاک‌های داده انتخاب‌شده توسط گزینه‌های -a و -b را چاپ خواهد کرد.
گزینه -O باعث می‌شود logdump رکوردهای قدیمی (چک‌پوینت‌شده) ژورنال را نیز نمایش دهد. از این امکان می‌توان برای ردیابی مشکلات ژورنال حتی پس از بازپخش (replay) آن استفاده کرد.
گزینه -n باعث می‌شود logdump از یک بلاک ژورنال که فاقد عدد جادویی (magic number) است عبور کند و متوقف نشود؛ در عوض برنامه تنها زمانی متوقف می‌شود که کل لاگ چاپ شود یا پس از بررسی num_trans تراکنش خاتمه یابد.
چاپ فهرستی از فایل‌های موجود در دایرکتوری filespec. پرچم -c باعث نمایش جمع‌های کنترلی بلاک‌های دایرکتوری (در صورت وجود) می‌شود. پرچم -d ورودی‌های حذف‌شده در دایرکتوری را فهرست می‌کند. پرچم -l فایل‌ها را با قالبی پر از جزئیات چاپ می‌کند. پرچم -p فایل‌ها را در قالبی فهرست می‌کند که تجزیه آن برای اسکریپت‌ها آسان‌تر باشد، و همچنین فاصله‌ها یا نویسه‌های غیرقابل‌چاپ در انتهای نام فایل‌ها به وضوح مشخص شوند. پرچم -r چاپ نام فایل را حتی در صورتی که رمزنگاری شده باشد اجبار می‌کند.
فهرست کردن آی‌نودهای حذف‌شده، با امکان محدود کردن به مواردی که حداکثر تا limit ثانیه پیش حذف شده‌اند. همچنین با نام lsdel نیز در دسترس است.
این دستور برای بازیابی فایل‌هایی که به اشتباه در سیستم‌فایل‌های ext2 حذف شده بودند مفید بود. متأسفانه این دستور برای فایل‌هایی که در سیستم‌فایل‌های ext3 یا ext4 حذف شده‌اند کاربردی ندارد، زیرا بلاک‌های داده آی‌نود بلافاصله پس از آزادسازی آی‌نود باطل شده و در دسترس نیستند.
تغییر محتویات ساختار آی‌نود در آی‌نود filespec. همچنین با نام mi نیز در دسترس است.
ایجاد یک دایرکتوری جدید.
ایجاد یک فایل دستگاهی ویژه (یک لوله نام‌گذاری‌شده pipe، دستگاه کاراکتری یا بلوکی). اگر قرار است دستگاه کاراکتری یا بلوکی ساخته شود، شماره‌های دستگاه major و minor باید مشخص شوند.
دریافت فهرست خواسته‌شده از شماره‌های آی‌نود و چاپ فهرستی از مسیرهای منتهی به آن آی‌نودها. پرچم -c بررسی اطلاعات نوع فایل در ورودی دایرکتوری را فعال می‌کند تا اطمینان حاصل شود با نوع آی‌نود مطابقت دارد.
باز کردن یک سیستم‌فایل برای ویرایش. پرچم -f سیستم‌فایل را حتی در صورت وجود برخی ویژگی‌های ناشناخته یا ناسازگار در سیستم‌فایل که معمولاً مانع باز شدن آن می‌شوند، به اجبار باز می‌کند. پرچم -e باعث باز شدن سیستم‌فایل در حالت اختصاصی (exclusive) می‌شود. گزینه‌های -b، -c، -d، -i، -s، -w و -D همانند گزینه‌های خط فرمان debugfs عمل می‌کنند.
فهرست کردن آی‌نودهای یتیم (orphan) در سیستم‌فایل.
حذف بلاک‌های موجود در آی‌نود در بازه start_blk تا end_blk. اگر end_blk حذف شود، این دستور به عنوان دستور کوتاه‌سازی (truncate) عمل خواهد کرد؛ بدین معنا که تمامی بلاک‌ها از start_blk تا پایان فایل آزاد می‌شوند.
ایجاد یک پیوند نمادین.
چاپ مسیر دایرکتوری کاری فعلی.
خروج از debugfs.
تخلیه بازگشتی directory، یا چندین directory، و تمامی محتویات آن‌ها (شامل فایل‌های معمولی، پیوندهای نمادین و سایر پوشه‌ها) درون destination، که باید یک دایرکتوری از پیش موجود در سیستم‌فایل محلی باشد.
حذف پیوند pathname. اگر این کار باعث شود آی‌نودی که pathname به آن اشاره دارد هیچ ارجاع دیگری نداشته باشد، فایل آزاد می‌شود. این دستور مشابه فراخوان سیستمی unlink() عمل می‌کند.
حذف دایرکتوری filespec.
علامت‌گذاری شماره بلاک block به عنوان تخصیص‌یافته. اگر آرگومان اختیاری count وجود داشته باشد، count بلاک با شروع از شماره بلاک block به عنوان تخصیص‌یافته علامت‌گذاری خواهند شد.
تغییر توصیف‌گر گروه بلاک مشخص‌شده توسط bgnum به گونه‌ای که فیلد توصیف‌گر گروه بلاک field دارای مقدار value شود. همچنین با نام set_bg نیز در دسترس است.
تنظیم زمان جاری بر حسب ثانیه‌های سپری‌شده از مبدا یونیکس (Unix epoch) برای استفاده هنگام تنظیم فیلدهای سیستم‌فایل.
علامت‌گذاری آی‌نود filespec به عنوان در حال استفاده در بیت‌مپ آی‌نود. اگر num مشخص شود، همچنین num-1 آی‌نود پس از آی‌نود مشخص‌شده را نیز تنظیم می‌کند.
تغییر آی‌نود مشخص‌شده توسط filespec به گونه‌ای که فیلد آی‌نود field دارای مقدار value شود. فهرست فیلدهای معتبر آی‌نود که می‌توان با این دستور تنظیم کرد را می‌توان با دستور زیر نمایش داد: set_inode_field -l همچنین با نام sif نیز در دسترس است.
تغییر داده‌های حفاظت از اتصال چندگانه (MMP) به گونه‌ای که فیلد MMP با نام field دارای مقدار value گردد. فهرست فیلدهای معتبر MMP را می‌توان با دستور زیر نمایش داد: set_mmp_value -l همچنین با نام smmp نیز در دسترس است.
تنظیم فیلد سوپربلاک field به مقدار value. فهرست فیلدهای معتبر سوپربلاک را می‌توان با اجرای دستور زیر مشاهده کرد: set_super_value -l همچنین با نام ssv نیز در دسترس است.
نمایش پارامترهای debugfs از جمله اطلاعات مربوط به سیستم‌فایل باز فعلی.
فهرست کردن محتویات سوپربلاک و توصیف‌گرهای گروه بلاک. اگر پرچم -h داده شود، تنها محتوای سوپربلاک چاپ می‌شود. همچنین با نام stats نیز در دسترس است.
نمایش محتویات ساختار آی‌نود مربوط به آی‌نود filespec.
نمایش ویژگی‌های سیستم‌فایل که توسط این نگارش از debugfs پشتیبانی می‌شوند.
بررسی اینکه آیا شماره بلاک block در بیت‌مپ بلاک به عنوان تخصیص‌یافته علامت‌گذاری شده است یا خیر. اگر آرگومان اختیاری count وجود داشته باشد، count بلاک با شروع از شماره بلاک block آزمایش خواهند شد.
بررسی اینکه آیا آی‌نود filespec در بیت‌مپ آی‌نود به عنوان تخصیص‌یافته علامت‌گذاری شده است یا خیر.
بازیابی شماره آی‌نود مشخص‌شده (که باید درون علامت‌های کوچکتری و بزرگتری قرار گیرد) به گونه‌ای که آن آی‌نود و بلاک‌هایش به عنوان در حال استفاده علامت‌گذاری شوند، و به صورت اختیاری پیوند دادن آی‌نود بازیابی‌شده به مسیر مشخص‌شده. پس از استفاده از دستور undel برای بازیابی فایل‌های حذف‌شده، همیشه باید دستور e2fsck اجرا گردد.
توجه داشته باشید که اگر تعداد زیادی از فایل‌های حذف‌شده را بازیابی می‌کنید، پیوند دادن آی‌نود به یک دایرکتوری ممکن است مستلزم توسعه و گسترش آن دایرکتوری باشد، که می‌تواند بلاکی را که قبلاً توسط یکی از فایل‌های هنوز بازیابی‌نشده استفاده می‌شد به این دایرکتوری تخصیص دهد. بنابراین امن‌تر است که تمام آی‌نودها را بدون مشخص کردن مسیر مقصد بازیابی کنید، و سپس در مرحله‌ای جداگانه از دستور link در debugfs برای پیوند دادن آی‌نود به مسیر مقصد استفاده کنید، یا از e2fsck برای بررسی سیستم‌فایل و پیوند دادن تمام آی‌نودهای بازیابی‌شده به دایرکتوری lost+found کمک بگیرید.
حذف پیوند مشخص‌شده توسط pathname به یک آی‌نود. توجه داشته باشید که این دستور شمارنده‌های ارجاع آی‌نود را تغییر نمی‌دهد.
کپی کردن محتوای source_file در یک فایل تازه ایجادشده در سیستم‌فایل با نام out_file.
بازنویسی بلاک مشخص‌شده توسط block_num با بایت‌های صفر (NUL)، یا در صورت تعیین -p، استفاده از بایت مشخص‌شده در pattern. اگر -f داده شود، block_num نسبت به ابتدای فایل مشخص‌شده توسط filespec محاسبه می‌شود. گزینه‌های -o و -l محدوده بایت‌های مورد نظر برای بازنویسی را به offset و length مشخص‌شده نسبت به ابتدای بلاک محدود می‌کنند.
وارونه‌سازی بیت‌های (Bit-flip) بخش‌هایی از block_num فیزیکی. اگر -f داده شود، آنگاه block_num یک بلاک منطقی نسبت به ابتدای filespec محسوب می‌شود.

برنامه debugfs همواره خروجی برخی دستورات را از طریق یک برنامه پیجر (pager) نمایش می‌دهد. این دستورات عبارتند از: show_super_stats (stats), list_directory (ls), show_inode_info (stat), list_deleted_inodes (lsdel) و htree_dump. برنامه پیجر را می‌توان به طور صریح توسط متغیر محیطی DEBUGFS_PAGER مشخص کرد؛ در صورتی که این متغیر تنظیم نشده باشد، از متغیر محیطی PAGER استفاده می‌شود.
توجه داشته باشید که از آنجا که همواره از یک پیجر استفاده می‌شود، پیجر less(1) چندان مناسب نیست، زیرا پیش از نمایش خروجی دستور صفحه را پاک می‌کند و هنگام خروج از پیجر نیز خروجی را از صفحه ترمینال می‌زداید. با این حال بسیاری از کاربران ترجیح می‌دهند برای اکثر کارها از پیجر less(1) استفاده نمایند؛ به همین دلیل متغیر محیطی DEBUGFS_PAGER برای اولویت داشتن بر متغیر عمومی‌تر PAGER فراهم شده است.

برنامه debugfs توسط تئودور تسو (Theodore Ts'o) <tytso@mit.edu> نوشته شده است.

dumpe2fs(8), tune2fs(8), e2fsck(8), mke2fs(8), ext4(5)

مه ۲۰۲۵ e2fsprogs