| DEBUGFS(8) | دستورهای مدیریتی و نگهداری | DEBUGFS(8) |
نام (NAME)
debugfs - دیباگر تعاملی سیستمفایلهای ext2/ext3/ext4
خلاصه دستور (SYNOPSIS)
debugfs [ -b اندازه_بلاک ] [ -s سوپربلاک ] [ -f فایل_دستورات ] [ -R تک_دستور ] [ -V ] [ -d دستگاه_داده ] [ -i فایل_تصویر ] [ -n ] [ -c ] [ -z فایل_لغو ] [ -w ] [ دستگاه ]
توضیحات (DESCRIPTION)
برنامه debugfs یک دیباگر تعاملی برای سیستمفایلهای ext2، ext3 و ext4 است. میتوان از آن برای بررسی و تغییر وضعیت یک سیستمفایل ext2، ext3 یا ext4 استفاده کرد.
دستگاه یک دستگاه بلاکی (مانند /dev/sdXX) یا فایلی شامل تصویر سیستمفایل است.
گزینهها (OPTIONS)
- -w
- مشخص میکند که سیستمفایل باید در حالت خواندن-نوشتن باز شود. بدون این گزینه، سیستمفایل در حالت فقطخواندنی باز میشود.
- -n
- اعتبارسنجی جمع کنترلی (checksum) فرادادهها را غیرفعال میکند. این گزینه فقط زمانی باید استفاده شود که با وجود هشدارهای e2fsprogs، مطمئن باشید فرادادهها درست هستند.
- -c
- مشخص میکند که سیستمفایل در حالت فاجعهبار (catastrophic mode) باز شود، که در آن بیتمپهای آینود و گروه در ابتدا خوانده نمیشوند. این حالت برای سیستمفایلهایی با خرابی شدید میتواند مفید باشد، اما به همین دلیل، حالت فاجعهبار باز شدن سیستمفایل را به صورت فقطخواندنی اجبار میکند.
- -i
- مشخص میکند که دستگاه نمایانگر یک فایل تصویر ext2 ایجادشده توسط برنامه e2image است. از آنجا که فایل تصویر ext2 تنها شامل سوپربلاک، توصیفگر گروه بلاک، بیتمپهای تخصیص بلاک و آینود، و جدول آینودها است، بسیاری از دستورهای debugfs بهدرستی کار نخواهند کرد. هشدار: هیچ بررسی ایمنی انجام نمیشود و در صورت اجرای دستورهایی مانند ls، dump و غیره بدون تعیین دستگاه_داده با گزینه -d، ممکن است debugfs به رفتارهای غیرمنتظره و عجیبی دچار شود. debugfs یک ابزار خطایابی است و لبههای ناهموار و حساسی دارد!
- -d دستگاه_داده
- در صورت استفاده به همراه گزینه -i، مشخص میکند که هنگام خواندن بلاکهایی که در فایل تصویر ext2 وجود ندارند (شامل بلاکهای داده، دایرکتوری و بلاکهای غیرمستقیم)، از دستگاه_داده استفاده شود.
- -b اندازه_بلاک
- اجبار به استفاده از اندازه بلاک مشخصشده (به بایت) برای سیستمفایل، به جای تشخیص خودکار اندازه بلاک درست. (این گزینه به ندرت مورد نیاز است و اساساً زمانی استفاده میشود که سیستمفایل به شدت آسیب دیده یا تخریب شده باشد.)
- -s سوپربلاک
- باعث میشود سوپربلاک سیستمفایل از شماره بلاک مشخصشده خوانده شود، به جای استفاده از سوپربلاک اصلی (که در آفست ۱۰۲۴ بایتی از ابتدای سیستمفایل واقع است). اگر گزینه -s را مشخص کنید، باید اندازه بلاک سیستمفایل را نیز با گزینه -b تعیین نمایید. (این گزینه به ندرت لازم میشود و معمولاً در مواردی کاربرد دارد که سیستمفایل به شدت آسیب دیده باشد.)
- -f فایل_دستورات
- باعث میشود debugfs دستورات را از فایل فایل_دستورات خوانده و اجرا کند. پس از اجرای تمام دستورات، برنامه خارج خواهد شد.
- -D
- باعث میشود debugfs دستگاه را با استفاده از ورودی/خروجی مستقیم (Direct I/O) و با دور زدن حافظه میانگیر (buffer cache) باز کند. توجه داشته باشید که برخی دستگاهها در لینوکس (بهویژه device mapper در زمان نگارش این راهنما) از Direct I/O پشتیبانی نمیکنند.
- -R تک_دستور
- باعث میشود debugfs تکدستور مشخصشده در تک_دستور را اجرا کرده و بلافاصله خارج شود.
- -V
- چاپ شماره نگارش debugfs و خروج.
- -z فایل_لغو
- پیش از بازنویسی هر بلاک سیستمفایل، محتوای پیشین آن را در یک فایل لغو (undo file) ذخیره میکند. از این فایل لغو میتوان با برنامه e2undo(8) برای بازگردانی محتوای قبلی سیستمفایل در صورت بروز خطا استفاده کرد. اگر یک رشته خالی به عنوان آرگومان فایل_لغو ارسال شود، فایل لغو در فایلی با نام debugfs-device.e2undo در دایرکتوری تعیینشده در متغیر محیطی E2FSPROGS_UNDO_DIR نوشته خواهد شد.
- هشدار: از فایل لغو نمیتوان برای بازیابی ناشی از قطع برق ناگهانی یا کرش سیستم استفاده کرد.
مشخص کردن فایلها (SPECIFYING FILES)
بسیاری از دستورهای debugfs یک مشخصه_فایل (filespec) را به عنوان آرگومان برای تعیین یک آینود (برخلاف مسیر نام فایل) در سیستمفایلی که در حال حاضر توسط debugfs باز شده است، دریافت میکنند. آرگومان مشخصه_فایل میتواند به دو صورت مشخص شود. حالت اول، شماره آینود درون دو علامت کوچکتری و بزرگتری است؛ مانند <2>. حالت دوم، یک مسیر است؛ اگر مسیر با یک اسلش ('/') آغاز شود، نسبت به ریشه سیستمفایلی که در حال حاضر در debugfs باز شده است تفسیر میگردد. در غیر این صورت، مسیر نسبت به دایرکتوری کاری فعلی نگهداریشده توسط debugfs تفسیر خواهد شد. این دایرکتوری کاری را میتوان با استفاده از دستور cd در debugfs تغییر داد.
دستورها (COMMANDS)
این بخش فهرستی از دستوراتی است که debugfs پشتیبانی میکند:
- blocks filespec
- چاپ شماره بلاکهای استفادهشده توسط آینود filespec در خروجی استاندارد.
- bmap [ -a ] filespec logical_block [physical_block]
- چاپ یا تنظیم شماره بلاک فیزیکی متناظر با شماره بلاک منطقی logical_block در آینود filespec. اگر فلگ -a تعیین شده باشد، در صورت نیاز تلاش میکند تا یک بلاک اختصاص دهد.
- block_dump [ -x ] [-f filespec] block_num
- تخلیه (Dump) بلاک سیستمفایل مشخصشده با block_num در قالب هگزادسیمال و اسکی (ASCII) در کنسول. اگر گزینه -f مشخص شود، شماره بلاک نسبت به ابتدای filespec دادهشده محاسبه میشود. اگر گزینه -x تعیین شود، بلاک به عنوان یک بلاک صفتهای گسترده (extended attribute) تفسیر شده و ساختار دادههای آن چاپ خواهد شد.
- cat filespec
- تخلیه محتویات آینود filespec در خروجی استاندارد.
- cd filespec
- تغییر دایرکتوری کاری جاری به filespec.
- chroot filespec
- تغییر دایرکتوری ریشه به دایرکتوری filespec.
- close [-a]
- بستن سیستمفایل باز فعلی. اگر گزینه -a تعیین شود، تمامی تغییرات اعمالشده بر روی سوپربلاک و توصیفگرهای گروه بلاک، علاوه بر سوپربلاک اصلی، بر روی تمام سوپربلاکهای پشتیبان (backup) نیز نوشته میشوند.
- clri filespec
- پاک کردن محتوای ساختار آینود filespec.
- copy_inode source_inode destination_inode
- کپی کردن محتوای ساختار آینود از source_inode و بازنویسی ساختار آینود در destination_inode.
- dirsearch filespec filename
- جستجوی دایرکتوری filespec برای یافتن filename.
- dirty [-clean]
- علامتگذاری سیستمفایل به عنوان تغییریافته (dirty)، به گونهای که سوپربلاکها هنگام خروج بازنویسی شوند. افزون بر این، پرچم معتبر بودن سوپربلاک پاک میشود، مگر آنکه -clean تعیین شده باشد که در این صورت این پرچم تنظیم میگردد.
- dump [-p] filespec out_file
- تخلیه محتویات آینود filespec در فایل خروجی out_file. اگر گزینه -p مشخص شود، اطلاعات مالک، گروه و مجوزهای دسترسی out_file مطابق با filespec تنظیم میشوند.
- dump_mmp [mmp_block]
- نمایش مقادیر فیلدهای حفاظت از اتصال چندگانه (MMP). اگر mmp_block مشخص شود، مقادیر MMP را از شماره بلاک دادهشده اعتبارسنجی و تخلیه میکند؛ در غیر این صورت از فیلد s_mmp_block در سوپربلاک برای یافتن و استفاده از بلاک MMP موجود بهره میگیرد.
- dx_hash [-cv] [-h hash_alg] [-s hash_seed] filename
- محاسبه هش دایرکتوری برای filename. گزینه -c پیش از محاسبه هش، حروف نام فایل را کوچکسازی (casefold) میکند. گزینه -v باعث میشود دستور dx_hash با جزئیات بیشتری عمل کرده و الگوریتم هش و مقدار سید (seed) را چاپ کند. اگر سیستمفایلی باز باشد، از hash_seed و الگوریتم هش پیشفرض سیستمفایل استفاده میشود، اگرچه این مقادیر را میتوان با گزینههای -h و -s تغییر داد. الگوریتم هش تعیینشده با -h میتواند legacy، half_md4 یا tea باشد. سید هش مشخصشده با -s باید در قالب UUID باشد.
- dump_extents [-n] [-l] filespec
- تخلیه درخت گستره (extent tree) آینود filespec. پرچم -n باعث میشود dump_extents تنها گرههای داخلی (interior nodes) در درخت گستره را نمایش دهد. پرچم -l باعث میشود dump_extents تنها گرههای برگ (leaf nodes) در درخت گستره را نمایش دهد.
- (لطفاً توجه داشته باشید که طول و محدوده بلاکها برای آخرین گستره در یک گره داخلی، تخمینی توسط توابع کتابخانه extents است و در ساختارهای داده سیستمفایل ذخیره نمیشود. بنابراین مقادیر نمایشدادهشده لزوماً دقیق نبوده و نشاندهنده اشکال یا خرابی در سیستمفایل نیستند.)
- dump_unused
- تخلیه بلاکهای استفادهنشدهای که حاوی بایتهای غیرصفر (non-null) هستند.
- ea_get [-f outfile]|[-xVC] [-r] filespec attr_name
- بازیابی مقدار صفت گسترده attr_name در فایل filespec و نوشتن آن در خروجی استاندارد یا در outfile.
- ea_list filespec
- فهرست کردن صفتهای گسترده مرتبط با فایل filespec در خروجی استاندارد.
- ea_set [-f infile] [-r] filespec attr_name attr_value
- تنظیم مقدار صفت گسترده attr_name در فایل filespec به مقدار رشتهای attr_value یا خواندن مقدار آن از infile.
- ea_rm filespec attr_names...
- حذف صفت گسترده attr_name از فایل filespec.
- expand_dir filespec
- گسترش دایرکتوری filespec.
- fallocate filespec start_block [end_block]
- تخصیص و نگاشت بلاکهای مقداردهینشده در filespec بین بلاک منطقی start_block و end_block، شامل هر دو بلاک. اگر end_block مشخص نشود، این دستور تا جایی که بلاک آزاد روی دیسک وجود داشته باشد یا حداکثر اندازه مجاز فایل حاصل شود، به نگاشت بلاکها ادامه میدهد. نگاشتهای فعلی بدون تغییر باقی میمانند.
- feature [fs_feature] [-fs_feature] ...
- تنظیم یا غیرفعال کردن قابلیتها و ویژگیهای مختلف سیستمفایل در سوپربلاک. پس از اعمال تغییرات درخواستی، وضعیت جاری مجموعه ویژگیهای سیستمفایل در خروجی چاپ میشود.
- filefrag [-dvr] filespec
- چاپ تعداد گسترههای (extents) پیوسته در filespec. اگر filespec یک دایرکتوری باشد و گزینه -d مشخص نشده باشد، filefrag تعداد گسترههای پیوسته را برای هر فایل موجود در آن دایرکتوری چاپ خواهد کرد. گزینه -v باعث میشود filefrag فهرستی جدولی از گسترههای پیوسته فایل را چاپ کند. گزینه -r باعث پیمایش بازگشتی در دایرکتوری میشود.
- find_free_block [count [goal]]
- یافتن نخستین count بلاک آزاد، با شروع از goal و تخصیص دادن آنها. همچنین با نام ffb نیز در دسترس است.
- find_free_inode [dir [mode]]
- یافتن یک آینود آزاد و تخصیص آن. در صورت مشخص شدن، dir شماره آینود دایرکتوری مقصد را تعیین میکند. آرگومان اختیاری دوم، mode، مجوزهای دسترسی آینود جدید را مشخص میسازد. (اگر بیت دایرکتوری در mode تنظیم شده باشد، روال تخصیص به شیوه متفاوتی عمل خواهد کرد.) همچنین با نام ffi نیز در دسترس است.
- freeb block [count]
- علامتگذاری شماره بلاک block به عنوان تخصیصنیافته (آزاد). اگر آرگومان اختیاری count ارائه شود، count بلاک با شروع از شماره بلاک block به عنوان تخصیصنیافته علامتگذاری میشوند.
- freefrag [-c chunk_kb]
- گزارش میزان تکهتکه شدن (fragmentation) فضای آزاد در سیستمفایل باز فعلی. اگر گزینه -c مشخص شود، دستور تعداد تکههای آزاد با اندازه chunk_kb را که میتوان در سیستمفایل یافت چاپ میکند. اندازه تکه باید توانی از دو و بزرگتر از اندازه بلاک سیستمفایل باشد.
- freei filespec [num]
- آزاد کردن آینود مشخصشده توسط filespec. اگر num مشخص شده باشد، همچنین num-1 آینود پس از آینود مشخصشده را نیز آزاد میکند.
- get_quota quota_type id
- نمایش اطلاعات سهمیه (quota) برای نوع سهمیه دادهشده (کاربر user، گروه group، یا پروژه project) و شناسه مربوطه.
- help
- چاپ فهرستی از دستورات قابل فهم برای debugfs.
- htree_dump filespec
- تخلیه دایرکتوری دارای نمایه درهمسازیشده (hash-indexed) filespec، و نمایش ساختار درختی آن.
- icheck block ...
- چاپ فهرستی از آینودهایی که از یک یا چند بلاک مشخصشده در خط فرمان استفاده میکنند.
- inode_dump [-b]|[-e]|[-x] filespec
- چاپ محتویات ساختار داده آینود در قالب هگزادسیمال و اسکی. گزینه -b باعث میشود دستور تنها محتوای آرایه i_blocks را چاپ کند. گزینه -e باعث میشود دستور تنها محتوای فضای اضافی آینود را که برای نگهداری صفتهای گسترده درونخطی استفاده میشود چاپ کند. گزینه -x باعث میشود فضای اضافی آینود به صورت تفسیرشده و در قالب صفتهای گسترده چاپ شود. این گزینه برای خطایابی آینودهای آسیبدیدهای که حاوی صفتهای گسترده هستند بسیار مفید است.
- imap filespec
- چاپ مکان ساختار داده آینود (درون جدول آینودها) برای آینود filespec.
- init_filesys device blocksize
- ایجاد یک سیستمفایل ext2 بر روی device با اندازه دستگاه blocksize. توجه داشته باشید که این دستور تمامی ساختارهای داده را به طور کامل مقداردهی اولیه نمیکند؛ برای انجام کامل این کار، از برنامه mke2fs(8) استفاده کنید. این دستور صرفاً یک فراخوانی به کتابخانه سطح پایین است که سوپربلاک و توصیفگرهای بلاک را ایجاد میکند.
- journal_close
- بستن ژورنال باز.
- journal_open [-c] [-v ver] [-f ext_jnl]
- باز کردن ژورنال برای خواندن و نوشتن. ایجاد جمع کنترلی برای ژورنال با ارائه -c فعال میشود؛ قالبهای نگارش ۲ و ۳ جمع کنترلی را میتوان با گزینه -v تعیین کرد. یک ژورنال خارجی را میتوان از ext_jnl بارگذاری نمود.
- journal_run
- اجرای مجدد (Replay) تمامی تراکنشهای موجود در ژورنال باز.
- journal_write [-b blocks] [-r revoke] [-c] file
- نوشتن یک تراکنش درون ژورنال باز. فهرست بلاکها برای نوشتن باید به صورت فهرستی جداشده با کاما در blocks ارائه شود؛ خود بلاکها باید از فایل file قابل خواندن باشند. فهرستی از بلاکها برای لغو و ابطال را میتوان به صورت فهرستی با کاما در revoke ارائه کرد. به طور پیشفرض، یک رکورد ثبت نهایی (commit) در پایان نوشته میشود؛ سوییچ -c یک تراکنش ثبتنشده (uncommitted) مینویسد.
- kill_file filespec
- لغو تخصیص آینود filespec و بلاکهای آن. توجه داشته باشید که این دستور هیچیک از ورودیهای دایرکتوری (در صورت وجود) که به این آینود اشاره میکنند را حذف نمیکند. اگر میخواهید پیوند یک فایل را حذف نمایید، دستور rm(1) را بررسی کنید.
- lcd directory
- تغییر دایرکتوری کاری جاری فرایند debugfs به دایرکتوری directory بر روی سیستمفایل محلی میزبان.
- list_quota quota_type
- نمایش اطلاعات سهمیه برای نوع سهمیه مشخصشده (کاربر، گروه یا پروژه).
- ln filespec dest_file
- ایجاد یک پیوند با نام dest_file که یک پیوند سخت (hard link) به filespec است. توجه داشته باشید که این دستور شمارندههای ارجاع آینود را تغییر نمیدهد.
- logdump [-acsOS] [-b block] [-n num_trans ] [-i filespec] [-f journal_file] [output_file]
- تخلیه محتویات ژورنال ext3. به صورت پیشفرض، آینود ژورنال مشخصشده در سوپربلاک تخلیه میشود. با این حال، میتوان این رفتار را با گزینه -i تغییر داد، که ژورنال را از آینود داخلی مشخصشده در filespec تخلیه میکند. یک فایل معمولی حاوی دادههای ژورنال را میتوان با استفاده از گزینه -f تعیین نمود. در نهایت، گزینه -s از اطلاعات پشتیبان موجود در سوپربلاک برای یافتن موقعیت ژورنال استفاده میکند.
- گزینه -S باعث میشود logdump محتویات سوپربلاک ژورنال را چاپ کند.
- گزینه -a باعث میشود logdump محتوای تمام بلاکهای توصیفگر را چاپ نماید. گزینه -b باعث میشود logdump تمامی رکوردهای ژورنال را که به بلاک مشخصشده اشاره میکنند چاپ کند. گزینه -c محتوای تمام بلاکهای داده انتخابشده توسط گزینههای -a و -b را چاپ خواهد کرد.
- گزینه -O باعث میشود logdump رکوردهای قدیمی (چکپوینتشده) ژورنال را نیز نمایش دهد. از این امکان میتوان برای ردیابی مشکلات ژورنال حتی پس از بازپخش (replay) آن استفاده کرد.
- گزینه -n باعث میشود logdump از یک بلاک ژورنال که فاقد عدد جادویی (magic number) است عبور کند و متوقف نشود؛ در عوض برنامه تنها زمانی متوقف میشود که کل لاگ چاپ شود یا پس از بررسی num_trans تراکنش خاتمه یابد.
- ls [-l] [-c] [-d] [-p] [-r] filespec
- چاپ فهرستی از فایلهای موجود در دایرکتوری filespec. پرچم -c باعث نمایش جمعهای کنترلی بلاکهای دایرکتوری (در صورت وجود) میشود. پرچم -d ورودیهای حذفشده در دایرکتوری را فهرست میکند. پرچم -l فایلها را با قالبی پر از جزئیات چاپ میکند. پرچم -p فایلها را در قالبی فهرست میکند که تجزیه آن برای اسکریپتها آسانتر باشد، و همچنین فاصلهها یا نویسههای غیرقابلچاپ در انتهای نام فایلها به وضوح مشخص شوند. پرچم -r چاپ نام فایل را حتی در صورتی که رمزنگاری شده باشد اجبار میکند.
- list_deleted_inodes [limit]
- فهرست کردن آینودهای حذفشده، با امکان محدود کردن به مواردی که حداکثر تا limit ثانیه پیش حذف شدهاند. همچنین با نام lsdel نیز در دسترس است.
- این دستور برای بازیابی فایلهایی که به اشتباه در سیستمفایلهای ext2 حذف شده بودند مفید بود. متأسفانه این دستور برای فایلهایی که در سیستمفایلهای ext3 یا ext4 حذف شدهاند کاربردی ندارد، زیرا بلاکهای داده آینود بلافاصله پس از آزادسازی آینود باطل شده و در دسترس نیستند.
- modify_inode filespec
- تغییر محتویات ساختار آینود در آینود filespec. همچنین با نام mi نیز در دسترس است.
- mkdir filespec
- ایجاد یک دایرکتوری جدید.
- mknod filespec [p|[[c|b] major minor]]
- ایجاد یک فایل دستگاهی ویژه (یک لوله نامگذاریشده pipe، دستگاه کاراکتری یا بلوکی). اگر قرار است دستگاه کاراکتری یا بلوکی ساخته شود، شمارههای دستگاه major و minor باید مشخص شوند.
- ncheck [-c] inode_num ...
- دریافت فهرست خواستهشده از شمارههای آینود و چاپ فهرستی از مسیرهای منتهی به آن آینودها. پرچم -c بررسی اطلاعات نوع فایل در ورودی دایرکتوری را فعال میکند تا اطمینان حاصل شود با نوع آینود مطابقت دارد.
- open [-weficD] [-b blocksize] [-d image_filename] [-s superblock] [-z undo_file] device
- باز کردن یک سیستمفایل برای ویرایش. پرچم -f سیستمفایل را حتی در صورت وجود برخی ویژگیهای ناشناخته یا ناسازگار در سیستمفایل که معمولاً مانع باز شدن آن میشوند، به اجبار باز میکند. پرچم -e باعث باز شدن سیستمفایل در حالت اختصاصی (exclusive) میشود. گزینههای -b، -c، -d، -i، -s، -w و -D همانند گزینههای خط فرمان debugfs عمل میکنند.
- orphan_inodes
- فهرست کردن آینودهای یتیم (orphan) در سیستمفایل.
- punch filespec start_blk [end_blk]
- حذف بلاکهای موجود در آینود در بازه start_blk تا end_blk. اگر end_blk حذف شود، این دستور به عنوان دستور کوتاهسازی (truncate) عمل خواهد کرد؛ بدین معنا که تمامی بلاکها از start_blk تا پایان فایل آزاد میشوند.
- symlink filespec target
- ایجاد یک پیوند نمادین.
- pwd
- چاپ مسیر دایرکتوری کاری فعلی.
- quit
- خروج از debugfs.
- rdump directory[...] destination
- تخلیه بازگشتی directory، یا چندین directory، و تمامی محتویات آنها (شامل فایلهای معمولی، پیوندهای نمادین و سایر پوشهها) درون destination، که باید یک دایرکتوری از پیش موجود در سیستمفایل محلی باشد.
- rm pathname
- حذف پیوند pathname. اگر این کار باعث شود آینودی که pathname به آن اشاره دارد هیچ ارجاع دیگری نداشته باشد، فایل آزاد میشود. این دستور مشابه فراخوان سیستمی unlink() عمل میکند.
- rmdir filespec
- حذف دایرکتوری filespec.
- setb block [count]
- علامتگذاری شماره بلاک block به عنوان تخصیصیافته. اگر آرگومان اختیاری count وجود داشته باشد، count بلاک با شروع از شماره بلاک block به عنوان تخصیصیافته علامتگذاری خواهند شد.
- set_block_group bgnum field value
- تغییر توصیفگر گروه بلاک مشخصشده توسط bgnum به گونهای که فیلد توصیفگر گروه بلاک field دارای مقدار value شود. همچنین با نام set_bg نیز در دسترس است.
- set_current_time time
- تنظیم زمان جاری بر حسب ثانیههای سپریشده از مبدا یونیکس (Unix epoch) برای استفاده هنگام تنظیم فیلدهای سیستمفایل.
- seti filespec [num]
- علامتگذاری آینود filespec به عنوان در حال استفاده در بیتمپ آینود. اگر num مشخص شود، همچنین num-1 آینود پس از آینود مشخصشده را نیز تنظیم میکند.
- set_inode_field filespec field value
- تغییر آینود مشخصشده توسط filespec به گونهای که فیلد آینود field دارای مقدار value شود. فهرست فیلدهای معتبر آینود که میتوان با این دستور تنظیم کرد را میتوان با دستور زیر نمایش داد: set_inode_field -l همچنین با نام sif نیز در دسترس است.
- set_mmp_value field value
- تغییر دادههای حفاظت از اتصال چندگانه (MMP) به گونهای که فیلد MMP با نام field دارای مقدار value گردد. فهرست فیلدهای معتبر MMP را میتوان با دستور زیر نمایش داد: set_mmp_value -l همچنین با نام smmp نیز در دسترس است.
- set_super_value field value
- تنظیم فیلد سوپربلاک field به مقدار value. فهرست فیلدهای معتبر سوپربلاک را میتوان با اجرای دستور زیر مشاهده کرد: set_super_value -l همچنین با نام ssv نیز در دسترس است.
- show_debugfs_params
- نمایش پارامترهای debugfs از جمله اطلاعات مربوط به سیستمفایل باز فعلی.
- show_super_stats [-h]
- فهرست کردن محتویات سوپربلاک و توصیفگرهای گروه بلاک. اگر پرچم -h داده شود، تنها محتوای سوپربلاک چاپ میشود. همچنین با نام stats نیز در دسترس است.
- stat filespec
- نمایش محتویات ساختار آینود مربوط به آینود filespec.
- supported_features
- نمایش ویژگیهای سیستمفایل که توسط این نگارش از debugfs پشتیبانی میشوند.
- testb block [count]
- بررسی اینکه آیا شماره بلاک block در بیتمپ بلاک به عنوان تخصیصیافته علامتگذاری شده است یا خیر. اگر آرگومان اختیاری count وجود داشته باشد، count بلاک با شروع از شماره بلاک block آزمایش خواهند شد.
- testi filespec
- بررسی اینکه آیا آینود filespec در بیتمپ آینود به عنوان تخصیصیافته علامتگذاری شده است یا خیر.
- undel <inode_number> [pathname]
- بازیابی شماره آینود مشخصشده (که باید درون علامتهای کوچکتری و بزرگتری قرار گیرد) به گونهای که آن آینود و بلاکهایش به عنوان در حال استفاده علامتگذاری شوند، و به صورت اختیاری پیوند دادن آینود بازیابیشده به مسیر مشخصشده. پس از استفاده از دستور undel برای بازیابی فایلهای حذفشده، همیشه باید دستور e2fsck اجرا گردد.
- توجه داشته باشید که اگر تعداد زیادی از فایلهای حذفشده را بازیابی میکنید، پیوند دادن آینود به یک دایرکتوری ممکن است مستلزم توسعه و گسترش آن دایرکتوری باشد، که میتواند بلاکی را که قبلاً توسط یکی از فایلهای هنوز بازیابینشده استفاده میشد به این دایرکتوری تخصیص دهد. بنابراین امنتر است که تمام آینودها را بدون مشخص کردن مسیر مقصد بازیابی کنید، و سپس در مرحلهای جداگانه از دستور link در debugfs برای پیوند دادن آینود به مسیر مقصد استفاده کنید، یا از e2fsck برای بررسی سیستمفایل و پیوند دادن تمام آینودهای بازیابیشده به دایرکتوری lost+found کمک بگیرید.
- unlink pathname
- حذف پیوند مشخصشده توسط pathname به یک آینود. توجه داشته باشید که این دستور شمارندههای ارجاع آینود را تغییر نمیدهد.
- write source_file out_file
- کپی کردن محتوای source_file در یک فایل تازه ایجادشده در سیستمفایل با نام out_file.
- zap_block [-f filespec] [-o offset] [-l length] [-p pattern] block_num
- بازنویسی بلاک مشخصشده توسط block_num با بایتهای صفر (NUL)، یا در صورت تعیین -p، استفاده از بایت مشخصشده در pattern. اگر -f داده شود، block_num نسبت به ابتدای فایل مشخصشده توسط filespec محاسبه میشود. گزینههای -o و -l محدوده بایتهای مورد نظر برای بازنویسی را به offset و length مشخصشده نسبت به ابتدای بلاک محدود میکنند.
- zap_block [-f filespec] [-b bit] block_num
- وارونهسازی بیتهای (Bit-flip) بخشهایی از block_num فیزیکی. اگر -f داده شود، آنگاه block_num یک بلاک منطقی نسبت به ابتدای filespec محسوب میشود.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
- DEBUGFS_PAGER, PAGER
- برنامه 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 فراهم شده است.
نویسنده (AUTHOR)
برنامه debugfs توسط تئودور تسو (Theodore Ts'o) <tytso@mit.edu> نوشته شده است.
همچنین ببینید (SEE ALSO)
| مه ۲۰۲۵ | e2fsprogs |