لینوکس، بدون کابوس: حل مشکل لینوکس با پارتیشن های NTFS مشترک با ویندوز

سلام. این اولین قسمت آموزشی لینوکس بدون کابوسه که البته مجموعه ای سریالی نیست؛ یعنی ممکنه تا یه سری مطالب طریقه خفن سازی و رفع همه مشکلات یه توزیعی مثل آرچ رو بگم و در آخر طریقه نصب آرچ رو! بنابراین این حساب رو دنبال کنید تا از قسمت های مختلف با خبر بشید و اگه به کارتون اومد انجام بدید.





هر توزیعی رو که نصب کردم باهاش یه مشکل تکراری داشتم و اون این بود که برای خوندن یا نوشتن روی هارد HDD که با ویندوز مشترک بود، باید دسترسی ریشه (روت) میدادم و کارم این شده بود که وقتی لینوکس بوت میشد، سریع میرفتم درایو مورد نظرم رو متصل (مانت) میکردم؛ البته در توزیع های مختلف این مشکل متفاوت عمل میکرد!

بعد از هزار کش و قوس با توزیع های مختلف بالاخره به یه توزیع پایدار رسیدم و اون آرچ بود، توی این توزیع هم این مشکل هست و این مشکلیه که کلا لینوکس با درایو NTFS مشترک با ویندوز داره.

خب برای حل این مشکل، اول باید برنامه ای به اسم NTFS-3G رو نصب کنید، طبق پکیج منیجر توزیعتون این برنامه رو نصب کنید. مثلا آرچ اینجوریه:

$ sudo pacman -S ntfs-3g

وقتی نصب تموم شد، حالا میریم سراغ کانفیگ چیزی که موقع بوت لینوکس اون میگه کدوم درایو ها چجوری متصل شن و ...

طبق ادیتوری که دارید، فایل /etc/fstab رو با دسترسی ریشه تغییر بدید. مثلا به vim اینجوری میشه:

$ sudo vim /etc/fstab

توی این فایل یه سری خطوط از پیش نوشته شده داریم که مربوط به درایو هایی هست که لینوکس روی اونها نصب شده، به عنوان سوَپ یا ریشه یا هوم، مثلا یه همچین فایلی:

فایل fstab در حالت کلی و اولیه روی کامپیوتر من!
فایل fstab در حالت کلی و اولیه روی کامپیوتر من!

این فایل دارای چند تا ردیف و ستونه، هر ردیف بیانگر درایویه که به آرچ متصل شده و ستون ها اینجورین که:

  • ستون file system: حاوی نام یا آی دی یکتا هر درایوه، برای فهمیدن اینکه پارتیشن هاتون چه نامی یا آی دی یکتایی دارن دستور های زیر رو میزنیم:
#(for GPT partitions)
blkid
#(for any partition)
lsblk -f

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

  • ستون dir: حاوی آدرسیه که دلتون میخواد درایو به اون آدرس وصل بشه، یعنی اگه تو ترمینال زدید
cd /example/dir

وارد درایو مورد نظر بشید.

ادرس شما دلخواهه اما برای فایل منیجر لینوکستون میتونید ادرس خاصی رو در نظر بگیرید. مثلا من از فایل منیجر nemo استفاده میکنم برای همین دایرکتوری هر پارتیشن رو اینجوری تعریف کردم:

/run/media/<USERNAME>/<PARTITION_NAME>

که یوزرنیم خودم و اسم پارتیشن مورد نظرمو در این قالب جایگذاری کردم. (البته نمیدونم این دایرکتوری برای همه فایل منیجر ها محل اتصال پارتیشن هاست یا فقط نمو اینجوریه)

  • ستون type: این ستون نوع پارتیشن رو مشخص میکنه، ما باید از نوع ntfs-3g استفاده کنیم.
  • ستون options: این ستون هر آن چیز اضافه ای که مربوط به پارتیشن ها میشه رو تو خودش تعریف میکنه و بیشتر برای تنظیم دسترسی ها کاربرد داره. مقادیر زیر رو برای این ستون در نظر میگیریم.
rw,relatime,uid=<YOUR_UID>,gid=<YOUR_GID>

که یوزر آی دی و گروپ آی دی رو در این قالب جاگذاری میکنیم.

برای پیدا کردن uid و gid میتونید از دستور زیر استفاده کنید که یوزرنیم خودتون رو در این دستور جایگذاری میکنید.

$ id <USERNAME>

معمولا یوزر آی دی و گروپ آی دی یه عددن.

در مورد جایگذاری کردن باید بگم که اون چیزی که بین <> قرار گرفته صرفا نام متغیره و شما نباید <> رو در دستور هاتون استفاده کنید!
  • ستون های dump و pass: طبق کاری که ما میخوایم انجام بدیم، هر دو رو ۰ میگذاریم، برای استفاده عادی این مقادیر همیشه باید ۰ باشن.

همین، تموم شد.برای هر درایوی که قراره به لینوکس متصلش کنید همین استاندار و روند رو طی کنید.

فایل fstab نهایی من اینجوری شد:

بعد از این تغییرات سیستمتونو یه بار ری استارت کنید و اگه لینوکستون بدون مشکل بالا اومد همه چیز باید حل شده باشه.

برای راهنمایی بیشتر و مطالعه کامل تر میتونید به داک ntfs-3g مراجعه کنید یا از داک آرچ fstab استفاده کنید.

موقع بوت اگر به اروری خوردید، به حالت ترمینال ریشه که وارد میشید، خط هایی که به fstab اضافه کردید رو پاک کنید همه چیز به حالت اولش بر میگرده ؛).