รู้จักกับกระบวนการเริ่มต้นระบบของลินุกซ์

ในขั้นตอนของการติดตั้งลินุกซ์ ได้มีการแบ่งพาร์ทิชันบนฮาร์ดดิสก์ ซึ่งแต่ละพาร์ทิชันก็มีขนาดและหน้าที่ที่แตกต่างกันออกไป พาร์ทิชันต่างๆ เหล่านี้ ได้มีการฝังโค้ดเอาไว้สำหรับใช้ในการเริ่มต้นระบบปฏิบัติการ โดยตำแหน่ง (sector) แรกของฮาร์ดดิสก์ก็ได้มีการสำรองไว้เพื่อใช้ในการเริ่มต้นระบบเช่นกัน ซึ่งตำแหน่งนี้เรียกว่า Master Boot Record (MBR)

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

ใน Fedora ลินุกซ์ จะใช้ซอฟต์แวร์ที่ชื่อว่า GRUB ซึ่งเป็นบูตโหลดเดอร์ (Boot Loader) ที่ได้รับความนิยมในลินุกซ์ GRUB ไม่ได้ถูกฝังไว้ใน MBR ทั้งหมด เนื่องจากว่ามีขนาดใหญ่เกินกว่าที่จะบรรจุอยู่ใน MBR ที่จุได้เพียง 512 ไบต์เท่านั้น แต่ GRUB จะชี้ไปยังคอนฟิกกูเรชั่นไฟล์ ที่ใช้ในการเก็บข้อมูลสำหรับการเริ่มต้นระบบ ซึ่งคอนฟิกกูเรชั่นไฟล์จะอยู่ที่ /boot/grub/grub.conf ถ้าเป็นลินุกซ์ตระกูล Debian/Ubuntu ไฟล์นี้จะเก็บไว้ที่ /boot/grub/menu.lst

ตัวอย่างไฟล์ /boot/grub/grub.conf

#boot=/dev/hda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet

initrd /initrd-2.6.18-1.2798.fc6.img


title Windows XP

rootnoverify (hd0,1)

chainloader +1

เมื่อลินุกซ์ทำการบูตเข้าสู่เคอร์เนลแล้ว ในขั้นตอนถัดไปจะทำการรันสคริปต์ /sbin/init เพื่อตรวจสอบความสมบูรณ์ของระบบไฟล์ , เริ่มต้นโปรแกรมหรือสคริปต์ที่จำเป็นต่อการเริ่มต้นระบบปฏิบัติการเพื่อให้ระบบทำงานได้ถูกต้องตามที่ผู้ใช้งานต้องการ จากนั้นระบบจะทำการตรวจสอบไฟล์ /etc/inittab เพื่อเลือกโหมดของการทำงาน หรือที่เรียกว่า รันเลเวล (Runlevel)

โหมดของการทำงาน (Run levels)

โหมดของการทำงาน (Runlevel) ใช้ในการเลือกโหมดของการเริ่มต้นระบบให้เหมาะสมกับผู้ใช้งาน ซึ่ง
มีตัวเลือกต่างๆ ดังนี้

โหมด
ไดเรคเทอรี
คำอธิบาย
0
/etc/rc.d/rc0.d
ปิดระบบ
1
/etc/rc.d/rc1.d
Single-user โหมด
2
/etc/rc.d/rc2.d
การทำงานแบบเท็กซ์โหมด (Text Mode) และผู้ใช้หลายคน แต่
ไม่มีการเชื่อมต่อเครือข่าย
3
/etc/rc.d/rc3.d
การทำงานแบบเท็กซ์โหมด (Text Mode) และผู้ใช้หลายคน
4
/etc/rc.d/rc4.d
ผู้ใช้กำหนดเอง (User-define)
5
/etc/rc.d/rc5.d
การทำงานแบบกราฟิกส์โหมด (GUI Mode) และผู้ใช้หลายคน
6
/etc/rc.d/rc6.d
รีบูตระบบ

ในการเลือกรันเลเวลของระบบ ทำการปรับแต่งที่ตัวแปร initdefault ในไฟล์ /etc/inittab ถ้ามีการตั้งค่าให้เป็น 3 ระบบก็จะบูตเข้าสู่เท็กซ์โหมด แต่ถ้ามีการตั้งเป็น 5 ก็จะเข้าสู่โหมดของกราฟิกส์ ตัวอย่างของการปรับแต่ง เป็นดังข้างล่างนี้ ซึ่งเราสามารถเปลี่ยนเป็นค่าต่างๆ ได้ตามที่เราต้องการ

id:5:initdefault:

เมื่อระบบเริ่มต้นรันเลเวลตามที่เราได้ทำการปรับแต่งไปแล้วนั้น ระบบก็จะทำการรันสคริปต์ต่างๆ ในไดเรคเทอรีที่ตรงกับรันเลเวลที่กำลังใช้อยู่ในขณะนั้น เช่น ทำงานที่รันเลเวล 3 สคริปต์ที่รันก็จะอยู่ภายใต้ไดเรคเทอรี /etc/rc.d/rc3.d เป็นต้น

