เครื่องมือในการปรับเปลี่ยนตัวแปร UEFI ใน Windows / Linux?


12

ฉันมีเครื่อง DELL ที่ใช้ Phoenix SecureCore Tiano เป็น UEFI / BIOS อย่างไรก็ตามมันไม่สามารถกำหนดค่าได้อย่างสมบูรณ์เนื่องจากเชลล์ UEFI และเมนูถูกซ่อนอยู่ในการตั้งค่า BIOS

ฉันสงสัยว่ามีเครื่องมือที่สามารถแก้ไขการตั้งค่า UEFI (เช่นรายการบูต) ในโหมดผู้ใช้หรือไม่ เช่น "efibootmgr" ใน linux

btw เนื่องจากไม่สามารถกำหนดค่าได้ฉันคิดว่ากระบวนการบู๊ตอยู่ในโหมดดั้งเดิมดังนั้นจึงกล่าวได้ว่า OSes ไม่สามารถตรวจพบ UEFI ที่มีอยู่ได้ใช่ไหม

ดังนั้นนั่นคือความขัดแย้ง: ฉันจะต้องบูตในโหมดที่ไม่ใช่แบบดั้งเดิมเพื่อเปิดใช้งานเครื่องมือ UEFI เพื่อปรับเปลี่ยนรายการบูตในโหมดผู้ใช้? แต่ฉันต้องเปิดใช้งานเครื่องมือ UEFI เพื่อแก้ไขรายการบูตก่อนเพื่อเปิดใช้งานการบูตที่ไม่ใช่แบบดั้งเดิมหรือไม่


เพิ่งพบว่า efi vars เก็บไว้ใน nvram บางทีลิงก์นี้อาจช่วยได้: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

คำตอบ:


3

การใช้งาน EFI จะต้องมีวิธีในการควบคุมโหมดการบูต (EFI กับ BIOS) ยกเว้นหลักสูตรสำหรับการใช้งานแบบ EFI เท่านั้นโดยไม่มีการสนับสนุน BIOS แม้ว่าบ่อยครั้งที่เฟิร์มแวร์ให้ผู้ใช้ควบคุมน้อยหรือไม่มีความชัดเจนของเรื่อง แต่เฟิร์มแวร์พยายามที่จะสรุปโหมดการบูตที่ถูกต้องตามสถานะของฮาร์ดดิสก์ - ตัวอย่างเช่นมันอาจใช้โหมด EFI หากตรวจพบ GPT และโหมด BIOS หากพบ MBR; หรืออาจใช้โหมด EFI หากพบ EFI System Partition (ESP) และโหมด BIOS ถ้าไม่ คุณอาจพบเบาะแสเกี่ยวกับสิ่งที่เฟิร์มแวร์ของคุณกำลังทำอยู่โดยอ่านคู่มือ ถ้าไม่คุณจะต้องทดสอบ

เมื่อทำการบูทสื่อที่ถอดออกได้กฎอาจแตกต่างกัน แต่คุณมักจะให้มันเตะไปในทิศทางที่ถูกต้องโดยจัดให้มีโหมดการบู๊ตเพียงโหมดเดียว การทำเช่นนี้อาจต้องมีการสร้าง CD ใหม่หรือง่ายกว่าในการเลือกซีดี หากคุณพยายามบังคับให้บูตโหมด EFI rEFIndของฉันและโดยเฉพาะอย่างยิ่งซีดีรุ่นที่สามารถบู๊ตได้อาจเป็นประโยชน์ มันบู๊ตเฉพาะในโหมด EFI และตามที่ได้รับการกำหนดค่ามันจะทำหน้าที่เป็นตัวจัดการการบู๊ตสำหรับบูทที่มีพื้นฐานจาก EFI อื่น ๆ แต่ไม่ใช่สำหรับบูทโหมด BIOS


ขอบคุณ! เมื่อฉันแบ่ง hd ของฉันในโหมด MBR มันทำงานได้ตามที่คาดไว้ อย่างไรก็ตามถ้าฉันใช้โหมด GPT ไม่ว่าจะมี ESP หรือไม่ก็ตามมันจะไม่บูตและให้ข้อผิดพลาดนี้: "ไม่พบระบบปฏิบัติการ" ข้อความแสดงข้อผิดพลาด / ข้อผิดพลาดทางไวยากรณ์คือจาก BIOS ตัวเองหลังจากที่ฉันย้อนกลับออกแบบ ROM BIOS (ไม่ได้มาจาก bootloader หรือบูตบันทึก) ดังนั้นฉันเพียงแค่ไม่สามารถรับการควบคุมการบูตที่จะผ่านในโหมด GPT
marstone

