انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: سید حسین موسوی فرد در 19 شهریور 1400، 12:44 قظ
-
سلام
من رو کامپیوترم ۳ تا لینوکس دارم که با همشون کار می کنم. یه سری فایل هست که می خوام تو همه این لینوکس ها با هم سینک باشه. به ذهنم رسید که یه پارتیشن بسازم که تو یه فولدر mount شه ولی می خوام چند تا فولدر باشه (فایل های برنامه نویسی، چند رسانه ای و...)
مثلا /dev/sdXY/folder تو /home/user/folder مونت شه
گزینه پیشنهادیتون چیه؟
اگه میشه هم بنویسید که راه حل تون تو fstab چطور نوشته میشه.
-
اینکه فقط توی اون پارتیشن یه سری دایرکتوری باشن که خود فایل سیستم هندل میکنه به سادگی یه mkdir ولی اگه میخوام مثلا هرکدوم از اینا جدا مونت بشن ولی پارتیشن جدا نباشن zfs این قابلیت رو داره که هر pool میتونی چندین دیتاست داشته باشه که میتونن مستقل مونت بشن ولی ساپورت zfs روی لینوکس رسما مزخرفه. ولی خب درستش اینکه که یه پارتیشن داشته باشی و فقط توش یه سری فولدر باشه
برای اتوماتیک مونت کردن یه پارتیشن هم اینو بخون: https://help.ubuntu.com/community/Fstab
و برای اطلاعات بیشتر درباره ی zfs :
https://wiki.archlinux.org/title/ZFS
-
اول اینکه لینوکس فقط کرنله و گنو/لینوکس سیستمعامل هست. دوم اینکه ما فولدر نداریم، اسمشون دایرِکتوری هست. :)
شما چندین راه دارید. یکی اینکه از یه فایلسیستم معمولی مثل ext4 یا xfs استفاده کنید و بعد اون پارتیشن رو یهجا سوار (mount) کنید و هر دایرکتوری که لازم دارید رو، به صورت bind روی دایرکتوری مورد نظر سوار کنید. برای اینکار باید فایل fstab رو ویرایش کنید.اینجا (https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount#198591) توضیحات بیشتری درباره این داده. ولی برای اینکار، باید اول پارتیشن رو سوار کنید و نمیتونید جدا جدا هر دایرکتوری رو از پارتیشن سوار کنید. اول باید کل پارتیشن سوار بشه، بعد میتونید هر دایرکتوری که لازم بود رو به صورت bind روی یهجای دیگه سوار کنید.
راه دیگه اینه که از lvm روی اون پارتیشن استفاده کنید. اینجوری میتونید روی اون پارتیشن یه volume group درست کنید بعد توی اون volume group چندین logical volume بسازید و هر کدوم رو با یه فایلسیستم معمولی مثل ext4 یا xfs فرمت کنید. بعد میشه هر کدوم از این logical volume ها رو مثل یه پارتیشن سوار کرد. توی فایل fstab هم تنظیم کنید که اون logicalvolume ها کجا سوار بشن. این راه میتونه یکمی پیچیده باشه اگه شما تجربه زیادی نداشته باشید. ولی فکر کنم با gparted هم بتونید اینکار رو انجام بدید، در اینصورت خودش هم احتمالا چیزهای لازم رو توی فایل fstab مینویسه.
اینجوری میشه جدا جدا اونها رو سوار کرد.
یه راه دیگه این هست که از فایلسیستم btrfs استفاده کنید و چندین subvolume بسازید و بعد توی فایل fstab تنظیم کنید که این subvolume ها کجا سوار بشن. subvolume ها شبیه یه دایرکتوری هستند و اگه نسخه کرنل بالاتر از 4.18 باشه، میتونید مستقیم با دستور rm اونها رو پاک کنید و لازم نیست حتما از خود دستور btrfs استفاده کنید. برای استفاده از این، باید بسته btrfs-progs رو نصب کنید.
مثل بالا، اینجوری باز هم میتونید اونها رو جدا جدا سوار کنید.
راه دیگه همونطور که گفتند، استفاده از فایلسیستم zfs هست. بسته به اینکه چه توزیعی دارید، نصبش میتونه یکم کار داشته باشه. توی اوبونتو که کار سختی نیست. احتمالا ماژولهای اون رو دارید و برای استفاده ازش، باید بسته zfsutils-linux رو نصب کنید.
توی بقیه توزیعها، نصب یکم متفاوت هست. برای استفاده از اون، حتما لازم نیست فایل fstab رو تغییر بدید. خودش این قابلیت رو داره که خودکار سوار بشه. اینکه کجا سوار بشه هم از طریق خود دستور zfs قابل تنظیم هست. این راه میتونه یکم پیچیده باشه ولی نه زیاد.
باز هم مثل بالا میتونید اونها رو جدا جدا سوار کنید.
راه آخر هم این هست که به لینک از اون دایرکتوری به هرجا میدونید درست کنید. ولی دیگه نمیتونید جدا جدا سوارشون کنید. این راه از بقیه راحتتره. ولی دیگه نمیتونید هر کدوم رو جدا سوار کنید.
اگه فقط میخواهید با باز کردن Videos و Documents از منوی چپ فایلمنیجر، محتوای دایرکتوری دیگهای رو ببینید، میتونید مکانی که اونها اشاره میکنند رو تغییر بدید. اینکار با تغییر فایل زیر ممکن هست.
~/.config/user-dirs.dirs
یه نکته که نباید فراموش کنید این هست که اسم کاربر و uid اون کاربر که میخواهد این فایلها رو تغییر بده، توی هر سهتا سیستم یکی باشه تا به مشکل مربوط به دسترسی برنخورید. در غیر اینصورت فرقی نداره از چه روشی استفاده کردید.
ولی ساپورت zfs روی لینوکس رسما مزخرفه.
چرا؟ من خودم دبیان دارم روت اون رو هم گذاشتم روی zfs. از بقیه فایلسیستمها هم بهتر داره کار میکنه. (حداقل برای من)
قابلیتهای زیادی هم داره. پروژه اون هم توی گیتهاب فعاله.
فقط نصبش ممکنه توی بعضی توزیعها یکم کار داشته باشه و مجوزی که باهاش منتشر میشه (cddl) با مجوزی که کرنل باهاش منتشر میشه (بیشتر gpl) همخوانی نداره. به خاطر همین مستقیم توی کرنل لینوکس پیاده نشده. ولی خود بنیاد نرمافزار آزاد، مجوز cddl رو به عنوان یه مجوز آزاد قبول داره. دیگه oracle هم پشت openzfs نیست که گفت باعث تسلط oracle روی نرمافزار آزاد میشه. (oracle نسخه zfs مربوط به خودش رو داره که انحصاری هم هست)
-
سلام خدمت شما دوست دوست عزیز
چیزی که بنظر من میرسه اینه که در هر سه os از home مشترک استفاده کنید.
یا:
1- یا یه پارتیشن دیگه بسازید.
2- اون در یک جای دلخواه mount کنید.
3- بعد از mount توی سیستم از دستور:
sudo genfstab >> /etc/fstab
استفاده کنید.
بعد مراحل ۲ و ۳ رو در دوسیستم دیگر امتحان کنید.
ولی من اگر جای شما بودم(که نیستم) از همون home مشترک استفاده میکردم.
البته بازم نظر دوستان با تجربه تر متینه.
-
ایشون میخواهند هر دایرکتوری رو یهجای متفاوت داشته باشند. این راه که شما گفتید، اینکار رو انجام نمیده. حداق بایند از اون دایرکتوریها بهجای مورد نظر لینک درست کنند. توی روشهایی که بالا گفتم، این یکی از راحتترینهاست
-
سلام
سلام خدمت شما دوست دوست عزیز
چیزی که بنظر من میرسه اینه که در هر سه os از home مشترک استفاده کنید.
یا:
1- یا یه پارتیشن دیگه بسازید.
2- اون در یک جای دلخواه mount کنید.
3- بعد از mount توی سیستم از دستور:
sudo genfstab >> /etc/fstab
استفاده کنید.
بعد مراحل ۲ و ۳ رو در دوسیستم دیگر امتحان کنید.
ولی من اگر جای شما بودم(که نیستم) از همون home مشترک استفاده میکردم.
البته بازم نظر دوستان با تجربه تر متینه.
این راه خوبی نیست چون من روی هر config های لینوکس ها با هم قاطی میشه. ولی بازم ممنون.
اول اینکه لینوکس فقط کرنله و گنو/لینوکس سیستمعامل هست. دوم اینکه ما فولدر نداریم، اسمشون دایرِکتوری هست. :)
شما چندین راه دارید. یکی اینکه از یه فایلسیستم معمولی مثل ext4 یا xfs استفاده کنید و بعد اون پارتیشن رو یهجا سوار (mount) کنید و هر دایرکتوری که لازم دارید رو، به صورت bind روی دایرکتوری مورد نظر سوار کنید. برای اینکار باید فایل fstab رو ویرایش کنید.اینجا (https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount#198591) توضیحات بیشتری درباره این داده. ولی برای اینکار، باید اول پارتیشن رو سوار کنید و نمیتونید جدا جدا هر دایرکتوری رو از پارتیشن سوار کنید. اول باید کل پارتیشن سوار بشه، بعد میتونید هر دایرکتوری که لازم بود رو به صورت bind روی یهجای دیگه سوار کنید.
راه دیگه اینه که از lvm روی اون پارتیشن استفاده کنید. اینجوری میتونید روی اون پارتیشن یه volume group درست کنید بعد توی اون volume group چندین logical volume بسازید و هر کدوم رو با یه فایلسیستم معمولی مثل ext4 یا xfs فرمت کنید. بعد میشه هر کدوم از این logical volume ها رو مثل یه پارتیشن سوار کرد. توی فایل fstab هم تنظیم کنید که اون logicalvolume ها کجا سوار بشن. این راه میتونه یکمی پیچیده باشه اگه شما تجربه زیادی نداشته باشید. ولی فکر کنم با gparted هم بتونید اینکار رو انجام بدید، در اینصورت خودش هم احتمالا چیزهای لازم رو توی فایل fstab مینویسه.
اینجوری میشه جدا جدا اونها رو سوار کرد.
یه راه دیگه این هست که از فایلسیستم btrfs استفاده کنید و چندین subvolume بسازید و بعد توی فایل fstab تنظیم کنید که این subvolume ها کجا سوار بشن. subvolume ها شبیه یه دایرکتوری هستند و اگه نسخه کرنل بالاتر از 4.18 باشه، میتونید مستقیم با دستور rm اونها رو پاک کنید و لازم نیست حتما از خود دستور btrfs استفاده کنید. برای استفاده از این، باید بسته btrfs-progs رو نصب کنید.
مثل بالا، اینجوری باز هم میتونید اونها رو جدا جدا سوار کنید.
راه دیگه همونطور که گفتند، استفاده از فایلسیستم zfs هست. بسته به اینکه چه توزیعی دارید، نصبش میتونه یکم کار داشته باشه. توی اوبونتو که کار سختی نیست. احتمالا ماژولهای اون رو دارید و برای استفاده ازش، باید بسته zfsutils-linux رو نصب کنید.
توی بقیه توزیعها، نصب یکم متفاوت هست. برای استفاده از اون، حتما لازم نیست فایل fstab رو تغییر بدید. خودش این قابلیت رو داره که خودکار سوار بشه. اینکه کجا سوار بشه هم از طریق خود دستور zfs قابل تنظیم هست. این راه میتونه یکم پیچیده باشه ولی نه زیاد.
باز هم مثل بالا میتونید اونها رو جدا جدا سوار کنید.
راه آخر هم این هست که به لینک از اون دایرکتوری به هرجا میدونید درست کنید. ولی دیگه نمیتونید جدا جدا سوارشون کنید. این راه از بقیه راحتتره. ولی دیگه نمیتونید هر کدوم رو جدا سوار کنید.
اگه فقط میخواهید با باز کردن Videos و Documents از منوی چپ فایلمنیجر، محتوای دایرکتوری دیگهای رو ببینید، میتونید مکانی که اونها اشاره میکنند رو تغییر بدید. اینکار با تغییر فایل زیر ممکن هست.
~/.config/user-dirs.dirs
یه نکته که نباید فراموش کنید این هست که اسم کاربر و uid اون کاربر که میخواهد این فایلها رو تغییر بده، توی هر سهتا سیستم یکی باشه تا به مشکل مربوط به دسترسی برنخورید. در غیر اینصورت فرقی نداره از چه روشی استفاده کردید.
ولی ساپورت zfs روی لینوکس رسما مزخرفه.
چرا؟ من خودم دبیان دارم روت اون رو هم گذاشتم روی zfs. از بقیه فایلسیستمها هم بهتر داره کار میکنه. (حداقل برای من)
قابلیتهای زیادی هم داره. پروژه اون هم توی گیتهاب فعاله.
فقط نصبش ممکنه توی بعضی توزیعها یکم کار داشته باشه و مجوزی که باهاش منتشر میشه (cddl) با مجوزی که کرنل باهاش منتشر میشه (بیشتر gpl) همخوانی نداره. به خاطر همین مستقیم توی کرنل لینوکس پیاده نشده. ولی خود بنیاد نرمافزار آزاد، مجوز cddl رو به عنوان یه مجوز آزاد قبول داره. دیگه oracle هم پشت openzfs نیست که گفت باعث تسلط oracle روی نرمافزار آزاد میشه. (oracle نسخه zfs مربوط به خودش رو داره که انحصاری هم هست)
ممنون از راهنمایی تون. احتمالا روش btrfs رو انتخاب کنم. در ضمن این جور بحث ها راجع به این که لینوکس فقط کرنله و... فقط وقت تلف کردنه
اولا این که خود توروالدز گفته "گنو/لینوکس وقتی معنا میده که یه توزیع گنویی از لینوکس بسازند. مثلا دبیان لینوکس قابل قبول است"
دوما این که من برای ساده تر گفتن می گم لینوکس
سوما این که چه فرقی می کنه دایرکتوری با فولدر. درسته در مفهوم اصلی یه سری فرق دارند ولی مفهموم اصلی شون یه چیزه.
-
از روش btrfs و subvolume استفاده کردم.
خیلی عالی
ممنون از همه ی دوستان
-
فکر نمی کنید گنو ی سه حرفی خیلی ساده تره ؟
درسته همه چیز بازی کردن با کلماته ولی اگه اشتباه باهاشون بازی کنی اشتباهی توی بازی کردی و کلمات رو بهم زدی کلمات هم هر کدوم برای رسونده معنی ایجادشدن وقتی درست باهاشون بازی نکلی معنی اون کلمه ای که باهاش بازی کردی بهم می خوره وقتی هم بهم بخوره بازی درستی نکردی پس نتیجه می گیریم که گنو درسته نه لینوکس (هرکی فهمید من بهش جایزه می دهم :D (نه نمی دم )) به دور از شوخی لطفاً درست با کلمات بازی کنید تا هم کلمات باهاتون درست بازی کنن هم دیگران باهاتون درست رفتار کنن
دلم نمی خواد بحث کنم چون بحث طولانی رو نمی خونم
کتاب کلا منحل شد ولی خودم وقت بی کاری روش کار می کنم و توی انجمن برای استفاده می گذارم
-
اول اینکه لینوکس فقط کرنله و گنو/لینوکس سیستمعامل هست. دوم اینکه ما فولدر نداریم، اسمشون دایرِکتوری هست. :)
شما چندین راه دارید. یکی اینکه از یه فایلسیستم معمولی مثل ext4 یا xfs استفاده کنید و بعد اون پارتیشن رو یهجا سوار (mount) کنید و هر دایرکتوری که لازم دارید رو، به صورت bind روی دایرکتوری مورد نظر سوار کنید. برای اینکار باید فایل fstab رو ویرایش کنید.اینجا (https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount#198591) توضیحات بیشتری درباره این داده. ولی برای اینکار، باید اول پارتیشن رو سوار کنید و نمیتونید جدا جدا هر دایرکتوری رو از پارتیشن سوار کنید. اول باید کل پارتیشن سوار بشه، بعد میتونید هر دایرکتوری که لازم بود رو به صورت bind روی یهجای دیگه سوار کنید.
راه دیگه اینه که از lvm روی اون پارتیشن استفاده کنید. اینجوری میتونید روی اون پارتیشن یه volume group درست کنید بعد توی اون volume group چندین logical volume بسازید و هر کدوم رو با یه فایلسیستم معمولی مثل ext4 یا xfs فرمت کنید. بعد میشه هر کدوم از این logical volume ها رو مثل یه پارتیشن سوار کرد. توی فایل fstab هم تنظیم کنید که اون logicalvolume ها کجا سوار بشن. این راه میتونه یکمی پیچیده باشه اگه شما تجربه زیادی نداشته باشید. ولی فکر کنم با gparted هم بتونید اینکار رو انجام بدید، در اینصورت خودش هم احتمالا چیزهای لازم رو توی فایل fstab مینویسه.
اینجوری میشه جدا جدا اونها رو سوار کرد.
یه راه دیگه این هست که از فایلسیستم btrfs استفاده کنید و چندین subvolume بسازید و بعد توی فایل fstab تنظیم کنید که این subvolume ها کجا سوار بشن. subvolume ها شبیه یه دایرکتوری هستند و اگه نسخه کرنل بالاتر از 4.18 باشه، میتونید مستقیم با دستور rm اونها رو پاک کنید و لازم نیست حتما از خود دستور btrfs استفاده کنید. برای استفاده از این، باید بسته btrfs-progs رو نصب کنید.
مثل بالا، اینجوری باز هم میتونید اونها رو جدا جدا سوار کنید.
راه دیگه همونطور که گفتند، استفاده از فایلسیستم zfs هست. بسته به اینکه چه توزیعی دارید، نصبش میتونه یکم کار داشته باشه. توی اوبونتو که کار سختی نیست. احتمالا ماژولهای اون رو دارید و برای استفاده ازش، باید بسته zfsutils-linux رو نصب کنید.
توی بقیه توزیعها، نصب یکم متفاوت هست. برای استفاده از اون، حتما لازم نیست فایل fstab رو تغییر بدید. خودش این قابلیت رو داره که خودکار سوار بشه. اینکه کجا سوار بشه هم از طریق خود دستور zfs قابل تنظیم هست. این راه میتونه یکم پیچیده باشه ولی نه زیاد.
باز هم مثل بالا میتونید اونها رو جدا جدا سوار کنید.
راه آخر هم این هست که به لینک از اون دایرکتوری به هرجا میدونید درست کنید. ولی دیگه نمیتونید جدا جدا سوارشون کنید. این راه از بقیه راحتتره. ولی دیگه نمیتونید هر کدوم رو جدا سوار کنید.
اگه فقط میخواهید با باز کردن Videos و Documents از منوی چپ فایلمنیجر، محتوای دایرکتوری دیگهای رو ببینید، میتونید مکانی که اونها اشاره میکنند رو تغییر بدید. اینکار با تغییر فایل زیر ممکن هست.
~/.config/user-dirs.dirs
یه نکته که نباید فراموش کنید این هست که اسم کاربر و uid اون کاربر که میخواهد این فایلها رو تغییر بده، توی هر سهتا سیستم یکی باشه تا به مشکل مربوط به دسترسی برنخورید. در غیر اینصورت فرقی نداره از چه روشی استفاده کردید.
ولی ساپورت zfs روی لینوکس رسما مزخرفه.
چرا؟ من خودم دبیان دارم روت اون رو هم گذاشتم روی zfs. از بقیه فایلسیستمها هم بهتر داره کار میکنه. (حداقل برای من)
قابلیتهای زیادی هم داره. پروژه اون هم توی گیتهاب فعاله.
فقط نصبش ممکنه توی بعضی توزیعها یکم کار داشته باشه و مجوزی که باهاش منتشر میشه (cddl) با مجوزی که کرنل باهاش منتشر میشه (بیشتر gpl) همخوانی نداره. به خاطر همین مستقیم توی کرنل لینوکس پیاده نشده. ولی خود بنیاد نرمافزار آزاد، مجوز cddl رو به عنوان یه مجوز آزاد قبول داره. دیگه oracle هم پشت openzfs نیست که گفت باعث تسلط oracle روی نرمافزار آزاد میشه. (oracle نسخه zfs مربوط به خودش رو داره که انحصاری هم هست)
سه روز داشتم روی NixOS که ساپورت دیفالتم داره بهش ور میرفتم آخرم نصب نشد گراب درست روش
-
گراب از همه قابلیتهای zfs پشتیبانی نمیکنه و اگه همه قابلیتهای zfs موقع ساختن pool فعال باشه، گراب نمیتونه اون فایلسیستم zfs رو بخونه.
به خاطر همین اگه میخواهید /boot/ رو جدا نکنید، باید فقط قابلیتهایی رو موقع ساختن pool فعال کنید که گراب پشتیبانی میکنه. یا اینکه /boot/ رو جدا کنید و از فایلسیستمی استفاده کنید که گراب میتونه اون رو بخونه. (گراب باید بتونه محتویات /boot/ رو بخونه، چون کرنل، initramfs و تنظیمات خودش اونجا هستند.)
من راه دوم رو رفتم. یه پارتیشن 4Gib ساختم و از zfs روی اون استفاده کردم. فقط موقع ساختن pool فقط قابلیتهایی رو فعال کردم که گراب پشتیبانی میکرد.
میتونید هم از یه فایلسیستم معمولی لینوکس مثل ext4 استفاده کنید.
اینجا (https://openzfs.github.io/openzfs-docs/Getting%20Started/index.html) نصب اکثر توزیعها با روت روی zfs رو توضیح داده. میتونید ببینید. مال خود openZFS هست.
فعلا، گراب از این قابلیتهای zfs پشتیبانی میکنه. (احتمالا توی آینده تغییر میکنه)
async_destroy
bookmarks
embedded_data
empty_bpobj
enabled_txg
extensible_dataset
filesystem_limits hole_birth
large_blocks lz4_compress spacemap_histogram zpool_checkpoint
البته قابلیتهای دیگه هم هستند ولی میتونند ناپایدار باشند و تقریبا بهکار /boot/ نمیاند.
پس باید pool رو اینجوری بسازید.
zpool create -d \
-o feature@async_destroy=enabled \
-o feature@bookmarks=enabled \
-o feature@embedded_data=enabled \
-o feature@empty_bpobj=enabled \
-o feature@enabled_txg=enabled \
-o feature@extensible_dataset=enabled \
-o feature@filesystem_limits=enabled \
-o feature@hole_birth=enabled \
-o feature@large_blocks=enabled \
-o feature@lz4_compress=enabled \
-o feature@spacemap_histogram=enabled \
-o feature@zpool_checkpoint=enabled \
...
بهجای ... هم بقیه تنظیمات مربوط به فایلسیستم رو مینویسید. (مثل رمزنگاری، فشردهسازی، mountpoint، اجازه سوار شدن و بقیه چیزها)
همون لینکی که گذاشتم توضیحات کاملی داده.
-
از روش btrfs و subvolume استفاده کردم.
خیلی عالی
ممنون از همه ی دوستان
اگه دیگه مشکلی درباره این ندارید، یه (حل شد) به عنوان موضوع اضافه کنید.