หน้าเว็บ

วันจันทร์ที่ 30 กรกฎาคม พ.ศ. 2555

ขั้นตอนการบูตของระบบปฏิบัติการ Linux

สวัสดีครับผู้ที่มีความสนใจในเรื่องเทคนิคทุกท่านวันนี้จะพูดถึึงขั้นตอนการบูตของระบบปฏิบัติการ Linux   
โดยจะอธิบายให้เห็นว่าแต่ละขั้นตอนของการบูทของ Linux นั้นเป็นเป็นอย่างไร


แผนภูมิกระบวนการบูทของระบบปฏิบัติการ Linux
    หลังจากที่เราติดตั้งลีนุกซ์เสร็จ บูตเครื่องใหม่ หรือเปิดสวิทช์
หลังจากที่เครื่องคอมพิวเตอร์ตรวจสอบตัวเองแล้วค้นหาอุปกรณ์ที่ใช้บูต ถ้าตรวจเจออุปกรณ์ที่ใช้บูตเป็นฮาร์ดดิสก์ก็จะไปทำางานต่อที่ MBR ซึ่ง GRUB ฝังตัวอยู่ในส่วนIPL ของ MBR เราต้องมาทำความเข้าใจเกี่ยวกับโปรแกรม Boot Loader ที่ชื่อ GRUB 

GRUB (Grand Unified Bootloader)
GRUB เป็นโปรแกรมที่จัดการเกี่ยวการบูตของ Linux ใน Linux รุ่นเก่าจะใช้ โปรแกรม LILO
ซึ่งมีข้อจำากัดและข้อด้อยกว่า GRUB ปัจจุบันทั้งลีนุกซ์ทุกค่ายรวมถึง Solaris ก็หันมาใช้ GRUB เป็นบูตโหลดเดอร์กันทั้งนั้น
จุดเด่นของ GRUB
    • สามารถใช้สำาสั่งแบบ Command-line ได้
    • ใช้ได้กับไฟล์ซิสเต็มเหล่านี้ ext2/ext3, ReiserFS, JFS, FAT, minix, FFS
    • มีระบบป้องกันด้วยรหัสผ่านที่เข้าระหัสแบบ MD5
    • เปลี่ยนค่าใน grub.conf มีผลทันที
    • ถ้า MBR ใน /dev/hda ถูกทำาลาย ติดตั้งใหม่ได้ /sbin/grub-install /dev/hda
ตัวอย่าง ไฟล์ /boot/grub/grub.conf GRUB version ใหม่ ไฟล์ config จะเปลี่ยเป็น/boot/grub/menu.lst
เราสามารถเปลี่ยนค่าต่างในไฟล์ config นี้
default=0
timeout=10
splashimage=(hd0,1)/grub/splash.xpm.gz
#ชุดคำสั่ง หรือ เมนู ที่ 0
title Linux TLE (2.4.22-6_1.2163.nptl_03tle)
root (hd0,1)
kernel /vmlinuz-2.4.22-6_1.2163.nptl_03tle ro root=/dev/hda3 hdc=ide-scsi rhgb
initrd /initrd-2.4.22-6_1.2163.nptl_03tle.img
#ชุดคำสั่ง หรือ เมนู ที่ 1
title Windows
rootnoverify (hd0,0)
chainloader +1
ถ้า default=0 บูตเข้า ลีนุกซ์ ถ้า default=1 บูตเข้า Windows
timeout=10 แสดงหน้าจอเมนูบูตอยู่ 10 วินาที แลัวจึงบูตเข้า default
หลังจากที่ผ่านโปรแกรม Boot loader โปรแกรม Boot loader ก็จะส่งการทำางานต่อมาที่ partition /boot ซึ่งในพาร์ติชันนี้จะเก็บ kernel ในลักษณะของไฟล์บีบอัด kernel จะขยายตัวมันเอง
ตรวจสอบฮาร์แวร์และติดตั้งไดรเวอร์ หลังจากนั้นจะเมาท์ root file system แบบ read only แล้วจึงเข้าสู่ขั้นตอน init
กระบวนการ init
    ในกระบวนการบูท ขั้นตอนการ init คือการรันคำาสั่ง /sbin/init นั่นเอง เริ่มจากอ่านข้อมูลจากไฟล์
