bootx64.efi bootmgfw.efi 아리송
2016.04.29 14:44
usb는 boot64.efi를 삭제해봤더니 부팅 안되던데
하드디스크는 bootx64.efi 삭제해도 부팅되던데요
왜 이런 차이가 나는건지.
하드디스크에서 bootx64.efi가 없어도 부팅되면
왜 시스템 파티션에서 갖고있는지 아리송하네요
댓글 [13]
-
박삿갓 2016.04.29 15:47
-
kernel 2016.04.29 16:28
UEFI 펌웨어는 CPU가 Intel 64bit 일 경우, EFI 시스템 파티션(ESP)에서 /efi/boot/bootx64.efi 경로를 찾기로 정의해 놓았어요.
그러나 OS가 UEFI 펌웨어의 Flash Chip에 부트 엔트리를 라이트 해 놓았을 경우, 펌웨어는 Flash Chip에 기록되어있는 부트엔트리 정보를
이용해서 efi 모듈을 로드해서 실행하게 됩니다. (Windows 경우, UEFI ESP 파티션의 EFI/MICROSOFT/BOOT/BOOTMGFW.EFI)
Windows OS는 UEFI ESP 시스템 파티션을 항상 "FAT32" 형식으로 포맷해 놓는 데 여기엔 그럴만한 이유가 있고요.(다음 기회로)
바이오스에서 "Windows Boot Manager"라고 표시되는 부분이, 바로 Windows OS가 펌웨어 Flash Chip에 기록해 놓은 거죠.
-
kernel 2016.04.29 16:32
만약 어떤 이유로 OS가 펌웨어 Flash Chip에 기록해 놓은 부트 엔트리가 삭제 된 다면, UEFI 펌웨어는 기록 되어있는 부트엔트리 정보가 없으므로
UEFI 펌웨어 스펙에서 약속한 대로 EFI 시스템 파티션(ESP)의 /efi/boot/ 경로에서 bootx64.efi 를 찾게 됩니다.
USB 설치 디스크 같은 경우, UEFI 펌웨어에 부트 엔트리가 기록되어 있는 상태가 아니기 때문에..
UEFI 펌웨어는 /efi/boot/bootx64.efi 를 로드해서 실행하게 되는 거지요.
-
kernel 2016.04.29 16:33
-
kernel 2016.04.29 16:35
위의 그림은 실제 컴의 UEFI 펌웨어의 Flash Chip 부트엔트리 내용을 파싱해서 표시하도록 테스트 프로그램을 만들어 본 거고요.
Flash Chip에 부트엔트리 정보가 없을 때,
EFI 시스템 파티션(ESP)의 /efi/boot /bootx64를 찾는 것을 UEFI 펌웨어의 Boot Fallback 기능이라고 합니다.
-
kernel 2016.04.29 16:42
-
kernel 2016.04.29 16:44
위의 그림은 VMware Workstation에 UEFI 모드로 Windows 설치한 상태에서 VMWare UEFI 펌웨어의 Flash Chip을 파싱해서
표시해 본 거고요. UEFI 펌웨어의 Flash Chip 에는 저런 내용들이 완전한 텍스트 형태로 되어 있지 않아서 파싱해서 표시해야 하죠.
-
kernel 2016.04.29 16:57
메인보드 메뉴에서 "Windows Boot Manager"라고 표시 되는 내용은 UEFI 펌웨어 Flash Chip을 액세스해서 원하는 대로 바꿀 수도 있고.USB 설치 디스크도 UEFI 펌웨어의 Flash Chip에 부트 엔트리 정보를 넣어서 윈도우즈 처럼 표시되게 할 수도 있습니다.물리적인 디바이스 패스와 보드에 표시될 텍스트 내용을UEFI 펌웨어가 인식 할 수 있도록 Device Path Node 형태로 Encoding 해서 펌웨어 Flash Chip에 기록해주면 됩니다. -
그린cnc 2016.04.29 18:17
kernel님 감사합니다^^
오늘도 한수 배웠네요
시스템 파티션 볼려면 다시 pe로 부팅해야 하는게
너무 번거로워서 그런데요. 직접 마운트 할수 없는 건가요 -
DarknessAngel 2016.04.29 20:37
diskpart등에서 문자 할당하면 잘 됩니다
-
그린cnc 2016.04.29 20:55
네 diskpart 열어서 하는 방법은 저도 알고 있는데요
탐색기도 킬해서 다시 실행하고 번거롭다는 거에요.
한방으로 하는 방법이 없는건지가 궁금한거에요.
-
그린cnc 2016.04.29 20:58
uefi 펌웨어 부트엔트리와 BCD하고도 관계가 있는건가요?
그리고 uefi 플래쉬 칩은 어떤 식으로 읽어야 하는지요
vmware는 실제 pc가 아니라 플래시 칩도 없는데 어디에 저장되는가도 궁금하네요
-
kernel 2016.04.29 23:40
1.
UEFI 펌웨어의 부트 엔트리와 윈도우즈 부트 매너져가 사용하는 BCD 는 서로 직접적인 관계는 없습니다.
펌웨어의 부트 엔트리는.. OS 쪽에서 UEFI 모드로 부팅 시.. 로드해서 실행시킬 EFI 모듈 경로가 여기니까 이 모듈을 로드해서 실행하라는 것을
펌웨어 쪽에 알려주는 역할만 하게 되죠. (윈도우즈 경우, /efi/micrsoft/boot/bootmgfw.efi)
BCD 내용을 파싱해서 처리하는 역할은 펌웨어에 의해서 로드된 bootmgfw.efi 모듈이 하게되고, BCD는 시스템 Registry 와 Hive 매핑 되어있습니다.
2.
EFI 모듈을 프로그래밍 해서 만들어주면 시스템 하드웨어를 full control 할 수 있고, OS의 부팅과정에 개입해서 상상할 수 있는 모든 것을 처리할 수 있습니다. Device Driver Sign 체크도 무력화 시킬 수 있고, 커널 코드 변경 감지 기능도 무력화 시킬 수 있고요. 커널 자체 변경 까지도.
UEFI 펌웨어 Flash Chip의 Boot Entry를 액세스하는 코드는 EFI 모듈을 만들지 않고도, Win32 프로그래밍으로 처리 할 수 있습니다. 위의 테스트 프로그램 처럼.
3.
하이퍼바이저를 구현하는 Virtual Machine 마다 구조가 다른데, VMware Workstation의 경우 Guest OS의 가상 디스크가 위치해 있는 디렉토리에 파일을 생성해서 펌웨어 Flash 메모리를 에뮬레이션 하는 방식을 사용 합니다. 파일확장자 .nvram
4.
현재 사용중인 시스템에서 UEFI 시스템 파티션을 마운트하고 탐색기가 열리게 하는 것은..
외부 프로그램들을 전혀 사용하지 않고, 직접 C++로 코딩해서 ACL Privilege Token을 변경해서 처리하도록 프로그램을 만들어 주면 됩니다.
볼륨 마운트와 탐색기 오픈이 한번에 one-step 으로 이루어지게 됩니다.
ACL Privilege Token을 프로그래밍으로 변경해 줘야, Login 세션 이전의 시스템 권한을 사용할 수 있게 됩니다.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 자유 게시판 이용간 유의사항 (정치, 종교, 시사 게시물 자제) [1] | gooddew | - | - |
27697 | 아래 신고접수된 차단된 글에대하여.... [3] | 내리사랑 | 1469 | 05-02 |
27696 | 영화 감상시 추천폰트 [4] |
|
1175 | 05-02 |
27695 | `CryptXXX` 랜섬웨어 풀 열쇠 나왔다... 카스퍼스키랩, 무... [1] | 스킨닥 | 1736 | 05-01 |
27694 | 무료 나눔에 대해~ [17] | 야율 | 1540 | 05-01 |
27693 | 오늘은 노동절입니다. [7] |
|
703 | 05-01 |
27692 | 과연 무료 나눔 받은게 어떻게 쓰여지는지... [27] | llll | 1633 | 05-01 |
27691 | NexusFile 복합한 usb 이동시 경로 이탈 현상 스샷 |
|
767 | 05-01 |
27690 | [윈도우10] 잠금화면 추천사진파일받을려다 시스템파일건드... [4] | shy1911 | 1152 | 05-01 |
27689 | 윈도우 XP [17] | 틈새 | 1683 | 05-01 |
27688 | 견적 평가 부탁드립니다. [19] | 등초롱 | 1024 | 04-30 |
27687 | TeraCopy 작동 작업 [2] |
|
1051 | 04-30 |
27686 | 무료 나눔 연기에 대해~ [3] | 야율 | 1082 | 04-30 |
27685 | 추억의 만화방 과 만화책 [3] |
|
1102 | 04-30 |
27684 | 모두 돌아 오십시오. [1] |
|
1457 | 04-30 |
27683 | 별것도 아닌 걸 [1] |
|
909 | 04-30 |
27682 | WanDrv6_6.6.2016.0418_Dev 나왔네요 [15] | suk | 1782 | 04-30 |
27681 | bluecrab을 마운트하였습니다. [5] | 서기다 | 686 | 04-29 |
» | bootx64.efi bootmgfw.efi 아리송 [13] | 그린cnc | 1992 | 04-29 |
27679 | 충전지 추천 부탁드립니다 [8] | 툴캅 | 1288 | 04-29 |
27678 | 윈도10 th2 10586.240 통합 중입니다 [60] | suk | 3995 | 04-28 |
bootx64.efi 랑 bootmgfw.efi 랑 같은 것으로 압니다.그래서 부팅이 될겁니다.