Tìm hiểu quá trình khởi động trong Linux

Bài viết này mình tìm hiểu quá trình khởi động của Server Linux, các level sử dụng và cách thiết lập run levels.

Đây là quá trình khởi động của Linux

System Startup

  • Đây là bước đầu tiên của quá trình khởi động, ở bước này BIOS (Basic Input/Output System) thực hiện một công việc gọi là POST (Power-on Self-test). POST là một quá trình kiểm tra tính sẵn sàng phần cứng nhằm, kiểm tra thông số và trạng thái của các phần cứng máy tính như bộ nhớ, CPU, thiết bị lưu trữ, card mạng…
  • Nếu quá trình POST kết thúc thành công, BIOS sẽ cố gắng tìm kiếm và khởi chạy (boot) một hệ điều hành được chứa trong các thiết bị lưu trữ như ổ cứng, CD/DVD, USB….
  • Nếu BIOS không tìm thấy boot device thì sẽ cảnh báo “No boot device found”
  • Nếu hệ điều hành Linux được cài trên ổ đĩa cứng thì nó sẽ tìm đến Master Boot Record (MBR) tại sector đầu tiên của ổ đĩa cứng đầu tiên.

MBR loading

  • MBR (Master Boot Record) được lưu trự tại Sector đầu tiên của một thiết bị lưu trữ dữ liệu, ví dụ /dev/hda hoặc/dev/dsa/. MBR rất nhỏ chỉ 512 byte.
  • MBR chứa thông tin:

– Primary boot loader code (446 Bytes): Cung cấp thông tin boot loader và vị trí boot loader trên ổ cứng

– Partition table information (64 Bytes): Lưu trữ thông tin của các partition

– Magic number (2 Bytes): được sử dụng để kiểm tra MBR, nếu MBR bị lỗi thì nó sẽ phục hồi lại.

Boot loader stage 2 (Grub Loader)

Sau khi xác vị trí BootLoader, bước này sẽ thực hiện loading BootLoader vào bộ nhớ và đọc thông tin cấu hình sau đó hiển thị GRUB boot menu để user lựa chọn. Nếu user không lựa chọn OS thì sau khoảng thời gian được định nghĩa GRUB sẽ load kernel default vào memory để khởi động.

Kernel

Kernel của hệ điều hành sẽ được nạp vào trong RAM. Khi kernel hoạt động thì việc đầu tiên đó là thực thi quá trinh INIT

INIT

Đây là giai đoạn chính của quá trình BOOT. Quá trình này bắt đầu bằng việc đọc file

/etc/inittab để xác định run-level. Sau đó sẽ thực thi các script tương ứng với run- level.

User prompt

Người đăng nhập và sử dụng

Run Levels

Run levels là chế độ sử dụng của Server. Mỗi chế độ có những module, chức năng hoạt động riêng.

Multi-user.target: Chế độ dòng lệnh Command Mode(non-graphics) User chỉ sử dụng các lệnh (command) để thao tác. Ở chế độ này server sử dụng rất it RAM.

Graphical.target: Chế độ đồ họa, mặc định khi Install OS ở chế độ GNOME là ta đang dùng Graphical.target.

Chúc các bạn thành công!

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *