Công cụ sửa đổi biến UEFI trong Windows / Linux?


12

Tôi có một máy DELL sử dụng Phoenix SecureCore Tiano làm UEFI / BIOS của nó. Tuy nhiên, nó hoàn toàn không thể cấu hình được vì trình đơn & vỏ UEFI của nó bị ẩn trong Cài đặt BIOS.

Tôi tự hỏi liệu có công cụ nào có thể sửa đổi cài đặt UEFI (chẳng hạn như Mục khởi động) trong chế độ người dùng không? chẳng hạn như "efibootmgr" trong linux.

btw, vì nó không thể cấu hình được, tôi nghĩ rằng quá trình khởi động ở chế độ cũ nên có nghĩa là các hệ điều hành không thể phát hiện ra UEFI tồn tại, phải không?

Vì vậy, đó là nghịch lý: Tôi phải khởi động ở chế độ không kế thừa để cho phép các công cụ UEFI sửa đổi các mục khởi động ở chế độ người dùng? nhưng tôi phải kích hoạt các công cụ UEFI để sửa đổi các mục khởi động trước để cho phép khởi động không kế thừa?


chỉ thấy rằng các vars efi được lưu trữ trong nvram, có thể liên kết này sẽ giúp: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Câu trả lời:


3

Việc triển khai EFI phải cung cấp một số cách để kiểm soát chế độ khởi động (EFI so với BIOS), ngoại trừ tất nhiên đối với việc triển khai chỉ EFI mà không có hỗ trợ BIOS. Tuy nhiên, quá thường xuyên, phần sụn cung cấp cho người dùng ít hoặc không kiểm soát rõ ràng vấn đề; thay vào đó, phần sụn cố gắng suy ra chế độ khởi động chính xác dựa trên trạng thái của đĩa cứng - ví dụ, phần mềm có thể sử dụng chế độ EFI nếu phát hiện GPT và chế độ BIOS nếu tìm thấy MBR; hoặc nó có thể sử dụng chế độ EFI nếu tìm thấy Phân vùng hệ thống EFI (ESP) và chế độ BIOS nếu không. Bạn có thể tìm thấy manh mối về những gì phần sụn của bạn đang làm bằng cách đọc hướng dẫn. Nếu không, bạn sẽ phải thử nghiệm.

Khi khởi động phương tiện di động, các quy tắc có thể khác nhau, nhưng bạn thường có thể cho nó khởi động đúng hướng bằng cách chỉ cung cấp một chế độ khởi động. Điều này có thể yêu cầu làm chủ lại CD hoặc (dễ dàng hơn) cẩn thận chọn CD. Nếu bạn đang cố gắng khởi động chế độ EFI, rEFInd của tôi và đặc biệt là phiên bản CD có thể khởi động của nó, có thể hữu ích; nó chỉ khởi động ở chế độ EFI và như được định cấu hình, nó sẽ hoạt động như một trình quản lý khởi động cho các khởi động dựa trên EFI khác, nhưng không phải cho khởi động ở chế độ BIOS.


cảm ơn! Khi tôi phân vùng hd của mình ở chế độ MBR, nó hoạt động như mong đợi. tuy nhiên, nếu tôi sử dụng chế độ GPT, bất kể có ESP hay không, nó sẽ không khởi động và báo lỗi này: "Không tìm thấy hệ thống hoạt động". Lỗi cú pháp thông báo / w, chắc chắn là từ chính BIOS sau khi tôi đảo ngược rom rom (không phải từ bất kỳ bộ tải khởi động hoặc bản ghi khởi động nào), vì vậy tôi không thể chuyển điều khiển khởi động ở chế độ GPT.
đá

Một số hệ thống dựa trên EFI sẽ chỉ khởi động ở chế độ BIOS nếu chúng phát hiện phân vùng MBR với cờ "khởi động" (còn gọi là "hoạt động"). Trên đĩa GPT, điều này yêu cầu đặt cờ đó trên phân vùng bảo vệ 0xEE trong MBR. Bạn có thể sử dụng một công cụ như fdisk của Linux để làm điều này (sử dụng tùy chọn "a"). Đừng không sử dụng chia tay, GParted, hoặc các công cụ libparted-based khác để làm điều này; trên đĩa GPT, chúng không cho bạn quyền kiểm soát những gì trong MBR và "cờ khởi động" sẽ được áp dụng cho phân vùng GPT , với ý nghĩa là nó đặt mã loại cho phân vùng hệ thống EFI (ESP) .
Rod Smith

2

Tôi chỉ phát hành tiện ích của tôi nếu bất cứ ai quan tâm. Nó chỉnh sửa biến UEFI trong windows.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Cập nhật ngày 25/02/2020 lên phiên bản 1.2.
Không cần kết nối internet.
Virus tổng số báo cáo 6 (dương tính giả) trên 96 vì mã bị xáo trộn.


KHÔNG PHẢI VẬY. Chương trình này được bảo vệ và bảo vệ và một số phần mềm chống vi-rút cho kết quả dương tính giả. Nó không có virus.
Zibri

Đối với người gắn cờ: Chương trình này có một phát hiện có phần đáng báo động tại Virustotal nhưng dường như đó là phát hiện chung và phát hiện "chương trình không mong muốn". Có thể là do những gì chương trình này đã thực hiện, nó đã xâm nhập vào bộ phần mềm độc hại nhưng cho đến khi ai đó có thể đưa ra bằng chứng trực tiếp rằng đây là phần mềm độc hại thực sự thì bây giờ câu trả lời vẫn ổn.
Mokubai

Tôi đã không phát hành mã nguồn và gây khó khăn cho kỹ sư đảo ngược chỉ "trì hoãn" hoặc "giới hạn" chính xác sự phát triển của phần mềm độc hại dựa trên mã "đơn giản" của tôi. Tôi đang nghĩ đến việc phát hành nguồn, nó không có gì bí mật, tôi chỉ không muốn là nguyên nhân chính của phần mềm độc hại dựa trên uefi trong tương lai.
Zibri

Chỉnh sửa: cập nhật hôm nay lên phiên bản 1.1.
Zibri

Cập nhật lên phiên bản 1.2
Zibri

1

Tôi mới mua một chiếc Dell XPS 17 (l702x) và tôi quan tâm đến việc đa khởi động nhiều loại HĐH. Nếu những gì tôi hiểu là chính xác, Dell có một số dạng 'BIOS' Phoenix SecureCore Tiano UEFI 'BIOS'. Từ những gì tôi đã đọc, UEFI không thể sử dụng trực tiếp (có thể thông qua menu ẩn, v.v., có thể yêu cầu mod BIOS).

Dường như có thể sử dụng / truy cập trình bao EFI tương thích Phoenix, sử dụng các gói TianoCore edk2 / ShellPkg (nguồn) và edk2 / ShellBinPkg (nhị phân) ( GIT Repo ) nguồn mở.

Tôi khuyên dùng ShellBinPkg mới hơn , sử dụng cấu hình "full shell" của UEFI Shell 2.0 (hỗ trợ hầu hết các lệnh). Bạn cũng có thể xây dựng lại một lớp vỏ tùy chỉnh bằng ShellPkg (xây dựng độc lập hoặc đưa nó vào gói OVMF để tạo phiên bản x64) - Bao gồm vỏ UEFI trong bản phân phối Linux .

Nhị phân shell [U] EFI được biên dịch để chạy độc lập với phần sụn. Điều này có thể được kiểm tra bằng cách đặt shell trên hệ thống tệp FAT32 (thẻ nhớ USB, phân vùng ổ cứng), đổi tên thành /efi/boot/bootx64.efivà sau đó khởi động vào nó, từ BIOS [UEFI] của bạn.

Văn bản trợ giúp cho shell được truy cập bằng cách gõ help utilname. Chỉ cần sử dụng helptạo ra một danh sách tất cả các lệnh shell có sẵn.

Lưu ý: Nếu bạn không thể khởi chạy UEFI Shell trực tiếp từ chương trình cơ sở, hãy tạo ổ đĩa USB FAT32 với Shell.efi được sao chép dưới dạng (USB) /efi/boot/bootx64.efi. USB này sẽ xuất hiện trong menu khởi động phần sụn. Khởi chạy tùy chọn này sẽ khởi chạy UEFI Shell cho bạn. - Arch Linux đảm nhận UEFI


