برپاسازی لینوکس پایه

افرادی هستند که نیاز به برپاسازی یک لینوکس پایه دارند. از جمله نیاز افراد برای این کار می‌توان به استفاده از ابزارهای پایه لینوکس در سیستمی خلوت و کم حجم و یا حتی تولید توزیع جدید اشاره کرد.

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

اگر شما می‌خواهید یک سیستم‌عامل با هسته لینوکس ایجاد کنید برای روش آخر من پیشنهادی ندارم و می‌گویم که کارتان بسیار سخت است چون باید خیلی از ابزارهای اولیه را از نو برنامه‌نویسی کنید اما اگر می‌خواهید یک توزیع جدید گنو/لینوکس ایجاد کنید دو روش پیش رو دارید. یا از توزیع‌های جدید انشعاب بگیرید (که برای هر توزیع ابزارها و روش‌های مشخصی وجود دارد و راحت‌ترین آن‌ها هم انشعاب از ابونتو دسکتاب است) و یا از پایه توزیع گنو/لینوکس خودتان را بسازید!

بهترین منبع برای تولید سامانه گنو/لینوکس از پایه، کتاب LFS (Linux From Scratch) است که از آدرس linuxfromscratch.org قابل دسترس است.

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

اما روشی که من پیشنهاد می‌کنم استفاده از هسته ابونتو (Ubuntu Core) است! هسته ابونتو در عین اینکه سامانه گنو/لینوکس پایه در اختیار شما می‌گذارد از مزیت‌هایی مانند داشتن مدیر بسته دی‌پی‌کی‌جی و بروزرسانی‌های دائمی ابونتو بهره‌مند است؛ بروزرسانی‌هایی که کارایی و امنیت توزیع شما را تضمین می‌کنند. در عین حال شما می‌توانید خط مشی توزیع خود را کاملا از ابونتو جدا کنید. در ادامه روش برپاسازی این سامانه را مطالعه خواهید کرد.

برپاسازی هسته ابونتو

ابتدا از آدرس cdimage.ubuntu.com/ubuntu-core/releases/14.04/release هسته مناسب را دریافت کنید (هسته ابونتو برای ماشین‌های x86 در دو نوع ۳۲ بیت و 64 بیت و arm موجود است).

سپس ترمینالی باز کرده و با کاربر روت وارد شوید.

sudo su

اکنون پارتیشن روت سامانه جدید لینوکس را بسازید. برای این مرحله می‌توانید از هر ابزار گرافیکی (gprated) یا خط فرمانی (cfdisk) پارتیشن‌بندی استفاده کنید. پارتیشن روت را به اندازه کافی (بسته به نیازتان در آینده) بگیرید و اگر روی سیستم شما سیستم‌عامل دیگری نیست برچسب بوت آن را فعال کنید.

با دستور زیر پارتیشن روت خود را فرمت کنید. (sda1 یک مثال از شناسه است و بسته به مرحله قبل متفاوت است).

mkfs.ext4 /dev/sda1

پارتیشن روت را در سامانه فعلی مانت کنید تا بتوان از آن استفاده کرد.

mkdir /mnt/tmp
mount /dev/sda1 /mnt/tmp

آرشیو هسته ابونتو را در پارتیشن روت استخراج کنید (مسیر آرشیو را به‌جای  وارد کنید).

tar -zxvf <archive.tar.gz> -C /mnt/tmp

وارد مسیر پارتیشن روت شوید.

cd /mnt/tmp

گراب را روی دیسک نصب کنید.

grub-install --root-directory=/mnt/tmp /dev/sda

تنظیمات شبکه سامانه فعلی را در سامانه جدید کپی کنید تا بعد از ورود به قلمرو آن (chroot) بتوانید از شبکه سامانه فعلی استفاده کنید.

cp /etc/resolv.conf /mnt/tmp/etc/resolv.conf

وارد قلمرو سامانه گنو/لینوکس جدید شوید.

for f in /sys /proc /dev ; do mount --rbind $f /mnt/tmp/$f ; done ; chroot /mnt/tmp

هسته لینوکس را در سامانه جدید نصب کنید (دستور زیر برای زمانی است که سامانه میزبان نیز ابونتو یا دبیان باشد. برای دیگر میزبان‌ها باید هسته مناسب نصب شود و یا اینکه هسته را نیز دریافت کرده و در سامانه جدید کمپایل کنید).

apt-get update & apt-get install linux-{headers,image}-generic

گراب را آپدیت کنید تا سیستم‌عامل جدید و قبلی‌ها را به لیست منوی خود اضافه کند.

update-grub

پسورد روت سامانه جدید را ست کنید.

passwd

منابع را آزاد کنید و خارج شوید.

exit
cd ..
umount -v /mnt/tmp/proc
umount -v /mnt/tmp/sys
umount -v /mnt/tmp/dev
umount -v /mnt/tmp/
exit

تمام شد! اکنون کافی است تا سیستم را ریبوت کنید و از سامانه جدید گنو/لینوکس خود که با هسته ابونتو ساخته‌اید استفاده کنید.

در صورتی که رم کافی ندارید و نیاز به پارتیشن سواپ دارید می‌توانید بعد از ساخت پارتیشن سواپ به اندازه مناسب از دستورات زیر برای فعال‌سازی آن استفاده کنید.

mkswap /dev/sdaX
swapon /dev/sdaX

برای اتصال به شبکه اینترنت هم اگر به کابل متصل هستید کافیست دستور زیر را بزنید (eth0 شناسه اولین کارت شبکه شما است و اگر چند کارت شبکه دارید شناسه هر کدام که نیاز است را وارد کنید).

dhclient eth0

برای اتصال به شبکه بی‌سیم هم می‌توانید از دستورات زیر استفاده کنید (در دستور زیر نام و پسورد مناسب را جایگزین کنید).

iwconfig wlan0 essid name key password
dhclient wlan0

شما می‌توانید سامانه جدید را بسته به نیازتان سفارش‌سازی کنید، بسته‌های مورد نیاز را تغییر دهید و یا حتی نام توزیع را تغییر و به عنوان یک توزیع جدید منتشر کنید.