1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BIOS và UEFI

Last updated at Posted at 2025-07-07

Xin chào mọi người !!!
Để phân biệt cách hoạt động của hệ thống Linux trong hai trường hợp sử dụng BIOSUEFI, tôi đã thử tìm hiểu về quy trình khởi động, cách Linux tương tác với từng loại firmware, và các điểm khác biệt chính. Bài viết này là tóm tắt lại những gì tôi đã tìm hiểu được.


1. BIOS và UEFI là gì?

BIOS (Basic Input/Output System)

  • Định nghĩa: BIOS là một firmware truyền thống, được lưu trữ trên một chip ROM hoặc Flash trên bo mạch chủ. Nó cung cấp giao diện cơ bản giữa phần cứng và phần mềm trong quá trình khởi động máy tính.
  • Đặc điểm:
    • Xuất hiện từ những năm 1980, được sử dụng rộng rãi trong các hệ thống cũ.
    • Hoạt động ở chế độ 16-bit, giới hạn khả năng xử lý và tương thích với phần cứng hiện đại.
    • Sử dụng MBR (Master Boot Record) để quản lý phân vùng đĩa và khởi động hệ điều hành.
    • Giao diện người dùng đơn giản, thường là các menu văn bản.

UEFI (Unified Extensible Firmware Interface)

  • Định nghĩa: UEFI là một tiêu chuẩn firmware hiện đại, thay thế BIOS. Nó cung cấp giao diện linh hoạt hơn giữa phần cứng và hệ điều hành, hỗ trợ các tính năng tiên tiến.
  • Đặc điểm:
    • Hoạt động ở chế độ 32-bit hoặc 64-bit, cho phép xử lý nhanh hơn và hỗ trợ phần cứng hiện đại.
    • Sử dụng GPT (GUID Partition Table) thay vì MBR, hỗ trợ ổ đĩa dung lượng lớn (>2TB) và nhiều phân vùng hơn.
    • Hỗ trợ giao diện đồ họa, khởi động an toàn (Secure Boot), và khả năng mở rộng tốt hơn.
    • Cho phép chạy các ứng dụng nhỏ (EFI applications) trước khi hệ điều hành khởi động.

2. Quy trình khởi động của Linux trên BIOS

Quy trình khởi động của Linux trên hệ thống sử dụng BIOS diễn ra qua các bước sau:

  1. Khởi động nguồn (Power-On):

    • Khi bật nguồn, BIOS được kích hoạt từ chip ROM trên bo mạch chủ.
    • BIOS thực hiện POST (Power-On Self-Test) để kiểm tra phần cứng cơ bản (CPU, RAM, v.v.).
  2. Tải Bootloader:

    • BIOS tìm kiếm MBR (thường nằm ở sector đầu tiên của ổ đĩa khởi động) để tìm bootloader (ví dụ: GRUB hoặc LILO).
    • MBR chứa một đoạn mã nhỏ (boot code, tối đa 512 byte) để khởi động bootloader.
  3. GRUB (hoặc Bootloader khác):

    • Bootloader được tải từ MBR vào RAM. GRUB (GRand Unified Bootloader) là bootloader phổ biến trên Linux.
    • GRUB hiển thị menu để người dùng chọn kernel Linux và các tham số khởi động (nếu cần).
    • GRUB tải kernel Linux và initramfs (initial RAM filesystem) vào RAM.
  4. Tải Kernel và Initramfs:

    • Kernel được tải vào RAM và bắt đầu thực thi.
    • Initramfs cung cấp các module và driver cần thiết để kernel giao tiếp với phần cứng (ví dụ: driver cho ổ đĩa).
    • Kernel gắn (mount) hệ thống tệp gốc (root filesystem) từ ổ đĩa.
  5. Khởi động hệ thống:

    • Sau khi hệ thống tệp gốc được gắn, kernel chạy init (hoặc systemd trên các bản phân phối hiện đại) để khởi động các dịch vụ và đưa hệ thống vào trạng thái hoạt động.

