Home CentOS GRUB, BIOS, הקרנל Kernel ואופן עליית מערכת הלינוקס Linux

GRUB, BIOS, הקרנל Kernel ואופן עליית מערכת הלינוקס Linux

by Tal Ben Shushan 04/09/2017 0 comment
GRUB, BIOS, הקרנל Kernel ואופן עליית מערכת הלינוקס Linux
נהנתם מהמאמר ? שתפו אותו!

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

GRUB

הוא מנהל תהליך העליה של לינוקס, ה BootLoader הוא אחראי על המעבר בין העלייה עצמה של מערכת ההפעלה לKernel עצמו, כעת Grub עצמו קיבל את השם GRUB Lagacy שכן הוא ישן ומחליפו הוא ה GRUB 2.

GRUB 2

  1. GRUB 2 הוא ממשיכו בכך שהקודם אינו תמך ב GPT ובכלל וגם לא תומך ב 2.4TB.

2. הוא יכול לעלות דרך מערכות קבצים כמו: NTFS, XFS , ext4 ועוד

3. יכול לבצע כיווץ באותו הרגע

4. יכול לעלות דרך UEFI Bios

 

תהליך עליית המחשב בלינוקס:

1.BIOS – קיצור של Basic Input Output System – רכיב פיזי המכיל תוכנה הנמצאת בלוח האם ואחראית על קישור החומרה עוד לפני התקנה של מערכת ההפעלה עצמה בין אם זה ווינדוס או לינוקס – בפירוט, הוא מבצע POST קיצור של Post-Power On Self Test אשר מבצע Perform System Intergrity Check, לאחר שהוא מחפש ומוצא את הרכיבים המחוברים ללוח האם הוא מפעיל את ה BootLoader ואז נותן לו שליטה על החומרה של המחשב.

2.MBR \GPT – ה Master Boot Recored הוא המחיצה הראשית בדיסק הקשיח והנתיב שלו הוא Dev\Sda או Dev/hda גודלו של ה MBR הוא 512Byte ומכיל
446 Bytes את המידע הראשי על הBootloader פלוס 64 Byte של המחיצה הראשית Partiotn Table פלוס סמן שאומר שהוא הMBR בגודל 2 Byte

3.GRUB – מסמל Grand Unified Bootloader הוא למעשה מגדיר איזה מערכת הפעלה תעלה קודם או איזה בכלל תעלה, כאשר המחשב עולה אתם יכולים להתקין כמה גרסאות של מערכת הפעלה נאמר Ubuntu ו CentOS ה GRUB יכיל בתוכו איזה Kernel קיימים ויציג אותם, אם לא תלחצו על כלום הוא יטען את המערכת הראשונה שהותקנה או שהוגדרה כברירת מחדל.
קובץ ההגדרות הזה נמצא בCentOS 5 למשל ב /Boot/grub/grub.conf ושם נמצאים כל ההגדרות האלו.

4.Kernel – הקרנל טוען את הקובץ של מערכת ההפעלה שה Grub מכיל בתוכו, זאת אומרת ברגע שהקרנל נבחר על ידי הGRUB (מה שבחרתם בעליית המערכת) הקרנל מתחיל לעבוד והדבר הראשון שהוא טוען הוא sbin/init לאחר מכן הוא טוען את ה Boot/initrd קובץ ISO שמכיל באופן זמני עד שהמערכת עצמה עולה.

5.INIT – בודק בנתיב /etc/inittab שמחליט על סדר עליית הסקריפטים והתוכניות של מערכת ההפעלה, בלוטוט', מקלדת, רמקולים, כרטיסי PCI, USB וכו'

6. RUN Level – הוא זה שמגדיר ל Init באיזה סדר להריץ את התוכניות, באתר קיים הסבר על Sysv ו upstart וכיצד התוכניות נטענות. אם נפתח את הקובץ inittab נראה את תצורת סדר עליית התוכניות, בדיוק במאמר שהזכרתי קיים הסבר לכל התהליך עצמו.

נתחיל בהסבר על אופן עבודת ה GRUB

קבצי ה GRUB

grub.cfg מכיל את כל הגדרות ה GRUB ואת הערכים שלו, נמצא בנתיב

[root@localhost ~]# cd /boot/grub2/grub.cfg

grub מכיל הגדרות שניתן לשנות, כמו ה Recovery ונמצא בנתיב

