Windows / Linux에서 UEFI 변수를 수정하는 도구?


12

UEFI / BIOS로 Phoenix SecureCore Tiano를 사용하는 DELL 컴퓨터가 있지만 UEFI 셸 및 메뉴가 BIOS 설정에 숨겨져 있으므로 완전히 구성 할 수 없습니다.

사용자 모드에서 UEFI 설정 (부팅 항목 등)을 수정할 수있는 도구가 있는지 궁금합니다. 리눅스에서 "efibootmgr"과 같은.

btw, 구성 할 수 없기 때문에 부팅 프로세스가 레거시 모드에 있다고 생각하여 OS가 UEFI가 있음을 감지 할 수 없습니다. 맞습니까?

UEFI 도구가 사용자 모드에서 부팅 항목을 수정할 수있게하려면 레거시가 아닌 모드로 부팅해야합니까? 레거시 부팅이 아닌 부팅 항목을 먼저 수정하려면 UEFI 도구를 활성화해야합니까?


방금 nvram에 저장된 efi vars가이 링크가 도움이된다는 것을 발견했습니다. wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

답변:


3

EFI 구현은 BIOS를 지원하지 않는 EFI 전용 구현은 물론 부트 모드 (EFI vs. BIOS)를 제어 할 수있는 방법을 제공해야합니다. 그러나 너무 자주 펌웨어는 사용자에게 그 사안에 대한 명시 적 통제를 거의 또는 전혀 제공하지 않습니다. 대신, 펌웨어는 하드 디스크 상태에 따라 올바른 부팅 모드를 유추하려고 시도합니다. 예를 들어, GPT가 감지되면 EFI 모드를 사용하고 MBR이 발견되면 BIOS 모드를 사용할 수 있습니다. 또는 EFI 시스템 파티션 (ESP)이있는 경우 EFI 모드를 사용하고 그렇지 않은 경우 BIOS 모드를 사용할 수 있습니다. 설명서를 읽으면 펌웨어의 작동에 대한 실마리를 찾을 수 있습니다. 그렇지 않다면 실험 만하면됩니다.

이동식 미디어를 부팅 할 때 규칙이 다를 수 있지만 하나의 부팅 모드 만 제공하면 올바른 방향으로 킥을 줄 수 있습니다. CD를 다시 마스터 링하거나 CD를 신중하게 선택해야 할 수도 있습니다. EFI 모드 부팅을 강제로 수행하려는 경우 rEFInd 및 특히 ​​부팅 가능한 CD 버전이 도움이 될 수 있습니다. EFI 모드에서만 부팅되며 구성된대로 다른 EFI 기반 부팅의 부팅 관리자 역할을하지만 BIOS 모드 부팅의 부팅 관리자는 아닙니다.


감사! MBR 모드에서 hd를 분할하면 예상대로 작동합니다. 그러나 GPT 모드를 사용하는 경우 ESP 여부에 관계없이 부팅되지 않고 "운영 체제를 찾을 수 없습니다"라는 오류가 발생합니다. 오류 메시지 / w 구문 오류는 부트 로더 또는 부팅 레코드가 아닌 BIOS rom을 리버스 엔지니어링 한 후 반드시 BIOS 자체에서 발생하므로 부팅 제어를 GPT 모드로 전달할 수 없습니다.
marstone

일부 EFI 기반 시스템은 "boot"(일명 "active") 플래그가 설정된 MBR 파티션을 감지하면 BIOS 모드에서만 부팅됩니다. GPT 디스크에서는 MBR의 0xEE 보호 파티션에서 해당 플래그를 설정해야합니다. 이를 위해 Linux의 fdisk와 같은 도구를 사용할 수 있습니다 ( "a"옵션 사용). 마십시오 하지 parted를 사용 GParted와 또는 다른 libparted 기반 도구는이 작업을 수행하는; GPT 디스크에서는 MBR 의 내용을 제어 할 수 없으며 "부트 플래그"는 GPT 파티션에 적용됩니다. 즉, 유형 코드를 EFI 시스템 파티션 (ESP)의 유형 코드로 설정한다는 의미입니다. .
Rod Smith