ตัวอย่างของสคริปต์ที่อยู่ภายใต้ไดเรคเทอรี /etc/rc.d/rc3.d/

# ls /etc/rc.d/rc3.d/
K02avahi-dnsconfd K15httpd K35winbind K74nscd K89pand
S06cpuspeed S13mcstrans S25netfs S55sshd S98avahi-daemon
...

จะเห็นว่าสคริปต์ต่างๆ จะขึ้นต้นด้วย “S” และ “K” ซึ่ง “S” ใช้ในการเริ่มต้นระบบ (Startup) ส่วน “K” จะรันก็ต่อเมื่อมีการปิดระบบ (Shutdown) และจะเห็นว่าถัดจากตัวอักษร “S” หรือ “K” จะเป็นหมายเลข ซึ่งสคริปต์ต่างๆ เหล่านี้จะทำงานตามลำดับตัวเลขจากน้อยไปมาก

การเข้าสู่ระบบในโหมดกราฟิกส์ (GUI)

ในการเปลี่ยนแปลงรูปแบบการใช้งานจากเท็กซ์โหมด ไปยังกราฟิกส์โหมด สามารถทำได้ 2 วิธีดังนี้
1. แบบชั่วคราว เมื่อผู้ใช้ล็อกเอาท์ (Logout) จากกราฟิกส์โหมด ระบบจะกลับมายัง
เท็กซ์โหมด รูปแบบคำสั่งเป็นดังนี้

# startx

2. แบบถาวร เมื่อผู้ใช้ล็อกเอาท์ (Logout) จากกราฟิกส์โหมด ระบบจะยังคงไว้ซึ่ง
หน้าล็อกอินของกราฟิกส์โหมด จนกว่าจะทำการเริ่มระบบใหม่ รูปแบบคำสั่งเป็นดังนี้

# init 5

 

การเข้าใช้งานบรรทัดคำสั่งจากกราฟิกส์โหมด

ในการเข้าสู่การใช้งานบรรทัดคำสั่งจากกราฟิกส์โหมด สามารถเลือกได้หลายทางดังนี้
1. ใช้จากโปรแกรม Terminal จากเมนู Application ==> Accessories ==> Terminal ดังรูป

Xterm

จะเห็นหน้าต่างของการใช้งานบรรทัดคำสั่ง ดังนี้

2. ใช้งานผ่าน Virtual Consoles หรือ TTY โดยการกดปุ่ม Ctrl+Alt+F1 ซึ่งสามารถกดได้ถึง F6 เพื่อเข้าสู่หน้าต่างการทำงานต่างๆ แต่ถ้าต้องการสลับไปใช้งานในกราฟิกส์โหมด ก็กดปุ่ม Ctrl+Alt+F7

เริ่มต้นระบบใหม่ (Reboot)

การเริ่มต้นระบบใหม่ สามารถทำได้หลายวิธี ดังนี้
1. การเริ่มต้นระบบใหม่โดยการเปลี่ยนรันเลเวล ให้เป็นเลเวล 6 ดังนี้

# init 6

2. การเริ่มต้นระบบใหม่ โดยการใช้คำสั่ง reboot

# reboot
Broadcast message from root (pts/0) (Sat May 6 12:39:31 2007):
The system is going down for reboot NOW!

3. การเริ่มต้นระบบใหม่ โดยใช้คำสั่ง shutdown โดยเพิ่มพารามิเตอร์ -r เข้าไป ซึ่งสามารถตั้งเวลาให้ เริ่มระบบใหม่ได้ และส่งข้อความเตือนไปยังผู้ที่กำลังล็อกอินอยู่ในระบบอยู่ ตัวอย่างเช่น ต้องการเริ่มต้นระบบใหม่ในอีก 5 นาที ก็สามารถใช้คำสั่งได้ด้งนี้

# shutdown -r 5

 

การปิดระบบ (Shutdown)

ในการปิดระบบบนลินุกซ์นั้น สามารถทำได้หลายวิธีด้วยกัน ดังนี้
1. การปิดระบบโดยการเปลี่ยนรันเลเวล (Runlevel) ให้เป็นเลเวล 0 สามารถใช้คำสั่งได้ดังนี้

# init 0

2. การปิดระบบโดยใช้คำสั่ง shutdown ซึ่งมีพารามิเตอร์ -h เพื่อระบุให้ระบบปิดตัวเอง และมีอีก
พารามิเตอร์ก็คือ เวลา ที่จะให้ระบบปิด ซึ่งถ้าต้องการให้ปิดตอนนี้เลย ก็สามารถกำหนดให้เวลาเป็น 0 หรือจะ
ใช้คำว่า now ก็ได้เหมือนกัน ดังนี้

# shutdown -h now
# shutdown -h 0

3. การปิดระบบโดยใช้คำสั่ง halt จะมีผลให้ระบบปิดตัวเองในทันที ดังนี้

# halt