Hạn chế của BIOS:

  • Chỉ hỗ trợ MBR, giới hạn tối đa 4 phân vùng chính và dung lượng ổ đĩa 2TB.
  • Không có tính năng bảo mật như Secure Boot.
  • Chế độ 16-bit giới hạn khả năng xử lý và tốc độ khởi động.

3. Quy trình khởi động của Linux trên UEFI

Quy trình khởi động trên hệ thống UEFI phức tạp hơn nhưng linh hoạt và mạnh mẽ hơn:

  1. Khởi động nguồn (Power-On):

    • UEFI được kích hoạt từ chip firmware trên bo mạch chủ.
    • UEFI cũng thực hiện POST để kiểm tra phần cứng, nhưng nhanh hơn và hỗ trợ nhiều thiết bị hơn so với BIOS.
  2. Tải EFI Boot Manager:

    • UEFI sử dụng NVRAM (Non-Volatile RAM) để lưu trữ thông tin về các EFI boot entries (mục khởi động EFI).
    • UEFI tìm kiếm phân vùng EFI System Partition (ESP), một phân vùng đặc biệt chứa các tệp EFI (thường định dạng FAT32).
    • Trong ESP, UEFI tìm tệp khởi động EFI (thường là BOOTX64.EFI trong thư mục /EFI/BOOT/).
  3. Tải Bootloader:

    • UEFI chạy bootloader EFI (ví dụ: GRUB EFI, systemd-boot, hoặc rEFInd).
    • Bootloader EFI được viết dưới dạng ứng dụng EFI, chạy trực tiếp trong môi trường UEFI (32-bit hoặc 64-bit).
    • GRUB EFI hiển thị menu khởi động, cho phép chọn kernel Linux hoặc các hệ điều hành khác.
  4. Tải Kernel và Initramfs:

    • GRUB EFI tải kernel Linux và initramfs vào RAM, tương tự như BIOS.
    • UEFI hỗ trợ các giao thức hiện đại hơn, giúp kernel dễ dàng nhận diện phần cứng (ví dụ: driver đồ họa, mạng).
  5. Khởi động hệ thống:

    • Kernel gắn hệ thống tệp gốc từ ổ đĩa (thường sử dụng GPT).
    • Hệ thống tiếp tục khởi động thông qua init hoặc systemd, tương tự như BIOS.

Tính năng nổi bật của UEFI:

  • Secure Boot: UEFI có thể kiểm tra chữ ký số của bootloader và kernel để đảm bảo chúng không bị sửa đổi, tăng cường bảo mật.
  • Hỗ trợ GPT: Cho phép quản lý ổ đĩa dung lượng lớn và số lượng phân vùng gần như không giới hạn.
  • Khả năng mở rộng: UEFI hỗ trợ các ứng dụng EFI, cho phép chạy các công cụ chẩn đoán hoặc tiện ích trước khi khởi động hệ điều hành.

4. So sánh chi tiết BIOS và UEFI trong Linux

Tiêu chí BIOS UEFI
Chế độ hoạt động 16-bit, giới hạn hiệu suất 32-bit hoặc 64-bit, hiệu suất cao
Bảng phân vùng MBR (giới hạn 4 phân vùng chính, 2TB) GPT (hỗ trợ hàng triệu phân vùng, dung lượng lớn)
Bootloader GRUB Legacy, LILO, hoặc GRUB2 (MBR-based) GRUB EFI, systemd-boot, rEFInd (EFI-based)
Khởi động an toàn Không hỗ trợ Secure Boot Hỗ trợ Secure Boot (kiểm tra chữ ký số)
Tốc độ khởi động Chậm hơn do giới hạn phần cứng và firmware Nhanh hơn nhờ kiến trúc hiện đại và driver tích hợp
Giao diện Văn bản đơn giản Hỗ trợ giao diện đồ họa, cảm ứng, và chuột
Hỗ trợ phần cứng Giới hạn với phần cứng hiện đại Hỗ trợ tốt hơn (ổ đĩa lớn, GPU, mạng, v.v.)
Khả năng mở rộng Hạn chế, không hỗ trợ ứng dụng trước khởi động Hỗ trợ ứng dụng EFI, cho phép chạy công cụ chẩn đoán

