تازه ها در Jessie – جایگزین chroot

با توجه به تغییرات گسترده ای که در نسخه جدید دبیان، جسی نسخه ۸ (debian jessie 8.0) رخ داده است تصمیم گرفتیم تا شروع به تهیه مجموعه مقالاتی با نام تازه ها در jessie کنیم. امیدوار هستیم این مجموعه مقالات برای مدیران سیستم مفید واقع گردد.

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

با جایگزینی init با systemd ،اجرای سرویس‌ها در محیط chroot با مشکل مواجه شده است و systemd اجازه راه اندازی سرویس ها را به شما نمی دهد. اگر شما هم در دبیان jessie از chroot استفاده کرده باشید، در هنگام restart سرویس ها به پیغام زیر برخورده اید

# service apache2 restart
Running in chroot, ignoring request

برای آنکه همچنان بتوانید محیط تست و یا jail داشته باشید، چندین روش موجود است. که در این جا به معرفی ابزار systemd-nspawn خواهیم پرداخت

systemd-nspawn
از این ابزار می توانید لینوکس دیگری را که در یک پارتیشن دیگر نصب شده و یا به کمک debootstrap در یک پوشه پیاده سازی شده است را به صورت container اجرا کنید.

فرض کنید در پارتیشن دیگر بر روی سیستم خود یک سیستم عامل دبیان نسخه jessie نصب کرده اید و این پارتیش را در مسیر media/jessie/ مانت کرده باشید. برای راه اندازی این لینوکس به صورت container به صورت زیر از دستور استفاده می کنید

~# systemd-nspawn -bD /media/jessie
Spawning container jessie on /media/jessie.
Press ^] three times within 1s to kill container.
[…]
Debian GNU/Linux 8 laptop-contain console
laptop-contain login:

کافیست login نمایید و شروع به استفاده کنید.

مدیریت container
زمانی که container خود را راه اندازی کردید می توانید به آن login کنید و شروع به استفاده نمایید. علاوه بر آن شما نیاز به ویژگی های دیگری نیز دارید، مانند نحوه خاموش کردن container و باز کردن چندید ترمینال در این محیط.

خاموش کردن container
برای خاموش کردن می توانید از دستور poweroff در کنسول container استفاده کنید و یا از بیرون آن دستور زیر را وارد کنید

~# machinectl peweroff jessie

به جای نام jessie نام پوشه ای که container شما در آن قرار دارد و با آن نام فراخوانی شده است را وارد کنید

باز کردن چندین ترمینال بر روی container
برای این کار می توانید از همان دستور machinectl به صورت زیر استفاده کنید

~# machinectl login jessie

منبع: سیوک

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *