מדריך בסיסי לתהליך האתחול של לינוקס

בכל פעם שאתה מפעיל את המחשב שלך שבו מערכת ההפעלה Linux, הוא עובר דרך סדרת שלבים לפני שסוף סוף מציג מסך התחברות שמבקש את שם המשתמש או הסיסמה שלך. יש 4 שלבים ברורים שכל הפצת Linux עוברת דרך בתהליך ההתנקשות התקני.

User Login Prompt

במדריך זה, נדגיש את השלבים השונים שנעשים על ידי מערכת ההפעלה Linux מהרגע שהיא מופעלת ועד הרגע שאתה מתחבר. נא לשים לב כי מדריך זה מתייחס רק ל־GRUB2 ול־systemd כיום בשימוש נרחב על ידי רוב ה־הפצות Linux המודרניות.

תהליך ההפעלה עובר דרך השלבים הבאים המפורטים יותר שנדון בפרטים:

  • בדיקת תקינות BIOS (POST)
  • טעינת נוטח ההפעלה (GRUB2)
  • אתחול הקרנל
  • התחלת systemd, ההורה של כל התהליכים

1. בדיקת תקינות BIOS (POST)

תהליך ההפעלה נפעל בדרך כלל כאשר משתמש לוחץ על כפתור ההדלקה – אם המחשב כבר כבוי – או מפעיל מחדש את המערכת באמצעות ממשק הגרפי או בשורת הפקודה.

כאשר מערכת ה־Linux מופעלת, ה־BIOS (מערכת קלט ופלט בסיסית) נכנסת לתוקף ומבצעת בדיקת התחלה עצמית (POST). זו בדיקת תקינות שמבצעת מגוון של בדיקות דיאגנוסטיות.

ה- POST בודק את תפקוד החומרה של מרכיבים כגון ה- HDD או SSD, מקלדת, RAM, יציאות USB, וכל מרכיב חומרה אחר. אם נמצא שמכשיר חומרה כלשהו אינו מזוהה, או שיש תקלה באחד מהמכשירים כגון HDD או SSD פגומים, הודעת שגיאה מוצגת על המסך, תוביל להתערבותך.

במקרים מסוימים, קול צפצוף ישמע במיוחד במקרה של חסרון מודול RAM. אך אם החומרה הצפויה נמצאת ופועלת כפי שצפוי, התהליך של האתחול ממשיך לשלב הבא.

2. מאתחל הקטע (GRUB2)

לאחר שה- POST הושלם והכל נראה בסדר, ה- BIOS בודק את ה- MBR (רשומת האתחול הראשית) למידע על הטעינה והמחיצות בדיסק.

ה- MBR הוא קוד בגודל 512 בתים הממוקם בסקטור הראשון של הדיסק הקשיח שבדרך כלל /dev/sda או /dev/hda תלוי בארכיטקטורת הדיסק הקשיח שלך. יש לשים לב, בכל זאת, כי לפעמים רשומת האתחול הראשית יכולה להימצא על דיסק USB חי או התקנה של DVD של Linux.

יש שלושה סוגי מאתחלים ראשיים ב-Linux: LILO, GRUB, ו- GRUB2. מאתחל ה- GRUB2 הוא מאתחל הראשי העיקרי והעדכני ביותר בהפצות Linux המודרניות וזהו מה שמניב את ההחלטה שלנו להשאיר את שני המאתחלים האחרים הנחשבים כמיושנים עם עבר הזמן.

GRUB2 עומד על GRand Unified Bootloader גרסה 2. לאחר שה-BIOS מזהה את מנעול ההפעלה של grub2, הוא מפעיל וטוען אותו לזיכרון הראשי (RAM).

תפריט ה-grub2 מאפשר לך לבצע מספר פעולות. הוא מאפשר לך לבחור את גרסת ליבת ה-Linux שתרצה להשתמש בה. אם עברת עדכונים למערכת שלך מספר פעמים, עשויים להופיע גרסאות שונות של ליבה ברשימה. בנוסף, הוא מעניק לך את היכולת לערוך כמה פרמטרי ליבה על ידי לחיצה על קישורית של מקשי מקלדת.

