.TH "grub-btrfs" "8" .SH "نام (NAME)" grub-btrfs \- تولید خودکار ورودی‌های منوی GRUB برای اسنپ‌شات‌های Btrfs .SH "خلاصه دستور (SYNOPSIS)" .PP \fC/etc/grub.d/41_snapshots\-btrfs [\-V, \-\-version]\fP .SH "توضیحات (DESCRIPTION)" .PP با افزودن «اسنپ‌شات‌های btrfs» به منوی grub، کارایی آن را بهبود می‌بخشد. .PP می‌توانید سیستم خود را از طریق منوی grub از روی یک «اسنپ‌شات» راه‌اندازی (بوت) کنید. از اسنپ‌شات‌های دستی، snapper و timeshift پشتیبانی می‌کند. ویژگی‌های grub-btrfs: .IP \(em 4 فهرست کردن خودکار اسنپ‌شات‌های موجود در پارتیشن ریشه (btrfs). .IP \(em 4 تشخیص خودکار در صورتی که /boot در یک پارتیشن مجزا باشد. .IP \(em 4 تشخیص خودکار هسته، initramfs و ریزکدهای intel/amd در دایرکتوری /boot واقع در اسنپ‌شات‌ها. .IP \(em 4 ایجاد خودکار «menuentry» متناظر در grub.cfg. .IP \(em 4 تشخیص خودکار نوع/برچسب‌ها و توضیحات/یادداشت‌های اسنپ‌شات‌های snapper/timeshift. .IP \(em 4 تولید خودکار grub.cfg در صورت استفاده از سرویس systemd ارائه‌شده. .SH "پیکربندی (CONFIGURATION)" .PP ابزار grub-btrfs از طریق فایل \fC/etc/default/grub\-btrfs/config\fP پیکربندی می‌شود. گزینه‌های ممکن عبارتند از: .SS "عمومی (GENERAL)" .SS "\fCGRUB_BTRFS_DISABLE\fP" .PP در صورت تنظیم روی true، ابزار grub-btrfs غیرفعال می‌شود. .IP \(em 4 پیش‌فرض: “false” .IP \(em 4 مثال: \fCGRUB_BTRFS_DISABLE="true"\fP .SS "\fCGRUB_BTRFS_TITLE_FORMAT\fP" .PP ورودی‌های زیرمنوی اسنپ‌شات در Grub بر اساس این خط اضافه می‌شوند. تغییر ترتیب فیلدها امکان‌پذیر است. .IP \(em 4 پیش‌فرض: (“date” “snapshot” “type” “description”) .IP \(em 4 مثال: \fCGRUB_BTRFS_TITLE_FORMAT=("date" "snapshot" "type" "description")\fP .SS "\fCGRUB_BTRFS_LIMIT\fP" .PP حداکثر تعداد اسنپ‌شات‌ها در زیرمنوی اسنپ‌شات‌های GRUB. .IP \(em 4 پیش‌فرض: “50” .IP \(em 4 مثال: \fCGRUB_BTRFS_LIMIT="50"\fP .SS "\fCGRUB_BTRFS_SUBVOLUME_SORT\fP" .PP مرتب‌سازی زیرحجم‌های پیداشده بر اساس «ogeneration» یا «generation» یا «path» یا «rootid». .IP \(em 4 بخش مرتب‌سازی را در .BR btrfs-subvolume (8) ببینید. .PP مقدار «\-rootid» به معنی فهرست کردن اسنپ‌شات‌ها از موارد جدیدتر است. .IP \(em 4 پیش‌فرض: “-rootid” .IP \(em 4 مثال: \fCGRUB_BTRFS_SUBVOLUME_SORT="+ogen,\-gen,path,rootid"\fP .SS "\fCGRUB_BTRFS_SHOW_SNAPSHOTS_FOUND\fP" .PP نمایش اسنپ‌شات‌های یافت‌شده در حین اجرای «grub-mkconfig». .IP \(em 4 پیش‌فرض: “true” .IP \(em 4 مثال: \fCGRUB_BTRFS_SHOW_SNAPSHOTS_FOUND="false"\fP .SS "\fCGRUB_BTRFS_ROOTFLAGS\fP" .PP گزینه‌های اتصال (mount options) جداشده با کاما برای استفاده هنگام راه‌اندازی (بوت) یک اسنپ‌شات. می‌توان آن‌ها را در اینجا و همچنین در خط «/» درون فایل‌های «/etc/fstab» مربوط به هر اسنپ‌شات تعریف کرد. گزینه‌های اتصال یافت‌شده در هر دو مکان ترکیب می‌شوند و این متغیر نسبت به مدخل‌های .B fstab اولویت دارد. توجه: هرگز «...=subvol» یا «...=subvolid» را در اینجا قرار ندهید. .IP \(em 4 پیش‌فرض: “” .IP \(em 4 مثال: \fCGRUB_BTRFS_ROOTFLAGS="space_cache,commit=10,norecovery"\fP .SS "\fCGRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION\fP" .PP به‌طور پیش‌فرض «grub-btrfs» پارتیشن بوت شما را چه در ریشه سیستم قرار داشته باشد، چه روی یک پارتیشن مجزا و چه در یک زیرحجم، به‌طور خودکار تشخیص می‌دهد. اگر پارتیشن بوت شما به عنوان پارتیشن مجزا تشخیص داده نشد، مقدار آن را به «true» تغییر دهید. .IP \(em 4 پیش‌فرض: “false” .IP \(em 4 مثال: \fCGRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION="true"\fP .SS "\fCGRUB_BTRFS_ENABLE_CRYPTODISK\fP" .PP فعال‌سازی راه‌اندازی (بوت) از روی اسنپ‌شات‌های ذخیره‌شده روی دستگاه‌های رمزنگاری‌شده با LUKS. .IP \(em 4 پیش‌فرض: “false” .IP \(em 4 مثال: \fCGRUB_BTRFS_ENABLE_CRYPTODISK="true"\fP .SS "هسته‌های سفارشی (CUSTOM KERNELS)" .SS "\fCGRUB_BTRFS_NKERNEL\fP / \fCGRUB_BTRFS_NINIT\fP / \fCGRUB_BTRFS_CUSTOM_MICROCODE\fP" .PP به‌طور پیش‌فرض، «grub-btrfs» اکثر هسته‌ها، initramfs و ریزکدهای موجود را به‌طور خودکار تشخیص می‌دهد. هسته‌ها، initramfs و ریزکدهای سفارشی که شناسایی نمی‌شوند را می‌توان در این متغیرها اضافه کرد. .IP \(em 4 پیش‌فرض: (“”) .IP \(em 4 مثال: \fCGRUB_BTRFS_NKERNEL=("kernel\-5.19.4\-custom" "vmlinux\-5.19.4\-custom")\fP \fCGRUB_BTRFS_NINIT=("initramfs\-5.19.4\-custom.img" "initrd\-5.19.4\-custom.img" "otherinit\-5.19.4\-custom.gz")\fP \fCGRUB_BTRFS_CUSTOM_MICROCODE=("custom\-ucode.img" "custom\-uc.img "custom_ucode.cpio")\fP .SS "\fCGRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS\fP" .PP پارامترهای خط فرمان اضافی هسته که باید هنگام راه‌اندازی (بوت) یک اسنپ‌شات به هسته ارسال شوند. برای توزیع‌های مبتنی بر dracut، این متغیر می‌تواند جهت ارسال «rd.live.overlay.overlayfs=1» یا «rd.live.overlay.readonly=1» به هسته برای راه‌اندازی اسنپ‌شات‌های فقط‌خواندنی مفید باشد. .IP \(em 4 پیش‌فرض: “” .IP \(em 4 مثال: \fCGRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="rd.live.overlay.overlayfs=1"\fP .SS "فیلتر کردن اسنپ‌شات‌ها (SNAPSHOT FILTERING)" .SS "\fCGRUB_BTRFS_IGNORE_SPECIFIC_PATH\fP" .PP نادیده گرفتن مسیری مشخص در حین اجرای «grub-mkconfig». فقط مسیرهای کاملاً یکسان نادیده گرفته می‌شوند. برای مثال: اگر «مسیر مشخص» برابر با @ باشد، فقط اسنپ‌شات «@» نادیده گرفته خواهد شد. .IP \(em 4 پیش‌فرض: (“@”) .IP \(em 4 مثال: \fCGRUB_BTRFS_IGNORE_SPECIFIC_PATH=("@home")\fP .SS "\fCGRUB_BTRFS_IGNORE_PREFIX_PATH\fP" .PP نادیده گرفتن پیشوند مسیر در حین اجرای «grub-mkconfig». هر مسیری که با رشته مشخص‌شده آغاز شود نادیده گرفته خواهد شد. برای مثال: اگر «پیشوند مسیر» برابر با @ باشد، تمامی اسنپ‌شات‌هایی که با «.../@» آغاز می‌شوند نادیده گرفته خواهند شد. .IP \(em 4 پیش‌فرض: (“var/lib/docker” “@var/lib/docker” “@/var/lib/docker”) .IP \(em 4 مثال: \fCGRUB_BTRFS_IGNORE_PREFIX_PATH=("var/lib/docker" "@var/lib/docker" "@/var/lib/docker")\fP .SS "\fCGRUB_BTRFS_IGNORE_SNAPSHOT_TYPE\fP" .PP نادیده گرفتن نوع/برچسب خاصی از اسنپ‌شات در حین اجرای «grub-mkconfig». برای snapper: نوع = single, pre, post. برای Timeshift: برچسب = boot, ondemand, hourly, daily, weekly, monthly. .IP \(em 4 پیش‌فرض: (“”) .IP \(em 4 مثال: \fCGRUB_BTRFS_IGNORE_SNAPSHOT_TYPE=("ondemand")\fP .SS "\fCGRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION\fP" .PP نادیده گرفتن توضیحی مشخص از اسنپ‌شات در حین اجرای «grub-mkconfig». .IP \(em 4 پیش‌فرض: (“”) .IP \(em 4 مثال: \fCGRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION=("timeline")\fP .SS "تنظیمات وابسته به توزیع (DISTRIBUTION DEPENDENT SETTINGS)" .SS "\fCGRUB_BTRFS_BOOT_DIRNAME\fP" .PP محل قرارگیری هسته‌ها/initramfs/ریزکدها. توسط «grub-btrfs» برای تشخیص پارتیشن بوت و محل هسته‌ها، initramfs و ریزکدها استفاده می‌شود. .IP \(em 4 پیش‌فرض: “/boot” .IP \(em 4 مثال: \fCGRUB_BTRFS_BOOT_DIRNAME="/"\fP .SS "\fCGRUB_BTRFS_GRUB_DIRNAME\fP" .PP محل پوشه حاوی فایل «grub.cfg». در برخی سیستم‌ها ممکن است grub2 باشد. برای مثال، در فدورا با EFI: «/boot/efi/EFI/fedora» .IP \(em 4 پیش‌فرض: “/boot/grub” .IP \(em 4 مثال: \fCGRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"\fP .SS "\fCGRUB_BTRFS_GBTRFS_DIRNAME\fP" .PP محلی که grub-btrfs.cfg باید در آن ذخیره شود. برخی توزیع‌ها (مانند OpenSuSE) این فایل‌ها را به جای boot در دایرکتوری اسنپ‌شات ذخیره می‌کنند. توجه داشته باشید که این دایرکتوری باید در زمان راه‌اندازی سیستم برای grub در دسترس باشد. .IP \(em 4 پیش‌فرض: \fC$GRUB_BTRFS_GRUB_DIRNAME\fP .IP \(em 4 مثال: \fCGRUB_BTRFS_GBTRFS_DIRNAME="/.snapshots"\fP .SS "\fCGRUB_BTRFS_GBTRFS_SEARCH_DIRNAME\fP" .PP محل دایرکتوری‌ای که Grub در آن به دنبال فایل grub-btrfs.cfg می‌گردد. برخی توزیع‌ها (مانند OpenSuSE) این فایل‌ها را به جای boot در دایرکتوری اسنپ‌شات ذخیره می‌کنند. توجه داشته باشید که این دایرکتوری باید در زمان راه‌اندازی سیستم برای grub در دسترس باشد. .IP \(em 4 پیش‌فرض: “\\${prefix}” (این یک متغیر grub است که به محل نصب grub مانند /boot/grub یا /boot/efi/grub اشاره دارد) .IP \(em 4 نکته: در صورت استفاده از متغیرهای grub در اینجا مانند ${prefix}، آن‌ها باید با درج یک علامت .B \e پیش از .B $ اسکیپ شوند. .IP \(em 4 مثال: \fCGRUB_BTRFS_GBTRFS_SEARCH_DIRNAME="\\${prefix}"\fP .SS "\fCGRUB_BTRFS_MKCONFIG\fP" .PP نام/مسیر دستور جهت تولید منوی grub، استفاده‌شده توسط «grub-btrfs.service». ممکن است در برخی سیستم‌ها (مانند فدورا) ’grub2-mkconfig’ باشد. مسیرهای پیش‌فرض عبارتند از: .B /sbin:/bin:/usr/sbin:/usr/bin ؛ اگر مسیر شما وجود ندارد، آن را در پروژه بالادستی گزارش دهید. می‌توانید تنها از نام دستور یا مسیر کامل استفاده کنید. .IP \(em 4 پیش‌فرض: grub-mkconfig .IP \(em 4 مثال: \fCGRUB_BTRFS_MKCONFIG=/sbin/grub2\-mkconfig\fP .SS "\fCGRUB_BTRFS_SCRIPT_CHECK\fP" .PP نام دستور grub-script-check که توسط «grub-btrfs» استفاده می‌شود. ممکن است در برخی سیستم‌ها (مانند فدورا) ’grub2-script-check’ باشد. .IP \(em 4 پیش‌فرض: grub-script-check .IP \(em 4 مثال: \fCGRUB_BTRFS_SCRIPT_CHECK=grub2\-script\-check\fP .SS "\fCGRUB_BTRFS_MKCONFIG_LIB\fP" .PP مسیر فایل grub-mkconfig\d\s-2lib\s+2\u که توسط «grub-btrfs» استفاده می‌شود. ممکن است در برخی سیستم‌ها (مانند OpenSUSE) ’/usr/share/grub2/grub-mkconfig\d\s-2lib\s+2\u’ باشد. .IP \(em 4 پیش‌فرض: /usr/share/grub/grub-mkconfig\d\s-2lib\s+2\u .IP \(em 4 مثال: \fCGRUB_BTRFS_MKCONFIG_LIB=/usr/share/grub2/grub\-mkconfig_lib\fP .SS "امنیت (SECURITY)" .SS "\fCGRUB_BTRFS_PROTECTION_AUTHORIZED_USERS\fP" .PP مدیریت محافظت با گذرواژه برای زیرمنو و اسنپ‌شات‌ها. به مستندات Grub در \fIhttps://www.gnu.org/software/grub/manual/grub/grub.html#Authentication-and-authorisation\fP و این دیدگاه در \fIhttps://github.com/Antynea/grub-btrfs/issues/95#issuecomment-682295660\fP مراجعه کنید. نام‌های کاربری مجاز را با کاما جدا کنید (userfoo,userbar). هنگامی که محافظت با گذرواژه در Grub فعال باشد، کاربر ارشد (superuser) به‌طور پیش‌فرض مجاز است و نیازی به افزودن آن نیست. .IP \(em 4 پیش‌فرض: “” .IP \(em 4 مثال: \fCGRUB_BTRFS_PROTECTION_AUTHORIZED_USERS="userfoo,userbar"\fP .SS "\fCGRUB_BTRFS_DISABLE_PROTECTION_SUBMENU\fP" .PP غیرفعال‌سازی پشتیبانی از احراز هویت فقط برای زیرمنوی Grub-btrfs (\-\-unrestricted). در صورتی که \fCGRUB_BTRFS_PROTECTION_AUTHORIZED_USERS\fP خالی نباشد، کار نخواهد کرد. .IP \(em 4 پیش‌فرض: “false” .IP \(em 4 مثال: \fCGRUB_BTRFS_DISABLE_PROTECTION_SUBMENU="true"\fP .SH "فایل‌ها (FILES)" .PP /etc/default/grub-btrfs/config .SH "همچنین ببینید (SEE ALSO)" .BR btrfs (8)، .BR btrfs-subvolume (8)، .BR grub-btrfsd (8)، .BR grub-mkconfig (8) .SH "حق نشر (COPYRIGHT)" .PP حق نشر (c) 2022 متعلق به Pascal Jäger