เครื่องมือในการปรับเปลี่ยนตัวแปร 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.