FSTRIM(8) System Administration FSTRIM(8)

fstrim - آزادسازی و پیرایش بلوک‌های استفاده‌نشده در یک سیستم فایل سوارشده

fstrim [-v] [-o offset] [-l length] [-m minimum-size] -A|-a|mountpoint

دستور fstrim بر روی یک سیستم‌فایل سوارشده برای آزادسازی (یا «trim» کردن) بلوک‌هایی که توسط سیستم‌فایل در حال استفاده نیستند، به کار می‌رود. این کار برای درایوهای حالت جامد (SSD) و حافظه‌های ذخیره‌سازی thinly-provisioned مفید است.

به‌طور پیش‌فرض، fstrim تمامی بلوک‌های استفاده‌نشده در سیستم‌فایل را آزاد می‌کند. همان‌طور که در ادامه توضیح داده شده است، می‌توان از گزینه‌ها برای تغییر این رفتار بر اساس محدوده یا اندازه استفاده کرد.

آرگومان mountpoint مسیر پوشه‌ای است که سیستم‌فایل در آن سوار شده است و در صورتی که گزینه‌های -A، -a، --fstab یا --all مشخص نشده باشند، اجباری است.

اجرای مکرر fstrim، یا حتی استفاده از mount -o discard، ممکن است اثر منفی بر طول عمر دستگاه‌های SSD با کیفیت پایین بگذارد. برای بیشتر سیستم‌های رومیزی و سرور، بسامد پیرایش یک بار در هفته کافی است. توجه داشته باشید که همه دستگاه‌ها از پیرایش صف‌بندی‌شده (queued trim) پشتیبانی نمی‌کنند، بنابراین هر دستور پیرایش بار کاری و افت کارایی بر هر فرآیند دیگری که در آن زمان قصد استفاده از دیسک را دارد تحمیل می‌کند.

آرگومان‌های offset، length و minimum-size می‌توانند با پسوندهای ضربی KiB (=1024)، MiB (=1024*1024) و به همین ترتیب برای GiB، TiB، PiB، EiB، ZiB و YiB دنبال شوند (عبارت «iB» اختیاری است، برای نمونه «K» همان معنای «KiB» را دارد) یا پسوندهای KB (=1000)، MB (=1000*1000) و به همین ترتیب برای GB، TB، PB، EB، ZB و YB.

-A, --fstab

پیرایش تمام سیستم‌فایل‌های سوارشده ذکرشده در /etc/fstab روی دستگاه‌هایی که از عملیات discard پشتیبانی می‌کنند. اگر سیستم‌فایل ریشه در پرونده موجود نباشد، از خط فرمان هسته تعیین می‌شود. سایر گزینه‌های ارائه‌شده مانند --offset، --length و --minimum بر روی همه این دستگاه‌ها اعمال می‌شوند. خطاهای ناشی از سیستم‌فایل‌هایی که از عملیات discard پشتیبانی نمی‌کنند، دستگاه‌های فقط‌خواندنی، autofs و سیستم‌فایل‌های فقط‌خواندنی بدون نمایش پیام نادیده گرفته می‌شوند. سیستم‌فایل‌های دارای گزینه سوارکردن «X-fstrim.notrim» نادیده گرفته می‌شوند.

-a, --all

پیرایش تمام سیستم‌فایل‌های سوارشده روی دستگاه‌هایی که از عملیات discard پشتیبانی می‌کنند. سایر گزینه‌های ارائه‌شده مانند --offset، --length و --minimum بر روی همه این دستگاه‌ها اعمال می‌شوند. خطاهای ناشی از سیستم‌فایل‌هایی که از عملیات discard پشتیبانی نمی‌کنند، دستگاه‌های فقط‌خواندنی و سیستم‌فایل‌های فقط‌خواندنی بدون نمایش پیام نادیده گرفته می‌شوند.

-n, --dry-run

این گزینه همه مراحل را به جز فراخوانی واقعی ioctl با نام FITRIM انجام می‌دهد.

-o, --offset offset

آفست بر حسب بایت در سیستم‌فایل که جستجو برای بلوک‌های آزاد جهت آزادسازی از آنجا آغاز می‌شود. مقدار پیش‌فرض صفر است که از ابتدای سیستم‌فایل شروع می‌شود.

-l, --length length

تعداد بایت‌ها (پس از نقطه شروع) برای جستجوی بلوک‌های آزاد جهت آزادسازی. اگر مقدار مشخص‌شده از انتهای سیستم‌فایل فراتر رود، fstrim در مرز اندازه سیستم‌فایل متوقف خواهد شد. مقدار پیش‌فرض تا انتهای سیستم‌فایل امتداد می‌یابد.

-I, --listed-in list

