| NTFS-3G(8) | System Manager's Manual | NTFS-3G(8) |
نام (NAME)
ntfs-3g - راهانداز خواندن/نوشتن NTFS نسل سوم
خلاصه دستور (SYNOPSIS)
ntfs-3g [-o option[,...]]
volume mount_point
mount -t ntfs-3g [-o option[,...]]
volume mount_point
lowntfs-3g [-o option[,...]] volume
mount_point
mount -t lowntfs-3g [-o option[,...]]
volume mount_point
توضیحات (DESCRIPTION)
ntfs-3g یک راهانداز NTFS است که میتواند فایلها، دایرکتوریها، پیوندهای سخت و جریانها را ایجاد، حذف، تغییر نام و جابهجا کند؛ میتواند فایلها را بخواند و بنویسد، از جمله جریانها، فایلهای خلوت (sparse) و فایلهای فشردهشده به صورت شفاف؛ میتواند فایلهای خاص مانند پیوندهای نمادین، دستگاهها و FIFOها را مدیریت کند؛ افزون بر این، مدیریت استاندارد مالکیت و دسترسیهای فایل از جمله POSIX ACLها را فراهم میسازد.
این برنامه در دو گونهٔ ntfs-3g و lowntfs-3g ارائه میشود که چند تفاوت میان آنها در بخش توضیحات گزینههای مربوطه در ادامه آمده است.
محیط volume مورد نظر برای سوار کردن میتواند یک دستگاه بلوکی یا یک فایل تصویر (image) باشد، چه با استفاده از دستور mount و چه با راهاندازی درایو.
خوابزمستانی و راهاندازی سریع ویندوز (Windows hibernation and fast restarting)
در رایانههایی که بوت دوگانه به ویندوز یا لینوکس دارند، پیش از بوت شدن به لینوکس، ویندوز باید به طور کامل خاموش شود؛ در غیر این صورت، سیستمفایلهای NTFS روی دیسکهای داخلی ممکن است در وضعیتی ناپایدار و ناسازگار باقی بمانند و تغییرات انجامشده توسط لینوکس ممکن است توسط ویندوز نادیده گرفته شود.
بنابراین، به منظور جلوگیری از بروز ناسازگاریها، نباید ویندوز هنگام شروع لینوکس در حالت خوابزمستانی (hibernation) رها شده باشد. افزون بر این، ویژگی راهاندازی سریع (fast restart) موجود در سیستمهای ویندوز جدید باید غیرفعال شود. این کار را میتوان با اجرای دستور زیر در ویندوز با دسترسی مدیر (Administrator) انجام داد که هم خوابزمستانی و هم راهاندازی سریع را غیرفعال میکند:
powercfg /h off
مدیریت دسترسی و امنیت (Access Handling and Security)
به طور پیشفرض، مالکیت فایلها و دایرکتوریها در اختیار کاربر و گروه موثر فرایند سوارکننده است، و همه افراد دسترسی کامل خواندن، نوشتن، اجرا و مرور دایرکتوری را دارند. همچنین میتوانید دسترسیها را با استفاده از گزینههای uid و/یا gid همراه با گزینههای umask، یا fmask و dmask به یک کاربر اختصاص دهید.
با انجام این کار، تمام کاربران ویندوز دسترسی کامل به فایلهای ایجادشده توسط ntfs-3g خواهند داشت.
اما با تنظیم گزینهٔ permissions، میتوانید از امکانات کامل مالکیت و دسترسیها مطابق با تعاریف POSIX بهرهمند شوید. افزون بر این، با تعریف یک نگاشت کاربر از ویندوز به لینوکس، مالکیتها و دسترسیها حتی برای کاربران ویندوز و بالعکس نیز اعمال میشوند.
اگر ntfs-3g به صورت setuid-root تنظیم شده باشد، کاربران غیرریشه نیز قادر به سوار کردن حجمها خواهند بود.
سازگاری با نامگذاری فایل ویندوز (Windows Filename Compatibility)
سیستمفایل NTFS از چندین فضاینام برای نام فایلها پشتیبانی میکند: DOS، Win32 و POSIX. در حالی که راهانداز ntfs-3g تمام آنها را مدیریت میکند، همواره فایلهای جدید را به دلایل حداکثر سازگاری و تعاملپذیری در فضاینام POSIX ایجاد میکند. این بدان معناست که نام فایلها حساس به حروف بزرگ و کوچک بوده و تمام نویسهها به جز گزینهٔ windows_names میتواند برای اعمال محدودیتهای ویندوز روی نام فایلهای جدید استفاده شود.
جریانهای دادهٔ جایگزین (Alternate Data Streams - ADS)
سیستمفایل NTFS تمام دادهها را در جریانها ذخیره میکند. هر فایل دقیقاً یک جریان دادهٔ بدون نام دارد و میتواند جریانهای دادهٔ نامدار متعددی داشته باشد. اندازهٔ یک فایل برابر با اندازهٔ جریان دادهٔ بدون نام آن است. به طور پیشفرض، ntfs-3g تنها جریان دادهٔ بدون نام را میخواند.
با استفاده از گزینهٔ streams_interface=windows، همراه با راهانداز ntfs-3g (در lowntfs-3g امکانپذیر نیست)، میتوانید به سادگی و با مشخص کردن نام جریان پس از دونقطه، هر یک از جریانهای دادهٔ نامدار را بخوانید. برای نمونه:
cat some.mp3:artist
گزینهها (OPTIONS)
در زیر خلاصهای از گزینههایی که ntfs-3g میپذیرد آورده شده است.
- acl
- فعالسازی تنظیم POSIX ACLها روی فایلهای ایجادشده و استفاده از آنها برای کنترل دسترسی. این گزینه فقط در بیلدهای خاصی در دسترس است. اگر فایل نگاشت کاربر موجود باشد و گزینهٔ سوار کردن permissions تنظیم نشده باشد، این گزینه به صورت پیشفرض فعال است.
- allow_other
- این گزینه تدبیر امنیتی محدودکنندهٔ دسترسی فایل به کاربری که سیستمفایل را سوار کرده است، لغو میکند. این گزینه تنها برای ریشه مجاز است، اما این محدودیت میتواند با استفاده از گزینهٔ user_allow_other در فایل /etc/fuse.conf لغو شود.
- atime, noatime, relatime
- گزینهٔ atime
زمان
دسترسی inode را
برای هر
دسترسی
بهروزرسانی
میکند.
گزینهٔ noatime بهروزرسانی زمان دسترسی inode را غیرفعال میکند که میتواند عملیات فایل را سرعت ببخشد و از به چرخش درآمدن مکرر دیسکهای در حال خواب (نوتبوک) جلوگیری کند، در نتیجه در مصرف انرژی و طول عمر دیسک صرفهجویی میشود.
گزینهٔ relatime بسیار شبیه به noatime است. این گزینه زمانهای دسترسی inode را نسبت به زمان اصلاح یا تغییر بهروزرسانی میکند. زمان دسترسی فقط در صورتی بهروزرسانی میشود که زمان دسترسی پیشین زودتر از زمان فعلی اصلاح یا تغییر بوده باشد. برخلاف noatime، این گزینه عملکرد برنامههایی را که نیاز دارند بدانند آیا فایلی از زمان آخرین تغییر خوانده شده است یا خیر، مختل نمیکند. این رفتار پیشفرض است.
- big_writes
- این گزینه مانع از تقسیم میانگیرهای نوشتن به قطعات ۴ کیلوبایتی توسط fuse میشود و انتقال میانگیرهای بزرگ نوشتن از برنامه را در یک مرحله (تا حد تعیینشده توسط سیستم، معمولاً ۱۲۸ کیلوبایت) ممکن میسازد.
- compression
- این گزینه امکان ایجاد فایلهای فشردهشده به صورت شفاف را در دایرکتوریهایی که برای فشردهسازی علامتگذاری شدهاند فراهم میکند. یک دایرکتوری با تنظیم بیت ۱۱ (مقدار 0x00000800) در ویژگی ویندوزی آن برای فشردهسازی علامتگذاری میشود. در چنین دایرکتوریای، فایلهای جدید به صورت فشرده ایجاد میشوند و زیردایرکتوریهای جدید نیز خود برای فشردهسازی علامتگذاری میگردند. این گزینه و این فلگ اثری بر فایلهای موجود ندارند. در حال حاضر این گزینهٔ پیشفرض است.
- debug
- باعث میشود ntfs-3g (یا lowntfs-3g) مقدار زیادی خروجی اشکالزدایی از libntfs-3g و FUSE چاپ کند.
- delay_mtime[= value]
- تنها زمانی زمان اصلاح و زمان تغییر فایل را بهروزرسانی میکند که فایل بسته شود یا تاخیر مشخصشده از زمان آخرین بهروزرسانی سپری شده باشد. آرگومان بر حسب تعداد ثانیه است و مقدار پیشفرض آن ۶۰ میباشد. این گزینه عمدتاً برای فایلهای بزرگی مفید است که به مدت طولانی باز نگه داشته شده و بدون تغییر اندازه در آنها نوشته میشود، مانند پایگاههای داده یا تصاویر سیستمفایل که به صورت loop سوار شدهاند.
- dmask=value
- ماسک بیتی دسترسیهای دایرکتوری را که وجود ندارند تنظیم میکند. مقدار به صورت هشتهشتی (octal) داده میشود. مقدار پیشفرض 0 است که به معنای دسترسی کامل برای همه است.
- efs_raw
- این گزینه فقط باید در وضعیتهای پشتیبانگیری یا بازیابی استفاده شود. این گزینه اندازهٔ ظاهری فایلها و رفتار عملیات خواندن و نوشتن را تغییر میدهد تا فایلهای رمزگذاریشده بدون رمزگشایی شدن بتوانند ذخیره و بازیابی شوند. صفت گسترشیافتهٔ user.ntfs.efsinfo نیز باید ذخیره و بازیابی شود تا فایل بتواند رمزگشایی گردد.
- fmask=value
- ماسک بیتی دسترسیهای فایل را که وجود ندارند تنظیم میکند. مقدار به صورت هشتهشتی (octal) داده میشود. مقدار پیشفرض 0 است که به معنای دسترسی کامل برای همه است.
- force
- این گزینه منسوخ شده است. گزینههای recover و norecover جایگزین آن شدهاند.
- hide_dot_files
- فلگ مخفی را در صفت NTFS برای فایلها و دایرکتوریهای ایجادشدهای که نخستین نویسهٔ نام آنها نقطه است تنظیم میکند. چنین فایلها و دایرکتوریهایی معمولاً در فهرستهای دایرکتوری نمایش داده نمیشوند و زمانی که این فلگ تنظیم شود، در نمایش دایرکتوریهای ویندوز نیز ظاهر نخواهند شد. هنگامی که نام فایلی تغییر داده شود یا با نام جدیدی پیوند یابد، فلگ مخفی با آخرین نام مطابقت داده میشود.
- hide_hid_files
- فایلها و دایرکتوریهای مخفی را در فهرستبندیهای دایرکتوری پنهان میکند؛ فایلها و دایرکتوریهای مخفی مواردی هستند که فلگ مخفی در صفت NTFS آنها تنظیم شده است. فایلهای مخفی هنگام استفاده از نویسههای عمومی (wildcards) در دستورات انتخاب نخواهند شد، اما تمام فایلها و دایرکتوریها با نام کامل در دسترس باقی میمانند؛ برای نمونه همیشه میتوانید دایرکتوری سطل بازیافت ویندوز را با این دستور نمایش دهید: "ls -ld '$RECYCLE.BIN'".
- ignore_case (فقط در lowntfs-3g)
- هنگام دسترسی به یک فایل، بزرگی و کوچکی نویسهها را نادیده میگیرد (FOO، Foo، foo و غیره به همان فایل اشاره دارند). تمام فایلها در فهرستبندیهای دایرکتوری با حروف کوچک نمایش داده میشوند.
- inherit
- هنگام ایجاد یک فایل جدید، محافظتهای اولیهٔ آن را مطابق با قوانین وراثت تعریفشده در دایرکتوری والد تنظیم میکند. این قوانین از مشخصات POSIX انحراف دارند اما سازگاری بهتری با ویندوز ارائه میدهند. گزینهٔ permissions (یا **acl**) یا یک فایل نگاشت کاربر معتبر برای اثربخشی این گزینه الزامی است.
- locale=value
- این گزینه میتواند هنگام تمایل به یک محیط محلی (locale) خاصزبان مفید باشد. با این حال توصیه نمیشود زیرا باعث میشود فایلهایی با نویسههای غیرقابلترجمه قابل مشاهده نباشند.
- max_read=value
- با این گزینه میتوان بیشینهٔ اندازهٔ عملیات خواندن را تنظیم کرد. مقدار پیشفرض نامحدود است. توجه داشته باشید که اندازهٔ درخواستهای خواندن در هر صورت توسط سیستم محدود شده است (معمولاً به ۱۲۸ کیلوبایت).
- no_def_opts
- به طور پیشفرض ntfs-3g چنان عمل میکند که گویی گزینههای silent (نادیده گرفتن خطاهای دسترسی هنگامی که دسترسیها فعال نیستند)، allow_other (اجازه دسترسی به فایلها به هر کاربر) و nonempty (اجازهٔ سوار کردن روی دایرکتوریهای غیرخالی) تنظیم شدهاند؛ و no_def_opts این گزینههای پیشفرض را لغو میکند.
- no_detach
- باعث میشود ntfs-3g از ترمینال جدا نشود و مقداری خروجی اشکالزدایی چاپ کند.
- nocompression
- این گزینه ایجاد فایلهای فشردهشده به صورت شفاف در دایرکتوریهای نشانهگذاریشده برای فشردهسازی را غیرفعال میکند. فایلهای فشردهٔ موجود همچنان قابل خواندن و بهروزرسانی هستند.
- norecover
- سعی نکن پارتیشنی را که به درستی توسط ویندوز پیادهسازی (unmount) نشده است، سوار کنی.
- permissions
- تنظیم دسترسیهای استاندارد روی فایلهای ایجادشده و استفاده از کنترل دسترسی استاندارد. این گزینه در صورتی که فایل نگاشت کاربر موجود باشد، به طور پیشفرض فعال است.
- posix_nlink
- تعداد پیوندهای سخت یک فایل یا دایرکتوری را مطابق با مشخصات POSIX محاسبه میکند. زمانی که این گزینه تنظیم نشده باشد، برای دایرکتوریها تعداد ۱ تنظیم میشود و نام کوتاه فایلها در نظر گرفته میشود. استفاده از این گزینه جریمهٔ کارایی دارد، زیرا این تعداد ذخیره نمیشود و باید محاسبه گردد.
- recover
- بازیابی و تلاش برای سوار کردن پارتیشنی که به درستی توسط ویندوز پیاده نشده است. فایل گزارش (logfile) ویندوز پاک میشود که ممکن است باعث ناسازگاری شود. در حال حاضر این گزینهٔ پیشفرض است.
- remove_hiberfile
- هنگامی که حجم NTFS در حالت خوابزمستانی است، سوار کردن خواندنی-نوشتنی رد شده و سوار کردن فقطخواندنی اجبار میشود. باید یا ویندوز را بازیابی کرده و به طور صحیح خاموش کنید، یا از این گزینه استفاده نمایید که فایل خوابزمستانی ویندوز را حذف خواهد کرد. لطفاً توجه داشته باشید، این بدان معناست که نشست ذخیرهشدهٔ ویندوز کاملاً از بین خواهد رفت. از این گزینه با مسئولیت خودتان استفاده کنید.
- ro
- سوار کردن سیستمفایل به صورت فقطخواندنی. در صورتی که ویندوز در حالت خوابزمستانی باشد یا فایل ژورنال NTFS ناپاک باشد، مفید است.
- show_sys_files
- نمایش فایلهای متا در فهرستهای دایرکتوری. در غیر این صورت، رفتار پیشفرض پنهان کردن فایلهای متا است که فایلهای خاص مورد استفاده برای ذخیرهٔ ساختار NTFS هستند. لطفاً توجه داشته باشید که حتی هنگام مشخص کردن این گزینه، ممکن است "$MFT" به دلیل یک باگ در glibc قابل مشاهده نباشد. افزون بر این، صرفنظر از show_sys_files، تمام فایلها از طریق نام در دسترس هستند؛ برای نمونه همیشه میتوانید این دستور را اجرا کنید: "ls -l '$UpCase'".
- silent
- در صورت تنظیم نبودن گزینهٔ permissions و تعریف نشدن فایل نگاشت کاربر، در عملیات chmod و chown و در خطاهای بررسی دسترسی، هیچ کاری انجام نده و خطایی برنگردان. این گزینه به صورت پیشفرض فعال است و هنگامی که غیرفعال شود (از طریق گزینهٔ no_def_opts) پارامترهای مالکیت و دسترسیها باید تنظیم شوند.
- special_files=mode
- این گزینه حالتی را برای نمایش یک فایل خاص که قرار است ایجاد شود (پیوند نمادین، سوکت، fifo، دستگاه نویسهای یا بلوکی) انتخاب میکند. حالت mode میتواند interix یا wsl باشد، و فایلهای موجود در هر دو حالت بدون در نظر گرفتن حالت انتخابشده شناسایی میشوند. Interix حالت سنتی است که به طور پیشفرض استفاده میشود، و wsl با Windows WSL تعاملپذیر است، اما با نسخههای قدیمیتر از Windows 10 سازگار نیست. هیچیک از این حالتها با خود ویندوز تعاملپذیر نیستند.
- streams_interface=mode
- این گزینه نحوهٔ دسترسی کاربر به جریانهای دادهٔ جایگزین (ADS) یا به عبارت دیگر، جریانهای دادهٔ نامدار را کنترل میکند. حالت mode میتواند یکی از مقادیر none، windows یا xattr باشد. اگر گزینه روی none تنظیم شود، کاربر هیچ دسترسی به جریانهای دادهٔ نامدار نخواهد داشت. اگر روی windows تنظیم شود (در lowntfs-3g امکانپذیر نیست)، کاربر میتواند دقیقاً مانند ویندوز به آنها دسترسی داشته باشد (مانند cat file:stream). اگر روی xattr تنظیم شود، جریانهای دادهٔ نامدار به صفات گسترشیافته نگاشت میشوند و کاربر میتواند با ابزارهای {get,set}fattr آنها را دستکاری کند. پیشفرض xattr است.
- uid=value و gid=value
- مالک و گروه فایلها و دایرکتوریها را تنظیم میکند. مقادیر عددی هستند. مقادیر پیشفرض uid و gid فرایند فعلی هستند.
- umask=value
- ماسک بیتی دسترسیهای فایل و دایرکتوری را که وجود ندارند تنظیم میکند. مقدار به صورت هشتهشتی داده میشود. مقدار پیشفرض 0 است که به معنای دسترسی کامل برای همه است.
- usermapping=file-name
- استفاده از فایل file-name به عنوان فایل نگاشت کاربر به جای فایل پیشفرض .NTFS-3G/UserMapping. اگر file-name یک مسیر کامل را مشخص کند، فایل باید روی پارتیشنی قرار داشته باشد که قبلاً سوار شده است. اگر یک مسیر نسبی را مشخص کند، نسبت به ریشهٔ پارتیشن NTFS در حال سوار شدن تفسیر میشود.
- user_xattr
- مشابه streams_interface=xattr.
- windows_names
- این گزینه از ایجاد فایلها، دایرکتوریها و صفات گسترشیافته با نامهایی که توسط ویندوز مجاز نیستند جلوگیری میکند، زیرا
- شامل
برخی
نویسههای
غیرمجاز
است،
- یا آخرین
نویسه یک
فاصله یا یک
نقطه است،
- یا نام رزرو
شده است.
چنین فایلهای موجودی همچنان قابل خواندن (و تغییر نام) هستند.
نگاشت کاربر (USER MAPPING)
سیستمفایل NTFS به جای uid (شناسه کاربر) و gid (شناسه گروه) مورد استفاده در لینوکس، از شناسههای ویژهای برای ثبت مالکیت فایلها استفاده میکند. در نتیجه، برای اینکه مالکیتها در فایلهای NTFS ثبت و شناخته شوند، باید یک نگاشت میان این شناسهها تعریف شود.
به طور پیشفرض، این نگاشت از فایل .NTFS-3G/UserMapping واقع در پارتیشن NTFS دریافت میشود. گزینهٔ usermapping= میتواند برای تعریف مکانی دیگر استفاده شود. هنگامی که گزینهٔ **permissions** تنظیم شده باشد و هیچ فایل نگاشتی یافت نشود، یک نگاشت پیشفرض استفاده میشود.
هر خط در فایل نگاشت کاربر یک نگاشت را تعریف میکند. این فایل در سه فیلد سازماندهی شده که با دونقطه از هم جدا میشوند. فیلد نخست یک uid، فیلد دوم یک gid و فیلد سوم شناسهٔ معادل در NTFS را مشخص میکند که به عنوان SID شناخته میشود. مقادیر uid و gid اختیاری هستند و تعریف هر دوی آنها برای یک SID یکسان توصیه نمیشود.
اگر به تعامل با ویندوز نیازی نیست، میتوانید از گزینهٔ permissions برای تعریف یک نگاشت استاندارد استفاده کنید. به طور متناوب، میتوانید نگاشت خود را با تنظیم یک نگاشت پیشفرض تکی بدون uid و gid تعریف نمایید. در هر دو حالت، فایلهای ایجادشده در لینوکس برای ویندوز به عنوان متعلق به یک کاربر ناشناس به نظر میرسند و فایلهای ایجادشده در ویندوز برای لینوکس به عنوان متعلق به root به نظر میرسند. کافی است نمونهٔ زیر را کپی کرده و اعداد ۹ و ۱۰ رقمی را با هر عددی که بزرگتر از 4294967295 نباشد جایگزین کنید. رفتار حاصل مانند حالتی است که گزینهٔ permissions بدون گزینهٔ مالکیت و بدون وجود فایل نگاشت کاربر تنظیم شده باشد.
::S-1-5-21-3141592653-589793238-462643383-10000
john::S-1-5-21-3141592653-589793238-462643383-1008 mary::S-1-5-21-3141592653-589793238-462643383-1009 :smith:S-1-5-21-3141592653-589793238-462643383-513 ::S-1-5-21-3141592653-589793238-462643383-10000
ابزار ntfsusermap میتواند برای ایجاد چنین فایل نگاشت کاربری استفاده شود.
مثالها (EXAMPLES)
سوار کردن /dev/sda1 در /mnt/windows:
ntfs-3g /dev/sda1 /mnt/windows
ntfs-3g -o permissions /dev/sda3 /mnt/data
ntfs-3g /dev/sda5 /home/user/mnt -o ro,uid=1000
/dev/sda5 /home/user/mnt ntfs-3g ro,uid=1000 0 0
umount /mnt/windows
کدهای خروج (EXIT CODES)
برای تسهیل استفاده از راهانداز ntfs-3g در اسکریپتها، یک کد خروج بازگردانده میشود تا وضعیتی از قابلیت سوار شدن حجم را نشان دهد. مقدار 0 به معنای موفقیت است و تمام مقادیر دیگر نشاندهندهٔ خطا هستند. کدهای خطای منحصربهفرد در صفحهٔ راهنمای ntfs-3g.probe(8) مستند شدهاند.
مشکلات شناختهشده (KNOWN ISSUES)
لطفاً برای پرسشهای متداول و مشکلات شناختهشده به نشانی زیر مراجعه کنید:
اگر مشکل جدیدی در آخرین نسخهٔ نرمافزار پیدا کردید، لطفاً یک issue با شرح جزئیات در نشانی زیر ثبت کنید تا تیم توسعه از مشکل آگاه شده و به آن رسیدگی کند:نویسندگان (AUTHORS)
ntfs-3g بر پایهٔ ntfsmount و libntfs و بهبود عمدهای در آنها بود که توسط Yura Pakhuchiy و تیم Linux-NTFS نوشته شده بودند. بهبودها انجام شد، و پروژهٔ ntfs-3g توسط توسعهدهندهٔ دیرین تیم Linux-NTFS، Szabolcs Szakacsits (szaka@tuxera.com) آغاز شد و در حال حاضر توسط او رهبری میشود.
سپاسگزاری (THANKS)
چندین نفر تلاشهای قهرمانانهای کردند، اغلب در طول پنج سال یا بیشتر، که حاصل آن راهانداز ntfs-3g شد. مهمترین آنها عبارتند از: Anton Altaparmakov، Jean-Pierre André، Erik Larsson، Richard Russon، Szabolcs Szakacsits، Yura Pakhuchiy، Yuval Fledel، و نویسندهٔ چارچوب پیشگامانهٔ توسعهٔ سیستمفایل FUSE، Miklos Szeredi.
همچنین ببینید (SEE ALSO)
| Aug 2021 | ntfs-3g 2026.7.7 |