| OSTREE PREPARE-ROOT(1) | ostree prepare-root | OSTREE PREPARE-ROOT(1) |
نام (NAME)
ostree-prepare-root - تغییر نمای یک سیستمفایل ریشهٔ سوارشده به یک استقرار ostree
خلاصه دستور (SYNOPSIS)
ostree prepare-root {TARGET}
توضیحات (DESCRIPTION)
در اساس خود، ostree روی یک سیستمفایل سوارشدهٔ موجود عمل میکند. ابزارهایی مانند ostree admin deploy یک دایرکتوری جدید ایجاد میکنند که میتواند به عنوان یک هدف قابل راهاندازی استفاده شود. این ابزار برای اجرا در یک initramfs و برپاسازی نقاط سوارکردن «نگاشت مجدد» به عنوان نمایی از آن سیستمفایل طراحی شده است.
به تازگی، این ابزار همچنین پشتیبانی اختیاری از composefs دارد، که یک نقطهٔ سوارکردن متمایز را به صورت لایهای بر روی سیستمفایل زیرین ایجاد میکند.
رایجترین الگو امروزه استفاده از systemd در یک initramfs است. واحد systemd ارائهشده توسط بالادست به این صورت ترتیببندی شده است: After=sysroot.mount و Before=initrd-root-fs.target
هنگام اجرا، سیستمفایل سوارشده در TARGET دادهشده (معمولاً /sysroot) به گونهای تغییر خواهد کرد که آنچه در /sysroot ظاهر میشود در واقع «ریشهٔ استقرار» باشد - یعنی یک زیردایرکتوری نسخهبندیشدهٔ مشخص. آنچه پیشتر «ریشهٔ فیزیکی» یعنی ریشهٔ واقعی سیستمفایل بود، به صورت /sysroot/sysroot ظاهر خواهد شد.
برای /var، به طور پیشفرض یک bind mount از ریشهٔ استقرار به /sysroot/var ایجاد میشود.
یک bind mount فقطخواندنی بر روی /sysroot/usr ایجاد میشود. بیت تغییرناپذیری (به chattr(1) مراجعه کنید) روی ریشهٔ استقرار تنظیم میشود، بنابراین این کار حفاظت پایهای در برابر تغییرات سیستمفایل فراهم میکند. اگر گزینهٔ sysroot.readonly فعال باشد، آنگاه /sysroot/sysroot به صورت فقطخواندنی سوار میشود تا حفاظت بیشتری فراهم کند و یک bind mount قابل نوشتن برای /sysroot/etc ایجاد میشود.
در نهایت، هنگامی که ابزارهای سطح بالاتر مانند systemd عملیات switch-root را انجام میدهند، آنچه /sysroot بود تبدیل به / میشود و پس از انتقال به ریشهٔ واقعی، سیستم به داخل «استقرار» راهاندازی خواهد شد، که یک درخت سیستمفایل تغییرناپذیر و نسخهبندیشده است. ابزارهای ostree که در ریشهٔ واقعی اجرا میشوند، از آن پس با عمل روی /sysroot که اکنون «ریشهٔ فیزیکی» است، تغییرات بعدی را اعمال میکنند.
پیکربندی (CONFIGURATION)
فایل پیکربندی /usr/lib/ostree/prepare-root.conf (یا /etc/ostree/prepare-root.conf) توسط ostree-prepare-root تجزیه میشود. این فایل باید در initramfs موجود باشد. ماژول پیشفرض dracut در صورت وجود، آن را از ریشهٔ واقعی کپی خواهد کرد.
sysroot.readonly
etc.transient
root.transient
این گزینه مستقل از etc.transient و sysroot.readonly است؛ برای نمونه داشتن root.transient=true اما etc.transient=false پشتیبانی میشود که در این حالت تغییرات در /etc همچنان در طول بهروزرسانیها باقی میماند، و ادغام ۳طرفهٔ پیشفرض OSTree اعمال میشود. همچنین در رابطه با ماندگاری دادهها، تأکید بر این نکته مهم است که /sysroot (سیستمفایل ریشهٔ فیزیکی) همچنان به طور پیشفرض ماندگار است؛ ارتقاهای درجا برای سیستمعامل میتوانند اعمال شوند. این گزینه هیچ اثری روی /var ندارد.
فعالسازی این گزینه میتواند بهکارگیری مدل مبتنی بر ایمیج را در برخی شرایط بهطور چشمگیری آسانتر کند. به عنوان مثال، اگر سامانهٔ مدیریت پیکربندی دارید که وضعیت اختصاصی ماشین را بررسی کرده و مثلاً به طور پویا بستهها را نصب میکند یا پیکربندی را اعمال مینماید، میتواند آسانتر برای اجرا در هر بوت تطبیق یابد، در حالی که همچنان بخشی (یا در حالت ایدهآل بیشتر) پیکربندی ایمیج را به عنوان بخشی از ایمیج/کامیت پایه به زمان ساخت منتقل میکند.
root.transient-ro
composefs.enabled
composefs.keypath
پارامترهای خط فرمان هسته زیر نیز تجزیه میشوند:
ostree.prepare-root.composefs
سیستمدی (SYSTEMD)
همانطور که در بالا ذکر شد، این ابزار همراه با یک فایل واحد systemd به نام ostree-prepare-root.service ارائه میشود و انتظار اصلی این است که از این طریق فراخوانی شود.
کامپوزافاس (COMPOSEFS)
حالت پیشفرض برای ostree، ایجاد یک درخت سیستمفایل ساده با پیوند سخت است. پشتیبانی از composefs در حال حاضر آزمایشی است؛ برای اطلاعات بیشتر دربارهٔ استفاده از آن، به مستند بالادست doc/composefs.md مراجعه کنید.
| OSTree |