2

누군가 관심이 있다면 유틸리티를 공개합니다. 윈도우에서 UEFI 변수를 편집합니다.

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

25/02/2020에서 버전 1.2로 업데이트되었습니다.
인터넷 연결이 필요하지 않습니다.
코드가 난독 처리되었으므로 바이러스 총계는 96 개가 넘는 6 (거짓 양성)을보고합니다.


그렇지 않습니다. 프로그램은 압축되고 보호되며 일부 바이러스 백신은 오 탐지를 제공합니다. 바이러스가 아닙니다.
Zibri

신고자 :이 프로그램은 Virustotal에서 다소 놀라운 감지를 얻지 만 일반적인 감지 및 "잠재적으로 원하지 않는 프로그램"감지 인 것으로 보입니다. 이 프로그램의 기능으로 인해 악성 프로그램으로 전환되었을 가능성이 있지만 누군가가 이것이 실제 악성 코드라는 직접적인 증거를 제시 할 수있을 때까지는 그 대답이 현재로서는 괜찮습니다.
Mokubai

소스 코드를 공개하지 않았고 "간단한"코드를 기반으로 맬웨어의 확산을 정확히 "지연"하거나 "제한"하기 위해 리버스 엔지니어링하는 것이 어려웠습니다. 소스를 공개하려고 생각하고 있지만 비밀은 아닙니다. 미래의 uefi 기반 악성 코드의 주요 원인이되고 싶지 않았습니다.
Zibri December

편집 : 오늘 버전 1.1로 업데이트되었습니다.
Zibri


1

방금 Dell XPS 17 (l702x)을 구입했으며 다양한 OS를 멀티 부팅하는 데 관심이 있습니다. 내가 이해 한 것이 정확하다면, Dell은 일종의 잠겨진 Phoenix SecureCore Tiano UEFI 'BIOS'를 가지고 있습니다. 내가 읽은 바에 따르면 UEFI는 직접 사용할 수 없습니다 (BIOS 모드가 필요할 수있는 숨겨진 메뉴 등을 통해).

오픈 소스 (BSD) TianoCore edk2 / ShellPkg (소스) 및 edk2 / ShellBinPkg (바이너리) 패키지 ( GIT Repo )를 사용하여 Phoenix 호환 EFI 셸을 사용 / 액세스하는 것이 가능합니다 .

UEFI Shell 2.0의 "전체 쉘"프로파일을 사용하여 최신 ShellBinPkg을 권장합니다 (대부분의 명령을 지원함). 또한 ShellPkg (x64 버전을 생성하기 위해 독립형 빌드 또는 OVMF 패키지에 포함)를 사용하여 사용자 정의 쉘을 다시 빌드 할 수 있습니다 .- Linux 배포판에 UEFI 쉘 포함 .

[U] EFI 셸 바이너리는 펌웨어와 독립적으로 실행되도록 컴파일됩니다. /efi/boot/bootx64.efi[UEFI] BIOS에서 쉘을 FAT32 파일 시스템 (USB 스틱, 하드 드라이브 파티션) 에 놓고 이름을 바꾼 다음 부팅하여 테스트 할 수 있습니다 .

쉘의 도움말 텍스트는을 입력하여 액세스합니다 help utilname. 사용 help하면 사용 가능한 모든 쉘 명령 목록이 생성됩니다.

참고 : 펌웨어에서 UEFI 셸을 직접 시작할 수없는 경우 Shell.efi가 (USB) /efi/boot/bootx64.efi로 복사 된 FAT32 USB 펜 드라이브를 만드십시오. 이 USB는 펌웨어 부팅 메뉴에 나타납니다. 이 옵션을 시작하면 UEFI 셸이 시작됩니다. - 아치 리눅스의 UEFI 채택


