آشنایی با مراحل راه‌اندازی سیستم در لینوکس

راه‌اندازی سیستم در لینوکس

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

مراحل راه‌اندازی سیستم در لینوکس

POST (Power-On Self-Test): با روشن شدن کامپیوتر، سخت‌افزار سیستم تحت آزمایش اولیه قرار می‌گیرد. این مرحله توسط BIOS یا UEFI انجام می‌شود تا مطمئن شود که تمام قطعات سخت‌افزاری مانند حافظه، پردازنده و دستگاه‌های ورودی/خروجی به درستی کار می‌کنند.

Boot Loader: در زمان راه‌اندازی سیستم در لینوکس پس از تایید سلامت سخت‌افزار، BIOS/UEFI به مرحله بعد می‌رود و بوت‌لودر (مانند GRUB یا LILO) را از دستگاه ذخیره‌سازی بارگذاری می‌کند. بوت‌لودر مسئول انتخاب و بارگذاری کرنل سیستم‌عامل لینوکس است. بوت‌لودر این امکان را به کاربر می‌دهد که در صورت وجود چند سیستم‌عامل، یکی از آن‌ها را انتخاب کند.

بارگذاری کرنل: پس از انتخاب سیستم‌عامل، کرنل (هسته سیستم‌عامل) به حافظه بارگذاری می‌شود. کرنل مسئول مدیریت منابع سیستم مانند حافظه، پردازنده و دستگاه‌های ورودی/خروجی است.

راه‌اندازی اولیه سیستم: کرنل سپس به شناسایی و پیکربندی سخت‌افزار می‌پردازد و درایورها را بارگذاری می‌کند. در این مرحله، کرنل با مدیریت حافظه و تخصیص منابع سیستم آغاز به کار می‌کند.

اجرای init یا systemd: پس از بارگذاری کرنل، فرایند init یا systemd شروع می‌شود. این سرویس‌ها مسئول راه‌اندازی سرویس‌های ضروری و فراهم کردن محیط کاربری هستند. از این مرحله به بعد، سرویس‌های اصلی مانند شبکه، لاگ‌ها، و رابط کاربری (مثل ورود به سیستم) فعال می‌شوند.

ورود کاربر (Login Prompt): در آخرین مرحله از مراحل راه‌اندازی سیستم در لینوکس سیستم به مرحله‌ای می‌رسد که از طریق یک رابط کاربری گرافیکی یا متنی، کاربر می‌تواند وارد شده و از سیستم استفاده کند.

دستورات قابل استفاده برای بررسی وضعیت راه‌اندازی سیستم در لینوکس

systemctl: از این دستور برای بررسی وضعیت و مدیریت سرویس‌ها در سیستم‌هایی که از systemd استفاده می‌کنند. مثال: بررسی وضعیت سیستم پس از بوت

systemctl status

dmesg: نمایش پیام‌های مربوط به کرنل که در زمان بوت شدن سیستم ثبت می‌شوند. مثال: مشاهده پیام‌های کرنل

dmesg | less

در راه‌اندازی سیستم در لینوکس این فرآیندها سیستم لینوکس را به حالت عملیاتی می‌رساند و مدیریت سیستم را آغاز می‌کند تا کاربران بتوانند با آن تعامل کنند.

انواع حالت‌های عملیاتی سیستم در لینوکس

در زمان راه‌اندازی سیستم در لینوکس runlevels و boot targets، مفاهیمی مرتبط با حالت‌های عملیاتی سیستم هستند. این حالت‌ها مشخص می‌کنند که سیستم پس از بوت به چه سطحی از عملکرد می‌رسد و چه سرویس‌هایی باید اجرا شوند. همچنین shutdown و reboot دستورات و فرآیندهایی برای خاموش یا راه‌اندازی مجدد سیستم هستند. در ادامه به بررسی هر یک از این مفاهیم می‌پردازیم:

مفهوم Runlevels (سطوح عملیاتی) در رمان راه‌اندازی سیستم در لینوکس

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

0: خاموش کردن سیستم (halt)
1: حالت تک‌کاربره (Single-user mode) برای تعمیرات و عیب‌یابی
2: حالت چندکاربره (Multi-user) بدون شبکه
3: حالت چندکاربره با شبکه، بدون رابط گرافیکی
4: معمولاً استفاده نمی‌شود و برای اهداف خاص است
5: حالت چندکاربره با شبکه و رابط گرافیکی (GUI)
6: راه‌اندازی مجدد سیستم (reboot)
دستورات مرتبط با Runlevels:
runlevel: نمایش runlevel فعلی سیستم.

runlevel

telinit: تغییر runlevel سیستم. مثال: تغییر به runlevel 3 (حالت چندکاربره با شبکه):

sudo telinit 3

مفهوم Boot Targets (اهداف بوت) در زمان راه‌اندازی سیستم در لینوکس

در سیستم‌های جدید مبتنی بر systemd، مفهوم runlevels با targets جایگزین شده است. هر target عملکردی مشابه runlevels دارد اما انعطاف‌پذیری بیشتری فراهم می‌کند و با نام‌های معنادار مشخص می‌شود. مهم‌ترین targets عبارتند از:

poweroff.target: خاموش کردن سیستم.
rescue.target: حالت تعمیراتی مشابه runlevel 1.
multi-user.target: حالت چندکاربره بدون رابط گرافیکی مشابه runlevel 3.
graphical.target: حالت چندکاربره با رابط گرافیکی مشابه runlevel 5.
reboot.target: راه‌اندازی مجدد سیستم.

دستورات مرتبط با Boot Targets:
systemctl get-default: نمایش target پیش‌فرض سیستم.

systemctl get-default

systemctl set-default [target]: تغییر target پیش‌فرض. مثال: تنظیم حالت پیش‌فرض به multi-user target:

sudo systemctl set-default multi-user.target

Shutdown (خاموش کردن سیستم)
دستور shutdown برای خاموش کردن سیستم با برنامه‌ریزی زمانی یا بلافاصله استفاده می‌شود. این دستور سرویس‌ها را به ترتیب متوقف کرده و سیستم را به طور ایمن خاموش می‌کند. مثال:
خاموش کردن سیستم بعد از یک دقیقه:

sudo shutdown +1

خاموش کردن بلافاصله:

sudo shutdown now

Reboot (راه‌اندازی مجدد سیستم)
reboot برای راه‌اندازی مجدد سیستم استفاده می‌شود. مشابه shutdown، این دستور سیستم را به ترتیب متوقف می‌کند و سپس دوباره آن را راه‌اندازی می‌کند. مثال:
راه‌اندازی مجدد فوری:

sudo reboot

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