Select Kernel Version

גם, בהגדרת כפילה שבה יש לך התקנות מרובות של מערכת ההפעלה, תפריט ה-grub מאפשר לך לבחור באיזו מערכת הפעלה להפעיל. קובץ התצורה של grub2 הוא קובץ ה-/boot/grub2/grub2.cfg. המטרה העיקרית של GRUB היא לטעון את ליבת ה-Linux לזיכרון הראשי.

3. אתחול הליבה

הליבה היא ליבת המערכת של כל מערכת Linux. היא מתווכת בין חומרת המחשב לתהליכים התחתונים. הליבה שולטת בכל התהליכים במערכת ה-Linux שלך. לאחר שליבת ה-Linux שנבחרת נטענת על ידי מנעול ההפעלה, עליה להתחיל להתרחש מעצמה מגרסתה הדחוסה לפני ביצוע כל משימה. לאחר שהיא מתרחשת מעצמה, הליבה שנבחרת מחברת את מערכת הקבצים הראשית ומאתחלת את התוכנית /sbin/init המכונה בדרך כלל init.

Kernel Initialization Process

איניט הוא תמיד התוכנית הראשונה שמופעלת ומקוצה במספר התהליך או PID של 1. זו התהליך init שיוצר שלל דמונים ומערבב את כל המחיצות שמוגדרות בקובץ /etc/fstab.

הגרסה עולה אז הגרסה הגרסה ההתחלתית של דיסק RAM (initrd) אשר היא מערכת קורן זמנית עד שמתבצע הערכת מערכת הקורן האמיתית. כל הקורנים נמצאים בתיקיית /boot ביחד עם תמונת הדיסק RAM ההתחלתית.

4.הפעלת Systemd

הקורן סוף סוף טוען את Systemd, שהוא ההחלפה של האיניט הישן SysV. Systemd הוא אם כל התהליכים של לינוקס ומנהל בין היתר את הערכת מערכות הקבצים, את הפעלת והעצירה של שירותים לציון רק חלק מהם.

Systemd משתמש בקובץ /etc/systemd/system/default.target כדי לקבוע את המצב או היעד שבו יש להפעיל את מערכת הלינוקס.

  • לעבודה שולחנית (עם ממשק משתמש גרפי) ערך היעד המוגדר כברירת מחדל הוא 5 שהוא השקול של רמת ההרצה 5 לאיניט הישן של SysV.
  • עבור שרת, היעד המוגדר כברירת מחדל הוא multi-user.target המתאים לרמת ההרצה 3 ב-SysV init.

הנה פירוט של יעדי systemd:

  • poweroff.target (רמת הרצה 0): לכיבוי או לכיבוי המערכת.
  • rescue.target (רמת הרצה 1): מפעילה את מסיבת ההצלה.
  • multi-user.target (רמות הרצה 2,3,4): מגדירה את המערכת למערכת רב משתמש (ללא ממשק גרפי).
  • target גרפי (runlevel 5): הגדר את המערכת להשתמש בממשק משתמש גרפי עם שירותי רשת.
  • reboot.target (runlevel 6): מאתחל את המערכת.

כדי לבדוק את המטרה הנוכחית במערכת שלך, הריץ את הפקודה:

$ systemctl get-default
Check Run Level

ניתן להחליף ממטרה אחת לאחרת על ידי הרצת הפקודה הבאה בטרמינל:

$ init runlevel-value

לדוגמה, init 3 מגדיר את המערכת למצב לא גרפי.

הפקודה init 6 מאתחלת את המערכת שלך והפקודה init 0 מכבה את המערכת. וודא שאתה מפעיל את פקודת sudo כאשר אתה רוצה להחליף לשתי המטרות הללו.

תהליך האתחול מסתיים כאשר systemd טוען את כל הדמונים ומגדיר את המטרה או את ערך מדרג הריצה. בדיוק בנקודה זו אתה מתבקש להזין את שם המשתמש והסיסמה שלך ואז אתה מקבל כניסה למערכת הלינוקס שלך.

Source:
https://www.tecmint.com/linux-boot-process/