thật tuyệt. tôi đã mua cùng một mô hình l702x ;-) tôi sẽ thử nó vào ngày mai! Menu ẩn vẫn có thể mở khóa theo như tôi biết. btw, bạn đã biên dịch bootx64.efi và đã thử nghiệm trên xps của bạn chưa?
đá

ShellBinPkg là một nhị phân được biên dịch sẵn của UEFI, bạn được cho là có thể phải đổi tên nó và đặt vào đúng thư mục. Tôi đã thử nó và nó không hoạt động với tôi, nhưng tôi không tin đó là vỏ duy nhất có sẵn (tôi cũng mới biết điều này). Bài đăng này dường như cung cấp tải xuống shell sẽ hoạt động với Phoenix SecureCore Tiano (Xem cuộc hội thoại.ridikulus.rat-> cfr). Hãy cho chúng tôi biết bạn lấy như thế nào.
Big Rich

Tôi đã thử đặt tệp efi từ bài đăng trên vào /efi/boot/bootx64.efi, tuy nhiên, đĩa usb của tôi đã khởi động để grub bình thường (nó đã có khả năng khởi động); sau đó tôi định dạng đĩa u của mình sang chế độ ổ cứng và tôi gặp lỗi "Xóa đĩa hoặc phương tiện khác ...". Sau đó tôi đã thực hiện tìm kiếm hex cho chuỗi chuỗi này theo sector trong đĩa u của mình, nó không tồn tại. tin nhắn phải từ Tiano BIOS của L702x. bất cứ điều gì sai cho hoạt động của tôi?
đá

@marstone, xin lỗi người đàn ông, nhưng bản thân tôi là một người mới khi nói đến công cụ UEFI này (tôi chỉ đồng ý với Google-fu của tôi ;-)). Bị chiếm đóng ở nơi khác, ngay khi tôi có thời gian, tôi sẽ tự mình thử điều này và cho bạn biết làm thế nào tôi tiếp tục. Chúc mừng, Giàu có.
Big Rich

Mặc dù Dell hiện đã phát hành một bios kích hoạt UEFI ( A19 ), 'capitankasar' tại notebookreview đã đăng tải các bios A18 được sửa đổi gấp 2 lần ( uefi , uefi + nvida gpu ), nhưng chúng giải quyết việc ép xung GPU UEFI, NVidia và tốc độ quạt, v.v. cũng có thể tồn tại trong bản phát hành chính thức của Dell, tôi chưa tự mình xác nhận điều này). Như mọi khi, sử dụng có nguy cơ của riêng bạn ;-)
Big Rich

0

Trong các thí nghiệm của tôi, tôi đã kết luận như sau:

Nếu bạn muốn sử dụng khóa USB đa khởi động U / EFI, bạn PHẢI:

  1. xóa tất cả các phân vùng / xóa ổ đĩa hoàn toàn;
  2. chuyển đổi nó thành GPT;
  3. tạo một phân vùng chính và định dạng nó là Fat32;
  4. tạo một thư mục gọi là EFI (không phân biệt chữ hoa chữ thường) trong thư mục gốc của ổ đĩa;
  5. tạo một thư mục con trong thư mục trước đó gọi là boot (không phân biệt chữ hoa chữ thường)
  6. đặt tệp .efi mong muốn của bạn vào đó và đổi tên tệp để phù hợp với kiến ​​trúc của hệ thống: bootx64.efi nếu x64, bootia32.efi nếu x86 hoặc bootaa64.efi nếu ARM64.

Đã thử nó trong một màn hình cảm ứng Dell Inspiron 5437 và hoạt động hoàn hảo.

Một điều cuối cùng: nếu tệp .efi không được ký bằng chữ ký số của Microsoft, chỉ phải tắt chế độ khởi động an toàn trong cài đặt fw. Để lại chế độ khởi động UEFI và chế độ khởi động nhanh được bật.

Để kiểm tra, hãy tìm khóa đa khởi động của máy OEM của bạn trước để cài đặt nó vĩnh viễn và chọn uefi: <your usb key>từ danh sách được trình bày.

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.