5. Linux tương tác với BIOS và UEFI

Trên BIOS:

  • Linux sử dụng các interrupt của BIOS (Int 13h) trong giai đoạn đầu của bootloader để truy cập đĩa.
  • GRUB phải tương thích với MBR và các hạn chế của BIOS (ví dụ: không hỗ trợ ổ đĩa >2TB trừ khi dùng các bản vá).
  • Kernel Linux không phụ thuộc trực tiếp vào BIOS sau khi khởi động, nhưng cấu hình phần cứng ban đầu (do BIOS cung cấp) có thể ảnh hưởng đến hiệu suất.

Trên UEFI:

  • Linux tận dụng các giao thức UEFI (như Block I/O, Graphics Output Protocol) để truy cập phần cứng trực tiếp, không cần thông qua BIOS.
  • GRUB EFI hoặc systemd-boot sử dụng các EFI services để tải kernel, hỗ trợ tốt hơn cho các thiết bị hiện đại (như NVMe SSD).
  • UEFI cung cấp ACPI (Advanced Configuration and Power Interface), giúp Linux quản lý năng lượng và phần cứng tốt hơn.
  • Secure Boot yêu cầu kernel và bootloader được ký số (ví dụ: sử dụng Microsoft-signed shim hoặc khóa tự ký).

6. Thách thức và lưu ý khi cài đặt Linux

Với BIOS:

  • Cài đặt: Cần định dạng ổ đĩa với MBR và cài đặt bootloader vào sector đầu tiên.
  • Hạn chế: Không hỗ trợ ổ đĩa lớn (>2TB) hoặc nhiều phân vùng.
  • Tương thích: Phù hợp với các hệ thống cũ, nhưng ngày càng ít được hỗ trợ trên phần cứng mới.

Với UEFI:

  • Cài đặt: Yêu cầu phân vùng EFI System Partition (ESP), thường 100-512MB, định dạng FAT32.
  • Secure Boot: Một số bản phân phối Linux (như Ubuntu, Fedora) hỗ trợ Secure Boot bằng cách sử dụng shim hoặc khóa tự ký. Các bản phân phối khác có thể yêu cầu tắt Secure Boot.
  • Tương thích ngược: Một số hệ thống UEFI hỗ trợ chế độ Legacy Boot (giả lập BIOS), nhưng điều này làm mất các lợi ích của UEFI.

7. Trường hợp thực tế và đề xuất

  • Hệ thống cũ (trước 2010): BIOS là lựa chọn duy nhất. Sử dụng GRUB2 với MBR để cài đặt Linux.
  • Hệ thống hiện đại (sau 2010): UEFI là tiêu chuẩn. Sử dụng GPT và GRUB EFI hoặc systemd-boot để tận dụng tốc độ và bảo mật.
  • Dual-boot với Windows: UEFI được khuyến nghị vì Windows hiện đại (8/10/11) sử dụng GPT và Secure Boot. Đảm bảo ESP được chia sẻ giữa các hệ điều hành.
  • Tùy chỉnh nâng cao: Với UEFI, bạn có thể sử dụng các công cụ như rEFInd để quản lý khởi động phức tạp hoặc chạy các ứng dụng EFI tùy chỉnh.

8. Kết luận

  • BIOS: Đơn giản, phù hợp với hệ thống cũ, nhưng bị giới hạn về hiệu suất, dung lượng đĩa, và bảo mật.
  • UEFI: Linh hoạt, nhanh hơn, hỗ trợ phần cứng hiện đại, và tích hợp các tính năng như Secure Boot, GPT. Đây là lựa chọn mặc định cho các hệ thống mới.
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?