MKSQUASHFS(1) دستورهای کاربری MKSQUASHFS(1)

mksquashfs - ابزاری برای ایجاد و الحاق به سیستم‌فایل‌های squashfs

mksquashfs source1 source2 ... FILESYSTEM [OPTIONS] [-e list of exclude dirs/files]

سیستم‌فایل Squashfs یک سیستم‌فایل فقط‌خواندنی به شدت فشرده برای لینوکس است. این سیستم‌فایل از فشرده‌سازی gzip/xz/lzo/lz4/zstd برای فشرده‌سازی فایل‌ها، inodeها و دایرکتوری‌ها استفاده می‌کند. Inodeها در این سیستم بسیار کوچک هستند و تمامی بلوک‌ها برای به حداقل رساندن بار اضافی داده‌ها فشرده و بسته‌بندی می‌شوند. اندازه‌های بلوک بزرگ‌تر از 4K تا حداکثر 1Mbytes پشتیبانی می‌شوند (اندازه بلوک پیش‌فرض 128K است).

سیستم‌فایل Squashfs برای استفاده عمومی به عنوان سیستم‌فایل فقط‌خواندنی، مصارف آرشیوی (مانند مواردی که ممکن است از یک فایل .tar.gz استفاده شود)، و در سیستم‌های دارای محدودیت حافظه/دستگاه بلوکی (مانند سیستم‌های جاسازی‌شده) که نیاز به بار سربار کم دارند، در نظر گرفته شده است.

تنظیم بلوک داده روی BLOCK-SIZE. پیش‌فرض 128 Kbytes است. به صورت اختیاری می‌توان پسوندهای K، KB، Kbytes یا M، MB، Mbytes را برای مشخص کردن به ترتیب کیلوبایت یا مگابایت اضافه کرد.
انتخاب فشرده‌ساز COMP. برای دریافت گزینه‌های فشرده‌ساز COMP، دستور -help-comp COMP، یا برای تمام فشرده‌سازها ALL را اجرا کنید. فشرده‌سازهای موجود: gzip (پیش‌فرض)، lzo، lz4، xz، zstd، lzma.
جدول inode فشرده نشود.
جدول uid/gid فشرده نشود (با -noI به صورت ضمنی اعمال می‌شود).
بلوک‌های داده فشرده نشوند.
بلوک‌های قطعه (fragment) فشرده نشوند.
ویژگی‌های گسترده فشرده نشوند.
هیچ‌یک از داده‌ها یا فراداده‌ها فشرده نشوند. این معادل با مشخص کردن -noI، -noD، -noF و -noX است.

خواندن فایل tar فشرده‌نشده از ورودی استاندارد (stdin).
عملکردی مشابه با tar داشته باشد و دایرکتوری‌های پیشین را از فایل‌های منبع حذف نکند.
نام جایگزین برای -no-strip.
عملکردی مشابه با cpio داشته باشد و مسیر فایل‌ها را از ورودی استاندارد (stdin) بخواند.
مشابه -cpiostyle، اما نام فایل‌ها با کاراکتر null خاتمه یافته باشند. قابل استفاده با اقدام -print0 در find.
سیستم‌فایل از طریق NFS قابل صدور (exportable) نباشد (پیش‌فرض -tar).
سیستم‌فایل از طریق NFS قابل صدور باشد (پیش‌فرض).
فایل‌های پراکنده (sparse) شناسایی نشوند.
انتهای فایل‌ها (tail ends) در قطعات بسته‌بندی نشوند (پیش‌فرض).
انتهای فایل‌ها در قطعات بسته‌بندی شوند.
از قطعات (fragments) استفاده نشود.
بررسی فایل‌های تکراری انجام نشود.
فایل‌ها پیوند سخت (hardlink) نشوند، در عوض نسخه‌های تکراری ذخیره گردند.
در صورت مشخص شدن یک دایرکتوری منبع، دایرکتوری ریشه‌ای شامل آن دایرکتوری ساخته شود، به جای اینکه فقط محتویات آن قرار گیرد.