/etc/inittab แล้วไปทำางานต่อที่ /etc/rc.d/rc.sysinit
ไฟล์ /etc/inittab
    ในไฟล์ /etc/inittab จะมีรายละเอียดบางส่วนที่จะต้องมาทำาความเข้าใจกันดังนี้ Linux RedHet จะมี runlevel อยู่ 6 runlevel ใช้งานอยู่จริงๆ 5 runlevel ตามรายละเอียดดังนี้

              # Default runlevel. The runlevels used by RHS are:
              # 0 - halt (Do NOT set initdefault to this)
              # 1 - Single user mode
              # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
              # 3 - Full multiuser mode
              # 4 - unused 
              # 5 - X11
              # 6 - reboot (Do NOT set initdefault to this)
              #
              id:3:initdefault:
              # System initialization.
              si::sysinit:/etc/rc.d/rc.sysinit

        เลข 3 ตัวหนาเป็นการบอกว่า บูตให้เข้าสู่ runlevel 3 เป็นค่าปกติ ถ้าหากเราต้องการให้เข้า runlevel 5 โดยให้บูตเข้ากราฟิกโหมด หรือ X11 ก็ทำได้โดยการเปลี่ยน เลข 3 เป็นเลข 5 id:5:initdefault:
ถ้าค่า initdefault มีค่าเป็น 3 ในกระบวนการบูทหลังจากที่รัน script /etc/rc.d/rc.sysinit แล้วก็จะไปทำงานต่อที่ /etc/rc.d/rc3.d/
ถ้าค่า initdefault มีค่าเป็น 5 ในกระบวนการบูทหหลังจากที่รัน script /etc/rc.d/rc.sysinit แล้วก็จะไปทำางานต่อที่ /etc/rc.d/rc5.d/
    ซึ่งใน directory เหล่านี้จะเป็นที่เก็บลิงค์ไฟล์ start script (ลิงค์มาจาก /etc/init.d/) ของ service ต่างๆ
ซึ่งเป็นตัวบอกว่าในการบูตขึ้นมาจะให้ start service นั้นๆ หรือไม่ หลังจากที่ start service
เรียบร้อยแล้วก็จะมาอ่านไฟล์ /etc/rc.d/rc.local ซึ่งเป็นไฟล์ที่เก็บคำสั่งที่ใช้ start service สำาหรับโปรแกรมที่ไม่มี start script ใน /etc/init.d
สุดท้ายก็เข้าสู่กระบวนการ Login ถ้าเป็น Text mode ก็รันโปรแกรม getty ถ้าเป็น Graphic mode ก็รัน xdm, gdm, kdm ให้ Login ขึ้นอยู่กับว่าใช้ Window Managers ตัวไหน
ไฟล์ /etc/rc.d/rc.sysinit
   ไฟล์ rc.sysinit การรันไฟล์นี้จะเป็นการทำางานของระบบ เช่น set kernel parameter, set เวลา,โหลด keymaps , ใช้งาน swap partition, hostname, ตรวจเช็ค และ Mount partition อื่นๆ ฯลฯ
ซึ่งจะเป็นทำางานเกี่ยวข้องกับระบบทั้งหมด
การ Login
   1.การ Login แบบ กราฟิกโหมด (runlevel 5)
   2.การ Login แบบ Text Mode (runlevel 3)
Login เข้ามาแล้วจะรีบูทหรือปิดเครื่องอย่างไร
    บนกราฟิกโหมดคงไม่ต้องพูดถึงนะครับเพราะเห็นกันอยู่แล้วว่าจะรีบูตหรือจะปิดเครื่องสำหรับบนtext
mode มาดูคำสั่งที่ใช้ในการรีบูต และปิดเครื่องกันนะครับ
           shutdown -h now        ปิดเครื่องทันที
           shutdown -r now         รีบูตเครื่องทันที
           reboot                          รีบูตเครื่อง
           init 6                             รีบูตเครื่อง
           init 0                            ปิดเครื่อง
           poweroff                     ปิดเครื่อง
           halt                              ปิดเครื่อง
   เลือกใช้กันตามสะดวกนะครับแต่มีข้อระวังอย่าปิดเครื่องโดยใช้นิ้วปิดสวิทช์เลย อาจจะเกิดอันตรายต่อข้อมูลของท่านได้ขอให้ปิดตามขั้นตอนครับข้อมูลจะได้ปลอดภัย



ไม่มีความคิดเห็น:

แสดงความคิดเห็น