Tải bản đầy đủ (.ppt) (15 trang)

QUÁ TRÌNH KHỞI ĐỘNG VÀ ĐÓNG TẮT TRONG LINUX

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (232.56 KB, 15 trang )

1
TRẦN THỊ NGỌC MAI
HỆ ĐiỀU HÀNH LINUX
QUÁ TRÌNH KHỞI ĐỘNG VÀ
ĐÓNG TẮT
VC
VC
&
&
BB
BB
22
Các bước khởi động hệ thống Linux (1)
HĐH Linux
VC
VC
&
&
BB
BB
33
Các bước khởi động hệ thống Linux (2)
Bật máy, BIOS nhận diện các device (quá trình
này gọi là Power On Self Test - POST)
Đọc Master Boot Record để tải boot loader
(trình lilo hoặc trình grub) vào RAM: cho phép
lựa chọn hệ điều hành boot.
Tải nhân và khởi tạo RAM disk
/sbin/init: tiến trình cha của mọi tiến trình.
/etc/inittab: quyết định run level và khởi động
các dịch vụ cần thiết của run level đó.


HĐH Linux
VC
VC
&
&
BB
BB
44
Boot loader
Boot loader hay còn gọi là boot manager cho
phép quản lý nhiều hệ điều hành và chọn 1 hệ
điều hành để boot vào.
Hai boot loader phổ biến của Linux:

LILO (LInux LOader)

GRUB 2 (GRand Unified Boot loader)
Khi thay đổi file cấu hình, GRUB tự động nhận
biết, LILO thì phải dùng lệnh /sbin/lilo để update
cấu hình.
Ngày nay, GRUB là boot loader mặc định của
đại đa số các hệ điều hành Linux.
HĐH Linux
VC
VC
&
&
BB
BB
55

Boot loader GRUB 2 (1)
Tập tin cấu hình của GRUB 2: /boot/grub/grub.cfg
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,10)
search no-floppy fs-uuid set 85ae91cc-38c5-4870-b3af-3565b3fc355e
linux /boot/vmlinuz-2.6.31-14-generic root=UUID=85ae91cc-38c5-4870-b3af-3565b3fc355e ro
quiet splash
initrd /boot/initrd.img-2.6.31-14-generic
}
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
insmod ntfs
set root=(hd0,1)
search no-floppy fs-uuid set cafc5f60fc5f463b
drivemap -s (hd0) ${root}
chainloader +1
}
HĐH Linux
VC
VC
&
&
BB
BB
66
Boot loader GRUB 2 (2)
Cách phân biệt partition trong boot loader

GRUB khác với cách thông thường của Linux.
GRUB không phân biệt IDE, và SCSI. Đĩa cứng
được hiểu là: hd%d.
%d: là số thứ tự đĩa cứng, bắt đầu từ 0 để chỉ
đầu tiên.
VD: set root=(hd0,10) <=> đĩa cứng thứ nhất,
partition 10
LILO có cách hiểu thông thường như Linux:
hdXY, sdXY.
HĐH Linux
VC
VC
&
&
BB
BB
77
HĐH mặc định trong menu boot của GRUB 2 (1)
Tập tin /boot/grub/grub.cfg là tập tin được sinh từ
/etc/grub.d và /etc/default/grub => không nên chỉnh sửa
Chỉnh sửa tập tin /etc/default/grub tại các dòng:

GRUB_DEFAULT=0
Thay số 0 bằng số thứ tự mục chọn trong menu boot.
Giả sử với HĐH Ubuntu 9.10 (có 4 mục trong menu
boot STT 0->3) và HĐH Windows (STT 4) => muốn
boot mặc định vào Windows => thay 0 bằng 4
Cũng có thể thay bằng từ “saved” để tự động lưu lại
mục chạn của lần khởi động trước đó


GRUB_TIMEOUT=10
Thời gian chờ của menu boot
HĐH Linux
VC
VC
&
&
BB
BB
88
HĐH mặc định trong menu boot của GRUB 2 (2)
Để biết các mục chọn trong menu boot => chạy
lệnh: grep menuentry /boot/grub/grub.cfg
Sau khi chỉnh sửa tập tin /etc/default/grub => chạy
lệnh: sudo update-grub để cập nhật thông tin từ
các tập tin riêng lẻ trong /etc/grub.d và tập tin
vừa mới chỉnh /etc/default/grub vào trong tập
tin /boot/ grub/grub.cfg
HĐH Linux
VC
VC
&
&
BB
BB
99
Tải nhân và khởi tạo RAM disk
Lệnh tải nhân và khởi tạo RAM disk trong
/etc/grub/grub.cfg:
linux /boot/vmlinuz-2.6.31-14-generic