تنظیم برچسب زمانی ساخت سیستم‌فایل روی TIME. مقدار TIME می‌تواند "inode" باشد (به معنی استفاده از جدیدترین برچسب زمانی inode)، یا یک عدد صحیح ۳۲ بیتی بدون علامت که ثانیه‌های پس از مبدا یونیکس (1970-01-01) را نشان می‌دهد، یا یک رشته که برای پردازش به دستور "date" ارسال می‌شود. هر مقدار رشته‌ای که دستور date تشخیص دهد قابل استفاده است؛ مانند "now"، "last week" یا "Wed Feb 15 21:02:39 GMT 2023".
تنظیم برچسب زمانی تمام فایل‌ها و دایرکتوری‌ها روی TIME. مقدار TIME می‌تواند "inode" باشد (به معنی استفاده از جدیدترین برچسب زمانی inode)، یا یک عدد صحیح ۳۲ بیتی بدون علامت بیانگر ثانیه‌های پس از مبدا، یا رشته‌ای که برای پردازش به دستور "date" تحویل داده می‌شود؛ مانند "now"، "last week" یا "Wed Feb 15 21:02:39 GMT 2025". این گزینه برچسب زمانی -root-time را نیز تنظیم و بازنویسی می‌کند.
تنظیم زمان دایرکتوری ریشه روی TIME. مقدار TIME می‌تواند "inode" (استفاده از جدیدترین برچسب زمانی inode)، عدد صحیح ۳۲ بیتی بدون علامت بیانگر ثانیه‌های پس از مبدا، یا رشته‌ای قابل فهم برای دستور "date" باشد؛ مانند "now"، "last week" یا "Wed Feb 15 21:02:39 GMT 2025".
ساخت یک تصویر سیستم‌فایل بازتولیدپذیر (reproducible). این معادل با -mkfs-time inode است که با تنظیم زمان ساخت سیستم‌فایل روی جدیدترین برچسب زمانی inode به بازتولیدپذیری می‌رسد. بدیهی است در صورت تغییر برچسب‌های زمانی یا محتوا، تصویر بازتولیدپذیر نخواهد بود.
ساخت یک تصویر سیستم‌فایل بازتولیدپذیر. این معادل با مشخص کردن هم‌زمان -mkfs-time TIME و -inode-time TIME است که با تنظیم همه برچسب‌های زمانی روی TIME به بازتولیدپذیری دست می‌یابد. این گزینه در شرایطی که برچسب‌های زمانی ممکن است تغییر کنند و به همین دلیل -repro قابل استفاده نیست، کاربرد دارد.

مالکیت تمام فایل‌ها و دایرکتوری‌ها به کاربر root واگذار شود.
تنظیم مجوزهای دایرکتوری ریشه روی MODE. مقدار MODE می‌تواند نمادین یا هشت‌هشتی (octal) باشد (بخش مشخصات حالت نمادین را ببینید). حالت پیش‌فرض ریشه ugo=rwx یا 0777 هشت‌هشتی است.
تنظیم مالک دایرکتوری ریشه روی USER مشخص‌شده. مقدار USER می‌تواند یک uid عددی یا نام کاربری باشد.
تنظیم گروه دایرکتوری ریشه روی GROUP مشخص‌شده. مقدار GROUP می‌تواند یک gid عددی یا نام گروه باشد.
تنظیم اجباری مجوزهای تمام فایل‌ها (غیر دایرکتوری) روی MODE. مقدار MODE می‌تواند نمادین یا هشت‌هشتی باشد (بخش مشخصات حالت نمادین را ببینید).
تنظیم اجباری مجوزهای تمام دایرکتوری‌ها روی MODE. مقدار MODE می‌تواند نمادین یا هشت‌هشتی باشد (بخش مشخصات حالت نمادین را ببینید).
تنظیم اجباری uid تمام فایل‌ها و دایرکتوری‌ها روی USER مشخص‌شده. مقدار USER می‌تواند uid عددی یا نام کاربری باشد.
تنظیم اجباری gid تمام فایل‌ها و دایرکتوری‌ها روی GROUP مشخص‌شده. مقدار GROUP می‌تواند gid عددی یا نام گروه باشد.
انتقال و جابه‌جایی تمامی مقادیر uid و gid به میزان VALUE. مقدار VALUE باید یک عدد صحیح مثبت باشد.

افزودن تعریف شبه‌فایل. این تعریف باید داخل علامت نقل‌قول (کوتیشن) قرار گیرد. برای جزئیات ساختار، بخش "فرمت تعریف فایل شبه‌ساختگی" را ببینید.
مشخص کردن یک دایرکتوری شبه‌پیش‌فرض که در تعاریف شبه‌فایل در صورت عدم وجود دایرکتوری در مسیر استفاده خواهد شد. این کار اجازه می‌دهد تعاریف شبه‌فایل بدون نیاز به تعریف تک‌تک دایرکتوری‌های موجود در مسیر بیان شوند. تعریف باید داخل نقل‌قول باشد.
مشخص کردن یک دایرکتوری شبه‌پیش‌فرض که در صورت عدم وجود دایرکتوری در مسیر در تعاریف استفاده خواهد شد. نوع D علاوه بر mode، uid و gid اجازه مشخص کردن برچسب زمانی را نیز می‌دهد.
افزودن فهرستی از تعاریف شبه‌فایل از PSEUDO-FILE؛ برای stdin از - استفاده کنید. تعاریف شبه‌فایل در این حالت نباید داخل نقل‌قول باشند.
باعث می‌شود مقادیر uid و gid شبه‌فایل‌ها بر گزینه‌های -all-root، -force-uid و -force-gid اولویت داشته و آن‌ها را بازنویسی کنند.

مرتب‌سازی فایل‌ها طبق اولویت‌های مندرج در SORT-FILE. در هر سطر یک فایل یا دایرکتوری به همراه اولویت درج می‌شود. اولویت بین -32768 تا 32767 و اولویت پیش‌فرض 0 است.
فهرست دایرکتوری‌ها/فایل‌های مستثنی‌شده (نادیده گرفته‌شده). در هر سطر یک مورد.
امکان استفاده از نویسه‌های عمومی گسترده پوسته (globbing) در فایل‌ها/دایرکتوری‌های مستثنی‌شده.
امکان استفاده از عبارات باقاعده POSIX در فایل‌ها/دایرکتوری‌های مستثنی‌شده.
حداکثر پیمایش تا LEVELS سطح دایرکتوری هنگام پویش سیستم‌فایل.
عدم عبور از مرزهای سیستم‌فایل. اگر دایرکتوری از مرز عبور کند، یک دایرکتوری خالی برای هر نقطه سوار کردن (mount point) ایجاد می‌شود. اگر فایلی از مرز عبور کند نادیده گرفته می‌شود.
عدم عبور از مرزهای سیستم‌فایل. مشابه گزینه -one-file-system با این تفاوت که دایرکتوری‌ها نیز در صورت عبور از مرز نادیده گرفته می‌شوند.

ویژگی‌های گسترده ذخیره نشوند.
ویژگی‌های گسترده ذخیره شوند (پیش‌فرض).
مستثنی کردن تمام نام‌های xattr منطبق با REGEX. مقدار REGEX یک عبارت باقاعده POSIX است، برای نمونه -xattrs-exclude '^user.' ویژگی‌های گسترده فضای نام کاربر را نادیده می‌گیرد.
شامل کردن تمام نام‌های xattr منطبق با REGEX. مقدار REGEX یک عبارت باقاعده POSIX است، برای نمونه -xattrs-include '^user.' ویژگی‌های گسترده فضای نام کاربر را در بر می‌گیرد.
افزودن ویژگی گسترده با نام NAME و مقدار VAL به فایل‌ها. اگر xattr کاربر باشد به فایل‌ها و دایرکتوری‌های عادی اضافه می‌شود (راهنمای man 7 xattr را ببینید). در غیر این صورت به تمام فایل‌ها افزوده خواهد شد. مقدار VAL به صورت پیش‌فرض باینری (توالی بایت‌های تفسیرنشده) تلقی می‌شود، اما می‌تواند با پیشوند 0s مشخص شود که با فرمت base64 تفسیر می‌گردد، یا با پیشوند 0x که به عنوان هگزادسیمال در نظر گرفته می‌شود. علاوه بر این می‌تواند با پیشوند 0t آغاز شود که شبیه به انکودینگ باینری است اما بک‌اسلش‌ها رفتاری ویژه دارند و یک بک‌اسلش به دنبال ۳ رقم هشت‌هشتی می‌تواند هر نویسه ASCII را نشان دهد که برای کدهای کنترلی کاربرد دارد. این گزینه می‌تواند چندین بار برای افزودن چندین xattr تکرار شود.

چاپ نسخه، مجوز و پیام حق نشر.
خطاهایی که معمولاً نادیده گرفته می‌شوند را مرگبار (fatal) تلقی کند و خارج شود.
عدم نمایش خروجی‌های پرحرف و مفصل.
چاپ نام فایل‌های نوشته‌شده در سیستم‌فایل روی خروجی استاندارد (stdout). این گزینه به طور خودکار نوار پیشرفت را غیرفعال می‌کند. برای خروجی در فایل بدون غیرفعال شدن نوار پیشرفت، -info-file را ببینید.
چاپ نام فایل‌های نوشته‌شده در سیستم‌فایل درون پرونده FILE. این گزینه نوار پیشرفت را غیرفعال نمی‌کند.
نوار پیشرفت نمایش داده نشود.
نمایش نوار پیشرفت هنگام استفاده از گزینه -info.
نمایش درصد به جای نوار پیشرفت کامل. قابل استفاده با dialog --gauge و موارد مشابه.
کاهش نرخ ورودی I/O به میزان درصد مشخص‌شده. از این گزینه می‌توان برای کاهش مصرف I/O و پردازنده Mksquashfs استفاده کرد.
محدود کردن نرخ ورودی I/O به درصد مشخص‌شده. این گزینه می‌تواند مصرف I/O و CPU ابزار Mksquashfs را کاهش دهد (جایگزینی برای -throttle).
استفاده از NUMBER پردازنده. به طور پیش‌فرض از تمام پردازنده‌های در دسترس استفاده خواهد شد.
استفاده از SIZE حافظه فیزیکی برای حافظه‌های موقت (کش). از K، M یا G به ترتیب برای مشخص کردن کیلوبایت، مگابایت یا گیگابایت استفاده کنید.
استفاده از PERCENT درصد از حافظه فیزیکی برای کش‌ها. پیش‌فرض 25% است.
چاپ میزان حافظه مصرفی پیش‌فرض بر حسب مگابایت.
استفاده از یک ریسه (thread) منفرد برای خواندن فایل‌ها. این کار فایل‌ها را به صورت ترتیبی از منبع (منابع) می‌خواند.
استفاده از N ریسه برای خواندن موازی فایل‌های کوچک (فایل‌های کوچک‌تر از اندازه یک بلوک) از منبع (منابع) (پیش‌فرض 4).
استفاده از N ریسه برای خواندن موازی فایل‌های بلوکی (فایل‌های با اندازه یک بلوک یا بزرگ‌تر) از منبع (منابع) (پیش‌فرض 4).
اجازه به اجرای موازی PERCENT درصد ریسه بیشتر از پردازنده‌های موجود. این کار ممکن است بهره‌وری CPU را بالا ببرد. پیش‌فرض 0% است، زیرا معمولاً overcommit به دلیل سربار جابه‌جایی (thrashing) کارایی را کاهش می‌دهد. مقدار درصد بر اساس ریزدانگی تعداد پردازنده‌ها است؛ مثلاً ۴ پردازنده گام‌های ۲۵ درصدی و ۲۰ پردازنده گام‌های ۵ درصدی دارند.

عدم الحاق به سیستم‌فایل موجود.
هنگام الحاق فایل‌ها/دایرکتوری‌های منبع، ریشه اصلی به یک زیردایرکتوری در ریشه جدید به نام NAME تبدیل شود، به جای اینکه موارد منبع جدید به ریشه اصلی اضافه گردند.
فایل بازیابی (recovery) تولید نشود.
استفاده از NAME به عنوان دایرکتوری ذخیره‌سازی فایل بازیابی.
بازیابی داده‌های سیستم‌فایل با استفاده از فایل بازیابی NAME.

ارزیابی EXPRESSION روی هر فایل و دایرکتوری، و اجرای ACTION در صورت بازگرداندن TRUE.
مشابه -action، اما ثبت وقایع نتایج ارزیابی عبارت و اقدامات انجام‌شده.
مشابه -action، اما فقط ثبت عباراتی که TRUE برمی‌گردانند.
مشابه -action، اما فقط ثبت عباراتی که FALSE برمی‌گردانند.
مشابه action، اما خواندن اقدامات از پرونده FILE.
مشابه -log-action، اما خواندن اقدامات از پرونده FILE.
مشابه -true-action، اما خواندن اقدامات از پرونده FILE.
مشابه -false-action، اما خواندن اقدامات از پرونده FILE.

فایل‌های tar معمولاً مجوزهای دایرکتوری‌های واسط را ذخیره نمی‌کنند. این گزینه مجوزهای پیش‌فرض دایرکتوری را روی MODE تنظیم می‌کند. مقدار MODE می‌تواند نمادین یا هشت‌هشتی باشد (بخش مشخصات حالت نمادین را ببینید). حالت پیش‌فرض u=rwx,go=rx یا 0755 هشت‌هشتی است. این گزینه حالت دایرکتوری ریشه را نیز مشخص می‌کند.
فایل‌های tar اغلب uid دایرکتوری‌های واسط را ذخیره نمی‌کنند. این گزینه مالک پیش‌فرض دایرکتوری را به جای کاربری که Mksquashfs را اجرا کرده روی VALUE قرار می‌دهد. مقدار VALUE می‌تواند یک uid عددی یا نام کاربری باشد. این گزینه uid دایرکتوری ریشه را نیز تنظیم می‌کند.
فایل‌های tar اغلب gid دایرکتوری‌های واسط را ذخیره نمی‌کنند. این گزینه گروه پیش‌فرض دایرکتوری را به جای گروه کاربری که Mksquashfs را اجرا کرده روی VALUE تنظیم می‌کند. مقدار VALUE می‌تواند یک gid عددی یا نام گروه باشد. این گزینه gid دایرکتوری ریشه را نیز تعیین می‌کند.
امکان اتصال چند فایل tar به یکدیگر و ارسال آن‌ها به Mksquashfs. معمولاً یک فایل tar دارای دو بلوک متوالی ۵۱۲ بایتی پر از صفر است که به معنی پایان فایل (EOF) است و Mksquashfs با برخورد به آن‌ها پس از اولین فایل tar متوقف می‌شود. این گزینه باعث می‌شود Mksquashfs از بلوک‌های پر شده با صفر چشم‌پوشی کند.
استفاده از مقادیر عددی uid و gid درون فایل tar به جای نام کاربر یا نام گروه. این گزینه زمانی مفید است که نام کاربری یا گروه روی سیستمی که Mksquashfs روی آن در حال اجراست به uid یا gid متفاوتی متناظر می‌شود و این رفتار بازنگاشت نامطلوب است.

خروجی سیستم‌فایل به جای فایل به خروجی استاندارد (STDOUT) فرستاده شود. این امکان می‌دهد خروجی با لوله (pipe) به برنامه‌ای دیگر یا از طریق ssh به جای دیگر منتقل شود. سیستم‌فایل Squashfs جریانی حاصله یک سیستم‌فایل عادی نخواهد بود زیرا ابربلوک (super block) در انتهای آن قرار می‌گیرد. اما بعداً می‌توان آن را با گزینه -fix اصلاح کرد و Unsquashfs نسخه 4.7.3 و جدیدتر می‌تواند سیستم‌فایل‌های جریانی اصلاح‌نشده را مستقیماً بخواند. برای FILESYSTEM خروجی در خط فرمان از - استفاده کنید. با گزینه -stream تشخیص فایل‌های تکراری غیرفعال می‌شود.
اصلاح FILESYSTEM تولیدشده با گزینه -stream.
سیستم‌فایل با افزودن بایت‌های پرکننده به مضربی از 4K تراز (pad) نشود.
نادیده گرفتن OFFSET بایت در ابتدای FILESYSTEM. به صورت اختیاری می‌توان پسوند K، M یا G را به ترتیب برای مشخص کردن کیلوبایت، مگابایت یا گیگابایت اضافه کرد. پیش‌فرض 0 بایت است.
مترادف -offset.

چاپ خلاصه راهنما در صفحه‌بندی‌کننده (یا خروجی استاندارد در صورت عدم اتصال به ترمینال).
چاپ اطلاعات راهنما برای گزینه‌های منطبق با REGEX در صفحه‌بندی‌کننده (یا stdout).
چاپ اطلاعات راهنما برای بخش SECTION در صفحه‌بندی‌کننده (یا stdout). اگر SECTION دقیقاً با نام یک بخش مطابقت نداشته باشد، به عنوان یک عبارت باقاعده در نظر گرفته شده و تمام بخش‌های منطبق نمایش داده می‌شوند. از "list" به عنوان نام بخش برای دریافت فهرست بخش‌ها و نام‌های آن‌ها استفاده کنید.
چاپ گزینه‌های فشرده‌ساز برای COMP. از "list" برای دریافت فهرست فشرده‌سازهای موجود و از "all" برای دریافت گزینه‌های تمام فشرده‌سازها استفاده کنید.
چاپ اطلاعات راهنما برای تمامی گزینه‌ها و بخش‌های Mksquashfs در صفحه‌بندی‌کننده (یا stdout).
چاپ گزینه‌های فشرده‌ساز برای فشرده‌ساز انتخاب‌شده.
شکل کوتاه -help.
شکل کوتاه -help-option.
شکل کوتاه -help-section.
شکل کوتاه -help-all.
عدم استفاده از صفحه‌بندی‌کننده برای نمایش اطلاعات راهنما.
استفاده از WIDTH ستون برای نمایش اطلاعات راهنما. زمانی که خروجی به ترمینال متصل نیست مفید است.

نام جایگزین برای -mkfs-time.
نام جایگزین برای -tailends.
نام جایگزین برای -all-root.
نام جایگزین برای -noI.
نام جایگزین برای -noId.
نام جایگزین برای -noD.
نام جایگزین برای -noF.
نام جایگزین برای -noX.
نام جایگزین برای -pd.

ایجاد یک دایرکتوری.
تغییر filename.
ایجاد یک دستگاه بلوکی.
ایجاد یک دستگاه نویسه‌ای.
ایجاد فایل از خروجی استاندارد (stdout) دستور command.
ایجاد یک پیوند نمادین.
ایجاد یک سوکت (s) یا FIFO (f).
ایجاد یک ویژگی گسترده.
ایجاد یک پیوند سخت به linkname، با دنبال کردن پیوندهای نمادین.
ایجاد یک پیوند سخت به linkname.
مشابه قبل، اما پیوند به شبه‌فایل.
ایجاد دایرکتوری با برچسب زمانی time.
تغییر یک فایل با برچسب زمانی time.
ایجاد دستگاه بلوکی با برچسب زمانی time.
ایجاد دستگاه نویسه‌ای با برچسب زمانی time.
ایجاد فایل با برچسب زمانی time.
ایجاد پیوند نمادین با برچسب زمانی time.
ایجاد سوکت/fifo با برچسب زمانی time.

حالت نمادین با فرمت [ugoa]*[[+-=]PERMS]+ است. مقادیر PERMS به صورت [rwxXst]+ یا [ugo] هستند و توالی می‌تواند با ویرگول (کاما) تکرار شود.

ترکیبی از حروف ugoa مشخص می‌کند کدام بیت‌های دسترسی تحت تأثیر قرار می‌گیرند؛ u یعنی کاربر (user)، g یعنی گروه (group)، o یعنی دیگران (other)، و a یعنی همه (all یا ugo).

حرف بعدی +، - یا = است. حرف + به معنی اضافه کردن به بیت‌های مجوز موجود، - به معنی حذف بیت‌ها از بیت‌های مجوز موجود، و = به معنی تنظیم بیت‌های مجوز است.

بیت‌های مجوز (PERMS) ترکیبی از [rwxXst] هستند که بیت‌های مورد نظر را برای ترکیب ugoa مشخص‌شده تنظیم، اضافه یا حذف می‌کنند؛ r به معنی خواندن، w به معنی نوشتن و x به معنی اجرا برای فایل‌ها یا جستجو برای دایرکتوری‌ها است. X معنای ویژه‌ای دارد؛ اگر فایل یک دایرکتوری باشد معادل x یا جستجو است، اما اگر فایل غیر دایرکتوری باشد فقط در صورتی اعمال می‌شود که اجازه اجرا از قبل برای کاربر، گروه یا دیگران تنظیم شده باشد. فلگ s شناسه کاربر یا گروه را هنگام اجرا تنظیم می‌کند (SUID/SGID)، و فلگ t روی یک دایرکتوری حذف محدودشده (sticky bit) را تنظیم می‌کند، یا در گذشته برای فایل‌های غیر دایرکتوری آن‌ها را چسبنده (sticky) می‌ساخت.

بیت‌های مجوز همچنین می‌توانند u، g یا o باشند که بیت‌های مجوز را به ترتیب از کاربر، گروه یا دیگرانِ همان فایل دریافت می‌کنند.

0
ابزار Mksquashfs سیستم‌فایل را با موفقیت تولید کرد.
1
خطاهای مرگبار رخ داد، Mksquashfs متوقف شد و سیستم‌فایلی تولید نکرد (یا در صورت الحاق، به‌روزرسانی نکرد).

مقدار COMPRESSION-LEVEL باید رقمی بین 1 .. 9 باشد (پیش‌فرض 9).
مقدار WINDOW-SIZE باید مقداری بین 8 .. 15 باشد (پیش‌فرض 15).
فشرده‌سازی با استفاده از استراتژی‌های strategy1,strategy2,...,strategyN به ترتیب و انتخاب بهترین فشرده‌سازی. استراتژی‌های موجود: default، filtered، huffman_only، run_length_encoded و fixed.

به طوری که ALGORITHM یکی از این موارد باشد: lzo1x_1، lzo1x_1_11، lzo1x_1_12، lzo1x_1_15، lzo1x_999 (پیش‌فرض).
مقدار COMPRESSION-LEVEL باید رقمی بین 1 .. 9 باشد (پیش‌فرض 8). فقط برای الگوریتم lzo1x_999 اعمال می‌شود.

فشرده‌سازی با استفاده از فشرده‌سازی بالای LZ4 (High Compression).

فشرده‌سازی با استفاده از فیلترهای filter1,filter2,...,filterN به نوبت (علاوه بر حالت بدون فیلتر)، و انتخاب بهترین فشرده‌سازی. فیلترهای موجود: x86، arm، armthumb، arm64، powerpc، sparc، ia64، riscv.
استفاده از DICT-SIZE به عنوان اندازه لغت‌نامه XZ. اندازه لغت‌نامه را می‌توان به صورت درصدی از اندازه بلوک، یا به صورت یک مقدار مطلق تعیین کرد. اندازه لغت‌نامه باید کوچک‌تر یا مساوی اندازه بلوک و ۸۱۹۲ بایت یا بزرگ‌تر باشد. همچنین باید بتوان آن را در هدر xz به عنوان 2^n یا 2^n+2^(n+1) ذخیره کرد. اندازه‌های نمونه لغت‌نامه عبارتند از 75%، 50%، 37.5%، 25%، یا 32K، 16K، 8K و غیره.

مقدار COMPRESSION-LEVEL باید بین -131072 .. -1 یا 1 .. 22 باشد (پیش‌فرض 15). سطوح فشرده‌سازی منفی متناظر با گزینه --fast در zstd هستند.

(بدون گزینه) (منسوخ‌شده - بدون پشتیبانی در کرنل)

در صورت مقداردهی، به عنوان دایرکتوری نوشتن فایل sqfs_cmdline استفاده می‌شود که حاوی آرگومان‌های خط فرمان ارائه‌شده به Mksquashfs است. هر آرگومان خط فرمان داخل نقل‌قول قرار می‌گیرد تا در صورت وجود فاصله هیچ ابهامی به وجود نیاید. اگر فایل از قبل موجود باشد، خط فرمان به انتهای فایل اضافه می‌شود.
در صورت مقداردهی، به عنوان برچسب زمانی ساخت سیستم‌فایل استفاده می‌شود. همچنین هر برچسب زمانی فایلی که بعد از SOURCE_DATE_EPOCH باشد به SOURCE_DATE_EPOCH محدود می‌شود. برای اطلاعات بیشتر https://reproducible-builds.org/docs/source-date-epoch را ببینید.
در صورت مقداردهی، به عنوان نام برنامه‌ای که برای نمایش متن راهنما استفاده می‌شود به کار می‌رود. این مقدار می‌تواند یک دستور ساده یا یک مسیر کامل باشد. پیش‌فرض /usr/bin/pager است.

ایجاد سیستم‌فایل Squashfs از محتویات DIRECTORY، و نوشتن خروجی در IMAGE.SQFS. ابزار Mksquashfs از فشرده‌ساز پیش‌فرض (معمولاً gzip) و اندازه بلوک 128 Kbytes استفاده خواهد کرد.
ایجاد سیستم‌فایل Squashfs شامل DIRECTORY و FILE1 و FILE2. اگر چندین منبع در خط فرمان مشخص شوند، در قالب یک دایرکتوری منفرد ترکیب خواهند شد.
استفاده از اندازه بلوک 1 Mbyte و فشرده‌سازی Zstandard برای ساخت سیستم‌فایل.
تنظیم تمام برچسب‌های زمانی فایل‌ها و دایرکتوری‌ها روی "now" (زمان جاری) در سیستم‌فایل.
تنظیم مالکیت تمام فایل‌ها و دایرکتوری‌های سیستم‌فایل به "phillip".
قابل خواندن کردن تمام فایل‌ها برای همه، اما فقط قابل نوشتن توسط کاربر مالک، بدون اثرگذاری بر سایر بیت‌های مجوز.
مستثنی کردن file1 و file2 از DIRECTORY هنگام ایجاد سیستم‌فایل. بدون تطبیق الگوهای عمومی برای فایل‌ها.
مستثنی کردن هر فایلی در DIRECTORY که با الگوی عام "*.gz" مطابقت دارد.
مستثنی کردن فایل‌های منطبق بر الگوی عام "*.gz" در هر کجای DIRECTORY و زیردایرکتوری‌های آن. علامت اولیه "..." نشان می‌دهد که الگوی عام "غیر مقید" (non-anchored) است و در هر نقطه‌ای مطابقت داده خواهد شد.

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

ایجاد یک دایرکتوری به نام "build_dir" در سیستم‌فایل خروجی.
ایجاد یک ارجاع به نام "version.txt" به فایلی خارج از DIRECTORY، که طوری عمل می‌کند گویی پرونده "/tmp/build/version" قبل از فراخوانی Mksquashfs کپی شده یا پیوند سخت خورده است.
ایجاد فایلی به نام "date.txt" که حاوی خروجی استاندارد (stdout) اجرای دستور "date" است.
مشابه مثال بالا، اما نشان می‌دهد که نام فایل‌ها در صورت قرار گرفتن داخل علامت نقل‌قول می‌توانند دارای فاصله باشند. برای محافظت در برابر پوسته، باید قبل از علامت‌های نقل‌قول از بک‌اسلش استفاده کرد.
ایجاد فایلی شامل محتویات پارتیشن /dev/sda1. معمولاً اگر به Mksquashfs یک دستگاه، fifo یا سوکت نام‌گذاری‌شده داده شود، همان فایل ویژه را درون سیستم‌فایل Squashfs قرار می‌دهد؛ دستور بالا اجازه می‌دهد ورودی از این فایل‌های ویژه گرفته شده و در سیستم‌فایل قرار گیرد. توجه داشته باشید که هیچ منبع دیگری جز فایل شبه‌ساختگی وجود ندارد، بنابراین منبع خط فرمان "-" است. اگر منبع دیگری جز فایل‌های شبه‌ساختگی وجود نداشته باشد، دایرکتوری ریشه (/) نیز باید همان‌طور که در این مثال دیده می‌شود تعریف گردد.
تبدیل کد (Transcode) تصویر IMAGE.SQFS به NEW.SQFS از طریق ارسال خروجی شبه‌فایل از Unsquashfs به Mksquashfs با استفاده از لوله‌کشی stdout و stdin. این دستور می‌تواند سیستم‌فایل‌های قدیمی‌تر Squashfs را تبدیل کند یا الگوریتم فشرده‌سازی، اندازه بلوک و غیره را بدون نیاز به استخراج در دایرکتوری یا فایل واسط تغییر دهد.

توجه: تعاریف شبه‌فایل باید درون علامت نقل‌قول قرار گیرند (مانند مثال‌های فوق) تا اطمینان حاصل شود که به عنوان یک آرگومان واحد به Mksquashfs تحویل داده می‌شوند و توسط پوسته پردازش نمی‌گردند.

عدم ذخیره هیچ‌گونه ویژگی گسترده در سیستم‌فایل Squashfs. تمام ویژگی‌های گسترده در فایل‌های منبع نادیده گرفته خواهند شد.
فیلتر کردن ویژگی‌های گسترده در فایل‌های منبع، و فقط ذخیره ویژگی‌های گسترده فضای نام کاربر در سیستم‌فایل Squashfs.
فیلتر کردن ویژگی‌های گسترده در فایل‌های منبع، و عدم ذخیره هرگونه ویژگی گسترده در فضای نام کاربر در سیستم‌فایل Squashfs.
افزودن ویژگی گسترده به نام "user.comment" با محتوای "hello world" به تمام فایل‌ها و دایرکتوری‌های سیستم‌فایل Squashfs.
افزودن ویژگی گسترده به نام "user.comment" به تمام فایل‌ها و دایرکتوری‌ها، اما در این حالت محتوای ویژگی گسترده "hello world" به همراه یک کاراکتر خط جدید در انتها (012 در مبنای ۸) خواهد بود.
افزودن ویژگی گسترده به نام "user.comment" به تمام فایل‌ها و دایرکتوری‌ها، که در آن مقدار به صورت کدگذاری base64 ارائه شده و نشان‌دهنده "hello world" است.
فیلتر کردن ویژگی‌های گسترده اما فقط در فایل‌های عادی (نوع f)، و ذخیره ویژگی‌های گسترده منحصراً در فضای نام کاربر.
افزودن ویژگی گسترده به نام "user.comment" به فایل به نام "hello_world"، با محتوای "salve mundi" به همراه یک کاراکتر خط جدید انتهایی (012 هشت‌هشتی).

مشخص می‌کند که هر فایلی که با الگوهای عام "*.jpg" و "*.mpg" مطابقت دارد نباید فشرده شود. به علاوه، مشخص می‌کند هر فایلی که با الگوی عام "*.img" تطابق داشته و اندازه ۱ گیگابایت یا بزرگ‌تر دارد نیز نباید فشرده شود. این نشان می‌دهد که عملگرهای آزمایشی می‌توانند با عبارات منطقی ترکیب شوند.
اگر هر فایلی در DIRECTORY برای "دیگران" قابل خواندن نباشد، در سیستم‌فایل Squashfs برای دیگران قابل خواندن شود.
مشابه قبل، تطبیق روی تمام فایل‌هایی که برای "دیگران" قابل خواندن نیستند، اما در این حالت مالک فایل در سیستم‌فایل Squashfs به "phillip" تغییر می‌یابد.
حذف هرگونه پیوند نمادین در DIRECTORY که به خارج از DIRECTORY اشاره می‌کند؛ یعنی در سیستم‌فایل Squashfs غیرقابل حل (شکسته) خواهد بود.
ایجاد سیستم‌فایل Squashfs شامل دو سطح بالایی (محتویات DIRECTORY و زیردایرکتوری‌های بلاواسطه آن)، و مستثنی کردن هر موردی در سطح ۳ یا پایین‌تر.
فیلتر کردن ویژگی‌های گسترده اما فقط در فایل‌های عادی (نوع f)، و فقط ذخیره ویژگی‌های گسترده در فضای نام کاربر.

توجه: اقدامات (actions) باید درون علامت نقل‌قول قرار گیرند (مانند مثال‌های فوق) تا اطمینان حاصل شود که به صورت یک آرگومان منفرد به Mksquashfs تحویل داده شده و توسط پوسته پردازش نمی‌شوند.

نوشته‌شده توسط Phillip Lougher <phillip@squashfs.org.uk>

حق نشر © 2026 Phillip Lougher <phillip@squashfs.org.uk>

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» منتشرشده توسط بنیاد نرم‌افزارهای آزاد؛ نسخه ۲ یا (به انتخاب خودتان) هر نسخه بالاتری، دوباره توزیع کنید یا تغییر دهید.

این برنامه به این امید توزیع می‌شود که مفید باشد، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «مجوز عمومی همگانی گنو» را مشاهده کنید.

unsquashfs(1), sqfstar(1), sqfscat(1)

فایل README برای انتشار نسخه 4.7.5 بسته Squashfs-tools و توصیف قابلیت‌های جدید در این نشانی قابل مطالعه است: https://github.com/plougher/squashfs-tools/blob/master/Documentation/4.7.5/README.md

راهنمای استفاده از MKSQUASHFS در این نشانی قابل مطالعه است: https://github.com/plougher/squashfs-tools/blob/master/Documentation/4.7.5/USAGE-MKSQUASHFS.md

فایل تغییرات (CHANGELOG) برای ابزارهای Squashfs در این نشانی قابل دسترسی است: https://github.com/plougher/squashfs-tools/blob/master/CHANGES.md

فایل ACTIONS-README برای زیرسیستم اقدامات در این نشانی قابل مطالعه است: https://github.com/plougher/squashfs-tools/blob/master/Documentation/4.7.5/ACTIONS-README.md

March 2026 mksquashfs version 4.7.5