Làm cách nào để biết hệ thống của tôi đã được khởi động dưới dạng EFI / UEFI hoặc BIOS?


Câu trả lời:



16

Không dùng nữa

Câu trả lời dưới đây là một phương pháp có thể không phải lúc nào cũng hoạt động.
Thay vào đó hãy sử dụng câu trả lời của Colin dựa trên /sys/firmware/efi.


Rất dễ dàng để biết hệ thống đã được khởi động trong EFI (hay chưa, trong trường hợp đó phải là BIOS):

Chỉ dùng dmesg | grep "EFI v"

  • Điều này sẽ trả về một dòng như thế này, nếu hệ thống đã được khởi động khỏi EFI:

    [0,000000] EFI v2.00 của Megatrends Mỹ
  • Hoặc không trả lại gì nếu không, trong trường hợp đó, nó đã được khởi động khỏi BIOS

Ví dụ về việc sử dụng tập lệnh bash dựa trên mã thoát của grep :

...
dmesg | grep -q "EFI v" # -q báo cho grep không xuất ra gì
nếu [$? -eq 0] # kiểm tra mã thoát; nếu 0 EFI, BIOS khác
sau đó
    echo "Bạn đang sử dụng EFI boot."
  khác
    echo "Bạn đang sử dụng BIOS boot"
fi
...

Nguồn: Để biết cách xác định xem hệ thống EFI có sử dụng mô phỏng BIOS kế thừa hay không, cũng như biết thêm thông tin về thử nghiệm khả năng tương thích EFI và EFI, cùng với chuỗi cho một số nhà cung cấp / phiên bản EFI, vui lòng xem trang này từ Hội nghị thượng đỉnh nhà phát triển Ubuntu cho chính xác .


2
Tôi sẽ đơn giản hóa nó thành if dmesg | grep -Fq "EFI v"; then .... [Ngoài ra, không có điểm nào trong việc chạy lệnh, chỉ để kiểm tra thành công / thất bại. $?chủ yếu là hữu ích để kiểm tra các lỗi cụ thể.
geirha

3
Điều này là dễ vỡ, vì không có gì đảm bảo rằng chuỗi tìm kiếm được tạo bởi tính năng mong muốn.
Thorbjørn Ravn Andersen

1
@izx, bất kỳ tập lệnh nào cũng có thể xảy ra để viết "EFI v" như một phần của nội dung khác. Nếu điều đó xảy ra trên máy BIOS, điều này sẽ là dương tính giả.
Thorbjørn Ravn Andersen

2
Tốt nhất không grep cho văn bản trong nhật ký kernel, nó có thể thay đổi. Tốt nhất để xem / sys / firmware / efi
Colin Ian King

1
Tuy nhiên, tôi muốn đề cập rằng đây là một cách tuyệt vời để có phiên bản EFI!
Omega

0

Mã Python để kiểm tra xem hệ thống đã được khởi động với UEFI hay ROM BIOS chưa:

nhập khẩu os, hệ thống
def chính ():
    if (os.path.exists ("/ sys / firmware / efi")):
        in "\ n \ n Hệ thống được khởi động bằng uefi!"
    khác:
        in "\ n \ n Hệ thống được khởi động với rom bios"
chủ yếu()
sys.exit (0)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.