Làm cách nào để xác định xem một hệ thống Ubuntu đang chạy cụ thể đã được khởi động bằng EFI / UEFI hay BIOS chưa?
Làm cách nào để xác định xem một hệ thống Ubuntu đang chạy cụ thể đã được khởi động bằng EFI / UEFI hay BIOS chưa?
Câu trả lời:
Cách dễ nhất là kiểm tra xem có /sys/firmware/efi
tồn tại không. Nó không xuất hiện nếu bạn khởi động bằng BIOS truyền thống.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
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
... 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 .
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ể.
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)