훌륭합니다. 나는 같은 모델 l702x를 샀다 ;-) 나는 그것을 내일 시험해 볼 것이다! 숨겨진 메뉴는 내가 아는 한 여전히 잠금 해제 가능합니다. btw, u는 bootx64.efi를 컴파일하고 아직 XP에서 테스트 했습니까?
marstone

ShellBinPkg는 UEFI 셸 사전 컴파일 된 바이너리이므로 이름을 바꾸고 올바른 디렉토리에 넣을 수 있어야합니다. 나는 그것을 시도했지만 그것이 효과가 없었지만 그것이 유일하게 사용할 수있는 쉘이라고는 생각하지 않는다 (이것도 처음이다). 이 게시물 은 Phoenix SecureCore Tiano와 함께 작동하는 쉘 다운로드를 제공하는 것 같습니다 (.ridikulus.rat-> cfr 대화 참조). 어떻게하는지 알려주십시오.
Big Rich

위의 게시물에서 efi 파일을 /efi/boot/bootx64.efi에 넣으려고 시도했지만 USB 디스크가 정상적으로 부팅되도록 부팅되었습니다 (이미 부팅 가능합니다). 그런 다음 u 디스크를 HDD 모드로 포맷하고 "디스크 또는 기타 미디어 제거 ..."오류가 발생했습니다. 그런 다음 내 u 디스크의 섹터 별로이 문자열 섹터를 16 진수로 검색했지만 존재하지 않았습니다. 메시지는 L702x의 Tiano BIOS에서 가져와야합니다. 내 작업에 문제가 있습니까?
marstone

@marstone, 죄송 합니다만,이 UEFI에 관해서는 저 자신도 초보자입니다 (저는 Google-fu에서 괜찮습니다 ;-)). 시간이 걸리 자마자 다른 곳을 점령했습니다. 직접 시도해보고 어떻게 진행하는지 알려 드리겠습니다. 건배, 리치
빅 리치

Dell은 이제 UEFI 지원 바이오스 ( A19 )를 발표했지만 , 노트북 리뷰에서 '캐피 탄 카사르' 는 2 배의 수정 된 A18 바이오스 ( uefi , uefi + nvida gpu )를 게시했지만 UEFI, NVidia GPU 오버 클로킹 및 팬 속도 등을 해결합니다 (일부 기능 중 일부) 공식 Dell 릴리스에도 존재할 수 있지만 직접 확인하지는 않았습니다). 언제나처럼, 당신의 자신의 위험 ;-)에서 사용
빅 리치

0

실험에서 다음과 같이 결론을 내 렸습니다.

U / EFI 멀티 부팅 USB 키를 사용하려면 다음을 수행해야합니다.

  1. 모든 파티션 / 와이프 드라이브를 완전히 지우십시오.
  2. GPT로 변환하십시오.
  3. 기본 파티션을 생성하고 Fat32로 포맷하십시오.
  4. 드라이브 루트에 EFI (대소 문자 구분 안함)라는 디렉토리를 만드십시오.
  5. 이전 디렉토리에 boot라는 하위 디렉토리를 만듭니다 (대소 문자 구분 안 함)
  6. 원하는 .efi 파일을 거기에 넣고 시스템 아키텍처와 일치하도록 이름을 바꿉니다 : x64의 경우 bootx64.efi, x86의 경우 bootia32.efi 또는 x86의 경우 bootaa64.efi

Dell Inspiron 5437 터치 스크린에서 사용해보고 완벽하게 작동했습니다.

마지막으로 .efi 파일이 Microsoft의 디지털 서명으로 서명되지 않은 경우 fw 설정에서 보안 부팅 모드 만 비활성화해야합니다. UEFI 부팅 및 빠른 부팅 모드를 활성화 된 상태로 둡니다.

테스트하려면 OEM 시스템의 멀티 부팅 키를 찾아서 영구적으로 설치 uefi: <your usb key>하고 제시된 목록에서 선택 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.