MKFS.JFFS2(1) General Commands Manual MKFS.JFFS2(1)

mkfs.jffs2 - ایجاد یک ایمیج سیستم‌فایل JFFS2 از یک دایرکتوری

mkfs.jffs2 [ -p,--pad[=SIZE] ] [ -r,-d,--root directory ] [ -s,--pagesize=SIZE ] [ -e,--eraseblock=SIZE ] [ -c,--cleanmarker=SIZE ] [ -n,--no-cleanmarkers ] [ -o,--output image.jffs2 ] [ -l,--little-endian ] [ -b,--big-endian ] [ -D,--devtable=FILE ] [ -f,--faketime ] [ -q,--squash ] [ -U,--squash-uids ] [ -P,--squash-perms ] [ --with-xattr ] [ --with-selinux ] [ --with-posix-acl ] [ -m,--compression-mode=MODE ] [ -x,--disable-compressor=NAME ] [ -X,--enable-compressor=NAME ] [ -y,--compressor-priority=PRIORITY:NAME ] [ -L,--list-compressors ] [ -t,--test-compression ] [ -h,--help ] [ -v,--verbose ] [ -V,--version ] [ -i,--incremental image.jffs2 ]

برنامهٔ mkfs.jffs2 یک ایمیج سیستم‌فایل JFFS2 (نسخهٔ دوم سیستم‌فایل ژورنالی فلش) ایجاد می‌کند و ایمیج حاصل را در فایل مشخص‌شده توسط گزینهٔ -o یا به‌طور پیش‌فرض در خروجی استاندارد می‌نویسد، مگر اینکه خروجی استاندارد یک دستگاه ترمینال باشد که در این صورت mkfs.jffs2 متوقف خواهد شد.

ایمیج سیستم‌فایل با استفاده از فایل‌ها و دایرکتوری‌های موجود در دایرکتوری مشخص‌شده توسط گزینهٔ -r یا در صورت مشخص نشدن گزینهٔ -r، از دایرکتوری فعلی ساخته می‌شود.

هر بلوک از فایل‌هایی که قرار است در ایمیج سیستم‌فایل قرار گیرند، بسته به حالت فشرده‌سازی انتخاب‌شده، با استفاده از یکی از فشرده‌سازهای موجود فشرده می‌شود.

سیستم‌های فایل با ترتیب بایت (endianness) یکسان با میزبان ایجاد می‌شوند، مگر اینکه گزینه‌های -b یا -l مشخص شده باشند. درایور JFFS2 در هستهٔ لینوکس ۲.۴ فقط از ایمیج‌هایی با ترتیب بایت مشابه با CPU پشتیبانی می‌کرد. از نسخهٔ ۲.۵.۴۸، هسته می‌تواند با یک #define تغییر داده شود تا ایمیج‌هایی با ترتیب بایت غیربومی را بپذیرد. پشتیبانی کامل از هر دو حالت بایت (bi-endian) در هسته برنامه‌ریزی نشده است.

بعید است ایمیج‌های JFFS2 به‌جز در ترکیب با درایورهای MTD (Memory Technology Device) در هستهٔ لینوکس کاربردی داشته باشند، زیرا درایور سیستم‌فایل JFFS2 در هسته به دستگاه‌های MTD نیاز دارد.

گزینه‌هایی که آرگومان SIZE می‌پذیرند می‌توانند به‌صورت ده‌دهی (مانند 65536)، هشت‌هشتی (0200000) یا شانزده‌شانزدهی (0x1000) مشخص شوند.

