กลับหน้าหลัก
บทที่ 3 กระบวนการบูทของลีนุกซ์
รูปที่ 3-1 รูปแสดงกระบวนการบูทของลีนุกซ
.....หลังจากที่เราติดตั้งลีนุกซ์เสร็จ บูทเครื่องใหม่ หรือเปิดสวิทช์ หลังจากที่เครื่องคอมพิวเตอร์ตรวจสอบตัวเองแล้วค้นหาอุปกรณ์ที่ใช้บูท ถ้าตรวเจออุปกรณ์ที่
ี่ใช้บูทเป็นฮาร์ดดิสก์ก็จะไปทำางานต่อที่ MBR ซึ่ง GRUB ฝังตัวอยู่ในส่วน IPL ของ MBR มาทำาความเข้าใจเกี่ยวกับโปรแกรม Boot Loader ที่ชื่อ
GRUB กันก่อนครับ
GRUB (Grand Unified Bootloader)
.....GRUB เป็นโปรแกรมที่จัดการเกี่ยวการบูทของลีนุกซ์ ในลีนุกซ์รุ่นเก่าจะใช้ โปรแกรม 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 บูทเข้าลีนุกซ์ ถ้า 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 จะมีรายละเอียดบางส่วนที่จะต้องมาทำความเข้าใจกันดังนี้ Red Hat ลีนุกซ์จะมี runlevel อยู่ 6 runlevel ใช้งานอยู่จริงๆ 5 runlevel
ตามรายละเอียดด้านล่างนี้
.........เลข 3 ในบรรทัดที่ 10 เป็นการบอกว่า บูทให้เข้าสู่ 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, ตรวจเชค และเมาท์พาร์ติชันอื่นๆ ฯลฯ ซึ่งจะเป็นทำางานเกี่ยวข้องกับระบบทั้งหมด
การ Login
....การ Login แบบกราฟิกโหมด (runlevel 5)
รูปที่ 3-3 แสดงการ Login แบบกราฟิก
..... การ Login แบบ Text Mode (runlevel 3)
..... Login เข้ามาแล้วจะรีบูทหรือปิดเครื่องอย่างไร
.........บนกราฟิกโหมดคงไม่ต้องพูดถึงนะครับเพราะเห็นกันอยู่แล้วว่าจะรีบูทหรือจะปิดเครื่อง สำาหรับบน text mode มาดูคำาสั่งที่ใช้ในการรีบูท และปิดเครื่อง
กันนะครับ
.........เลือกใช้กันตามสะดวกนะครับอย่าปิดเครื่องโดยใช้นิ้วปิดสวิทช์เลย อันตรายต่อข้อมูลขอให้ปิดตามขั้นตอน
.....
ไฟล์ที่เกี่ยวข้องในบทนี้
.........../boot/grub/menu.lst หรือ /boot/grub/grub.conf
.........../etc/inittab
.........../etc/rc.d/rc.sysinit
.........../etc/rc.d/rc.local
.....
คำาสั่งที่เกี่ยวข้องในบทนี้
...........init reboot
...........shutdown
...........poweroff
...........halt
 
http://krookalasin.6te.net
บริการข้อมูลข่าวสารเพื่อวิชาชีพครู E-mail : Kenji_Sdc@hotmail.com
..........