mir.pe (일반/밝은 화면)
최근 수정 시각 : 2024-11-19 22:57:25

UEFI

EFI에서 넘어옴

[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]
[ 펼치기 · 접기 ]
||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colbgcolor=#0066DC><colcolor=white> 기반 학문 || 수학( 해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학( 환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학( 형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU( 그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · C/ C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시( SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구

기타
논리 회로( 보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{ 컴파일러( 어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩( 유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도( 최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리( 기계 번역 · 음성인식) · 버전 ( 버전 관리 시스템 · Git · GitHub)

파일:UEFI 로고.svg
공식 홈페이지

1. 개요2. 상세3. GPT
3.1. GPT 사용법
4. Fastboot5. Secure Boot6. UEFI Class7. CSM8. GOP9. 제조사
9.1. 제조사별 Setup 화면
9.1.1. Option ROM
9.2. 제조사 목록
10. 기타

1. 개요

Unified Extensible Firmware Interface(통합 확장 펌웨어 인터페이스) 읽을 때는 유-이-에프-아이같이 알파벳으로 읽기도 하지만, 유이파이라고 읽기도 한다.[1] 2022년 기준으로 버전 2.10가 최신이다.

BIOS를 대체하는 펌웨어 규격으로, IBM PC XT부터 이어진 16비트 바이오스의 제약 사항을 극복하고 새로운 하드웨어를 더 유연하게 지원하기 위해서 64비트 기반으로 개발되었다. 1990년대 중반부터 인텔이 개발해 EFI(Extensible Firmware Interface)라는 이름으로 인텔 아이태니엄 시리즈에 사용되었으며, 2005년 UEFI 포럼을 발족해 포럼에 공개해 현재의 이름인 UEFI로 변경되었다.

2. 상세

파일:uefi-components.png
UEFI 이전의 규격인 BIOS의 경우 IBM이 자사의 제품인 IBM PC를 위해 만들었으나 Phoenix Technology가 리버스 엔지니어링 IBM PC 호환기종을 만들고자 하는 회사들에게 BIOS를 판매하기 시작 #하면서 사실상 표준 규격이 된 것에 비해, UEFI는 처음부터 공용 펌웨어 규격을 목적으로 설계되어 있으며 규격 등이 무료로 공개되어 있어 자유롭게 이식할 수 있다.

보통 2006년도 이후에 나온 메인보드 칩셋이라면 대부분 EFI 적용이 가능하다. 인텔은 1990년대말 아이태니엄부터 지원했고 x86 계열은 945 이후 칩셋(맥북 및 일부 PC 기종들), AMD는 7xx 칩셋(ECS의 760G 보급형 AM3+ 보드)과 NVIDIA는 GeForce 7025 칩셋부터 적용했다. 기가바이트가 N68 보드에 Hybrid EFI를 탑재해 UEFI를 탑재할 수 있음이 알려졌다. 애플에서는 2006년 인텔 맥북부터 도입되었다. 본격적으로 적용되기 시작한 것은 샌디브릿지용 6 시리즈 칩셋과 AMD 8xx 번대 칩셋( AMD 페넘2/ AMD FX)부터 메인보드 제조사들이 적용하기 시작했다. UEFI 초창기 시절의 일부 염가형 보드는 EFI의 탈을 쓴 일반 BIOS도 있으며, EFI의 진보된 기능은 넣지 않거나 혹은 업데이트로 나중에라도 온전한 UEFI 지원이 되게 하는 경우도 있다. 추가로 2008년 이후에 출시된 대부분의 삼성 노트북 모델들도 UEFI를 지원한다. 해당 모델은 GM4x/PM4x(센트리노2)계열 칩셋이 탑재된 모델 및 그 이후 모델들로, 넷북 라인업은 NC110-Pxx/PRORO(NC110P)에만 탑재되었다. 구분하는 방법은 바이오스의 Advanced 메뉴에 Legacy OS Boot라는 항목이 있는지 확인하면 된다. 상술한 NC110-Pxx 및 2세대 i시리즈 계열 탑재 모델들은 제외된다. 해당 모델들은 UEFI 관련 항목이 따로 있다.

BIOS에서 UEFI로 전환되는 시기에 같은 메인보드 칩셋이라도 모델에 따라 펌웨어 종류가 다르기도 했다. 2008년 MSI에서 EFI를 탑재한 P35 Neo3-EFINITY 메인보드를 내놓았으나, 시기상조라 여겨지면서 신기한 물건 정도로만 이목을 끌었을 뿐 그다지 많이 팔리지는 않았다. 기가바이트는 4 시리즈부터 Hybrid EFI라는 것을 사용하여 UEFI의 기능 중 2.2TB 이상의 하드 디스크 드라이브를 부팅용으로 사용하기 위한 GPT 및 EFI 부팅 기능만 넣은 바이오스를 사용했다. AMD 메인보드는 초기 리비전은 바이오스로 내놓다가 후기 리비전에서 UEFI를 사용하는 경우도 있다. 나중엔 제대로 된 UEFI 보드들을 내고, 듀얼 바이오스의 전통을 이어받아 듀얼 UEFI를 지원한다. 애플은 첫 인텔 맥부터 모든 모델이 애플에 맞게 개량한 전용 EFI를 사용한다.

BIOS는 x86의 16비트 실제 모드에서 동작해 플랫폼에 의존적이며, 그렇기 때문에 부트로더와 확장 카드들의 Option ROM들 또한 16비트 x86 코드가 탑재되어야 했다. 이 때문에 전혀 다른 명령어 집합 아키텍처(Instruction Set Architecture, ISA)의 CPU를 사용하는 플랫폼에서 사용할 수 없었다. 그러나 UEFI는 x86은 물론 64비트의 AMD64 AArch64, RISC-V, MIPS, IA-64 등과 같은 x86이 아닌 플랫폼들 또한 네이티브로 동작시킬 수 있다. 2.10 버전 부터는 중국의 Loong 아키텍처 CPU까지 지원하기 시작했다.

Option ROM이나 운영 체제 부트로더와 같은 EFI의 실행 바이너리들도 기존의 BIOS 같이 네이티브 바이너리를 사용할 수도 있으나, EFI 바이트 코드(EBC) 실행 환경을 지원해 플랫폼과 상관없이 범용적으로 사용할 수 있는 장점이 있다. 이 덕분에 과거 BIOS 시절 x86 롬 코드가 올라가 있는 확장 카드들은 SPARC이나 POWER 같은 비-x86 시스템에서 사용이 매우 번거롭거나 사용할 수 없었으나 EFI 바이트 코드 펌웨어가 카드에 올라가 있는 경우 호스트 장치가 UEFI만 지원하면 CPU의 종류에 상관없이 사용할 수 있다.

사용자가 느끼는 가장 큰 차이점은 펌웨어 사용자 인터페이스와 GPT 부팅이다. 진입 방법은 BIOS와 똑같이 부팅 중에 펌웨어 설정 진입 키를 누르면 된다. BIOS 시절에는 일부 486-펜티엄 보드에 사용한 AMI 바이오스에서 GUI와 마우스를 지원한 것을 빼면 모든 사용자 인터페이스는 TUI 기반이었다. UEFI로 오면서 GUI 기반 펌웨어를 탑재하는 메인보드 제조사가 많아졌다. 펌웨어 개발사인 AMI의 레퍼런스 UEFI Aptio의 기본값은 TUI이지만 제조사에서 GUI로 변경할 수 있다. 그래서 HP나 페가트론 같은 OEM 업체이거나 인지도 없는 브랜드는 UEFI 메인보드라고 해도 TUI만 사용한다. 심지어 인텔 베이트레일 기반 태블릿 및 삼성 아티브 계열에 들어가는 UEFI는 마우스 조작과 더불어 터치 조작도 지원한다. 태블릿에는 물리 키보드가 없기 때문에 가상 키보드까지 지원한다. 물론 UEFI의 터치 스크린 드라이버는 필수적인 조작만 되면 되기 때문에 운영 체제로 부팅한 상태보다는 터치감이 안 좋을 수밖에 없다.

Fastboot와 Secure Boot, 펌웨어 단계에서의 부트로더 관리, 운영 체제에서 펌웨어 설정에 접근하는 표준 인터페이스 등 기능이 추가되었다. BIOS 기반 컴퓨터에서 부팅할 때에는 해당 부팅 장치의 MBR에 접근해야 운영 체제 코드가 실행되지만, UEFI 펌웨어는 디스크에 설치된 부트로더 정보를 가지고 있기 때문에 운영 체제 코드의 일부를 UEFI 단계에서 실행할 수 있다.

윈도우의 경우 UEFI 모드로 제대로 설치되면 부팅 단계에서 윈도우 로고 대신 메인보드 제조사[2] 또는 해당 제조사의 브랜드 로고 뜨고 윈도우가 로딩된다. Windows Vista/7은 UEFI 부팅을 지원하지만 완전한 지원은 아니기에 모든 기능을 사용할 수는 없다. EFI 부팅만 지원하는 보드의 경우 무한 부팅이 되는 등 부팅이 불가능할 수 있다. Windows 8이나 Windows 8.1 또는 Windows 10에서는 더 많은 기능을 지원한다. macOS는 출시 당시부터 UEFI를 지원했다. 리눅스는 x86 운영 체제 중 가장 먼저 UEFI 부팅을 지원했으며, UEFI를 지원하는 GRUB2 등 부트로더를 사용하면 된다. 또한 부팅 화면 자체에서 HiDPI를 지원하기도 한다.

16비트 코드에서 벗어나 64비트로 넘어왔기 때문에 성능 면에서도 이득이다. 가령 기존 BIOS 환경에선 CPU가 그래픽 메모리를 최대 4기가 비트 즉 256MB 까지만 접근할 수 있었으나 CSM 호환 모드를 끈 UEFI에서는 이러한 제한이 사실상 풀렸다. Resizable BAR 문서 참고

BIOS에 비해서 관리하는 하드웨어 범위는 물론, 기능도 증가했기 때문에 구현을 제대로 하지 않았을 때 문제가 발생할 확률이 더 높아졌다.

2020년 이후 CSM을 삭제한 UEFI 클래스 3+가 표준으로 자리잡아 구형 BIOS는 영영 사라지게 되었다.[3]

Windows Phone도 UEFI를 사용한다. Windows Phone 루미아 핸드폰에는 전부 퀄컴 칩이 들어가 퀄컴이 자체 UEFI 부트로더를 제작했다. 그리고 드물게 신형 퀄컴 칩셋을 탑재한 안드로이드 폰도 UEFI를 사용한다. 구글 플레이 스토어에 EFIDroid란 앱이 있는데 그 앱을 사용하면 EFI를 지원하는 기종 한정으로 멀티 부팅을 지원하며 다른 리눅스 운영 체제 설치와 EFI 셸도 사용 가능하다. 지원 리스트는 해당 앱에서 볼 수 있으며 극소수이다. 퀄컴에서 제작한 UEFI 부트로더를 안드로이드에도 일부 적용했을 수도 있다. 일례로 DragonBoard 410c는 퀄컴 스냅드래곤 410 SoC를 탑재한 라즈베리 파이와 비슷한 개발 보드인데 퀄컴제 UEFI로 UEFI 셸이 실행되는 것을 볼 수 있다.

Windows 11부터 더 이상 BIOS를 지원하지 않고 UEFI와 GPT만 지원한다. 다만 부팅 드라이브가 아닌 다른 드라이브는 MBR이더라도 상관없다. 우분투 리눅스의 경우에는 20.10부터 더이상 BIOS를 지원하지 않으며, 20.10 이후 버전을 UEFI 미지원 시스템에 설치할 경우에는 EFI 파티션이 없어 설치나 부팅이 실패할 수 있다는 오류 메시지를 출력하면서 설치된다.

펌웨어에 큰 문제가 없다면 바이오스/UEFI 업데이트는 되도록 하지 않는 것이 좋다는 이야기가 있다. 요즘 시스템들은 복구 명령어가 있지만, 펌웨어 업데이트 중 시스템이 갑작스럽게 종료될 수 있기 때문이다.

3. GPT

BIOS 시절부터 사용한 MBR(Master Boot Record)의 파티션 테이블은 주 파티션을 최대 4개까지밖에 잡을 수 없고 그 이상으로 나누려면 논리 파티션을 사용해야 한다. 운영 체제와 부트로더가 지원하지 않으면 주 파티션에 설치된 운영 체제로만 부팅 가능하며, 전체 디스크 크기가 2.2TB를 넘어서면 초과분의 공간은 사용할 수 없다.

또한 MBR 부트로더의 크기가 512 바이트이므로 MS-DOS와 같이 간단한 운영 체제가 아니면 MBR 부트로더로는 부팅할 수 없어 MBR 부트로더에서 파티션의 2차 부트로더를 실행시키는 방법으로 크기 제한을 우회했다.

GPT(GUID Partition Table)는 파티션 정보를 기록하는 방식을 변경하여 주 파티션과 논리 파티션의 구분을 없애고 2.2TB를 초과하는 디스크를 한 개의 파티션으로 사용할 수 있게 되었다. GPT의 파티션 테이블에 기록되는 정보가 더 많기 때문에 MBR을 GPT로 변환할 수 있지만, 그 반대로는 불가능하다.

GPT 디스크로 부팅하려면 EFI가 필요하지만 반대로 EFI는 GPT뿐만 아니라 MBR 디스크도 부팅할 수 있다. 예를 들면, EFI 부팅용 USB의 경우 호환성을 고려하여 MBR 파티션 테이블을 사용한다.

반대로 BIOS에서 GPT 디스크 부팅은 리눅스의 경우에만 할 수 있다.[6] 다만 이건 BIOS에 디스크가 MBR이라고 속이고 GRUB이 원래대로라면 EFI 펌웨어가 해 줘야 하는 디스크 인식 같은 귀찮은 일을 대신 해주니까 가능한 것이다. 편법은 엄연히 편법이고, 사양으로는 안 되는 게 맞으며, 윈도우에서는 안 된다.

3.1. GPT 사용법

일단 GPT 부팅은 메인보드가 UEFI/EFI를 지원해야 한다.

윈도우 10의 경우 설치하려는 디스크가 MBR을 이용한다면 GPT로 전환한 다음에 설치해야 한다. 일단 기존 데이터를 모두 다른 저장소에 옮겨 놓고 포맷 후 GPT로 초기화하거나, 변환 명령어로 MBR에서 GPT로 변환해야 한다. 1703 버전 이후 윈도우 10에서는 mbr2gpt를 통해 디스크를 포맷하지 않고도 GPT로 변환할 수 있다.[7] 운영 체제가 설치되어 있지 않은 디스크는 mbr2gpt로 변환할 수 없기 때문에 서드파티 GPT 변환 프로그램을 이용해 변환할 수 있다.

윈도우 10 크리에이션 툴 다운로드 페이지에서 윈도우 10을 다운로드 받아 부팅 가능한 USB 메모리로 만든다.

단 윈도우 정품을 ESD가 아닌 패키지로 구매했을 경우 위 과정이 생략되는데, 정품 패키지에 담겨 있는 USB를 그대로 꽂으면 되기 때문이다.

참고로 이런 윈도우 정식 USB 메모리는 무조건 FAT32로만 포맷되어 있는데, 일부 구형 메인보드가 UEFI 모드에서 FAT32 부팅만 지원하기 때문이다. 그래서 내용도 잘 보면 한 파일의 용량(특히 install.esd/install.wim)이 4GB가 되지 않도록 세심하게 배려해 놨다. 이는 FAT32의 특성상 한 파일의 크기가 4GB를 넘길 수 없기 때문이다.

정확히는, FAT32는 의무 필수 지원이라 어떤 구형 제품도 무조건 지원하는 반면, NTFS, ext4 등 나머지 규격으로 포맷된 파티션에서의 부팅 지원은 '옵션'이기 때문에 윈도우용 제품이면서도 NTFS 부팅도 지원하지 않는 제품들이 있는 거다. 후술할 파티션 나누기와 윈도우 부트 매니저 설정도 사실 이것 때문에 생긴 꼼수이기도 하다. FAT32 부팅만 지원하는 보드에서 호환성 문제를 피하기 위해서 부트로더는 FAT32로 포맷된 전용 파티션에 따로 격리해 놓은 것이다. #

메인보드에서 지원한다면 NTFS로 바로 부팅도 가능하지만 호환성이 낮기 때문에 잘 사용되지 않는다. #

아니면 직접 파일 시스템 DXE 드라이버를 심어도 된다.

그리고 윈도우 설치용 USB 메모리를 컴퓨터에 꽂은 후 Delete 키, esc키, F2 키, F9 키, F11 키 등으로 펌웨어 설정으로 들어간다. 그리고 부팅 우선순위에 가보면 USB 메모리를 UEFI와 BIOS, 두 가지로 부팅할 수 있는데 UEFI USB 부팅 메모리를 부팅 첫 번째 우선순위로 바꾸고 설정을 저장하고 나온다. 메인보드 제조사에 따라 UEFI 부팅을 원할 시, UEFI 옵션만 별도로 켜야 하는 경우도 있다. 그냥 F11이나 F12 키를 누르고 부팅 순서만 바꾸는 것이 훨씬 더 편할 것이다.

컴퓨터를 다시 부팅하여 윈도우 10을 설치한다. 기존 파티션을 모두 지운 후 GPT 파티션으로 새로 생성한다. 자동으로 파티션 1은 100MB에서 그 이상의 복구 파티션을 만들고, 파티션 2는 대개 100MB인 파티션('EFI 시스템 파티션'이며, 상술한 부팅 지원 문제 때문에 무조건 FAT32로 포맷되어 있다), 파티션 3은 16MB의 MSR(예약) 파티션을 만들고, 나머지는 전부 파티션 4로 만든다. 만약 D 드라이브를 별도로 만들려면 파티션을 생성할 때 두 번째 드라이브의 용량만큼을 빼서 기입하면 된다.

보통은 윈도우 설치가 끝나면 자동으로 부팅 우선순위 1위가 윈도우 부트 매니저로 지정된다. 만약 설치 후 재부팅이 끝났는데 다시 설치 화면이 나온다면 부팅 우선순위 설정 항목으로 들어가 윈도우 부트 매니저를 1위로 설정한다(EFI 시스템인 경우 기존 BIOS처럼 윈도우가 설치된 디스크를 1순위로 잡아주면 된다). 그리고 설치가 끝났으므로 FastBoot를 켜도 된다. 윈도우 10으로 부팅이 끝났다면 초기 설정 후 사용하면 된다.

메인보드에서 GPT 부팅을 지원하지 않고 운영 체제에서는 지원한다면 GPT 형식의 저장용 디스크로서의 사용은 가능하다.

4. Fastboot

Fastboot는 부팅 중에 USB 부팅 디스크, 그래픽 카드 등의 레거시 BIOS 코드의 로드를 생략하고 향상된 코드가 탑재되어 있는 UEFI 펌웨어로 주변 하드웨어의 펌웨어와 Fastboot 기능을 지원하는 운영 체제의 코드를 일부 가져와 메인보드 EFI 상에서 빠르게 부팅시켜 부팅 속도를 단축시키는 기능이다. UEFI 방식으로 Windows 8 이상을 설치했을 때에만 활성화할 수 있다.

기존 BIOS 부팅 방식은 전원 ON → 바이오스 로드 → 하드웨어 탐색 → 운영 체제 로드 순으로 진행됐는데, UEFI 부팅 방식은 메인보드 제조사 로고를 띄우자마자 운영 체제를 로딩하기 때문에 부팅 속도가 정말 많이 단축된다.

SSD를 탑재하고 UltraFastboot와 UEFI 지원 운영체제를 조합하면 매우 빠른 부팅 속도를 체험할 수 있다. 심지어 4GB RAM+ 인텔 아이비브릿지 펜티엄 G2030을 탑재한 조선컴이라도 SSD와 Windows 10이라면 10초는커녕 5초도 안 되어 암호 입력 화면으로 넘어간다. 암호를 정해 놓지 않았다면, 바탕 화면으로 직행한다. HDD와 윈도우 10, 8GB RAM, 인텔 샌디브릿지 코어 i3를 탑재한 똥컴이라도 UEFI를 적용하면 30초 이내에 바탕 화면으로 직행하는 수준이다. 그 정도로 부팅 완료 체감 시간이 상당히 빨라진 것인데, UEFI 도입 이전에는 부팅 시간 최단 40초, 최장 1분 30초였다.

Fastboot를 제대로 사용하려면 그래픽 카드나 RAID 카드와 같은 PCI Express 확장 카드도 UEFI 규격을 지원해야 하며 UEFI 펌웨어를 지원하는 운영 체제도 필요하다. UEFI는 기존 BIOS와 호환되지 않기 때문에 확장 카드가 BIOS만 지원하면 UEFI Fastboot 설정 시 하드웨어를 사용할 수 없다. 예를 들어 2013년 이전 출시된 그래픽 카드는 VBIOS만 있고 UEFI GOP 펌웨어를 생략하는 경우가 있는데, 이런 그래픽 카드를 사용하면 UEFI Fastboot를 사용할 수 없다. 그래픽 칩셋이 지원한다면 구형 그래픽 카드라도 UEFI 펌웨어를 제작하여 심는 방법으로 Fastboot를 지원하게 할 수는 있다. 서버에서 사용하는 RAID 카드 등 확장 카드도 UEFI 규격을 지원하지 않으면 해당 카드를 부팅 중에 사용할 수 없다. 또한 운영체제 Windows 8 이상부터 사용할 수 있다.

Fastboot 옵션이 켜져 있는 경우, 부팅 초기에 UEFI 펌웨어 진입 시간을 주지 않고 USB 부팅 디스크를 인식하지 않고 운영 체제 부팅 단계로 바로 넘겨 버리는 탓에 윈도우 재설치를 못 하고 있다면 Fastboot 기능을 끄고 설치하면 된다.
이 때는 일단 윈도우 로그인 후, Windows 설정 → 업데이트 및 보안 → 복구 → 고급 시작 옵션 → 지금 다시 시작 → 문제 해결 → 고급 옵션 → UEFI 펌웨어 설정 → 다시 시작을 설정하면 바이오스로 진입할 수 있다.

5. Secure Boot

UEFI Specification 2.2부터 지원하는 기능으로, 운영 체제 부트로더와 드라이버가 검증된 인증서에 의해 디지털 서명되었는지를 검증하여 부팅 과정에서의 보안성을 높였다. 디지털 서명되지 않은 경우 또는 검증된 인증서에 의해 서명되지 않은 경우에는 사용자에게 오류 메시지를 표시하며 부팅이 중단된다. 이 기능을 사용하려면 Microsoft Windows 계열에서는 Windows 8 이후의 운영 체제를 사용해 반드시 UEFI 모드로 설치해야 한다. Windows RT/ Windows Phone 탑재 장비는 모두 이걸 켜고 나오고 사용자가 끌 수 있는 방법이 없기 때문에 서피스 RT나 루미아의 커스텀 펌웨어가 거의 안 나오는 이유이기도 하다.

Windows의 경우 드라이버의 서명 또한 영향을 주게 되는데 Secure Boot가 켜진 상태에선 펌웨어에 등록되어 있지 않은 인증서로 서명되어 있거나 서명되지 않은 드라이버의 로드를 중단시켜 변조된 드라이버의 실행을 방지한다. 대부분의 Windows용 드라이버는 WHQL 등으로 서명되기 때문에 일반적인 사용 환경에서는 문제가 되지 않는다.

Linux 배포판 중에서는 레드햇 계열( 페도라, 레드햇 엔터프라이즈 리눅스, CentOS, Rocky Linux 등), 데비안 계열( 데비안, 우분투[8]), SUSE 계열( openSUSE, SUSE 리눅스 엔터프라이즈)등이 해당되는데, 페도라 항목을 보면 알겠지만 FSF/GNU 진영에서는 M$에 돈을 바쳤다고 일단 까고 시작한다. 또한 이것이 켜지면 UEFI 제조자와 협약이 되지 않은 부팅 프로그램들은 모조리 보안 오류가 뜨면서 작동하지 않으므로 커스텀 리눅스와 해킨토시를 설치할 수 없다. 그 많은 판본들을 다 보안 서명 협약을 맺을 수는 없기도 하고, 그리고 이념적인 감정도 있는 지라 Secure Boot를 끄기도 하는 상황이다. 유닉스에서는 FreeBSD가 Secure Boot를 지원한다.

여담으로 노트북 사용자 중 Steam을 통해 소스 엔진 게임을 구동할 경우 그림자 옵션이 보통이나 낮음으로밖에 선택할 수 없는 경우가 있다. 이를 해결하기 위해선 바이오스 설정에 들어가서 Secure Boot 옵션을 꺼두면 해결이 된다고 한다. AMD의 StoreMI 역시 Secure Boot를 꺼야 작동된다.

또한 Secure Boot는 UEFI 제조자와 미리 서명 인증 협약이 되어있는 운영 체제 같은 부팅 프로그램에서만 정상 작동하므로 (안 된 것들은 보안 오류가 뜬다.) 그것이 돼 있지 않은 커스텀 리눅스 같은 것을 설치하려면 끄거나 따로 만든 인증서와 그 인증서로 인증한 부트로더, 그리고 EFI 펌웨어에 해당 인증서를 올리거나 이 방법을 이용하면 된다. 물론 인증서를 임의로 등록하는 기능이 없는 메인보드라면 불가능하다. 주로 보드 자체의 롬 칩의 용량이 적은 보드나 OEM 보드의 경우가 해당된다. 여기를 참고해도 좋다.

일부 구형 메인보드의 경우 CSM을 켜거나 그래픽카드의 부트롬 설정이 Legacy(VBIOS) 상태 혹은 GOP를 지원하지 않고 VBIOS만 있는 상태에서 Secure Boot를 활성화 할 경우 모종의 충돌로 인하여 부팅이 안 되는 일이 생기니 주의해야 한다.[9]

Windows 11을 설치하기 위해서는 필수 기능까지는 아니나, 메인보드에서 보안 부팅을 활성화 할 수는 있어야 된다. 대부분의 경우, UEFI 설정 화면에 Secure Boot 활성화 여부를 선택할 수 있다면 이에 해당한다. 물론 Secure Boot가 항상 활성화되어 있고 비활성화할 수 없는 경우도 문제 없다.

6. UEFI Class

BIOS라고 불리는 16비트 기반의 코드만 존재하는 환경이며, 문자 그대로 그냥 BIOS이다. 펌웨어 코드는 UEFI 규격을 따르나, UEFI 코드 실행을 지원하지 않는 환경이다. 린필드 시절 당시 3TB 이상의 디스크 지원을 위해 일부 제조사에서 사용한 적이 있다. 펌웨어 코드는 UEFI 규격을 따르고 UEFI 코드를 실행이 가능하며 BIOS 코드 또한 실행이 가능하다. (CSM) 이 클래스는 Intel 샌디브릿지, AMD 990FX 플랫폼부터 대부분의 메인보드가 해당 Class를 사용하고 있다. 이 클래스의 환경에서 부팅을 위해 최소 Windows Vista GRUB 2 이상을 사용하여야 한다. 펌웨어 코드는 UEFI 규격을 따르고 UEFI 코드가 실행이 가능하지만, MBR 부팅과 같은 BIOS 관련 코드 실행을 지원하지 않는다. Class 2에서 CSM을 끈 상태와 동일하다. 이 환경에서 부팅을 위해서는 Grub 2이상과 Windows 8 이상이 필요하다. [10] UEFI Class 3와 동일하나 Secure Boot가 켜진 상태이며, 서명되지 않은 UEFI 코드를 실행할 수 없다.

7. CSM

CSM(Compatibility Support Module, 호환성 지원 모듈)은 UEFI를 완전히 지원하지 않는 운영 체제( Windows 7 이하, GRUB 2나 Syslinux를 사용하지 않는 리눅스 배포판들이 여기에 해당)나 x86 레거시 모드, DOS 구동을 위해 기존 레거시 바이오스의 16비트 바이너리 및 그래픽 카드 BIOS, 네트워크 PXE 부팅 롬, 기타 PCI 장치 등 외부 장치의 Option ROM을 지원하는 기능이다. 이 기능의 탑재로 인해 바이오스가 완전히 죽진 않고 최소한의 기능으로 탑재되어 있었다.

대부분 메인보드가 CSM을 토글하는 방식으로 설계되어 있지만 설정 방법이 다양하다. 위에 말고도 여러 방법들이 있으므로 운영 체제를 UEFI로 설치하는 경우 메인보드나 노트북의 바이오스 설명서를 꼭 잘 읽어 봐야 한다. 데스크톱의 경우, 외장 그래픽을 설치했다면 그래픽 카드의 세팅도 주의해야 한다. 또한 CSM을 켜도 Secure Boot가 자동으로 안 꺼지는 보드는 인증 오류를 뿜어내고, Fastboot도 EFI 부팅을 온전하게 지원하지 않는 운영 체제나 하드웨어의 경우에도 문제가 생길 가능성이 높으니 끄는 것이 좋다. UEFI GOP 펌웨어가 탑재된 그래픽 카드의 경우 EFI 모드로 전환해 주지 않으면 CSM을 껐을 때 에러 메시지를 띄운다. 윈도우 8 이상에서 EFI 설치 전에 그래픽 카드의 롬 모드도 바꿔 주는 것이 좋다.

다만 CSM은 Fastboot, Secure Boot 기능이 빠진 BIOS 모드에서 GPT 디스크로 부팅하는 정도밖에 안 되는 모드다. UEFI 부팅이 주는 장점을 제대로 활용하려면 운영 체제, 확장 하드웨어, 하드 디스크 드라이브 파티션 테이블이 모두 UEFI를 지원해야 한다. 대부분 UEFI 펌웨어가 MBR 기반 디스크에서도 부팅을 지원은 하지만, 부트로더 관리 등 고급 기능을 사용하려면 GPT로 갈아타야 한다.

하지만 시대가 발달함에 따라 UEFI의 기능들을 지원하는 Windows 8.1 Windows 10이 나오고, 인텔은 2020년까지 개인 PC든 서버용 컴퓨터든 CSM을 흔적도 없이 날려버린 UEFI Class 3를 도입할 예정이다. 이제는 UEFI를 온전히 지원하지 않는 운영 체제들의 수명이 끝나거나, 얼마 남지 않아 CSM 모드가 잘 사용되지 않음으로써 필요 없는 공간만 차지하고, 레거시 코드 자체가 오래되어 보안에 취약한데다 Secure Boot 기능을 온전히 사용할 수 없게 되어 그로 인해 부팅 시 악성 코드가 몰래 실행되어 보안에 악영향을 끼칠 수도 있어 해당 기능을 없애버릴 예정이다. 구형 운영 체제 사용을 희망하는 사람들에겐 날벼락이지만 이덕에 보안 문제에 더 안전해질 것으로 보인다. 구형 운영 체제는 VirtualBox 등의 가상 머신으로 구동할 수 있다.

그럼에도 불구하고 CSM으로 운영 체제를 설치하는 이유는 산업용 소프트웨어의 호환 문제 등의 이유로 인증서가 없는 구식 운영 체제를 설치하기 위한 것으로 이런 경우 Secure Boot를 끌 수밖에 없다. 아니면, ISA 슬롯에 꽂아야만 작동할 수 있는 구형 산업용 장비들은 Secure Boot를 끄고 CSM 모드를 켜야한다. 이런 구형 산업용 장비들은 이제 새로운 컴퓨터로 업그레이드할 수 없다. 게다가 인텔이 x2xx 칩셋부터 Windows 10 미만의 운영 체제들에 대한 공식 지원을 종료한 탓에 더더욱 지원할 이유가 사라졌다. 2019년부터 제작되는 대기업 OEM PC나 노트북의 경우는 메인보드에 CSM 기능이 제거된 채로 제작되고 있다. 다만 하위 호환이 굉장히 중요한 서버 보드 같은 경우에는 듀얼 바이오스 비슷하게 롬 칩을 두 개 심는 식으로 대응할 가능성도 크다. 하나는 UEFI, 하나는 BIOS 칩으로 해서 점퍼 같은 걸로 물리적인 방법으로 전환하는 식이다.

하지만, 2024년 현재까지도 조립 컴퓨터에 사용되는 메인보드들은 여전히 UEFI에 CSM 기능이 포함된 채로 제작되어 판매되고 있다.

8. GOP


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
군사 용어에 대한 내용은 GOP 문서
번 문단을
부분을
, 미국 공화당의 별칭인 GOP(Grand Old Party)에 대한 내용은 공화당(미국) 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
GOP(Graphics Output Protocol)는 UEFI를 지원하기 위한 그래픽 카드 펌웨어 규격으로 VBIOS를 대체한다. GOP와 VBIOS는 서로 전혀 다름에도 불구하고 UEFI를 BIOS라고 관습적으로 부르는 것처럼 GOP를 VBIOS라고 부르고 있다. 그러나 이 둘은 상호 호환성이 전혀 없는 완전히 다른 펌웨어이다. #

GOP는 UEFI 규격이라 그래픽 카드 펌웨어에 GOP가 올라가 있지 않은 경우 UEFI Class 3+를 사용하는 게 어렵다. 통제권이 운영 체제로 넘어가 운영 체제가 드라이버를 로드하기 전 까지 아무것도 출력되지 않기 때문이다. 심지어 보드에 따라서 CSM 모드가 꺼져 있으면 부팅이 불가능한 경우도 많다. 그래픽 카드에 GOP가 탑재되면 UEFI가 그래픽 카드의 가속 기능을 제한적으로 사용할 수 있기 때문에 UHD와 같은 고해상도로 출력할 수 있고 UEFI를 지원하는 운영 체제를 사용하는 경우 드라이버가 설치되지 않은 상황에서도 저런 고해상도 화면을 출력할 수 있다. 과도기 시절(UEFI Class 1, 2) Legacy + UEFI Mode 사용시 BIOS가 VBIOS를 이용해 GOP 기능을 구현한 뒤 Protocol을 Install 하여 GOP처럼 동작하도록 지원하기도 했었지만 UEFI Class 3부터는 CSM이 없어서 구형 그래픽 카드를 장착해도 아무것도 출력되지 않는다.

GOP가 지원이 된 시점은 NVIDIA의 경우 지포스 600 시리즈부터 지원하기 시작했고, AMD는 라데온 HD 7000 시리즈부터 지원하기 시작했다. 다만 그래픽 카드 제조사들에 의해 원가 절감 등으로 제품에 따라 GOP를 넣거나 제외하기도 했다.[11] 모든 제품군에 GOP가 탑재가 된 시점은 지포스의 경우 지포스 700 시리즈부터 AMD(라데온)의 경우 라데온 RX 400 시리즈부터 적용되었다.

물론 GOP가 탑재되지 않은 구형 그래픽 카드나 일부 제조사에서 GOP 드라이버를 누락한 경우[12] 별도의 GOP를 그래픽 카드의 펌웨어에 삽입하여 업데이트하는 방법도 있다.

다만 일부 제조사의 그래픽 카드의 경우 사소한 호환성 문제를 일으킬 수 있어[13] 주의해야 하며, 보통 원가 절감을 위해 펌웨어를 저장하는 직렬 주변 장치 인터페이스(SPI, Serial Peripheral Interface) 플래시 메모리의 용량을 작은 것으로 달아놓은 저가형 카드들이 이러한 문제점을 일으킨다.

주로 NVIDIA GeForce 600 계열의 그래픽 카드들과 AMD Radeon R9 300 계열대의 그래픽 카드들이 필요한 작업으로 지원하는 그래픽 카드 목록의 경우 다음과 같다. #1 #2 1번 블로그 링크는 한국어로 그림과 함께 자세하게 설명하였고 2번 링크는 GOP 업데이트 툴 최초 개발자의 링크로 최초 개발자는 이제 더 이상 업데이트를 안하지만 능력자들이 개발을 지속해 1번 링크보다 더 최신 GOP 펌웨어로 업데이트 가능한 툴을 배포하고 있다.

그리고 RTX 시리즈 즉 RTX20 이상 엔비디아 그래픽 카드는 펌웨어 형식이 변경되었기 때문에 위의 링크보다 해당 링크에 들어가서 신규버전의 툴을 받아서 작업하는 것을 권장한다. 그럴 수 밖에 없는게 이미 GOP가 있어도 더 최신 GOP 펌웨어로 업데이트 가능한데 업데이트를 적용하여 호환성을 좀더 끌어올릴 수 있다.

GOP 드라이버 업데이트 작업이 의미가 있는게 " Windows 11을 설치하기 위해서는 그래픽 카드도 GOP를 지원해야 하며 DirectX 12와 WDDM 2.X 조건을 충족해야 한다."는 조건이 있는데 이러한 작업을 통해 구형 GeForce 400 시리즈와 AMD Radeon HD 7000 시리즈 이후 계열 구형 그래픽 카드들의 경우 DirectX 12와 WDDM 2.X 조건은 충족하는 상황이고 GOP만 없었는데 GOP가 추가가 되어 윈도우11 설치가 가능해진다. # 또한 DirectX 12를 미지원하는 GeForce 200 시리즈 등의 그래픽 카드여도 윈도우 8이나 윈도우 10에서 CSM 모듈을 끄고 UEFI로 부팅할 경우 구형 그래픽 카드를 쓰면서도 기존보다 조금 더 부팅이 빨라진다. 또한 최근 Resizable BAR 기능을 지원하기 위해 GOP 드라이버 업데이트를 배포했다.[15]

참고로 내장 그래픽 GOP는 내장 그래픽이 달린 CPU(APU)가 아니라 메인보드 UEFI가 보관되어 있는 SPI 플래시 메모리에 있기 때문에 위의 도구 소프트웨어로는 작업이 안되고 같은 사이트에 있는 메인보드 펌웨어 드라이버 업데이트 도구를 써야한다.

그리고 그래픽 카드 자체에 GOP가 있어도 GOP는 메인보드의 펌웨어 UEFI 규격 2.31부터 들어가기 때문에 UEFI를 지원해도 해당 버전 이하의 UEFI가 들어간 구형 메인보드[16]에서는 작동되지 않을 수 있으나 신형 버전의 바이오스(UEFI) 업데이트를 진행하면 대부분 해결된다.

9. 제조사

9.1. 제조사별 Setup 화면

파일:MAIN.png
AMI Aptio의 기본 인터페이스
파일:asus uefi.jpg 파일:GIGABYTE UEFI.jpg
ASUS Maximus 제품군의 Setup 화면[17] UEFI 초기 GIGABYTE의 Setup 화면
파일:samsung bios.jpg 파일:dell bios.jpg
삼성전자가 커스텀한 GUI Setup 화면 Dell이 커스텀한 GUI Setup 화면

파일:LG_GRAM.png
Phoenix SecureCore에서 사용 가능한 그래픽 인터페이스 중 하나[18]

파일:surfacebios.png
Microsoft가 개발한 UEFI 화면

9.1.1. Option ROM

파일:4181c0fd9e1b86.jpg
기가바이트 B450 Aorus pro 모델에서 Microsemi(舊 Adaptec) 6805T RAID 카드 옵션롬 진입 모습

그래픽 카드뿐만이 아닌 하드웨어 RAID 카드나 이더넷 카드에도 옵션롬이 들어간다. BIOS를 지나 UEFI 시대로 넘어오면서 RAID 카드도 UEFI를 지원하게 되었고, UEFI의 옵션롬 컨트롤 기능을 통해 해당 사진처럼 일반 PC UEFI 설정 화면에서도 RAID 카드 컨트롤을 할 수 있게 되었다. 바이오스 시절에도 이러한 기능이 없는 것은 아니었지만, 보통 메인보드 제조사와 RAID 카드 제조사가 같을 경우에만 지원하는 특수 기능이었다. 대부분의 경우는 BIOS 설정 메뉴와 별도로 옵션롬이 실행되어 별도의 설정 화면에서 각 옵션롬이 존재하는 장치의 설정을 변경하는 것이 일반적이다. RAID 카드에서도 AMI UEFI가 가장 많이 쓰이는데, 이 것은 애초에 RAID 카드 시장을 독과점하고 있는 브로드컴[19]의 Megaraid는 원래 AMI에서 개발하고 출시한 브랜드이기 때문이다.

9.2. 제조사 목록

10. 기타



[1] ( 위키백과 참조) [2] 완제품 PC나 노트북은 PC 또는 노트북의 제조사로 뜨기도 한다. [3] # [4] 사실 업데이트를 제공 안 해줘도 메인보드를 수동으로 설정하면 굳이 업데이트를 하지 않아도 된다. 물론 Windows 11 관련 UEFI 업데이트를 제공하면서 일부 잠수함 패치도 같이 적용될 수 있기에, 메인보드에 USB 플래시백 기능이 있다면 업데이트를 하는 것이 좋다. [5] #, 파일 이름이 길어도 실패할 수 있기 때문에 일부 제조사는 업데이트 파일 자체에 짧은 이름으로 바꿔주는 도구를 같이 배포하기도 한다. # "USB BIOS Flashbak tool사용 전에 BIOSRenamer를 사용해 BIOS 파일 이름을 짧게 만들어라고 하고 있습니다" [6] # [7] # [8] 단, Tuxedo OS를 포함한 일부 Ubuntu 기반 배포판/변형판은 Secure Boot를 지원하지 않으니 유의. [9] CMOS 점퍼 초기화로 해결되기는 하지만, 특히 원래 Secure Boot를 지원안했던 보드가 업데이트로 Secure Boot가 추가 된 보드라면 더욱 그렇다. [10] 하지만, Windows 7을 UEFI Class 3에서 설치하는 방법이 있다. # 해당 클래스에서 바이오스 코드를 에뮬레이션하고자 하는 시도가 있어왔는데 전체를 에뮬레이션하는 것보다는 운영체제별로 맞춤으로 에뮬레이션하는 식으로 해결되고 있다고 한다. xp도 부팅 가능하게 만든 방법이 있다고 한다. # [11] GTX 660 이상 부터는 기본적으로 대부분 탑재되지만, 그 이하 보급형 라인업의 경우 GOP 드라이버가 제외된 경우가 있다. 심지어 한참 뒤에 출시한 GTX 1650 그래픽 카드의 경우 대부분의 제조사의 경우 GOP 드라이버가 있지만 일부 제조사에서 제외된 경우가 있다. [12] 실제로 AMD에서 2019년에 출시된 Radeon VII에 실수로 GOP 드라이버를 빼 먹고 출시하는 바람에 사용자가 직접 개조 작업을 해야 했다. # 뒤늦게 이 사실을 파악한 AMD는 공식 홈페이지에 급하게 016.004.000.038.011717 버전 펌웨어를 OEM 제조사들 통해 배포했다. [13] 부팅 시 윈도우 로그온 진입 전 까지 화면이 안 뜨거나 절전 모드에서 깨어난 후 전원 버튼을 눌러 컴퓨터를 종료하려고 하면 전원 키 입력이 씹히는 경우 등의 일부 사례들이 있다. [14] 해당 링크( 원본)에서는 GF119 칩셋이 아닌 GF116 칩셋을 사용하는 GTX 550 Ti에 GOP 업데이트로 GF10X 계열을 선택하여 UEFI 업데이트를 적용하여 정상적으로 작동하였다. 다만 모든 GeForce 500번대 그래픽 카드가 정상적으로 작동한다는 보장을 할 수 없고 GOP 업데이트가 적용된 펌웨어 업데이트 과정 중에 그래픽 카드가 벽돌이 될 가능성이 있는 관계로 가급적이면 GOP가 기본으로 내장되어 있는 GeForce 700 이상의 중고 그래픽 카드나 신품 그래픽 카드로 교체하는 것을 권장한다. 참고로 2022년 11월 초 기준 네이버 쇼핑에서 GTX 750 일반은 최저 가격 기준으로 3만원대 후반부터 구매가 가능하고 GTX 750 Ti의 경우 5만원대 초반부터 구할 수 있다. [15] 2021년 3월 30일 공식적으로 배포가 시작되었고, 2021년 4월 1일 ZOTAC을 마지막으로 모든 엔비디아 그래픽 카드 제조사에서 Resizable BAR 비디오 바이오스를 배포하였다. [16] 주로 샌디브릿지~아이비브릿지 세대의 H61, P67, Z75, B75 등에서 발생하며 특히 저가형에서 자주 보인다. [17] 막시무스와 크로스헤어를 제외한 모든 제품들은 익스트림 튜너항목이 AI튜너로 이름이 다르다. [18] 6세대 이전 LG전자 노트북에서도 사용되었으며, 이후 그램 계열은 Phoenix, 울트라PC 계열은 InsydeH2O의 기본 인터페이스를 사용한다. [19] AMI를 LSI 코퍼레이션이 인수하였으며, LSI 코퍼레이션을 다시 브로드컴이 인수했다. [20] 인텔 프로세서를 사용하던 시절에는 EFI 다음의 부트로더로 이용되었다. 애플 실리콘이 쓰이기 시작하면서 Mac이 iPhone/iPad와 구조적으로 큰 차이가 없어졌기 때문에 그렇게 바꾼 것으로 보인다.