Alat untuk memodifikasi Variabel UEFI di Windows / Linux?

12

Saya memiliki mesin DELL yang menggunakan Phoenix SecureCore Tiano sebagai UEFI / BIOS-nya. Namun, itu benar-benar tidak dapat dikonfigurasi karena UEFI shell & menu-nya disembunyikan di BIOS Setup.

Saya ingin tahu apakah ada alat yang dapat mengubah pengaturan UEFI (seperti Item Boot) dalam mode pengguna? seperti "efibootmgr" di linux.

btw, karena itu tidak dapat dikonfigurasi, saya pikir proses boot dalam mode lama sehingga bisa dikatakan OS tidak dapat mendeteksi UEFI yang ada, apakah saya benar?

jadi, itulah paradoksnya: Saya harus boot dalam mode non-legacy untuk mengaktifkan alat UEFI untuk memodifikasi item boot dalam mode pengguna? tapi saya harus mengaktifkan alat UEFI untuk memodifikasi item boot terlebih dahulu untuk mengaktifkan boot non-legacy?

marstone
sumber
baru saja menemukan bahwa efi vars disimpan di nvram, mungkin tautan ini membantu: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Jawaban:

3

Implementasi EFI harus menyediakan beberapa cara untuk mengontrol mode boot (EFI vs BIOS), kecuali tentu saja untuk implementasi EFI saja tanpa dukungan BIOS. Namun, terlalu sering, firmware memberikan pengguna sedikit atau tidak ada kontrol eksplisit terhadap masalah tersebut; sebaliknya, firmware mencoba menyimpulkan mode boot yang benar berdasarkan pada kondisi hard disk - misalnya, ia mungkin menggunakan mode EFI jika GPT terdeteksi dan mode BIOS jika MBR ditemukan; atau mungkin menggunakan mode EFI jika Partisi Sistem EFI (ESP) ditemukan dan mode BIOS jika tidak. Anda mungkin dapat menemukan petunjuk tentang apa yang dilakukan firmware Anda dengan membaca manual. Jika tidak, Anda hanya perlu bereksperimen.

Saat mem-boot media yang dapat dilepas, aturannya mungkin berbeda, tetapi Anda sering dapat menendang ke arah yang benar dengan hanya menyediakan satu mode boot. Ini mungkin memerlukan penguasaan ulang CD atau (lebih mudah) memilih CD dengan hati-hati. Jika Anda mencoba untuk memaksa boot mode EFI, rese saya , dan khususnya versi CD bootable-nya, mungkin bisa membantu; boot hanya dalam mode EFI, dan seperti yang dikonfigurasi, ini akan bertindak sebagai boot manager untuk boot berbasis EFI lainnya, tetapi tidak untuk booting mode-BIOS.

Rod Smith
sumber
Terima kasih! ketika saya mempartisi hd saya dalam mode MBR, itu berfungsi seperti yang diharapkan. Namun, jika saya menggunakan mode GPT, tidak peduli ada ESP atau tidak, itu tidak akan bisa boot dan memberikan kesalahan ini: "Sistem Operasi tidak Ditemukan". Pesan kesalahan / kesalahan sintaks w, pasti dari BIOS itu sendiri setelah saya merekayasa balik ROM BIOS (bukan dari bootloader atau catatan boot), jadi saya tidak bisa mendapatkan kontrol boot untuk dilewatkan dalam mode GPT.
marstone
Beberapa sistem berbasis EFI hanya akan boot dalam mode BIOS jika mereka mendeteksi partisi MBR dengan set flag "boot" (alias "aktif"). Pada disk GPT, ini memerlukan pengaturan yang menandai pada partisi pelindung 0xEE di MBR. Anda dapat menggunakan alat seperti fdisk Linux untuk melakukan ini (gunakan opsi "a"). Jangan tidak menggunakan parted, GParted, atau alat berbasis libparted-lain untuk melakukan hal ini; pada disk GPT, mereka tidak memberi Anda kendali atas apa yang ada di MBR , dan "flag boot" akan diterapkan ke partisi GPT , dengan arti bahwa ia menetapkan kode jenis ke kode Partisi Sistem EFI (ESP) .
Rod Smith
1

Saya baru saja membeli Dell XPS 17 (l702x) dan saya tertarik untuk mem-boot berbagai OS. Jika apa yang saya pahami benar, Dell memiliki semacam 'BIOS' Phoenix SecureCore Tiano UEFI yang dikunci. Dari apa yang saya baca, UEFI tidak dapat langsung digunakan (mungkin melalui menu tersembunyi dll, yang mungkin memerlukan mod BIOS).

Tampaknya memungkinkan untuk menggunakan / mengakses shell EFI yang kompatibel dengan Phoenix, menggunakan TianoCore edk2 / ShellPkg (source) open-source (BSD ) dan paket-paket edk2 / ShellBinPkg (binary) ( GIT Repo ).