ระบบที่ใช้ EFI บางระบบจะบูตในโหมด BIOS เท่านั้นหากตรวจพบพาร์ติชัน MBR ด้วยชุดธง "boot" (aka "active") บนดิสก์ GPT ต้องตั้งค่าสถานะนั้นในพาร์ติชันป้องกัน 0xEE ใน MBR คุณสามารถใช้เครื่องมือเช่น fdisk ของ Linux เพื่อทำสิ่งนี้ (ใช้ตัวเลือก "a") อย่าได้ใช้แยก GParted หรือเครื่องมือ libparted อื่น ๆ ตามที่จะทำนี้ บนดิสก์ GPT จะไม่มีการควบคุมสิ่งที่อยู่ในMBRและ "การตั้งค่าสถานะการบู๊ต" จะถูกนำไปใช้กับพาร์ติชันGPTโดยมีความหมายว่าจะตั้งรหัสประเภทให้กับพาร์ติชันระบบ EFI (ESP) .
ร็อดสมิ ธ

2

ฉันเพิ่งปล่อยโปรแกรมอรรถประโยชน์ของฉันถ้าใครสนใจ มันแก้ไขตัวแปร UEFI ใน windows

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

อัปเดตเมื่อ 25/02/2020 เป็นเวอร์ชัน 1.2
ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต
ไวรัสทั้งหมดรายงาน 6 (บวกเท็จ) มากกว่า 96 เพราะรหัส obfuscated


มันไม่ใช่. โปรแกรมบีบอัดและป้องกันและโปรแกรมป้องกันไวรัสบางตัวให้ผลบวกผิด ๆ ไม่มีไวรัส
Zibri

สำหรับผู้ตั้งค่าสถานะ: โปรแกรมนี้ได้รับการตรวจจับที่ค่อนข้างน่าตกใจที่ Virustotalแต่ดูเหมือนจะเป็นการตรวจจับทั่วไปและการตรวจจับ "โปรแกรมที่อาจไม่ต้องการ" อาจเป็นไปได้ว่าเนื่องจากสิ่งที่โปรแกรมนี้ทำขึ้นมาเป็นชุดมัลแวร์ แต่จนกว่าจะมีใครสามารถเสนอหลักฐานโดยตรงว่านี่เป็นมัลแวร์จริงแล้วคำตอบก็ใช้ได้ในตอนนี้
Mokubai

ฉันไม่ได้ปล่อยซอร์สโค้ดและทำให้ยากที่จะทำวิศวกรรมย้อนกลับเพียงเพื่อ "ล่าช้า" หรือ "จำกัด " การแพร่กระจายมัลแวร์อย่างแน่นอนตามรหัส "ง่าย" ของฉัน ฉันคิดว่าจะปล่อยแหล่งที่มามันเป็นความลับฉันไม่ต้องการเป็นสาเหตุหลักของมัลแวร์ที่ใช้ยูฟ่าในอนาคต
Zibri

แก้ไข: อัปเดตวันนี้เป็นรุ่น 1.1
Zibri

อัปเดตเป็นรุ่น 1.2
Zibri

1

ฉันเพิ่งซื้อ Dell XPS 17 (l702x) และฉันสนใจมัลติบูตหลายระบบปฏิบัติการ หากสิ่งที่ฉันเข้าใจถูกต้อง Dell มีรูปแบบของ Phoenix SecureCore Tiano UEFI 'BIOS' ที่ถูกล็อค จากสิ่งที่ฉันอ่าน UEFI ไม่สามารถใช้งานได้โดยตรง (อาจผ่านทางเมนูที่ซ่อนอยู่ ฯลฯ ซึ่งอาจต้องใช้ BIOS mod)

ดูเหมือนจะเป็นไปได้ที่จะใช้ / เข้าถึงเชลล์ EFI ที่เข้ากันได้กับ Phoenix โดยใช้โอเพ่นซอร์ส (BSD) TianoCore edk2 / ShellPkg (แหล่งที่มา) และ edk2 / ShellBinPkg ( GIT Repo ) แพ็คเกจ

ฉันแนะนำShellBinPkg ที่ใหม่กว่าโดยใช้โปรไฟล์ "full shell" ของ UEFI Shell 2.0 (รองรับคำสั่งส่วนใหญ่) นอกจากนี้คุณยังสามารถสร้างเปลือกที่กำหนดเองโดยใช้ ShellPkg (สร้างสแตนด์อโลนหรือรวมไว้ในแพคเกจ OVMF เพื่อสร้างรุ่น 64) - รวมของ UEFI เปลือกใน Linux distro ISO

[U] EFI เชลล์ไบนารีถูกคอมไพล์เพื่อให้รันโดยอิสระจากเฟิร์มแวร์ สิ่งนี้สามารถทดสอบได้โดยการใส่เชลล์ลงในระบบไฟล์ FAT32 (USB stick, พาร์ติชันฮาร์ดไดรฟ์), เปลี่ยนชื่อเป็น/efi/boot/bootx64.efiจากนั้นทำการบูทจาก BIOS [UEFI] ของคุณ

help utilnameข้อความช่วยเหลือสำหรับเปลือกมีการเข้าถึงโดยการพิมพ์ เพียงแค่ใช้helpสร้างรายการคำสั่งเชลล์ที่มีอยู่ทั้งหมด

หมายเหตุ: หากคุณไม่สามารถเปิด UEFI Shell จากเฟิร์มแวร์โดยตรงให้สร้างไดรฟ์ปากกา FAT32 USB ที่มี Shell.efi คัดลอกเป็น (USB) /efi/boot/bootx64.efi USB นี้ควรปรากฏในเมนูการบูตของเฟิร์มแวร์ การเปิดตัวเลือกนี้จะเปิด UEFI Shell ให้คุณ - Arch Linux ใช้ UEFI


