Trong bài này chúng ta sẽ xem lại cơ bản về quá trình khởi động Linux. Hệ điều hành linux hoạt động như thế nào thông qua các giai đoạn khởi động khác nhau. Bài viết này được viết cho những độc giả vừa bước vào thế giới Linux. Hiểu được cách khởi động Linux là rất quan trọng trong việc khắc phục sự cố có hiệu quả trong trường hợp hệ thống bị lỗi. Khi một hệ thống được bật và sau vài phút chúng tôi nhận được một nhắc nhở đăng nhập. Có phải chúng ta đã cố gắng tìm hiểu xem giai đoạn khởi động và những gì đã xảy ra đằng sau hiện trường trong suốt quá trình khởi động hệ thống.
Hướng dẫn cơ bản về quá trình khởi động Linux
Bật (Power on)
- BIOS (Basic Input Output System) là một chương trình phần mềm được xây dựng sẵn trong một bo mạch chủ chipset.
- Tải BIOS và quét cho các thiết bị như đĩa cứng, CD-ROM, RAM, vv
- BIOS tìm kiếm MBR (Master Boot Record: 1st sector) của ổ cứng chính, nó quét cho bộ nạp khởi động thứ nhất (Trong trường hợp chúng tôi khởi động là (GRUB LILO) và bàn giao trách nhiệm cho MBR.
- Khởi động PROM / FLASH / BIOS là thành thạo nạp MBR vào RAM và thực hiện nó.
MBR (Master Boot Record)
- 512 byte là không gian -> MBR
- MBR chứa thông tin của bộ nạp của hầu hết hệ điều hành như UNIX, Linux và WINDOWS
- MBR giữ các thông tin nhị phân nhỏ của giai đoạn 1 của bộ nạp
- MBR bao gồm lĩnh vực vật lý của ổ đĩa đầu tiên (tức là 512 byte) và nó không phải là một phần của phân vùng nào.
- Đặt trên ổ đĩa chính, trong khu vực chính của cylinder đầu tiên của bài hát là 0 và đầu là 0 (toàn bộ con đường này thường được đặt cho các chương trình khởi động
- MBR liên quan đến một chương trình thực thi nhỏ và một bảng xác định các phân vùng chính.
- MBR cũng ghi lại phân vùng chính là ACTIVE.
- Quyền đầu tiên của BIOS cho trình nạp khởi động giai đoạn đầu, sau đó quét bảng phân vùng và tìm trình nạp khởi động thứ hai trên phân vùng được cấu hình như khả năng khởi động.
Bộ tải khởi động
- Trình nạp khởi động được gọi là bộ nạp thứ nhất và tự nạp vào RAM. Tất cả những điều này diễn ra trong mili giây.
- Trình nạp khởi động mặc định ở giai đoạn 2 là GRUB (Bộ nạp khởi động hợp nhất Grand) hoặc LILO (Linux Loader)
- Một khi GRUB được nạp vào RAM, thì đó là tìm kiếm vị trí của hạt nhân.
- GRUB sẽ kiểm tra tập tin bản đồ để tìm hình ảnh hạt nhân, nằm dưới (/ boot) và tải nó.
- GRUB tải phân vùng kernel (vmlinuz-version) từ /boot partition
Các điểm nổi bật của Kernel bao gồm:
- Khởi tạo các thành phần CPU, ví dụ, MMU
- Khởi tạo trình lên lịch (PID 0)
- Mount hệ thống tập tin gốc trong chế độ rw
- Fork off quá trình init (PID 1)
Về bản chất, khởi tạo Kernel làm hai việc:
- Bắt đầu hệ thống cốt lõi của người quản lý tài nguyên chia sẻ (bộ nhớ RAM, bộ xử lý và lưu trữ hàng loạt).
- Bắt đầu một tiến trình duy nhất, /sbin/init.
Init process (sbin/init) là quá trình rất cần thiết để nạp tất cả các daemon khác nhau và mount tất cả các phân vùng được liệt kê dưới /etc/fstab.
Giới thiệu về /etc/fstab:
- /Sbin/init đọc tập tin /etc/inittab
- Đặt runlevel mặc định (lệnh telinit cho phép các quản trị viên báo cho quá trình init thay đổi cấp độ chạy hiện tại của nó)
- Gọi /etc/rc.d/rc.sysinit và /etc/rc.d/rc x (trong đó ‘x‘ là một cấp runlevel)
- Trong tập tin thư mục /etc/rc.d/rc5.d bắt đầu với chữ cái K -> diệt tập lệnh và tập tin bắt đầu bằng chữ S -> tập lệnh khởi động.
- Bắt đầu quá trình tty và xdm (trình quản lý hiển thị X)
- Bắt đầu màn hình đăng nhập của người dùng.
Add Comment