7.03.2019

Sistem EFI kipinde mi açılmış

Açık bir linux sistemin EFI/UEFI mı yoksa BIOS kipinde mi açıldığını nasıl anlarız?

En ayrıntılı yöntem şu gönderide Derobert'in cevabında verilmiş.

dmesg'a bakmak

Basitçe  kernel ring buffer'da ilgili kaydı kontrol etmek:
$ dmesg | grep "EFI v"
sonucunda eğer

[    0.000000] efi: EFI v2.31 by American Megatrends

gibi bir satır dönerse EFI ile açılmıştır. Hiç birşey dönmezse BIOS kipindedir.

/sys/firmware/efi'ı listelemek
Aşağıdaki komut ile efivars varsa EFI'dir

$ ls /sys/firmware/efi
config_table    fw_platform_size  runtime          systab
efivars         fw_vendor         runtime-map

BIOS sistemlerinde yukarıdaki komut bir sonuç üretmez

efibootmgr sonucuna bakmak
Eğer aşağıdaki gibi bir sonuç alınıyorsa EFI kipidir.

$ sudo efibootmgr
BootCurrent: 0004
BootOrder: 0004,0005,0000,0001,0002,0003
Boot0000* EFI VMware Virtual SCSI Hard Drive (0,0)
Boot0001* EFI VMware Virtual IDE CDROM Drive (IDE 1:0)
Boot0002* EFI Network
Boot0003* EFI Internal Shell (Unsupported option)
Boot0004* Manjaro
Boot0005* Fedora

Ya da şöyle bir çıkış alınıyorsa BIOS kipindedir:

EFI variables are not supported on this system.

efivars ile bakmak
Eğer aşağıdaki komut ile efi değişkenleri listeleniyorsa EFI kipindedir.

$ efivar -l

Hiçbir sonuç vermiyorsa BIOS kipindedir.

/boot/efi bölümü bağlanmış mı
EFI olarak açılmışsa bir disk bölümünün /boot/efi olarak bağlanmış olması gerekir. Bunu kontrol etmek için

$ sudo mount -l | grep sda

veya

$ df -h --local | grep /boot

kullanılabilir

Windows için?
Açık bir Windows sistemin EFI kipinde mi, BIOS kipinde mi açıldığını anlamak için birkaç yol var. En kolayı msinfo32.exe ile bakmak [1],[2]:



 BIOS Mode alanı bu iş ile ilgili bilgi veriyor.

Bu olmazsa %SystemRoot%\Panther\setupact.log dosyasının içindeki Callback_BootEnvironmentDetect satırına bakmak gerek. BIOS için

Code:Callback_BootEnvironmentDetect: Detected boot environment: BIOS

UEFI için ise
Code:Callback_BootEnvironmentDetect: Detected boot environment: UEFI

görülecektir.

Diğer bir yöntem ise bcdedit.exe ile (%SystemRoot\System32 klasöründe) Windows önyükleyicisini sorgulamak. Bunun için yönetici olarak açılmış bir komut satırında şu komudu çalıştırmak gerek:

bcdedit /enum

Bunun sonucunda "Windows Boot Loader" başlığının altında path'e bakmak gerek. BIOS için

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe


EFI için ise

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi


gibi bir sonuç verir.
--
[1] https://www.easyuefi.com/resource/check-windows-is-booted-in-uefi-mode.html
[2] https://superuser.com/questions/464760/how-to-tell-if-the-windows-installer-boots-in-efi-or-bios

Hiç yorum yok: