| SQFSTAR(1) | User Commands | SQFSTAR(1) |
نام (NAME)
sqfstar - ابزاری برای ایجاد فایلسیستم squashfs از یک آرشیو tar
خلاصه دستور (SYNOPSIS)
cat xxx.tar | sqfstar [OPTIONS] FILESYSTEM [exclude files]
zcat xxx.tgz | sqfstar [OPTIONS] FILESYSTEM [exclude files]
xzcat xxx.tar.xz | sqfstar [OPTIONS] FILESYSTEM [exclude files]
zstdcat xxx.tar.zst | sqfstar [OPTIONS] FILESYSTEM [exclude files]
توضیحات (DESCRIPTION)
Squashfs یک فایلسیستم فقطخواندنی با فشردهسازی بالا برای لینوکس است. این ابزار از فشردهسازی gzip/xz/lzo/lz4/zstd برای فشردهکردن فایلها، inodeها و دایرکتوریها استفاده میکند. inodeها در این سیستم بسیار کوچک هستند و تمام بلوکها برای به حداقل رساندن بار اضافی داده بستهبندی شدهاند. اندازههای بلوک بزرگتر از 4K تا حداکثر 1Mbytes پشتیبانی میشوند (اندازه پیشفرض بلوک 128K است).
Squashfs برای کاربردهای عمومی فایلسیستم فقطخواندنی، استفادههای آرشیوی (مانند مواردی که ممکن است یک فایل .tar.gz استفاده شود) و در سیستمهای دارای محدودیت دستگاه بلوکی/حافظه (مانند سیستمهای تعبیهشده) که بار اضافی کم مورد نیاز است، طراحی شده است.
گزینهها (OPTIONS)
گزینههای فشردهسازی فایلسیستم (Filesystem compression options):
- -b BLOCK-SIZE
- تنظیم بلوک داده به BLOCK-SIZE. مقدار پیشفرض 128 Kbytes است. بهصورت اختیاری میتوان از پسوندهای K ،KB ،Kbytes یا M ،MB ،Mbytes به ترتیب برای تعیین Kbytes یا Mbytes استفاده کرد.
- -comp COMP
- انتخاب روش فشردهسازی COMP. برای مشاهده گزینههای فشردهساز COMP دستور -help-comp COMP یا برای تمام فشردهسازها ALL را اجرا کنید. فشردهسازهای موجود: gzip (پیشفرض)، lzo، lz4، xz، zstd، lzma.
- -noI
- جدول inode فشردهسازی نشود.
- -noId
- جدول uid/gid فشردهسازی نشود (با -noI اعمال میشود).
- -noD
- بلوکهای داده فشردهسازی نشوند.
- -noF
- بلوکهای قطعه (fragment blocks) فشردهسازی نشوند.
- -noX
- ویژگیهای گسترشیافته (extended attributes) فشردهسازی نشوند.
- -no-compression
- هیچکدام از دادهها یا متادادهها فشردهسازی نشوند. این گزینه معادل مشخص کردن -noI -noD -noF و -noX است.
گزینههای ساخت فایلسیستم (Filesystem build options):
- -exports
- قابلیت صدور فایلسیستم از طریق NFS را فراهم میکند.
- -no-sparse
- فایلهای کمپشت (sparse files) شناسایی نشوند.
- -no-fragments
- از قطعات (fragments) استفاده نشود.
- -no-tailends
- انتهای فایلها در قطعات بستهبندی نشوند.
- -no-duplicates
- بررسی فایلهای تکراری انجام نشود.
- -no-hardlinks
- فایلها پیوند سخت (hardlink) نشوند، بلکه نسخههای تکراری ذخیره گردند.
- -regex
- اجازه استفاده از عبارتهای باقاعده POSIX در دایرکتوریها/فایلهای مستثنیشده را میدهد.
- -ignore-zeros
- امکان اتصال چند فایل tar به یکدیگر و ارسال آنها به Sqfstar را فراهم میکند. بهطور معمول یک فایل tar دارای دو بلوک ۵۱۲ بایتی متوالی پر از صفر است که نشاندهنده EOF بوده و Sqfstar پس از برخورد با آنها خواندن را بعد از اولین فایل tar متوقف میکند. این گزینه باعث میشود Sqfstar بلوکهای پر شده با صفر را نادیده بگیرد.
- -ef EXCLUDE-FILE
- فهرست فایلها/دایرکتوریهای مستثنیشده. در هر خط یک مورد.
گزینههای زمانی فایلسیستم (Filesystem time options):
- -mkfs-time TIME
- تنظیم برچسب زمانی ساخت فایلسیستم به TIME. مقدار TIME میتواند "inode" باشد که به معنای استفاده از تازهترین برچسب زمانی inode است، یا یک عدد صحیح ۳۲ بیتی بدون علامت که ثانیههای پس از مبدأ زمانی (1970-01-01) را مشخص میکند، یا یک مقدار رشتهای که برای تجزیه به دستور "date" ارسال میشود. هر مقدار رشتهای که توسط دستور date پشتیبانی شود قابل استفاده است، مانند "now" ،"last week" یا "Wed Feb 15 21:02:39 GMT 2023".
- -inode-time TIME
- تنظیم تمام برچسبهای زمانی فایلها و دایرکتوریها به TIME. مقدار TIME میتواند "inode" باشد که به معنای استفاده از تازهترین برچسب زمانی inode است، یا یک عدد صحیح ۳۲ بیتی بدون علامت که ثانیههای پس از مبدأ زمانی (1970-01-01) را مشخص میکند، یا یک مقدار رشتهای که برای پردازش به دستور "date" ارسال میشود. هر مقدار رشتهای که توسط دستور date پشتیبانی شود قابل استفاده است، مانند "now" ،"last week" یا "Wed Feb 15 21:02:39 GMT 2025". این گزینه همچنین گزینهٔ -root-time را تنظیم کرده و آن را بازنویسی میکند.
- -root-time TIME
- تنظیم زمان دایرکتوری ریشه به TIME. مقدار TIME میتواند "inode" باشد که به معنای استفاده از تازهترین برچسب زمانی inode است، یا یک عدد صحیح ۳۲ بیتی بدون علامت که ثانیههای پس از مبدأ زمانی (1970-01-01) را مشخص میکند، یا یک مقدار رشتهای که برای پردازش به دستور "date" داده میشود. هر مقدار رشتهای که توسط دستور date قابل شناسایی باشد میتواند استفاده شود، مانند "now" ،"last week" یا "Wed Feb 15 21:02:39 GMT 2025".
- -repro
- ساخت یک ایمیج فایلسیستم بازتولیدپذیر (reproducible). این معادل با -mkfs-time inode است که با تنظیم زمان ساخت فایلسیستم بر روی تازهترین برچسب زمانی inode، بازتولیدپذیری را به دست میآورد. بدیهی است در صورت تغییر برچسبهای زمانی یا محتوا، تصویر فایلسیستم بازتولیدپذیر نخواهد بود.
- -repro-time TIME
- ساخت یک ایمیج فایلسیستم بازتولیدپذیر. این گزینه معادل با تعیین همزمان -mkfs-time TIME و -inode-time TIME است که با تنظیم تمام برچسبهای زمانی روی TIME، بازتولیدپذیری را ممکن میسازد. این گزینه در مواردی که ممکن است برچسبهای زمانی تغییر کنند و نتوان از -repro استفاده نمود، کاربرد دارد..SS "گزینههای مجوزهای سیستمفایل:"
- -all-root
- مالکیت تمام فایلها و دایرکتوریها را به root اختصاص میدهد.
- -root-mode MODE
- مجوزهای دایرکتوری ریشه را روی MODE تنظیم میکند. MODE میتواند نمادین یا اکتال باشد (بخش «مشخصات حالت نمادین» را ببینید). حالت پیشفرض ریشه ugo=rwx یا 0777 در مبنای هشت است.
- -root-uid USER
- مالک دایرکتوری ریشه را روی USER مشخصشده تنظیم میکند؛ USER میتواند یک uid عددی یا نام کاربر باشد.
- -root-gid GROUP
- گروه دایرکتوری ریشه را روی GROUP مشخصشده تنظیم میکند؛ GROUP میتواند یک gid عددی یا نام گروه باشد.
- -force-file-mode MODE
- مجوزهای تمام فایلها (غیردایرکتوری) را روی MODE تنظیم میکند. MODE میتواند نمادین یا اکتال باشد (بخش «مشخصات حالت نمادین» را ببینید).
- -force-dir-mode MODE
- مجوزهای تمام دایرکتوریها را روی MODE تنظیم میکند. MODE میتواند نمادین یا اکتال باشد (بخش «مشخصات حالت نمادین» را ببینید).
- -force-uid USER
- شناسه کاربری (uid) تمام فایلها و دایرکتوریها را روی USER مشخصشده تنظیم میکند؛ USER میتواند یک uid عددی یا نام کاربر باشد.
- -force-gid GROUP
- شناسه گروه (gid) تمام فایلها و دایرکتوریها را روی GROUP مشخصشده تنظیم میکند؛ GROUP میتواند یک gid عددی یا نام گروه باشد.
- -uid-gid-offset VALUE
- تمام uidها و gidها را به اندازه مقدار مشخصشده VALUE جابهجا (offset) میکند. VALUE باید یک عدد صحیح مثبت باشد.
- -default-mode MODE
- فایلهای tar اغلب مجوزهای دایرکتوریهای میانی را ذخیره نمیکنند. این گزینه مجوزهای پیشفرض دایرکتوری را روی MODE تنظیم میکند. MODE میتواند نمادین یا اکتال باشد (بخش «مشخصات حالت نمادین» را ببینید). حالت پیشفرض u=rwx,go=rx یا 0755 در مبنای هشت است. این گزینه همچنین حالت دایرکتوری ریشه را تعیین میکند.
- -default-uid USER
- فایلهای tar اغلب uidهای دایرکتوریهای میانی را ذخیره نمیکنند. این گزینه مالک پیشفرض دایرکتوری را به جای کاربری که Sqfstar را اجرا میکند، روی USER تنظیم میکند. USER میتواند یک uid عددی یا نام کاربر باشد. این گزینه همچنین uid دایرکتوری ریشه را تنظیم میکند.
- -default-gid GROUP
- فایلهای tar اغلب gidهای دایرکتوریهای میانی را ذخیره نمیکنند. این گزینه گروه پیشفرض دایرکتوری را به جای گروه کاربری که Sqfstar را اجرا میکند، روی GROUP تنظیم میکند. GROUP میتواند یک gid عددی یا نام گروه باشد. این گزینه همچنین gid دایرکتوری ریشه را تنظیم میکند.
- -numeric-owner
- به جای استفاده از نام کاربر یا نام گروه، از uid و gid عددی موجود در tarfile استفاده میکند. این گزینه زمانی کاربرد دارد که نام کاربر یا نام گروه در سیستمی که Sqfstar روی آن اجرا میشود به uid یا gid متفاوتی نگاشت شود و این رفتار نگاشت مجدد مورد نظر نباشد.
گزینههای شبهفایل سیستمفایل:
- -p PSEUDO-DEFINITION
- تعریف شبهفایل (pseudo file) را اضافه میکند. تعریف باید درون علامت نقلقول قرار گیرد. برای جزئیات ساختار، بخش «قالب تعریف شبهفایل» را ببینید.
- -pd "d mode uid gid"
- یک دایرکتوری شبه پیشفرض تعیین میکند که اگر دایرکتوری مورد نظر در مسیر وجود نداشته باشد، در تعاریف شبه استفاده خواهد شد. این گزینه همچنین امکان مشخص کردن تعاریف شبه را بدون نیاز به تعریف تمام دایرکتوریهای موجود در مسیر فراهم میکند. تعریف باید داخل نقلقول قرار گیرد.
- -pd "D time mode uid gid"
- یک دایرکتوری شبه پیشفرض تعیین میکند که اگر دایرکتوری مورد نظر در مسیر وجود نداشته باشد، در تعاریف شبه استفاده خواهد شد. نوع D علاوه بر mode، uid و gid، اجازه تعیین برچسب زمانی (timestamp) را نیز میدهد.
- -pf PSEUDO-FILE
- فهرستی از تعاریف شبهفایل را اضافه میکند. تعاریف شبهفایل در pseudo-fileها نباید درون نقلقول قرار گیرند.
- -pseudo-override
- باعث میشود uidها و gidهای شبهفایل بر گزینههای -all-root، -force-uid و -force-gid اولویت داشته باشند و آنها را بازنویسی کنند.
گزینههای صفات گسترشیافته (xattrs) سیستمفایل:
- -no-xattrs
- صفات گسترشیافته را ذخیره نمیکند.
- -xattrs
- صفات گسترشیافته را ذخیره میکند (پیشفرض).
- -xattrs-exclude REGEX
- تمام نامهای xattr منطبق با REGEX را مستثنی میکند. REGEX یک عبارت باقاعده POSIX است؛ برای مثال -xattrs-exclude '^user.' صفات xattr را از فضاینام user مستثنی میکند.
- -xattrs-include REGEX
- تمام نامهای xattr منطبق با REGEX را شامل میشود. REGEX یک عبارت باقاعده POSIX است؛ برای مثال -xattrs-include '^user.' صفات xattr را از فضاینام user شامل میشود.
- -xattrs-add NAME=VAL
- صفت xattr با نام NAME و مقدار VAL را به فایلها اضافه میکند. اگر یک xattr کاربری (user) باشد، به فایلهای عادی و دایرکتوریها اضافه خواهد شد (راهنمای man 7 xattr را ببینید). در غیر این صورت به تمام فایلها اضافه میشود. VAL بهطور پیشفرض به صورت باینری (یعنی یک دنباله بایت تفسیرنشده) پردازش میشود، اما میتواند پیشوند 0s داشته باشد که در این صورت با کدگذاری base64 تفسیر میشود، یا پیشوند 0x داشته باشد که به صورت هگزادسیمال تفسیر خواهد شد. علاوه بر این میتواند پیشوند 0t داشته باشد که این کدگذاری مشابه کدگذاری باینری است، با این تفاوت که با بکاسلشها رفتار ویژهای صورت میگیرد و یک بکاسلش به همراه ۳ رقم اکتال میتواند برای کدگذاری هر نویسه ASCII استفاده شود، که طبیعتاً برای کدگذاری کدهای کنترلی نیز کاربرد دارد. این گزینه میتواند چندین بار برای افزودن چندین xattr تکرار شود.
گزینههای زمان اجرای Sqfstar:
- -version
- نسخه، پروانه انتشار و پیام کپیرایت را چاپ میکند.
- -force
- اجرای Sqfstar را برای نوشتن روی دستگاه بلوکی (block device) یا فایل اجباری میکند.
- -exit-on-error
- خطاهایی را که معمولاً نادیده گرفته میشوند، به عنوان خطای مهلک در نظر میگیرد.
- -quiet
- خروجی پرجزئیات نمایش داده نمیشود.
- -info
- فایلهای نوشتهشده در سیستمفایل را در stdout چاپ میکند. این گزینه بهطور خودکار نوار پیشرفت را غیرفعال میکند. برای چاپ خروجی در فایل بدون غیرفعال شدن نوار پیشرفت، -info-file را ببینید.
- -info-file FILE
- فایلهای نوشتهشده در سیستمفایل را در فایل FILE چاپ میکند. این گزینه نوار پیشرفت را غیرفعال نمیکند.
- -no-progress
- نوار پیشرفت را نمایش نمیدهد.
- -progress
- هنگام استفاده از گزینه -info، نوار پیشرفت را نمایش میدهد.
- -percentage
- به جای نوار پیشرفت کامل، درصد را نمایش میدهد. میتواند در دستوراتی مانند dialog --gauge و غیره به کار رود.
- -throttle PERCENTAGE
- نرخ ورودی I/O را به میزان درصد دادهشده مهار میکند (throttle). از این گزینه میتوان برای کاهش مصرف I/O و CPU توسط Sqfstar استفاده کرد.
- -limit PERCENTAGE
- نرخ ورودی I/O را به درصد دادهشده محدود میکند. این گزینه میتواند برای کاهش مصرف I/O و CPU توسط Sqfstar استفاده شود (جایگزینی برای -throttle).
- -processors NUMBER
- از NUMBER پردازنده استفاده میکند. بهطور پیشفرض از تمام پردازندههای در دسترس استفاده خواهد شد.
- -mem SIZE
- میزان SIZE از حافظه فیزیکی را برای حافظههای موقت (کشها) اختصاص میدهد. به ترتیب از K، M یا G برای مشخص کردن کیلوبایت، مگابایت یا گیگابایت استفاده کنید.
- -mem-percent PERCENT
- به میزان PERCENT درصد از حافظه فیزیکی را برای کشها استفاده میکند. پیشفرض 25% است.
- -mem-default
- میزان استفاده پیشفرض از حافظه را بر حسب مگابایت چاپ میکند.
- -overcommit PERCENT
- اجازه میدهد تا PERCENT درصد ریسه (thread) بیشتر از تعداد پردازندههای موجود به صورت موازی اجرا شوند. این کار ممکن است استفاده از CPU را افزایش دهد. پیشفرض 0% است، زیرا در حالت عادی بیشتخصیص (overcommitting) به دلیل تکانش شدید حافظه (thrashing) کارایی را کاهش میدهد. مقدار درصد بر اساس دانهبندی (granularity) تعداد پردازندهها است؛ مثلاً ۴ پردازنده دارای دانهبندی درصدی ۲۵٪ و ۲۰ پردازنده دارای دانهبندی درصدی ۵٪ هستند..SS "گزینههای تخصصی (این گزینهها ممکن است فایلسیستم را غیرقابل سوار کردن کنند):"
- -stream
- ارسال خروجی فایلسیستم به STDOUT به جای یک فایل. این کار امکان لولهکشی (pipe) خروجی را به برنامهای دیگر یا هدایت به مکانی دیگر از طریق ssh فراهم میکند. فایلسیستم جریانیِ Squashfs حاصلشده یک فایلسیستم معمولی نخواهد بود، زیرا ابربلاک (super block) در انتهای فایلسیستم قرار خواهد گرفت. اما بعداً میتوان آن را با گزینهٔ -fix اصلاح کرد و ابزار Unsquashfs نسخهٔ 4.7.3 و جدیدتر میتواند فایلسیستمهای جریانی اصلاحنشده را مستقیماً بخواند. با استفاده از گزینهٔ -stream، تشخیص دادههای تکراری غیرفعال میشود.
- -fix FILESYSTEM
- اصلاح FILESYSTEM تولیدشده با استفاده از گزینهٔ -stream.
- -nopad
- فایلسیستم به مضربی از 4K پدگذاری (تراز) نشود.
- -offset OFFSET
- نادیدهگرفتن OFFSET بایت در ابتدای FILESYSTEM. به صورت اختیاری میتوان پسوند K، M یا G را به ترتیب برای مشخص کردن کیلوبایت، مگابایت یا گیگابایت به کار برد. پیشفرض 0 بایت است.
- -o OFFSET
- مترادفی برای -offset.
گزینههای راهنما:
- -help
- چاپ خلاصه اطلاعات راهنما در صفحهبند (یا stdout اگر خروجی ترمینال نباشد).
- -help-option REGEX
- چاپ اطلاعات راهنما برای گزینههای منطبق با REGEX در صفحهبند (یا stdout اگر خروجی ترمینال نباشد).
- -help-section SECTION
- چاپ اطلاعات راهنما برای بخش SECTION در صفحهبند (یا stdout اگر خروجی ترمینال نباشد). اگر SECTION دقیقاً با نام یک بخش مطابقت نداشته باشد، به عنوان یک عبارت باقاعده (regular expression) در نظر گرفته میشود و تمام بخشهای منطبق نمایش داده میشوند. از "list" به عنوان نام بخش برای دریافت فهرستی از بخشها و نام آنها استفاده کنید.
- -help-comp COMP
- چاپ گزینههای فشردهساز برای فشردهساز COMP. از "list" برای دریافت فهرستی از فشردهسازهای موجود، و از "all" برای دریافت گزینههای فشردهساز همهٔ فشردهسازها استفاده کنید.
- -help-all
- چاپ اطلاعات راهنما برای تمام گزینهها و بخشهای Sqfstar در صفحهبند (یا stdout اگر خروجی ترمینال نباشد).
- -Xhelp
- چاپ گزینههای فشردهساز برای فشردهساز انتخابشده.
- -h
- جایگزین کوتاهنویسیشده برای -help.
- -ho REGEX
- جایگزین کوتاهنویسیشده برای -help-option.
- -hs SECTION
- جایگزین کوتاهنویسیشده برای -help-section.
- -ha
- جایگزین کوتاهنویسیشده برای -help-all.
- -no-pager
- عدم استفاده از صفحهبند (pager) برای خروجی اطلاعات راهنما.
- -cols WIDTH
- استفاده از WIDTH ستون برای نمایش اطلاعات راهنما. زمانی که خروجی به ترمینال هدایت نشده باشد مفید است.
گزینههای متفرقه:
- -fstime TIME
- نام جایگزین برای mkfs-time.
- -root-owned
- نام جایگزین برای -all-root.
- -noInodeCompression
- نام جایگزین برای -noI.
- -noIdTableCompression
- نام جایگزین برای -noId.
- -noDataCompression
- نام جایگزین برای -noD.
- -noFragmentCompression
- نام جایگزین برای -noF.
- -noXattrCompression
- نام جایگزین برای -noX.
قالب تعریف شبهفایل (PSEUDO FILE DEFINITION FORMAT)
- -p "filename d mode uid gid"
- ایجاد یک دایرکتوری.
- -p "filename m mode uid gid"
- تغییر دادن filename.
- -p "filename b mode uid gid major minor"
- ایجاد یک دستگاه بلوکی.
- -p "filename c mode uid gid major minor"
- ایجاد یک دستگاه نویسهای.
- -p "filename f mode uid gid command"
- ایجاد فایل از خروجی استاندارد (stdout) دستور command.
- -p "filename s mode uid gid symlink"
- ایجاد یک پیوند نمادین.
- -p "filename i mode uid gid [s|f]"
- ایجاد یک سوکت (s) یا FIFO (f).
- -p "filename x name=val"
- ایجاد یک صفت گسترشیافته (extended attribute).
- -p "filename h linkname"
- ایجاد یک پیوند سخت به linkname، با دنبال کردن پیوندهای نمادین.
- -p "filename l linkname"
- ایجاد یک پیوند سخت به linkname.
- -p "filename L pseudo_filename"
- مشابه، اما پیوند به یک شبهفایل (pseudo file).
- -p "filename D time mode uid gid"
- ایجاد یک دایرکتوری با برچسب زمانی time.
- -p "filename M time mode uid gid"
- تغییر دادن یک فایل با برچسب زمانی time.
- -p "filename B time mode uid gid major minor"
- ایجاد دستگاه بلوکی با برچسب زمانی time.
- -p "filename C time mode uid gid major minor"
- ایجاد دستگاه نویسهای با برچسب زمانی time.
- -p "filename F time mode uid gid command"
- ایجاد فایل با برچسب زمانی time.
- -p "filename S time mode uid gid symlink"
- ایجاد پیوند نمادین با برچسب زمانی time.
- -p "filename I time mode uid gid [s|f]"
- ایجاد سوکت یا FIFO با برچسب زمانی time..SH "مشخصات حالت نمادین (SYMBOLIC MODE SPECIFICATION)" حالت نمادین در قالب [ugoa]*[[+-=]PERMS]+ است. PERMS = [rwxXst]+ یا [ugo] است، و این دنباله میتواند با کاما جدا شده و تکرار شود.
ترکیبی از حروف ugoa مشخص میکند کدام بیتهای مجوز تحت تأثیر قرار خواهند گرفت؛ u به معنی کاربر (user)، g به معنی گروه (group)، o به معنی دیگران (other)، و a به معنی همه یا ugo است.
حرف بعدی +، - یا = است. حرف + به معنای افزودن به بیتهای مجوز موجود، - به معنای حذف بیتها از بیتهای مجوز موجود، و = به معنای تنظیم بیتهای مجوز است.
بیتهای مجوز (PERMS) ترکیبی از [rwxXst] هستند که آن بیتها را برای ترکیب مشخصشده ugoa تنظیم/اضافه/حذف میکنند؛ r به معنای خواندن، w به معنای نوشتن و x به معنای اجرا برای فایلها یا پیمایش/جستجو برای دایرکتوریها است. X معنای ویژهای دارد: اگر فایل یک دایرکتوری باشد معادل x یا جستجو است، اما اگر دایرکتوری نباشد، تنها در صورتی اعمال میشود که اجازه اجرا از قبل برای کاربر، گروه یا دیگران تنظیم شده باشد. پرچم s شناسه کاربر یا گروه را هنگام اجرا تنظیم میکند، و پرچم t روی یک دایرکتوری حذف محدودشده (restricted deletion) را فعال میکند، یا از نظر تاریخی در صورت دایرکتوری نبودن فایل را چسبنده (sticky) میکند.
بیتهای مجوز همچنین میتوانند u، g یا o باشند که بیتهای مجوز را به ترتیب از کاربر، گروه یا دیگرانِ فایل برمیدارد.
وضعیت خروج (EXIT STATUS)
- 0
- Sqfstar با موفقیت یک فایلسیستم تولید کرد.
- 1
- خطاهای مهلکی رخ داد، Sqfstar متوقف شد و فایلسیستمی تولید نکرد.
فشردهسازهای موجود و گزینههای ویژه فشردهساز (COMPRESSORS AVAILABLE AND COMPRESSOR SPECIFIC OPTIONS)
gzip (پیشفرض):
- -Xcompression-level COMPRESSION-LEVEL
- مقدار COMPRESSION-LEVEL باید ۱ .. ۹ باشد (پیشفرض ۹).
- -Xwindow-size WINDOW-SIZE
- مقدار WINDOW-SIZE باید ۸ .. ۱۵ باشد (پیشفرض ۱۵).
- -Xstrategy strategy1,strategy2,...,strategyN
- فشردهسازی با استفاده از strategy1,strategy2,...,strategyN به نوبت و انتخاب بهترین فشردهسازی. راهبردهای موجود: default, filtered, huffman_only, run_length_encoded و fixed.
lzo:
- -Xalgorithm ALGORITHM
- جایی که ALGORITHM یکی از موارد زیر است: lzo1x_1, lzo1x_1_11, lzo1x_1_12, lzo1x_1_15, lzo1x_999 (پیشفرض).
- -Xcompression-level COMPRESSION-LEVEL
- مقدار COMPRESSION-LEVEL باید ۱ .. ۹ باشد (پیشفرض ۸). تنها بر الگوریتم lzo1x_999 اعمال میشود.
lz4:
- -Xhc
- فشردهسازی با استفاده از LZ4 High Compression.
xz:
- -Xbcj filter1,filter2,...,filterN
- فشردهسازی با استفاده از filter1,filter2,...,filterN به نوبت (علاوه بر حالت بدون فیلتر)، و انتخاب بهترین فشردهسازی. فیلترهای موجود: x86, arm, armthumb, arm64, powerpc, sparc, ia64, riscv.
- -Xdict-size DICT-SIZE
- استفاده از DICT-SIZE به عنوان اندازه دیکشنری XZ. اندازه دیکشنری میتواند به عنوان درصدی از اندازه بلوک، یا به عنوان یک مقدار مطلق مشخص شود. اندازه دیکشنری باید کمتر یا مساوی اندازه بلوک و ۸۱۹۲ بایت یا بزرگتر باشد. همچنین باید بتوان آن را در سربرگ xz به عنوان 2^n یا 2^n+2^(n+1) ذخیره کرد. مقادیر نمونه برای dict-size عبارتند از: 75%, 50%, 37.5%, 25%، یا 32K, 16K, 8K و غیره.
zstd:
- -Xcompression-level COMPRESSION-LEVEL
- مقدار COMPRESSION-LEVEL باید -131072 .. -1 یا ۱ .. ۲۲ باشد (پیشفرض ۱۵). سطوح فشردهسازی منفی با گزینه --fast در zstd متناظر هستند.
lzma:
- (بدون گزینه) (منسوخ شده - عدم پشتیبانی در هسته)
محیط (ENVIRONMENT)
- SQFS_CMDLINE
- در صورت تنظیم، به عنوان دایرکتوری برای نوشتن فایل sqfs_cmdline استفاده میشود که حاوی آرگومانهای خط فرمان داده شده به Sqfstar است. هر آرگومان خط فرمان در گیومه قرار میگیرد تا اطمینان حاصل شود هنگام وجود فاصله در آرگومانها ابهامی پیش نمیآید. اگر فایل از قبل موجود باشد، خط فرمان به انتهای فایل افزوده میشود.
- SOURCE_DATE_EPOCH
- در صورت تنظیم، به عنوان برچسب زمانی ایجاد فایلسیستم استفاده میشود. همچنین هر برچسب زمانی فایلی که پس از SOURCE_DATE_EPOCH باشد به SOURCE_DATE_EPOCH محدود خواهد شد. برای اطلاعات بیشتر https://reproducible-builds.org/docs/source-date-epoch را ببینید.
- PAGER
- در صورت تنظیم، به عنوان نام برنامهای که برای نمایش متن راهنما به کار میرود استفاده میشود. این مقدار میتواند یک دستور ساده یا یک مسیر کامل باشد. مقدار پیشفرض /usr/bin/pager است.
مثالها (EXAMPLES)
- sqfstar IMAGE.SQFS < archive.tar
- ایجاد یک فایلسیستم Squashfs از فایل فشردهنشده tar با نام "archive.tar". برنامه Sqfstar از فشردهساز پیشفرض (معمولاً gzip) و اندازه بلوک ۱۲۸ کیلوبایت استفاده خواهد کرد.
- zcat archive.tgz | sqfstar IMAGE.SQFS
- ایجاد یک فایلسیستم Squashfs از فایل فشرده tar با نام "archive.tgz". برنامه Sqfstar از فشردهساز پیشفرض (معمولاً gzip) و اندازه بلوک ۱۲۸ کیلوبایت استفاده خواهد کرد.
- sqfstar -b 1M -comp zstd IMAGE.SQFS < archive.tar
- استفاده از اندازه بلوک ۱ مگابایت و فشردهسازی Zstandard برای ایجاد فایلسیستم.
- sqfstar -root-uid 0 -root-gid 0 IMAGE.SQFS < archive.tar
- فایلهای tar تعریفی برای دایرکتوری ریشه ارائه نمیدهند، و حالت پیشفرض این است که مالکیت/مالکیت گروهی دایرکتوری به کاربری که Sqfstar را اجرا میکند داده شود. دستور فوق مالکیت/مالکیت گروهی را روی root تنظیم میکند.
- sqfstar -root-mode 0755 IMAGE.SQFS < archive.tar
- مجوز پیشفرض برای دایرکتوری ریشه 0777 (rwxrwxrwx) است. دستور فوق مجوزها را روی 0755 (rwxr-xr-x) تنظیم میکند.
- sqfstar -all-time now IMAGE.SQFS < archive.tar
- تنظیم برچسب زمانی همه فایلها و دایرکتوریها روی "now" (زمان فعلی) در فایلسیستم.
- sqfstar -force-uid phillip -force-gid phillip IMAGE.SQFS < archive.tar
- تنظیم مالکیت تمام فایلها و دایرکتوریهای فایلسیستم برای "phillip".
- sqfstar -force-file-mode ugo+r,go-w IMAGE.SQFS < archive.tar
- قابل خواندن کردن تمام فایلها برای همه، ولی فقط قابل نوشتن توسط کاربر، و عدم تغییر سایر بیتهای مجوز.
- sqfstar IMAGE.SQFS file1 file2 < archive.tar
- مستثنی کردن file1 و file2 از فایل tar هنگام ایجاد فایلسیستم.
- sqfstar IMAGE.SQFS "*.gz" < archive.tar
- مستثنی کردن تمام فایلهای موجود در دایرکتوری سطح بالا که با الگوی عمومی "*.gz" مطابقت دارند.
- sqfstar IMAGE.SQFS "... *.gz" < archive.tar
- مستثنی کردن هر فایلی که با الگوی عمومی "*.gz" در هر کجای فایل tar مطابقت داشته باشد. عبارت اولیه "..." نشان میدهد که الگوی عمومی «مهارنشده» است و در هر مکانی مطابقت خواهد داشت.
نکته: هنگام ارسال نامهای دارای نویسه عمومی به Sqfstar، آنها باید در گیومه قرار گیرند (همانند مثالهای بالا) تا اطمینان حاصل شود که توسط شل پردازش نمیشوند..SS استفاده از تعاریف شبهفایل
- sqfstar -p "build_dir d 0644 0 0" IMAGE.SQFS < archive.tar
- ایجاد یک دایرکتوری با نام «build_dir» در سیستمفایل خروجی.
- sqfstar -p "version.txt l /tmp/build/version" IMAGE.SQFS < archive.tar
- ایجاد یک ارجاع به نام «version.txt» به فایلی که در بایگانی tar وجود ندارد، به گونهای که انگار آن فایل درون بایگانی tar قرار دارد رفتار میکند.
- sqfstar -p "date.txt f 0644 0 0 date" IMAGE.SQFS < archive.tar
- ایجاد فایلی به نام «date.txt» که خروجی استاندارد (stdout) حاصل از اجرای دستور «date» را در خود نگه میدارد.
- sqfstar -p "\"hello world\" f 0644 0 0 date" IMAGE.SQFS < archive.tar
- مشابه بالا، اما نشان میدهد که نام فایلها در صورت قرار گرفتن درون نقلقول میتوانند دارای فاصله باشند. نقلقولها باید با بکاسلش همراه شوند تا از پردازش آنها توسط پوسته محافظت شود.
- sqfstar -p "input f 0644 root root dd if=/dev/sda1 bs=1024" IMAGE.SQFS < archive.tar
- ایجاد فایلی حاوی محتویات پارتیشن /dev/sda1. دستور بالا امکان دریافت ورودی از این فایلهای ویژه و قرار دادن آن در سیستمفایل Squashfs را فراهم میکند.
نکته: تعاریف شبهفایل باید درون نقلقول قرار گیرند (همانند مثالهای بالا)، تا اطمینان حاصل شود که به عنوان یک آرگومان واحد به Mksquashfs ارسال میشوند و توسط پوسته پردازش نمیگردند.
نویسندگان (AUTHORS)
نوشتهشده توسط Phillip Lougher <phillip@squashfs.org.uk>
کپیرایت و تکثیر (COPYRIGHT)
کپیرایت © 2026 Phillip Lougher <phillip@squashfs.org.uk>
این برنامه نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) منتشر شده توسط بنیاد نرمافزارهای آزاد؛ نسخهٔ ۲ مجوز یا (به انتخاب خودتان) هر نسخهٔ متأخر دیگری بازتوزیع کرده یا تغییر دهید.
این برنامه به این امید که مفید واقع شود توزیع شده است، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.
همچنین ببینید (SEE ALSO)
mksquashfs(1), unsquashfs(1), sqfscat(1)
فایل README مربوط به انتشار Squashfs-tools 4.7.5 که ویژگیهای جدید را شرح میدهد، در اینجا قابل مطالعه است https://github.com/plougher/squashfs-tools/blob/master/Documentation/4.7.5/README.md
راهنمای استفاده از Sqfstar در اینجا قابل مطالعه است https://github.com/plougher/squashfs-tools/blob/master/Documentation/4.7.5/USAGE-SQFSTAR.md
فایل CHANGELOG ابزارهای Squashfs در اینجا قابل مطالعه است https://github.com/plougher/squashfs-tools/blob/master/CHANGES.md
| March 2026 | sqfstar version 4.7.5 |