Saya merekomendasikan ShellBinPkg yang lebih baru , menggunakan profil "shell penuh" UEFI Shell 2.0 (mendukung sebagian besar perintah). Anda juga dapat membangun kembali shell khusus menggunakan ShellPkg (build standalone atau memasukkannya dalam paket OVMF untuk menghasilkan versi x64) - Memasukkan shell UEFI di distro iso Linux .

Biner shell [U] EFI dikompilasi untuk menjalankan independen dari firmware. Ini dapat diuji dengan meletakkan shell pada sistem file FAT32 (stik USB, partisi hard drive), diganti namanya menjadi /efi/boot/bootx64.efidan kemudian boot ke sana, dari [UEFI] BIOS Anda.

Teks bantuan untuk shell diakses dengan mengetik help utilname. Hanya menggunakan helpmenghasilkan daftar semua perintah shell yang tersedia.

Catatan: Jika Anda tidak dapat meluncurkan UEFI Shell dari firmware secara langsung, buat pen drive FAT32 USB dengan Shell.efi yang disalin sebagai (USB) /efi/boot/bootx64.efi. USB ini akan muncul di menu boot firmware. Meluncurkan opsi ini akan meluncurkan UEFI Shell untuk Anda. - Arch Linux mengambil UEFI

Kaya Besar
sumber
itu hebat. saya membeli model yang sama l702x ;-) saya akan mencobanya besok! menu tersembunyi masih bisa dibuka sejauh yang saya tahu. btw, apakah Anda telah mengkompilasi bootx64.efi dan telah menguji pada xps Anda?
marstone
ShellBinPkg adalah binari yang sudah dikompilasi UEFI shell, Anda seharusnya hanya dapat mengubah nama dan memasukkannya ke direktori yang benar. Saya mencobanya, dan itu tidak berhasil untuk saya, tetapi saya tidak percaya itu satu-satunya shell yang tersedia (saya juga baru dalam hal ini). Posting ini tampaknya menawarkan unduhan shell yang seharusnya berfungsi dengan Phoenix SecureCore Tiano (Lihat the.ridikulus.rat-> cfr percakapan). Beri tahu kami bagaimana caranya.
Kaya Besar
Saya mencoba meletakkan file efi dari posting di atas ke /efi/boot/bootx64.efi, namun, disk usb saya boot ke grub secara normal (sudah bootable); kemudian saya memformat u-disk saya ke mode HDD, dan saya mendapat kesalahan "Hapus disk atau media lain ...". Saya kemudian mengambil pencarian hex untuk sektor string ini dengan sektor di u-disk saya, itu tidak ada. pesan harus dari Tiano BIOS L702x. ada yang salah dengan operasi saya?
marstone
@marstone, maaf, tapi saya sendiri pemula dalam hal UEFI ini (saya baik-baik saja dengan Google-fu ;-)). Telah ditempati di tempat lain, segera setelah saya mendapatkan waktu, saya akan mencoba ini sendiri dan memberi tahu Anda bagaimana caranya. Ceria, Kaya.
Kaya Besar
Meskipun Dell sekarang telah merilis bios diaktifkan UEFI ( A19 ), 'capitankasar' di notebookreview memposting 2x biosis A18 yang dimodif ( uefi , uefi + nvida gpu ), mereka menangani UEFI, NVidia GPU overclocking dan kecepatan kipas dll. (Beberapa fitur ini mungkin juga ada dalam rilis resmi Dell, saya belum mengkonfirmasi ini sendiri). Seperti biasa, gunakan dengan risiko Anda sendiri ;-)
Big Rich
0

Dalam eksperimen saya, saya menyimpulkan sebagai berikut:

Jika Anda ingin menggunakan kunci USB multi-boot U / EFI, Anda HARUS:

  1. menghapus semua partisi / menghapus drive seluruhnya;
  2. mengubahnya menjadi GPT;
  3. buat partisi utama dan format sebagai Fat32;
  4. buat dir yang disebut EFI (bukan case sensitive) di root drive;
  5. buat subdir di dir sebelumnya yang disebut boot (tidak peka huruf besar-kecil)
  6. letakkan file .efi yang Anda inginkan di sana dan ganti namanya agar sesuai dengan arsitektur sistem: bootx64.efi jika x64, bootia32.efi jika x86 atau bootaa64.efi jika ARM64.

Mencobanya dalam layar sentuh Dell Inspiron 5437 dan bekerja dengan sempurna.

Satu hal terakhir: jika file .efi tidak ditandatangani dengan tanda tangan digital Microsoft, harus menonaktifkan hanya mode boot aman di bawah pengaturan fw. Biarkan boot UEFI dan mode boot cepat diaktifkan.

Untuk pengujian, cari kunci multi-boot mesin OEM Anda sebelum menginstalnya secara permanen dan pilih uefi: <your usb key>dari daftar yang disajikan.

Thiago Postio
sumber