خروجی را تا اندازهٔ SIZE بایت با 0xFF پر (pad) می‌کند. اگر SIZE مشخص نشود، خروجی تا انتهای آخرین بلوک پاک‌سازی (erase block) پر می‌شود.
سیستم‌فایل را از دایرکتوری DIR می‌سازد. مقدار پیش‌فرض دایرکتوری فعلی است.
از اندازهٔ صفحهٔ SIZE استفاده می‌کند. مقدار پیش‌فرض 4 KiB است. این مقدار حداکثر اندازهٔ یک گره داده (data node) است. آن را مطابق با اندازهٔ صفحهٔ مدیریت حافظهٔ سیستم مقصد تنظیم کنید (توجه: این مقدار ارتباطی با اندازهٔ صفحهٔ NAND ندارد).
از اندازهٔ بلوک پاک‌سازی SIZE استفاده می‌کند. مقدار پیش‌فرض 64 KiB است. اگر از اندازه‌ای متفاوت با اندازهٔ بلوک پاک‌سازی دستگاه MTD مقصد استفاده کنید، ممکن است JFFS2 عملکرد بهینه‌ای نداشته باشد. اگر مقدار SIZE مشخص‌شده کمتر از ۴۰۹۶ باشد، واحد آن KiB فرض می‌شود.
گره‌های 'CLEANMARKER' را با اندازهٔ مشخص‌شده می‌نویسد. معمولاً تعیین اندازه‌ای غیر از مقدار پیش‌فرض ۱۲ بایت مناسب نیست.
گره‌های 'CLEANMARKER' را در ابتدای هر بلوک پاک‌سازی نمی‌نویسد. این گزینه می‌تواند برای ایجاد ایمیج‌های JFFS2 جهت استفاده روی حافظه‌های فلش NAND، و همچنین برای ساخت ایمیج‌هایی که قرار است روی سخت‌افزارهای گوناگون با اندازه‌های مختلف eraseblock استفاده شوند، مفید باشد.
ایمیج JFFS2 را در فایل FILE می‌نویسد. مقدار پیش‌فرض خروجی استاندارد است.
یک ایمیج JFFS2 از نوع little-endian ایجاد می‌کند. پیش‌فرض ساخت ایمیجی با همان ترتیب بایت میزبان است.
یک ایمیج JFFS2 از نوع big-endian ایجاد می‌کند. پیش‌فرض ساخت ایمیجی با همان ترتیب بایت میزبان است.
از FILE مشخص‌شده به‌عنوان فایل جدول دستگاه (device table) برای گنجاندن دستگاه‌ها و تغییر دسترسی‌ها در ایمیج ایجاد‌شده استفاده می‌کند؛ به‌ویژه زمانی که کاربر دسترسی لازم را برای ساخت آن‌ها روی سیستم‌فایل مبدأ ندارد.
تمام برچسب‌های زمانی (timestamp) فایل‌ها را جهت آزمون رگرسیون به '0' تغییر می‌دهد.
مجوزها و مالکان را یکدست می‌کند (squash)؛ به‌طوری‌که مالکیت همهٔ فایل‌ها به root واگذار شده و دسترسی نوشتن برای 'group' و 'other' حذف می‌شود.
مالکان را یکدست می‌کند به‌طوری‌که مالکیت همهٔ فایل‌ها به root تعلق می‌گیرد.
مجوزها را یکدست کرده و دسترسی نوشتن را برای 'group' و 'other' حذف می‌کند.
ویژگی‌های xattr را فعال می‌کند و تمامی مدخل‌های xattr را درون فایل ایمیج jffs2 قرار می‌دهد.
ویژگی‌های xattr را فعال می‌کند و تنها برچسب‌های SELinux را درون فایل ایمیج jffs2 قرار می‌دهد.
ویژگی‌های xattr را فعال می‌کند و تنها مدخل‌های POSIX ACL را درون فایل ایمیج jffs2 قرار می‌دهد.
حالت فشرده‌سازی پیش‌فرض را تنظیم می‌کند. حالت پیش‌فرض priority است که فشرده‌سازها را با ترتیبی از پیش تعیین‌شده امتحان کرده و نخستین مورد موفق را برمی‌گزیند. گزینه‌های جایگزین عبارتند از: none (دستور mkfs فشرده‌سازی انجام نمی‌دهد) و size (دستور mkfs تمام فشرده‌سازها را امتحان کرده و گزینه‌ای را که کوچک‌ترین نتیجه را تولید کند برمی‌گزیند).
یک فشرده‌ساز را غیرفعال می‌کند. از -L برای مشاهدهٔ فهرست فشرده‌سازهای موجود و وضعیت پیش‌فرض آن‌ها استفاده کنید.
یک فشرده‌ساز را فعال می‌کند. از -L برای مشاهدهٔ فهرست فشرده‌سازهای موجود و وضعیت پیش‌فرض آن‌ها استفاده کنید.
اولویت یک فشرده‌ساز را تعیین می‌کند. از -L برای مشاهدهٔ فهرست فشرده‌سازهای موجود و اولویت پیش‌فرض آن‌ها استفاده کنید. اولویت‌ها در حالت فشرده‌سازی priority به کار می‌روند.
فهرست فشرده‌سازهای موجود و وضعیت آن‌ها را نمایش می‌دهد.
پس از هر بار فشرده‌سازی، عمل خروج از فشرده‌سازی را فراخوانی کرده و نتیجه را با دادهٔ اصلی مقایسه می‌کند، و همچنین برخی بررسی‌های دیگر را انجام می‌دهد.
متن راهنما را نمایش می‌دهد.
اجرای پرجزئیات.
اطلاعات نسخه را نمایش می‌دهد.
یک ایمیج الحاقی برای FILE تولید می‌کند. اگر FILE روی حافظهٔ فلش نوشته شده باشد و خروجی به انتهای آن الحاق گردد، به نظر می‌رسد که گویی یک ایمیج یکپارچه بوده است.

قالب و قواعد دستوری فایل جدول دستگاه (device table) این امکان را نمی‌دهد که پیوندهای نمادین (symbolic links) را در صورتی که از قبل در دایرکتوری کاری ریشه وجود نداشته باشند، ایجاد کند.

با این حال، می‌توان پیوندهای نمادین را با نوع l در فایل جدول دستگاه مشخص کرد تا مجوزها و مالکیت آن‌ها تنظیم شود.

سیستم‌فایل JFFS2 شماره‌های major و minor دستگاه را به ۸ بیت برای هر کدام محدود می‌کند. برخی این موضوع را یک اشکال می‌دانند.

دستور mkfs.jffs2 پیوندهای سخت (hard links) را در ساختار دایرکتوری ورودی به‌درستی مدیریت نمی‌کند. در حال حاضر، فایل‌های دارای پیوند سخت در ایمیج خروجی به چندین فایل یکسان گسترش می‌یابند.

David Woodhouse
صفحهٔ راهنما توسط David Schleef <ds@schleef.org> نوشته شده است.

mkfs(8), mkfs.jffs(1), fakeroot(1)