انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: سوالاتی درباره btrfs  (دفعات بازدید: 1169 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
سوالاتی درباره btrfs
« : 17 خرداد 1401، 10:16 ق‌ظ »
سلام
اگه من پارتیشن dev/sda2/ رو با luks1 رمزگذاری کرده باشم و اون ظرف رمزنگاری شده  در dev/mapper/awem/ در دسترس باشه،
و من اون ظرف رو با دستور زیر با btrfs فرمت کنم.
mkfs.btrfs -L argonpc /dev/mapper/awem
و subvolume ها رو بصورت زیر بسازم.
@     mountpoint=/
@home    mountpoint=/home
@boot     mountpoint=/boot
@var     mountpoint=/var
@snapshots     mountpoint=/.snapshots
@usr     mountpoint=/usr
@tmp     mountpoint=/tmp
@sbin     mountpoint=/sbin
@opt     mountpoint=/opt
@media     mountpoint=/media
@lib     mountpoint=/lib
@etc     mountpoint=/etc
@dev     mountpoint=/dev
@bin     mountpoint=/bin
@test     mountpoint=/test
@projects     mountpoint=/projects
سوال اول :
مثلا اگه وقتی بخوام یه عکس فوری از ریشه بگیرم از کل subvolume ها عکس فوری گرفته میشه یا فقط subvolume ریشه و دایرکتوری هایی که درونشن؟
سوال دوم :
اگه مثلا من یه عکس فوری از ریشه گرفتم و بعد از اون ریشه خراب شد.
چجوری باید عکس فوری رو برگردونم؟
سوال سوم :
و اینکه اگه بخوام مجدد یه سیستم عامل روی این subvolume ها نصب کنم و همه رو حذف کنم و دوباره بسازم و  فقط خانه رو سالم نگه دارم بعد نصب یه سیستم عامل دیگه اون چجوری رمزی که روی پارتیشن ها گذاشتم رو میفهمه؟ خود cryptsetup که رو اون توزیع نصب شده میفهمه که رمزنگاری شده یا نه؟
« آخرین ویرایش: 22 خرداد 1401، 09:32 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #1 : 18 خرداد 1401، 12:50 ق‌ظ »
۱- فقط از subvolume ریشه snapshot گرفته میشه.

۲- تا جایی که یادمه باید کامپیوتر رو راه‌اندازی مجدد کنید و توی خط فرمان کرنل، پارامتر root رو به subvolume درست تغییر بدید.
برای آرچ لینوکس بسته grub-btrfs هست که snapshot ها رو به منوی گراب اضافه می‌کنه.
snapper هم هست که کار مربوط به snapshot گیری خودکار رو انجام بده.
توی آرچ لینوکس بسته snap-pac هم هست که قبل از هر بروزرسانی با pacman، یه snapshot از روت ایجاد می‌کنه.
snap-pac-grub توی aur وجود داره که بعد از اینکه snap-pac کار رو انجام داد، منوی گراب رو آپدیت کنه. به هر دو بسته snap-pac و grub-btrfs وابسته هست.

توی دبیان هم چیز‌هایی شبیه اینها بود، اسمشون رو یادم نیست.

۳- به نظر میاد درست نمی‌دونید که luks چجوری کار می‌کنه.
luks یه کلید لازم داره تا اطلاعات رو باهاش رمزنگاری کنه. وقتی که یه جایی رو به luks فرمت می‌کنید، یه کلید اصلی به طور تصادفی ساخته میشه که همه اطلاعات با اون رمزنگاری و رمزگشایی میشن. این کلید تغییر نمی‌کنه، مگه اینکه از luks بخواهید یه کلید اصلی دیگه بسازه و اطلاعات رو دوباره با اون کلید جدید رمزنگاری کنه.
این کلید اصلی مستقیم در اختیار کاربر قرار نمی‌گیره. وقتی که برای luks یه کلید (مثلا رمز عبور یا یه key file) تعیین می‌کنید، اون کلید به عنوان کلید اصلی استفاده نمیشه.
نحوه کار اینجوریه که کلید اصلی، توسط کلیدی که وارد می‌کنید رمزنگاری، و روی header های luks ذخیره میشه.
وقتی کلید رو میدید، اول کلید اصلی با استفاده از کلیدی که دادید رمزگشایی میشه و بعد با اون کلید اصلی، اطلاعات واقعی رمزنگاری و رمزگشایی میشن.

خوبی این روش اینه که می‌تونید چندین کلید داشته باشید. برای هر کلیدی که شما می‌سازید، اون کلید اصلی با همون کلید موردنظر، رمزنگاری میشه و روی header های luks قرار می‌گیره. تا جایی که یادمه luks2 می‌تونه حداکثر ۸ تا کلید متفاوت داشته باشه. مطمئن نیستم.

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

با توجه به اینها، شما یا رمز دارید یا key file.  وقتی هم یه توزیع دیگه نصب می‌کنید، باید حداقل یکی از این ۸ تا کلید‌ رو داشته باشید تا بتونید جایی که رمزنگاری شده هست رو باز و اون subvolume های فایل‌سیستم btrfs رو سوار کنید.


به غیر از چیز‌های بالا، چرا /usr/ یا /lib/ یا خیلی چیز‌های دیگه مثل /bin/ یا /sbin رو جدا کردید و هر کدوم رو گذاشتید روی یه subvume مجزا؟

مدتیه توی اکثر توزیع‌ها، دایرکتوری‌های /lib/ /sbin/ /bin/ /lib64/ /lib32/ /libx32/ یه لینک به دایرکتوری متناظر توی /usr/ هستند. مثلا /lib/ یه لینک به usr/lib هست.
پس به همین دلیل لازم نیست /sbin/ /bin/ و /lib/  رو جدا کنید. فکر کنم اصلا نباید در این حالت اونها رو جدا کنید.

روی /dev/ هم یه فایل‌سیستم‌مجازی devtmpfs سوار میشه و لازم نیست جداش کنید. از اونجایی که /dev/ توی مراحل اولیه بوت، توسط initramfs سوار میشه، فکر کنم تخصیص دادن یه subvolume به /dev/ باعث مشکل میشه.
به این دلیل که اون subvolume توی مراحل پایانی بوت سوار میشه و با این سوار شدن، محتوای قبلی /dev/ پوشیده میشه و اونها غیر قابل دسترس میشن. وقتی هم این اتفاق بیوفته، خیلی از برنامه‌ها نمی‌تونند کار کنند..

/media/ هم لازم نیست جدا باشه. بعضی ابزار‌ها مثل udisk چیز‌ها رو روی یه سری زیردایر‌کتوری توی /media/ سوار می‌کنند. در اصل /media/ یه جایی هست تا سوار کردن‌های موقت روی اون انجام بشه.

اینکه /tmp/ رو جدا کنید، مشکلی نداره. بعضی جاها هم پیشنهاد میشه که /tmp/ رو جدا کنید تا بتونید برای اون quota در نظر بگیرید تا یه کسی نتونه اون رو کامل پر کنه و برای سیستم مشکل ایجاد کنه.

/etc/ رو چرا جدا کردید؟ /etc/ رو هم بذارید جز / باقی بمونه.

/usr/ رو هم لازم نیست جدا کنید. توی اکثر توزیع‌ها، تقریبا همه چیز‌های سیستم‌عامل داخل /usr/ قرار داره (به غیر از خود کرنل و پیکربندی‌های داخل /etc/)  این چیز‌هایی که داخل /usr/ قرار دارند، باید با چیز‌های داخل /etc/ هماهنگ باشند.
اینکه هر کدوم توی subvolume جدا باشند باعث میشه موقعی که یه snapshot از روت گرفتید و بعد وضعیت رو به اون snapshot  برگردوندید، چیز‌های داخل /usr/ و /etc/ با هم هماهنگ نباشند و مشکل ایجاد بشه.
یه راه حل اینه که یه سازوکاری ایجاد کنید که این snapshotها رو به درستی مدیریت کنه. خود این سازوکار باعث افزایش پیچیدگی میشه. گزینه بهتر اینه که اصلا /usr/ رو از / جدا نکنید تا به این سازوکار هم نیاز نشه.

به همون دلایل بالا، /var/ رو هم جدا نکنید. مدیربسته معمولا یه پایگاه داده از بسته‌ها، فایل‌هاشون و وضعیت اونها داخل /var/lib/ نگهداری می‌کنه. اینکه پایگاه داده مدیربسته با وضعیت فعلی سیستم هماهنگ نباشه، می‌تونه به شدت مشکل درست کنه.
اگه دایرکتوری‌های مجزا توی /var/lib/ رو بر اساس نیاز جدا کنید، بهتره. مثلا من خودم /var/lib/libvirt/ و /var/lib/docker/ که به ترتیب مربوط به libvirt و docker هستند رو جدا کردم تا اطلاعات مربوط به اونها موقع برگردوندن یه snapshot از روت، به حالت قبل برنگرده.

/boot/ رو هم معمولا لازم نیست جدا کنید. دلیل خاصی برای اینکار دارید؟ اگه دلیل خاصی ندارید، بهتره بذارید جز همون / باقی بمونه.

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

گزارش‌های (لاگ‌ها) سرویس‌ها، کرنل و اینجور چیز‌ها معمولا توی /var/log/ ذخیره میشه. بهتره که /var/log/ رو اگه می‌خواهید جدا کنید. اینجوری نوقع برگردوندن یه snapshot، گزارش‌های جدید از دست نمیرن.

/var/tmp/ هم که مثل /tmp/ می‌مونه هم میشه جدا کرد تا بتونید برای اون quota تعیین کنید.

اگه هوم روت (root) رو هم جدا کنید بد نیست. انتخابش با خودتون هست.

می‌تونید از یه tmpfs برای /var/tmp/ و /tmp/ استفاده کنید تا سرعت خوندن و نوشتن فایل‌های موقتی بیشتر بشه، به قیمت اینکه اون فایل‌های موقتی روی رم ذخیره بشن و رم رو اشغال کنند. (اگه رم کمی دارید، گزینه مناسبی نیست)

با توجه به این چیز‌ها،  این subvolume ها حتما رو بسازید.
@   mountpoint=/
@home   mountpoint=/home
@snapshots   mountpoint=/.snapshots
subvolume با اسم @ برای روت استفاده میشه به طوری که /usr/ و /boot/ و /var/ جزیی از اون باقی می‌مونند.
 subvolume با اسم home@ هم برای /home/ استفاده میشه. می‌تونید برای هوم هر کاربر هم subvolume جدا بسازید.
لازم نیست اسم subvolume ها حتما با علامت @ شروع بشه. هر چیزی می‌تونه باشه. (البته به غیر از کاراکتر NULL و /)
مثلا می‌تونید اسم subvolume روت رو بذارید rootfs یا هر چی که می‌خواهید، فقط یه اسمه که باید همه جا از اون استفاده کنید.
برای subvolume هوم هم همینطور؛ مثلا اسمش رو بذارید homedir به جای home@.

اگه من باشم، این subvolume ها رو هم میسازم:
@tmp   mountpoint=/tmp
@home-root   mountpoint=/root
@var-tmp   mountpoint=/var/tmp
@var-log   mountpoint=/var/log

اگه می‌خواهید همزمان چنتا توزیع نصب کنید، بهتره هر کدوم یه subvolume جدا برای /var/log/ داشته باشند تا گزارش‌های اونها با هم به تداخل نخوره.
مثلا debian-var-log@ برای دبیان و manjaro-var-log@ برای مانجارو.

چیز‌های دیگه‌ای هم هستند که قابلیت‌هایی شبیه btrfs دارند. برای مثال lvm، ولی قابلیت‌هاش کمی کمتر از btrfs هست. هرچند به دلیل اینکه مدت زیادی استفاده شده، پایداری خیلی خوبی داره.
فایل‌سیستم bcachefs هم هست ولی هنوز قابلیت‌های مهم اون پایدار نشده و ماژول‌های مربوط بهش هم همراه کرنل نیست. باید خودتون جدا ماژول‌هاش رو از کد منبع کامپایل کنید.
فایل‌سیستم zfs هم هست که از نظر من از همه گزینه‌ها بهتره. قابلیت‌های بیشتری نسبت به btrfs داره و اکثر ویژگی‌های اون هم پایداره.
خود فایل‌سیستم به صورت داخلی از رمزنگاری پشتیبانی می‌کنه، بدون نیاز به luks؛ البته یه قابلیت مربوط به این رمزنگاری مشکل داره. ولی این مشکل فقط توی بعضی شرایط خاص روی میده.
مشکل دیگه اون اینه که که با مجوز cddl منتشر میشه. این مجوز با مجوز gpl2 که اکثر کد کرنل لینوکس تحت این مجوز منتشر میشه ناسازگاره و به خاطر همین zfs همراه کرنل لینوکس نیست و باید جدا کامپایل بشه.
اما توی اکثر توزیع‌ها در قالب یه بسته موجوده که dkms اون رو کامپایل نصب و مدیریت کنه. به همین دلیل نصبش کار سختی نیست. اوبونتو اون رو به صورت کامپایل شده همراه کرنلش قرار داده.
مورد بعدی اینه که بیشتر توسعه پروژه zfs on linux توسط سازمان llnl، زیرمجموعه‌ای از وزارت انرژی آمریکا انجام میشه. اکثر تحقیقات این وزارت در حوزه فیزیک هسته‌ای و جنگ‌افزار‌های هسته‌ای هست.  (فردا از گونی سردر میارم  ;D)
« آخرین ویرایش: 18 خرداد 1401، 12:17 ب‌ظ توسط Dragon- »
میدونید که زکات علم نشر آن است

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #2 : 18 خرداد 1401، 01:53 ق‌ظ »
عالی بود 👌 سپاس
تاپیک های منم که فک کنم رفتن اخر لیست اولویت ها 🥲
آرچ و گنوم!

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #3 : 18 خرداد 1401، 08:57 ق‌ظ »
واقعا ممنونم. خیلی چیزا یاد گرفتم.  :D
« آخرین ویرایش: 22 خرداد 1401، 09:32 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #4 : 18 خرداد 1401، 02:43 ب‌ظ »
سلام
یه سوال دیگه هم داشتم.
مثلا میشه subvolume های زیر رو ساخت
@manjaro
@debian
@home

و مانجارو رو روی @manjaro و دبیان رو روی @debian و برای خانه هم از @home به صورت مشترک استفاده کرد؟

و اینکه من قابلیت فشرده سازی zstd و قابلیت cow فایل سیستم btrfs رو نیاز دارم آیا استفاده از اینا ناپایداری ایجاد میکنه؟


سوال بعدی :
می‌تونید از یه tmpfs برای /var/tmp/ و /tmp/ استفاده کنید تا سرعت خوندن و نوشتن فایل‌های موقتی بیشتر بشه، به قیمت اینکه اون فایل‌های موقتی روی رم ذخیره بشن و رم رو اشغال کنند. (اگه رم کمی دارید، گزینه مناسبی نیست)

رم ۱۶ گیگابایت فکر نکنم کم باشه.
میشه توضیح بدید چجوری باید برای /var/tmp/ و /tmp/ از tmpfs استفاده کنم؟
و اصلا این tmpfs چی هست؟ فایل سیستم مجازیه؟

/var/tmp/ هم که مثل /tmp/ می‌مونه هم میشه جدا کرد تا بتونید برای اون quota تعیین کنید.
چجوری براشون quota تعیین کنم؟

سوال بعدی بعدی :
اگه دایرکتوری های زیر رو جدا کنم مشکلی پیش نمیاد؟
/var/cache/
/var/log/
/var/tmp/
« آخرین ویرایش: 22 خرداد 1401، 09:32 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #5 : 19 خرداد 1401، 04:21 ب‌ظ »
سلام
یه سوال دیگه هم داشتم.
مثلا میشه subvolume های زیر رو ساخت
@manjaro
@debian
@home

و مانجارو رو روی @manjaro و دبیان رو روی @debian و برای خانه هم از @home به صورت مشترک استفاده کرد؟
بله میشه.
اگه دبیان پایدار نصب کنید، به احتمال خیلی زیاد نسخه برنامه‌های اون با نسخه برنامه‌های مانجارو متفاوته. ممکنه نسخه‌های متفاوت یه برنامه، از پیکربندی‌های متفاوتی استفاده کنند.
به همین دلیل شاید با داشتن هوم مشترک بین دوتا توزیع با نسخه نرم‌افزار‌های متفاوت مشکل پیش بیاد. مثلا دبیان ۱۱ از گنوم ۳.۳۸ استفاده می‌‌کنه در حال که فکر کنم نسخه فعلی گنوم توی مانجارو ۴۲ باشه.
احتمالا پیکربندی‌ها عوض شده و هوم مشترک مشکل بوجود بیاره. بهتره حداقل دایرکتوری‌های config. و‌local. توی هوم، بین توزیع‌ها متفاوت باشه.

نقل‌قول
و اینکه من قابلیت فشرده سازی zstd و قابلیت cow فایل سیستم btrfs رو نیاز دارم آیا استفاده از اینا ناپایداری ایجاد میکنه؟
این دوتا قابلیت btrfs پایدار هستند.

نقل‌قول
میشه توضیح بدید چجوری باید برای /var/tmp/ و /tmp/ از tmpfs استفاده کنم؟
می‌تونید با دستور mount یه tmpfs رو یه جایی سوار کنید. لازمه که برای دستور mount مشخص کنید که نوع فایل‌سیستم tmpfs هست. اینکار با دادن آپشن t- یا type-- ممکن هست. t- معادل کوتاه type-- هست.
مثلا اینجوری می‌تونید یه tmpfs روی /var/tmp/ سوار کنید:
mount -t tmpfs tmpfs /var/tmpاون tmpfs دومی فقط یه اسم هست، هر چیز دیگه‌ای می‌تونید بنویسید.
حواستون باشه که وقتی یه چیزی رو روی یه دایرکتوری سوار می‌کنید، محتویات قبلی اون دایرکتوری از دسترس خارج میشن، تا زمانی که اون چیز unmount بشه.
ممکنه فایل‌های موقتی مهمی توی /var/tmp/ باشه و این سوار کردن باعث مشکل بشه، هرچند خیلی بعیده این اتفاق بیوفته.

برای اینکه سوار شدن به صورت خودکار انجام بشه، باید چیز‌های مورد نیاز رو به فایل fstab اضافه کنید.
ساختار فایل fstab شامل ۶ قسمت هست. لازمه ۴ قسمت اول قسمت مشخص بشن، اگه دو قسمت آخر مشخص نشن، عدد ۰ برای اونها در نظر گرفته میشه.
قسمت‌ها توسط فاصله از هم جدا میشه. خط‌های خالی و همینطور خطوطی که با علامت # شروع میشن نادیده گرفته میشن.
اگه یه قسمت خودش شامل فاصله باشه، یا باید اون قسمت رو گذاشت بین " " یا ' ' یا اینکه یه علامت \ گذاشت قبل هر فاصله.


قسمت اول مشخص می‌کنه که چی قراره سوار بشه. توی  حالت مربوط به tmpfs، هر اسمی بذارید فرقی نمی‌کنه. مثل دستور mount می‌مونه.

قسمت دوم مشخص می‌کنه که این چیز باید کجا سوار بشه.

قسمت سوم نوع فایل‌سیستم رو مشخص می‌کنه. بسته به شرایط ممکنه لازم باشه دقیقا نوع فایل‌سیستم رو مشخص کنید (برای tmpfs لازمه) ممکن هم هست لازم نباشه، در این حالت همچنان می‌تونید به طور دقیق نوع فایل‌سیستم رو مشخص کنید، می‌تونید هم auto رو بنویسید تا نوع فایل‌سیستم به طور خودکار شناسایی بشه.

قسمت چهارم آپشن‌های سوار شدن رو مشخص می‌کنه. مثلا rw برای اینکه فایل‌سیستم به صورت خواندنی و نوشتنی سوار بشه یا ro برای اینکه به صورت فقط خواندنی سوار بشه یا size برای اینکه حداکثر اندازه رو مشخص کنید
اگه می‌خواهید از پیش‌فرض‌ها استفاده بشه، می‌تونید defaults رو بنویسید. می‌تونید همراه defaults آپشن‌های دیگه هم بنویسید.
اگه یه آپشن که می‌تونه مقدار بگیره، برای مثال compress توی btrfs، چند بار نوشته بشه؛ آخرین مقدار مشخص شده مورد استفاده قرار می‌گیره.

قسمت پنجم مشخص می‌کنه که آیا با استفاده از دستور dump از فایل‌سیستم پشتیبانی گرفته بشه یا نه. این قسمت دیگه منسوخ شده و تا حالا جایی ندیدم که ۰ نباشه. هرچند این یکی روی سطح بلوک‌ها کار می‌کنه و اصلا فکر نکنم بشه برای tmpfs ازش استفاده کرد.

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

با توجه به اینها، چیز‌هایی که باید به فایل fatab اضافه کنید میشه این:
tmpfs      /tmp     tmpfs      rw,mode=1777,nosuid,nodev,size=500mb,defaults      0      0
tmpfs      /var/tmp      tmpfs      rw,mode=1777,nosuid,nodev,size=500m,defaults      0      0
شاید بخواهید فاصله‌ها رو خودتون تنظیم یا با tab عوضشون کنید تا منظم‌تر بشن. اینکار توی عملکرد تاثیری نداره.

اندازه tmpfs به ۵۰۰Mib محدود شده. این به این معنی نیست که tmpfs همین الان ۵۰۰Mib اشغال کرده، بلکه به این معنیه که فقط میذاره تا ۵۰۰Mib اطلاعات توی اون tmpfs ذخیره بشه.اگه size رو مشخص نکنید، به طور پیش‌فرض، محدودیت میشه نصف رم. می‌تونید size رو تغییر بدید.

mode برای این لازمه تا دسترسی درست برای /tmp/ و /var/tmp/ حفظ بشه. nodev و nosuid هم پارامتر‌های امنیتی هستند تا از ایجاد block device و همینطور موثر بودن بیت‌های setuid و setgid توی دایرکتوری‌هایی که همه می‌تونند داخل اونها چیز بنویسند جلوگیری بشه.

می‌تونید توی تنظیمات systemd هم تنظیم کنید که سوار کردن رو انجام بده. ولی به نظرم بهتره از همون فایل fstab استفاده کنید، به جای اینکه برید سراغ چیز‌هایی که فقط روی systemd کار میدهند.

نقل‌قول
و اصلا این tmpfs چی هست؟ فایل سیستم مجازیه؟
یه فایل‌سیستم‌مجازی هست که بیشتر کد اون با کد مربوط به قابلیت cache کرد کرنل یکی هست. ممکنه در صورتی که رم پر بشه، محتویات tmpfs به swap منتقل بشن.
اگه نمی‌خواهید اینجوری بشه، می‌تونید از ramfs استفاده کنید. ولی نمی‌تونید برای ramfs محدودیت اندازه مشخص کنید. تا جایی که حافظه به طور کامل پر بشه، اجازه میده که اطلاعات داخلش بنویسید.

نقل‌قول
چجوری براشون quota تعیین کنم؟
در مورد tmpfs نمی‌دونم اصلا چنین قابلیتی داره یا نه. در مورد بقیه فایل‌سیستم‌ها، بستگی داره که چی باشه. تا جایی که می‌دونم هر کدوم روش متفاوتی برای اینکار داره.

نقل‌قول
اگه دایرکتوری های زیر رو جدا کنم مشکلی پیش نمیاد؟
/var/cache/
/var/log/
/var/tmp/
نه. نباید مشکلی پیش بیاد. /var/cache/ رو هم اگه جدا کنید، اتفاقی نمی‌افته. بهتره فشرده‌سازی رو برای /var/cache/ غیرفعال کنید چون معمولا بیشتر فایل‌های داخل اونجا به طور پیش‌فرض یا فشرده هستند یا اگه نباشند، یه سری فایل موقتی‌اند.
« آخرین ویرایش: 19 خرداد 1401، 06:22 ب‌ظ توسط Dragon- »
میدونید که زکات علم نشر آن است

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #6 : 19 خرداد 1401، 06:13 ب‌ظ »
پس برای /var/tmp/ و /tmp/ که از نوع tmpfs باشن نیازی نیست فضای روی دیسک بهشون تخصیص داده بشه؟
و اینکه 4GB برای هر کدوم از این دو تا کافیه؟
« آخرین ویرایش: 22 خرداد 1401، 09:33 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #7 : 19 خرداد 1401، 06:22 ب‌ظ »
لازم نیست پارتیشن جدا بهش تخصیص بدید. از اونجایی که از btrfs استفاده می‌کنید، می‌تونید هر وقت خواستید یه subvolume برای اونها بسازید.
4Gib باید کافی باشه. می‌تونید size رو هم مشخص نکنید تا به اندازه نصف رم جا داشته باشه.

توی ارسال بالا یکی از آپشن‌ها رو اشتباه نوشتم. وقتی آپشن size برای tmpfs رو مشخص می‌کنید، می‌تونید از پسوند‌هایی مثل m برای MiB و k برای KiB و g برای GiB استفاده کنید.
توی قسمت آپشن‌ها مربوط به فایل fstab، اشتباهی به جای size=500m نوشتم size=500mb، حواستون به این باشه. اون ارسال رو ویرایش می‌کنم.
میدونید که زکات علم نشر آن است

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #8 : 19 خرداد 1401، 06:48 ب‌ظ »
یعنی باید برای هرکدوم یه subvolume بسازم؟
یا اینکه وقتی از نوع tmpfs هستن، مثل اینه که یه پارتیشن با اون روی رم ساخته میشه؟
« آخرین ویرایش: 22 خرداد 1401، 09:33 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #9 : 19 خرداد 1401، 06:58 ب‌ظ »
اگه می‌خواهید محتویات موقتی /tmp/ و /var/tmp/ روی دیسک ذخیره بشه، برای اونها subvolume بسازید.
اگه می‌خواهید روی رم ذخیره بشن، از tmpfs استفاده کنید.
میدونید که زکات علم نشر آن است

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #10 : 19 خرداد 1401، 07:00 ب‌ظ »
بسیار ممنونم که با حوصله به سوالات بنده پاسخ میدید.
« آخرین ویرایش: 22 خرداد 1401، 09:34 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #11 : 19 خرداد 1401، 07:20 ب‌ظ »
اگه برای ساخت فایل fstab به ترتیب دستورات زیر رو وارد کنم مشکلی نیست؟
echo "UUID=$(lsblk -dno UUID /dev/sda3) / btrfs autodefrag,compress=zstd:9,subvol=@,ssd,datacow 0 1" >> /mnt/etc/fstab


echo "UUID=$(lsblk -dno UUID /dev/sda1) /boot/efi vfat defaults 0 2" >> /mnt/etc/fstab


echo "UUID=$(lsblk -dno UUID /dev/sda2) none swap defaults 0 2" >> /mnt/etc/fstab


echo "UUID=$(lsblk -dno UUID /dev/sda3) /home btrfs autodefrag,compress=zstd:9,subvol=@home,ssd,datacow 0 2" >> /mnt/etc/fstab


echo "UUID=$(lsblk -dno UUID /dev/sda3) /.snapshots btrfs autodefrag,compress=zstd:9,subvol=@snapshots,ssd,datacow 0 2" >> /mnt/etc/fstab


echo "varfs /var/tmp tmpfs rw,mode=1777,nosuid,nodev,size=4g,defaults 0 0" >> /mnt/etc/fstab


echo "tmpfs /tmp tmpfs rw,mode=1777,nosuid,nodev,size=4g,defaults 0 0" >> /mnt/etc/fstab

echo "UUID=$(lsblk -dno UUID /dev/sda3) /test btrfs autodefrag,compress=zstd:9,subvol=@test,ssd,datacow 0 2" >> /mnt/etc/fstab


echo "UUID=$(lsblk -dno UUID /dev/sda3) /projects btrfs autodefrag,compress=zstd:9,subvol=@projects,ssd,datacow 0 2" >> /mnt/etc/fstab

پارتیشن بندی به صورت زیره :
/dev/sda1         1Gib        ESP
/dev/sda2          6Gib         SWAP
/dev/sda3          505Gib       System Partition
« آخرین ویرایش: 22 خرداد 1401، 09:34 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #12 : 20 خرداد 1401، 11:54 ق‌ظ »
ساختار فایل fstab با پارتیشن‌بندی شما نمی‌خونه.
توی فایل fstab تعریف کردید sda3 برای swap استفاده بشه در حالی که برای پارتیشن‌بندی گفتید sda2 قراره swap باشه.
توی فایل fstab تعریف کردید که sda2 همون فایل‌سیستم btrfs هست ولی توی پارتیشن‌بندی به نظر میاد که sda3 برای اینکار استفاده شده.
میدونید که زکات علم نشر آن است

آفلاین آرگون

  • Sr. Member
  • *
  • ارسال: 263
  • جنسیت : پسر
  • 我是氩
پاسخ : سوالاتی درباره btrfs
« پاسخ #13 : 20 خرداد 1401، 12:26 ب‌ظ »
اوه، بله درست میگید
موقع نوشتن تو اینجا اشتباه نوشتم.
« آخرین ویرایش: 22 خرداد 1401، 09:34 ق‌ظ توسط Argon »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. انجمن دکمه تشکر نداره

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : سوالاتی درباره عکس فوری btrfs
« پاسخ #14 : 20 خرداد 1401، 12:46 ب‌ظ »
خب الان هر پارتیشن قراره برای چی استفاده بشه؟
میدونید که زکات علم نشر آن است