root=UUID=85ae91cc-38c5-4870-b3af-3565b3fc355e ro
quiet splash
initrd /boot/initrd.img-2.6.31-14-generic
Lệnh linux: tải nhân Linux tại tập tin
/boot/vmlinuz-2.6.31-14-generic
Lệnh initrd: khởi tạo RAM disk tại tập tin
/boot/initrd.img-2.6.31-14-generic
RAM disk là hệ thống tập tin chứa các driver,
module cần thiết cho nhân
HĐH Linux
VC
VC
&
&
BB
BB
1010
Tải các HĐH khác
Lệnh tải các HĐH non*unix:
insmod ntfs
set root=(hd0,1)
search no-floppy fs-uuid set cafc5f60fc5f463b
drivemap -s (hd0) ${root}
chainloader +1
Lệnh chainloader để tải 1 sector vào RAM
Chainloader +1 <=> chainloader 0+1: tải sector
thứ 0
HĐH Linux
VC
VC

&
&
BB
BB
1111
Tiến trình init và file inittab (1)
Sau khi kernel được tải, kernel cho thực thi
file /sbin/init và /sbin/init trở thành process đầu
tiên (có PID=1).
Tiến trình init sẽ tìm đọc file /etc/inittab để quyết
định runlevel nào sẽ được boot. Nếu không có
file /etc/inittab thì mặc định runlevel 2 được
chạy
Với runlevel được chọn, các script trong thư
mục /etc/rc#.d được thực thi để khởi động các
dịch vụ của runlevel tương ứng. Các script này
là các liên kết lấy từ /etc/init.d
HĐH Linux
VC
VC
&
&
BB
BB
1212
Tiến trình init và file inittab (2)
Runlevel: quy định cách thức thao tác với HĐH
Các runlevel của Linux:

0: System halt


1: Single user

2: Full muti-user (default)

3 → 5: Full muti-user

6: System reboot
Lệnh xem runlevel: runlevel (hoặc who -r)
Lệnh thay đổi runlevel: telinit <runlevel> (phải
dùng super user)

sudo telinit 0 <=> tắt máy

sudo telinit 6 <=> khởi động lại
HĐH Linux
VC
VC
&
&
BB
BB
1313
Tiến trình init và file inittab (3)
Thiết lập runlevel mặc định cho hệ thống (khác
2) => tạo tập tin /etc/inittab (với các distro của
Redhat tập tin này có sẵn)
sudo gedit /etc/inittab
Nhập dòng sau:
id:number:initdefault:

thay number bằng runlevel mong muốn (không
thay bằng 0 hoặc bằng 6)
HĐH Linux
VC
VC
&
&
BB
BB
1414
Tắt hệ thống (1)
Có thể tắt hoặc khởi động lại hệ thống bằng lệnh
telinit 0 hoặc telinit 6, nhưng các lệnh này sẽ tắt hệ
thống ngay lập tức
Lệnh tắt máy: shutdown [tham số] <thời gian>
Tham số:

-r (restart)

-h (halt)

-c (cancel)
Thời gian: số phút, hoặc dùng “now” để tắt ngay
lập tức
Tắt máy vào lúc 8 tối (pm): shutdown -h 20:00
Sau 10 phút thì tắt máy: shutdown -h +10 (hoặc
shutdown -h 10)
HĐH Linux
VC
VC

&
&
BB
BB
1515
Tắt hệ thống (2)
Tham số -c giúp hủy lệnh shutdown. Giả sử
vừa thực hiện lệnh shutdown -h 5 nhưng chưa
hết 5 phút mà muốn hủy lệnh → Ctrl C để hủy
lệnh hoặc mở 1 Terminal khác và gõ lệnh
shutdown -c
Các lệnh tắt máy khác:

halt

reboot

poweroff
HĐH Linux

×