มันเยี่ยมมาก ฉันซื้อรุ่นเดียวกัน l702x ;-) ฉันจะลองวันพรุ่งนี้! เมนูที่ซ่อนอยู่ยังคงปลดล็อคเท่าที่ฉันรู้ btw คุณได้คอมไพล์ bootx64.efi และทดสอบบน xps ของคุณหรือยัง
marstone

ShellBinPkg เป็น UEFI เชลล์ที่รวบรวมไว้ล่วงหน้าไบนารีคุณควรจะสามารถเปลี่ยนชื่อและใส่ในไดเรกทอรีที่ถูกต้อง ฉันพยายามแล้ว แต่มันก็ไม่ได้ผลสำหรับฉัน แต่ฉันไม่เชื่อว่ามันเป็นเปลือกหอยตัวเดียวที่มีให้ใช้งาน (ฉันยังใหม่กับสิ่งนี้เช่นกัน) โพสต์นี้ดูเหมือนจะเสนอการดาวน์โหลดเชลล์ซึ่งควรทำงานกับ Phoenix SecureCore Tiano (ดูการสนทนา the.ridikulus.rat-> cfr) แจ้งให้เราทราบว่าคุณจะไปได้อย่างไร
Big Rich

ฉันพยายามใส่ไฟล์ efi จากโพสต์ด้านบนไปยัง /efi/boot/bootx64.efi อย่างไรก็ตามดิสก์ usb ของฉันบูตไปที่ด้วงตามปกติ (มันสามารถบูตได้แล้ว); จากนั้นฉันฟอร์แมต U-disk เป็นโหมด HDD และฉันพบข้อผิดพลาด "ลบดิสก์หรือสื่ออื่น ... " จากนั้นฉันก็ทำการค้นหา hex สำหรับเซกเตอร์ของสตริงนี้ตามเซกเตอร์ในดิสก์ของฉันมันไม่มีอยู่จริง ข้อความจะต้องมาจาก Tiano BIOS ของ L702x มีอะไรผิดปกติในการทำงานของฉันหรือไม่
marstone

@marstone คนที่ขอโทษ แต่ฉันเป็นมือใหม่เมื่อพูดถึงสิ่งที่ UEFI นี้ (ฉันเพิ่งตกลงกับ Google-fu ;-)) เคยไปทำงานที่อื่นทันทีที่ฉันได้เวลาฉันจะลองทำเองและแจ้งให้คุณทราบว่าฉันจะไปได้อย่างไร ไชโยรวย
Big Rich

แม้ว่าเดลล์ได้เปิดตัวไบออสที่เปิดใช้งาน UEFI ( A19 ) แต่ 'capitankasar' ที่notebookreview ได้โพสต์ 2x ไบออส A18 ที่ได้รับการดัดแปลง ( uefi , uefi + nvida gpu ) แต่พวกมันยังใช้งาน UEFI, NVidia GPU โอเวอร์คล็อกและความเร็วพัดลม อาจมีอยู่ในรุ่น Dell อย่างเป็นทางการฉันไม่ได้ยืนยันด้วยตัวเอง) เช่นเคยใช้ความเสี่ยงของคุณเอง ;-)
Big Rich

0

ในการทดลองของฉันฉันได้ข้อสรุปดังนี้:

หากคุณต้องการใช้คีย์ USB แบบมัลติบูต U / EFI คุณต้อง:

  1. ล้างพาร์ทิชันทั้งหมด / ล้างไดรฟ์ทั้งหมด;
  2. แปลงเป็น GPT;
  3. สร้างพาร์ติชันหลักและจัดรูปแบบเป็น Fat32
  4. ทำให้ dir เรียกว่า EFI (ไม่คำนึงถึงขนาดตัวพิมพ์) ในรูทของไดรฟ์
  5. สร้าง subdir ใน dir ก่อนหน้านี้ที่เรียกว่า boot (ไม่ต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก)
  6. วางไฟล์. efi ที่คุณต้องการและเปลี่ยนชื่อให้ตรงกับสถาปัตยกรรมของระบบ: bootx64.efi ถ้า x64, bootia32.efi ถ้า x86 หรือ bootaa64.efi ถ้า ARM64

พยายามในหน้าจอสัมผัส Dell Inspiron 5437 และทำงานได้อย่างสมบูรณ์แบบ

สิ่งสุดท้ายสิ่งหนึ่ง:หากไฟล์. fi ไม่ได้ลงชื่อด้วยลายเซ็นดิจิทัลของ Microsoft ต้องปิดใช้งานโหมดการบูตที่ปลอดภัยเท่านั้นภายใต้การตั้งค่า fw เปิดการทำงานของ UEFI boot และ fast boot mode ไว้

สำหรับการทดสอบค้นหาคีย์มัลติบูตของเครื่อง OEM ของคุณก่อนที่จะติดตั้งอย่างถาวรและเลือกuefi: <your usb key>จากรายการที่นำเสนอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.