فهرستی از پرونده‌ها را که با دونقطه (:) از هم جدا شده‌اند در قالب fstab یا mountinfo هسته مشخص می‌کند. تمام پرونده‌های موجودنبوده یا خالی بدون نمایش پیام نادیده گرفته می‌شوند. ارزیابی list پس از اولین پرونده غیرخالی متوقف می‌شود. برای نمونه:

--listed-in /etc/fstab:/proc/self/mountinfo.

سیستم‌فایل‌های دارای گزینه سوارکردن «X-fstrim.notrim» در fstab نادیده گرفته می‌شوند.

-m, --minimum minimum-size

حداقل محدوده آزاد پیوسته برای آزادسازی، بر حسب بایت. (این مقدار به‌صورت داخلی به مضربی از اندازه بلوک سیستم‌فایل گرد می‌شود.) محدوده‌های آزاد کوچک‌تر از این مقدار نادیده گرفته می‌شوند و اگر از حداقلِ دستگاه کمتر باشد، fstrim حداقل را تنظیم کرده و آن را (fstrim_range.minlen) به فضای کاربری گزارش می‌دهد. با افزایش این مقدار، عملیات fstrim برای سیستم‌فایل‌هایی با فضای آزاد به‌شدت تکه‌تکه‌شده سریع‌تر کامل می‌شود، هرچند که همه بلوک‌ها آزاد نخواهند شد. مقدار پیش‌فرض صفر است که هر بلوک آزاد را آزاد می‌کند.

-t, --types list

نوع‌های مجاز یا ممنوع سیستم‌فایل را هنگام استفاده با --all یا --fstab مشخص می‌کند. مقدار list فهرستی از نام‌های سیستم‌فایل است که با کاما از هم جدا شده‌اند. این list از نحوه ارزیابی الگوهای نوع توسط mount -t پیروی می‌کند. فقط نوع‌های سیستم‌فایل مشخص‌شده مجاز هستند. اگر پیشوند فهرست «no» باشد یا هر سیستم‌فایل با «no» پیشوندگذاری شده باشد، تمام نوع‌های مشخص‌شده ممنوع هستند. اگر از این گزینه استفاده نشود، تمام سیستم‌فایل‌ها (به‌جز «autofs») مجاز هستند.

-v, --verbose

اجرای پرگو. با این گزینه fstrim تعداد بایت‌های ارسال‌شده از سیستم‌فایل به لایه‌های پایین پشته بلوکی به دستگاه را برای آزادسازی احتمالی خروجی می‌دهد. این عدد از دیدگاه دستگاه ذخیره‌سازی حداکثر مقدار آزادسازی است، زیرا فراخوانی مکرر ioctl با نام FITRIM همان سکتورها را پی‌درپی برای آزادسازی ارسال خواهد کرد.

دستور fstrim هر بار همان مقدار بایت‌های آزادسازی بالقوه را گزارش می‌دهد، اما فقط سکتورهایی که بین دفعات آزادسازی روی آن‌ها نوشته شده است در عمل توسط دستگاه ذخیره‌سازی آزاد می‌شوند. افزون بر این، لایه بلوکی هسته این حق را برای خود محفوظ می‌دارد که محدوده‌های آزادسازی را برای سازگاری با هندسه stripe در RAID، دستگاه‌های فاقد قابلیت trim در تنظیمات LVM و غیره تنظیم کند. این کاهش‌ها در fstrim_range.len (گزینه --length) بازتاب نخواهند یافت.

--quiet-unsupported

پنهان‌سازی پیام‌های خطا در صورتی که عملیات پیرایش (ioctl) پشتیبانی نشود. این گزینه برای استفاده در پرونده سرویس systemd یا در اسکریپت‌های cron(8) در نظر گرفته شده است تا هشدارهایی را که ناشی از مشکلات شناخته‌شده هستند پنهان کند؛ مانند گزارش Bad file descriptor توسط راه‌انداز NTFS هنگامی که دستگاه به‌صورت فقط‌خواندنی سوار شده است، یا عدم پشتیبانی سیستم‌فایل از فراخوانی ioctl با نام FITRIM. این گزینه همچنین زمانی که سیستم‌فایل پشتیبانی‌نشده‌ای در خط فرمان fstrim مشخص شود، وضعیت خروج را پاک می‌کند.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

0

موفقیت

1

شکست

32

همه شکست خوردند

64

آزادسازی برخی سیستم‌فایل‌ها موفق و برخی با شکست مواجه شد

دستور fstrim --all مقدار 0 (همه موفق)، 32 (همه ناموفق) یا 64 (برخی ناموفق، برخی موفق) را بازمی‌گرداند.

Lukas Czerner <lczerner@redhat.com>, Karel Zak <kzak@redhat.com>

blkdiscard(8), mount(8)

برای گزارش باگ‌ها، از ردیاب اشکال https://github.com/util-linux/util-linux/issues.

دستور fstrim بخشی از بسته util-linux است که می‌توان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت کرد.

2026-06-16 util-linux 2.41.5