/etc/default/grub

 grubenv מכיל את הגרסה הראשית של ה Kernel נמצא ב

/boot/grub2/grubenv

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

grep ^menuentry /boot/grub2/grub.cfg

נקבל את הפלט

[root@localhost ~]# grep ^menuentry /boot/grub2/grub.cfg
menuentry 'CentOS Linux (3.10.0-514.21.1.el7.x86_64) 7 (Core)' –class centos — class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option 'gnul inux-3.10.0-514.el7.x86_64-advanced-1d42ceb4-7715-4efe-a6fc-82e74cc69ab4' { menuentry 'CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)' –class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_id_option 'gnulinux- 3.10.0-514.el7.x86_64-advanced-1d42ceb4-7715-4efe-a6fc-82e74cc69ab4' { menuentry 'CentOS Linux (0-rescue-9e503f939cc349f9bc644115c3ed5e71) 7 (Core)' — class centos –class gnu-linux –class gnu –class os –unrestricted $menuentry_ id_option 'gnulinux-0-rescue-9e503f939cc349f9bc644115c3ed5e71-advanced-1d42ceb4- 7715-4efe-a6fc-82e74cc69ab4' {

אז נוכל לשנות את המערכת שעולה נאמר ל'CentOS Linux (0-rescue

נערוך את הקובץ

vim /etc/default/grub

כעת נערוך את הערך

GRUB_DEFAULT=0

ל

GRUB_DEFAULT="CentOS Linux (0-rescue-9e503f939cc349f9bc644115c3ed5e71) 7 (Core)"

וכעת על מנת להגדיר מחדש את /boot/grub2/grub.cfg  נשתמש בפקודה שמכינה את הקובץ:

grub2-mkconfig -o /boot/grub2/grub.cf

נדליק מחדש את הCentOS7 ונבדוק כיצד נכנסים לGRUB:

נבצע ריסטארט לשרת, כאשר יעלה המסך הבא נלחץ על E

שנו את הערך ro ל

init=/sysroot/bin/sh

כמו בתמונה

*יש רווח בין ה sh ל crashkerenk… , הסמן כתיבה פשוט שם ולכן זה נראה כאילו אין רווח

כעת הקישו CTRL + X והגיעו למסך הבא

נקיש

[root@localhost ~]# chroot /sysroot

כעת נשנה את סיסמת האדמין

[root@localhost ~]# mount -o remount,rw /

נשנה את הסיסמא, ואז נקיש את הפקודה

[root@localhost ~]# passwd root

כעת נחיל אותה

[root@localhost ~]# touch /.autorelabel

לסיום נבצע ריסטרט

[root@localhost ~]# exit
[root@localhost ~]# reboot

 

Bootloader שונים

כמעט בכל ההפצות של לינוקס תמצאו את ה Bootloader של GRUB, אך יש גם הפצות עם Bootloaders אחרים.

Syslinux ו ISOLinux – לדוגמה כאשר אתם מעלים התקנה של לינוקס דרך USB רוב הסיכויים שהפורמט של הDOK (Disk On Key) יהיה בMSDOS וכך יש פרויקט בשם Syslinux ו ISOLinux , הוא מגדיר את ה MBR שהוא הפורמט של הדיסק הקשיח.
ולא משתמשים בו על מנת לבצע התקנות מלאות של לינוקס אלא להרצה של Live CD (זהו לינוקס שרץ מתוך ה USB או דיסק)

PXELINUX – לעומת זאת הוא הרצה של התקנה של לינוקס מתוך הרשת, בדיוק כמו PXE אשר מוגדר משרת Microsoft וניתן להתקין ממנו מערכת הפעלה למחשב דרך הרשת.

ExtLinux – הוא Bootloader מלא דרכו ניתן להתקין את מערכת ההפעלה Linux ובגרסה 4 של Syslinux ה ExtLinux משולב בתוכו ובכך אתם  יכולים לבצע התקנה מלאה של לינוקס

LILO –  סימנתי אותו בקו תחתון מסיבה פשוטה, הוא למעשה בדיוק כמו GRUB uואפילו כמו ExtLinux הכירו את LILO קיצור של Linux Loader ופעם הוא היה הBootloader המרכזי שדרכו עלו הפצות הלינוקס, הוא נמצא בנתיב /etc/lilo.conf שאותו קובץ מגדיר ל Boot סקטור כיצד לעלות.

מאמרים קשורים

Leave a Comment