Có một lệnh hoặc phương thức nào (ngoài RTFM) để xác định xem một hệ thống có UEFI BIOS không?


7

Cảm hứng của tôi khi hỏi đây là câu hỏi khác trên Ask Ubuntu .

Một lý do tôi đang hỏi là tôi chỉ tò mò. Tôi muốn biết thêm về điều này cho bất kỳ giá trị nào nó có thể có trong tương lai.

Nhưng tôi cũng muốn biết để tôi có một quy trình tôi có thể yêu cầu người dùng thực hiện khi tôi tự hỏi WTFcó thể theo kịp họ và hệ thống của họ. ;-)

Ban đầu tôi tự hỏi liệu thông tin này có thể được phát hiện và báo cáo bởi một công cụ như (hoặc tương tự) dmidecode. Nhưng điều gì sẽ xảy ra khi a UEFI BIOSđang mô phỏng a pre-UEFI BIOS?

Tôi hy vọng câu hỏi này sẽ chỉ trở nên thú vị hơn khi thời gian trôi qua. Dường như các công ty đằng sau mỗi hệ điều hành chính sẽ khăng khăng thực hiện EFIhỗ trợ bằng cách thực hiện " điều tương tự chỉ khác nhau ".<sigh/>

Câu trả lời:


3

Một hệ thống có thể có chương trình cơ sở UEFI và vẫn khởi động HĐH ở chế độ BIOS kế thừa. Trong tình huống đó, không có cách nào để HĐH khởi động xác định xem phần cứng có thực sự có khả năng của UEFI hay không, bởi vì BIOS không tương thích với UEFI.

Bạn vẫn có thể xem giao diện phần sụn nếu có bất cứ điều gì liên quan đến UEFI, nhưng đó là cụ thể và không nhất quán của nhà cung cấp. Vì vậy, cũng không có câu trả lời chắc chắn từ phía đó.

Phương thức chính tắc để chứng minh hạt nhân x86 (_64) của bạn được khởi động từ UEFI:

    $ dmesg | grep 'EFI v'
    [    0.000000] efi: EFI v2.31 by EDK II

Nhân sẽ in thông báo như vậy tại điểm vào chính của khởi động EFI. Hạt nhân được khởi động với UEFI khi và chỉ khi thông báo đó tồn tại.

Các công cụ thông tin khác:

    $ dmesg | grep 'efi: mem'
    [    0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x00000000000a0000) (0MB)
    ...

Đây là bản đồ bộ nhớ được truyền từ phần sụn EFI đến kernel.

    $ ls -F /sys/firmware/efi
    efivars/  systab  vars/

Đây là những hạt nhân ABI liên quan đến EFI. efivars(3.8+) và varslà ABI kernel cho EFI NVRAM để bạn có thể thay đổi tùy chọn khởi động với chúng.

Nhưng thiếu những manh mối này không chứng minh hệ thống chỉ là BIOS.

Theo kinh nghiệm, các máy tính xách tay gần đây đều có phần mềm UEFI. Các máy chủ mới nhất đang chuyển sang firmware UEFI.

Chỉnh sửa: Tác giả của rEFInd có một lời giải thích kỹ lưỡng hơn . Các bước đều giống nhau.

Ngoài ra, Bộ kiểm tra phần sụn từ Ubuntu có thể phát hiện xem phần sụn UEFI của bạn có tính năng tương thích với BIOS kế thừa hay không . Mặc dù nó không giải quyết được vấn đề phát hiện phần mềm khởi động firmware có khả năng UEFI ở chế độ BIOS.


2

Khi bạn truy cập vào "BIOS" (thực tế là EFI), một trong các mục trong danh sách các mục có thể khởi động phải là dấu nhắc khởi động EFI , nếu đó là hệ thống UEFI. Điều này đôi khi được gọi là vỏ EFI. Nó giống như một phiên bản hốc hác của dấu nhắc lệnh Unix. Thông thường bạn sẽ không muốn nó trong danh sách khởi động nhưng nó có thể hữu ích trong quá trình thiết lập ban đầu và trong quá trình khắc phục sự cố.

Tôi cho rằng một hệ thống UEFI có thể được tạo ra mà không có tính năng đó, nhưng bạn sẽ từ bỏ rất nhiều thứ khiến EFI, tốt, EFI làm được điều đó.

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.