Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Khởi tạo Hệ thống Linux – Hiểu Quy Trình Boot để Xử Lý Sự Cố

    Khởi tạo Hệ thống Linux – Hiểu Quy Trình Boot để Xử Lý Sự Cố


    Quy trình khởi động (boot process) trong Linux diễn ra rất nhanh và phần lớn ở chế độ nền. Tuy nhiên, nắm rõ các giai đoạn này là điều bắt buộc đối với quản trị viên hệ thống và kỹ sư bảo mật khi cần khắc phục sự cố máy chủ hoặc ứng dụng không thể khởi động đúng cách. 1. Các Giai Đoạn Chính của Quá Trình Khởi Động


    Trình tự chung trong quy trình boot Linux:
    1. Kiểm tra phần cứng (POST – Power-On Self Test)
      Thực hiện bởi BIOS hoặc UEFI để xác minh tình trạng phần cứng cơ bản.
    2. Phát hiện bus thiết bị
      Xác định các bus giao tiếp như PCI, USB, SATA để nhận diện phần cứng.
    3. Phát hiện thiết bị
      Xác định các thiết bị lưu trữ, card mạng, GPU…
    4. Khởi tạo các subsystem của kernel
      Kernel Linux được tải vào bộ nhớ, bắt đầu khởi tạo driver và dịch vụ lõi.
    5. Mount hệ thống tệp gốc (root filesystem)
      Tại đây, hệ điều hành có thể truy cập các file hệ thống cần thiết để khởi chạy user-space.
    6. Khởi động các quy trình user-space
      Bao gồm các dịch vụ (services) và daemon chạy nền.

    2. Bootloader – Thành Phần Khởi Động Kernel
    • GRUB (GNU GRUB) và LILO là hai bootloader phổ biến.
    • Bootloader phải tương tác với BIOS hoặc UEFI để đọc ổ đĩa khởi động, do lúc này chưa có driver OS.
    • BIOS/UEFI thực hiện kiểm tra cơ bản, tìm ổ đĩa boot, đọc bảng phân vùng, và chạy mã bootstrap nhỏ.
    • Nhiệm vụ chính: tải kernel vào RAM và truyền tham số khởi động.

    Tham số khởi động được bootloader ghi vào file /proc/cmdline, ví dụ:


    BOOT_IMAGE=/boot/vmlinuz-4.4.0-22-generic root=UUID=339228c9-cbc3-4503-950f-40415e03779f ro quiet splash

    Trong đó:
    • BOOT_IMAGE – đường dẫn kernel.
    • root – ổ đĩa chứa root filesystem (UUID hoặc /dev/sda1).
    • Các tham số khác như ro (read-only ban đầu), quiet (ẩn log), splash (màn hình đồ họa khởi động).

    3. Khởi tạo User-Space: SysVinit vs systemd


    Sau khi kernel khởi chạy, Linux chuyển sang khởi tạo user-space:
    • System V init (SysVinit) – Cơ chế truyền thống.
      • File cấu hình: /etc/inittab.
      • Khởi động tuần tự các script trong /etc/rcX.d (X là số runlevel).
      • Script bắt đầu bằng S để start service, K để kill/dừng service.
    • systemd – Cơ chế hiện đại.
      • Cấu trúc: /etc/systemd/.
      • Khởi động song song → giảm thời gian boot.
      • Hỗ trợ khởi chạy dịch vụ theo nhu cầu (on-demand).
      • Quản lý cả việc mount filesystem và các target (thay thế runlevel).

    4. Run Level và Target


    Run level mô tả chế độ hoạt động của hệ thống:
    0 Halt (tắt máy)
    1 Single-user mode (bảo trì/khẩn cấp)
    2 Multi-user, không GUI
    3 Multi-user + mạng, không GUI
    4 Không tiêu chuẩn (custom)
    5 Multi-user + GUI
    6 Reboot

    Trong systemd, run level được thay bằng target (ví dụ: graphical.target, multi-user.target).
    5. Nhận biết Hệ thống Đang Dùng Cơ Chế Khởi Động Nào
    • Có thư mục /etc/systemd → Dùng systemd.
    • Có file /etc/inittab → Dùng System V init.

    6. Câu hỏi ôn tập


    Câu 1: Tệp nào chứa tham số khởi động từ bootloader?
    /proc/cmdline

    Câu 2: Bước cuối cùng trong quá trình khởi động là gì?
    Khởi động các quy trình người dùng (user-space processes)
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X