ãã§ã«ãã®èšäºã®
1éšïŒ
1éš ã
1éš2éšïŒã®éšåã®åŸãã§ãã€ãã«UEFIãã¡ãŒã ãŠã§ã¢ããªã¥ãŒã ã®æ§é ãšUEFIãã¡ã€ã«ã·ã¹ãã ãã©ãŒãããã«ã€ããŠèª¬æããŸãã
ã¯ããã«
èšäºã®ãã®éšåã§ã¯ãããŒãžã§ã³2ã®ãã¡ã€ã«åœ¢åŒã«ã€ããŠèª¬æããŸãã æ¢åã®ãã¹ãŠã®BIOSã§äœ¿çšãããŸãã
PIèŠæ Œã®ææ°ããŒãžã§ã³ã§ã¯ãããŒãžã§ã³3ã®åœ¢åŒã®èª¬æãè¿œå ãããŸãããã16 MBãè¶
ãããã¡ã€ã«ã«ã¯ãŸã å¿
èŠã§ããGigabyteã¯Z87ããŒãã§ãã§ã«ãã®ç¹ã«è¿ã¥ããŠããŸããããŸã ããŒãã«ã¯ãããŸããã ææ°ã®ãã¹ãŠã®Intelãã¶ãŒããŒãã®èšè¿°åé åã¯ã16 MB以äžã®å®¹éã§2ããã以äžããµããŒãããŠãããããããŒãžã§ã³3ãã©ãŒãããã®äœ¿çšã¯ãå°ãªããšãIntelãããã»ããã®æ¬¡äžä»£ã®å€æŽãŸã§å»¶æãããŸãã
äŸãšããŠãZotac Z77-ITX WiFiã®
ãã¡ã€ã«ããŒãžã§ã³229ããBIOSé åãååŸããŸãã
次ã®ããã°ã©ã ãå¿
èŠã«ãªããŸãã
- ããªãã®å¥œã¿ã«åãããŠ16é²ãšãã£ã¿ãç§ã¯HxDã䜿çšããŸã
- ãŠãŒãã£ãªãã£PhoenixToolv2.xxãMDL ãã©ãŒã©ã ã®ãããã¯ããããŠã³ããŒãã§ããŸãã
ãã¡ãŒã ãŠã§ã¢é³é
ãã¡ãŒã ãŠã§ã¢ããªã¥ãŒã ã®æ§é ãšPI
FFS圢åŒã«ã€ããŠã¯ãUEFIãã©ãããã©ãŒã åæåããã¥ã¡ã³ãã®ããªã¥ãŒã 3ã§èª¬æãããŠããŸãã
ãã¡ãŒã ãŠã§ã¢ããªã¥ãŒã ã¯ã次ã®å±æ§ãæã€ãã©ãã·ã¥ã³ã³ãã³ãã®è«çè¡šçŸã§ãã
- ååïŒFVãšãã®ãã¹ãŠã®éšåã®ååã¯GUIDã§ã
- ãµã€ãºïŒãã¹ãŠã®ããŒã¿ãããããŒãããã³ç©ºãé åãå«ãŸããŸã
- 圢åŒïŒFVå
ã®ãã¡ã€ã«ã·ã¹ãã ã¿ã€ããç°ãªãã¿ã€ãã«ã¯ç°ãªãGUIDããããŸã
- AllignmentïŒFVã®æåã®ãã€ãã¯ãæå®ãããå¢çïŒæ¬¡æ°2ã®åæ°ïŒã«äœçœ®åãããããå¿
èŠããããŸã
EFI_FVB_WEAK_ALIGNMENT
ã®äœçœ®åããã¯ãããããŒã«EFI_FVB_WEAK_ALIGNMENT
ãã©ã°ãèšå®ãããŠããªãéãããã®äžã®ãã¹ãŠã®ãã¡ã€ã«ã®äœçœ®åããããã匱ãã¯ãªããŸããã ãã®å Žåã2ã®çŽ¯ä¹ã§ã¢ã©ã€ã¡ã³ããå®è¡ã§ããŸããããã®FVã¯ç§»åã§ããªããªããŸã - èªã¿åããæžã蟌ã¿ä¿è·ãèªå·±ç¡å¹åèªã¿åããŸãã¯æžã蟌ã¿ä¿è·ã®å±æ§
- OEMã®è£éãªãã·ã§ã³
FVå
ã§äœ¿çšããããã¡ã€ã«ã·ã¹ãã ã«é¢ä¿ãªããFVããããŒã¯æšæºåããã次ã®ããã«ãªããŸãã
typedef struct { UINT8 ZeroVector[16]; UINT8 FileSystemGuid[16]; UINT64 FvLength; UINT32 Signature; UINT32 Attributes; UINT16 HeaderLength; UINT16 Checksum; UINT16 ExtHeaderOffset; UINT8 Reserved[1]; UINT8 Revision; EFI_FV_BLOCK_MAP BlockMap[]; } EFI_FIRMWARE_VOLUME_HEADER; typedef struct { UINT32 NumBlocks; UINT32 Length; } EFI_FV_BLOCK_MAP
ZeroVector ïŒFVã®å
é ã§ã¯ããªã»ãããã¯ãã«ããŒãã¢ãã¬ã¹ã«ããããã»ããµãšã®äºææ§ã®ããã«16ãã€ããäºçŽãããŠããŸãã ãã®ãããã¯ã«ãŒã以å€ã®äœããååšããããšã§ãããŒããã¡ãŒã ãŠã§ã¢ããªã¥ãŒã ãä»ã®ããªã¥ãŒã ãšééããªãåºå¥ã§ããŸãã
FileSystemGuid ïŒãã®FVå
ã§äœ¿çšããããã¡ã€ã«ã·ã¹ãã ãå®çŸ©ããŸãã
FvLength ïŒãã¹ãŠã®ããããŒã®FVãµã€ãºã
眲å ïŒFVã®æ€çŽ¢ã«äœ¿çšãããæšæºã§ã¯åžžã«0x4856465Fã§ãã
{'_','F','V','H'}
ã
å±æ§ ïŒäžèšã§èª¬æããã®ãšåãå±æ§ã ããã«ã¯ãããããããŸãããç§ãã¡ã«ãšã£ãŠæãéèŠãªã®ã¯åè¿°ã®
EFI_FVB_WEAK_ALIGNMENT
ãããã¯ãFVãã€ã³ã¹ããŒã«ãããŠããå Žåã
EFI_FVB_ALIGNMENT
ãã
EFI_FVB_ALIGNMENT_1
ãã
EFI_FVB_ALIGNMENT_2G
ããã³
EFI_FVB_ERASE_POLARITY
ã®ã»ããã®1ã€ã§ãã æ®ãã¯ãã¡ã¢ãªé åãšããŠFVã§åäœããã³ãŒãã«å¿
èŠã§ãããç§ãã¡ã«ãšã£ãŠã¯åœ¹ã«ç«ããªãã®ã§ããããããªã¹ãããŸããã
HeaderLength ïŒæ¡åŒµããããŒãé€ãããããŒã®ãµã€ãºãçŽä»¥äžã
ãã§ãã¯ãµã ïŒ16ãããããããŒãã§ãã¯ãµã ã æ£ããããããŒã®åèšã¯0x0000ã«ãªããŸãã
ExtHeaderOffset ïŒæ¡åŒµããããŒã®å
é ã®ãªãã»ããã èšè¿°ãããFVã®GUIDãGUIDãšãšãã«OEMãã¡ã€ã«ã¿ã€ãã®ãªã¹ããããã³é»å眲åãå«ããããšãã§ããŸãã çŸæç¹ã§ã¯ãæ¡åŒµããããŒãåã蟌ãŸããåäžã®FVã¯èŠãããšããããŸããããã®ãããèæ
®ããŸããã FVã«è¿œå ã®ããããŒããªãå Žåããã®ãã£ãŒã«ãã«ã¯0x0000ããããŸãã
äºçŽæžã¿ïŒäºçŽæžã¿ãã£ãŒã«ããåžžã«0x00ã
ãªããžã§ã³ ïŒPIæšæºã§ã¯ã1ã€ã®ãªããžã§ã³ïŒ2çªç®ã®ãªããžã§ã³ïŒã®æ§é ã®ã¿ãèšè¿°ãããŠããããããã®ãã£ãŒã«ãã¯åžžã«0x02ã§ãã
BlockMap ïŒäž¡æ¹ã®ãã£ãŒã«ãã«ãŒããããåãæ§é ã§çµãã
EFI_FV_BLOCK_MAP
æ§é ã®ãªã¹ããšããŠä¿åããããããã¯ãããã ãªããªã ææ°ã®ãã©ãã·ã¥ãã€ã¯ããµãŒãããã¯ãã¹ãŠåçš®ã§ããïŒã€ãŸããåããµã€ãºã®ãããã¯ãæã£ãŠããïŒããããªã¹ãå
šäœã¯éåžž2ã€ã®ãšã³ããªã®ã¿ã§æ§æãããŠããŸãã
äžèšã®ã³ã³ãã©ã€ã¢ã³ã¹ã®äŸã確èªããŸãããã
16é²ãšãã£ã¿ã§BIOSãã¡ã€ã«ãéããBIOSé åã®å
é ãŸã§ã®ãªãã»ãã0x500000ã«ç§»åããŸãã
å
é ã«16åã®ãŒããããããã¡ã€ã«ã·ã¹ãã GUIDãããããã®FVã®ãµã€ãºã0x020000ã§ããã眲åãé
眮ãããå±æ§ãèšå®ãããããããŒã®ãµã€ãºã0x48ãã€ãã§ããããã§ãã¯ãµã ãèšç®ãããæ¡åŒµããããŒããªããäºçŽãã£ãŒã«ããé
眮ããããã®äžã«ããããšãããããŸãFVã«ã¯ãããã0x1000ã®ãããã¯ã20åãããåèšã§FvLengthãã£ãŒã«ãã«ç€ºããããµã€ãºãæ£ç¢ºã«äžããŸãã
ã»ãšãã©ã®å ŽåãBIOSã«ã¯ããŸããŸãªç®çã®ããã«èšèšãããããã€ãã®ç°ãªãFVããããŸãããããã¯å¿
é ã§ã¯ãªãããã¹ãŠã1ã€ã«ãŸãšããããšãã§ããŸãã UEFI BIOSã®ãã¹ãŠã®ã¡ãŒã«ãŒéã§ã®FVãšãã¡ã€ã«ã®ãã¹ãã®åºŠåãã®ãã£ã³ããªã³ã¯Intelã§ãæ倧12ã¬ãã«ã®ãã¹ãããããŸãã
çè«çã«ã¯ç°ãªããã¡ã€ã«ã·ã¹ãã ãFVã«äœ¿çšã§ããŸãããå®éã«ã¯1ã€ã ãã䜿çšãããŸããPIFFSã«ã€ããŠã¯ããããã説æããŸãã
ãã¡ãŒã ãŠã§ã¢ãã¡ã€ã«ã·ã¹ãã
ããã¯ããã£ã¬ã¯ããªãšéå±€ã®ãªããã©ãããã¡ã€ã«ã·ã¹ãã ã§ããããã®ãã¡ã€ã«ã¯ãã¹ãŠhorseãã£ã¬ã¯ããªã«ãããŸãã ãã¡ã€ã«ã®ãªã¹ããååŸããã«ã¯ãFSãæåããæåŸãŸã§å®è¡ããå¿
èŠããããŸãã ãã¹ãŠã®ãã¡ã€ã«ã«ã¯ãæšæºã§å®çŸ©ãããããããŒãå¿
èŠã§ãã ãã¡ã€ã«ã¯ããã¡ã€ã«ã·ã¹ãã ã®å
é ãã8ãã€ãã®å¢çç·äžã«é
眮ããå¿
èŠããããŸãã倧ããªå¢çç·äžã«é
眮ããã«ã¯ãç¹å¥ãªãã¡ã€ã«ãã¬ãŒã¹ãã«ããŒãæäŸãããŸãã
ãã®èŠæ Œã§ã¯ãåFVã®æåŸã«ååšããå¿
èŠãããç¹å¥ãª
VTFãã¡ã€ã«ã«ã€ããŠã説æããŠããŸãããå®éã«ã¯ãBIOSã€ã¡ãŒãžã®æåŸã®FVã®æåŸã«ã®ã¿ååšãããã®æåŸã®ãã€ãããããå
šäœã®æåŸã«ãªãããã«é
眮ãããŠããŸãã SECãã§ãŒãºã«å¿
èŠãªããŒãã¹ãã©ããã³ãŒããå«ãŸããŠããŸãã
ãã¡ã€ã«ããããŒ
FFSãã¡ã€ã«ããããŒã¯æ¬¡ã®ããã«æ§æãããŠããŸãã
typedef struct { UINT8 Name[16]; UINT8 HeaderChecksum; UINT8 DataChecksum; UINT8 Type; UINT8 Attributes; UINT8 Size[3]; UINT8 State; } EFI_FFS_FILE_HEADER;
åå ïŒ
ååãšããŠæ©èœãããã¡ã€ã«ã®GUIDã 1ã€ã®FVã«ã以äžã§èª¬æããPADãã¡ã€ã«ã§ãªãå ŽåãåãGUIDãæã€2ã€ã®ãã¡ã€ã«ã¯ååšã§ããŸããã
HeaderChecksum ïŒDataChecksumãã£ãŒã«ããé€ã8ãããã®ããããŒãã§ãã¯ãµã ã æ£ããããããŒã¯ãåèšã§0x00ã«ãªããŸãã
DataChecksum ïŒããããŒãé€ãããã¡ã€ã«ã®å
容ã®8ããããã§ãã¯ãµã ã åžžã«èšç®ããå¿
èŠã¯ãããŸãããã
FFS_ATTRIB_CHECKSUM
å±æ§ã
FFS_ATTRIB_CHECKSUM
å Žåã®ã¿ã§ãããã以å€ã®å Žåããã®ãã£ãŒã«ãã¯
FFS_ATTRIB_CHECKSUM
èšå®ãããŸãã
ã¿ã€ã ïŒãã¡ã€ã«ã¿ã€ãã æšæºã§ã¯ã13ã®æšæºãã¡ã€ã«ã¿ã€ãïŒ0x01-0x0DïŒãOEMãã¡ã€ã«çšã®32ãŠãŒã¶ãŒã¿ã€ãïŒ0xC0-0xDFïŒããããã°çšã®16ãŠãŒã¶ãŒã¿ã€ãïŒ0xE0-0xEFïŒãããã³çŸåšã®ããŒãžã§ã³ã®FFSã«åºæã®16ã¿ã€ãïŒ0xF0-0xFFïŒãå®çŸ©ããŠããŸãçŸåš0xF0ã®ã¿ã䜿çšãããŠããŸã-ãã¬ãŒã¹ãã«ããŒãã¡ã€ã«ã«ã¯
EFI_FV_FILETYPE_FFS_PAD
ã
ãã®ç¹æ®ãã¡ã€ã«ã«ã¯ãnull GUIDãnullå±æ§ãæšæºç¶æ
ãããã³ä»»æã®ãµã€ãºãªã©ãä»»æã®ãã®ãå«ããããšãã§ããŸãã æšæºã«ãããšããã¡ã€ã«ã¯ç©ºã§ãªããã°ãªããŸããã ããããŒããããé€ããã¹ãŠã®ãããã
EFI_FVB_ERASE_POLARITY
ã«èšå®ããå¿
èŠããããŸãã ããã¯ãæšæºã®8ãã€ããã倧ããå¢çã«æ²¿ã£ãŠãããã«ç¶ããã¡ã€ã«ãäœçœ®åããããããã«äœ¿çšãããŸãã PADãã¡ã€ã«ã®æå°ãµã€ãºã¯ãããããŒã®ãµã€ãº-24ãã€ãã§ãã
æšæºã®ãã¡ã€ã«ã¿ã€ãã«æ»ããŸãã
å±æ§ ïŒç§ãã¡ã«ãšã£ãŠéèŠãªå±æ§ã¯
FFS_ATTRIB_FIXED
ãããã¯ããã¡ã€ã«ãFVå
ã«
FFS_ATTRIB_FIXED
ã§ããªãããšã瀺ããFFS_ATTRIB_DATA_ALIGNMENTã®ã»ããã¯ããã¡ã€ã«ã®ããŒã¿ïŒããããŒã§ã¯ãªãïŒãå¢çã«æŽåããŠããããšã瀺ããŸãã
ãµã€ãº ïŒ24ãããUINTãšããŠä¿åãããããããŒãšå
±ã«ãã¡ã€ã«ãµã€ãºã
ç¶æ
ïŒãã¡ã€ã«ã®ç¶æ
ã ãã®ãã£ãŒã«ãã¯ãFVãã¡ã¢ãªã«ããŒãããåŸãããã³FVå
ã®ãã¡ã€ã«ã®æäœäžã«äœ¿çšãããŸãã BIOSã€ã¡ãŒãžå
ã®ãã¹ãŠã®æå¹ãªãã¡ã€ã«ã®ã¹ããŒã¿ã¹ã¯0xF8ã§ãã
ãã¡ã€ã«ã®çš®é¡ã«æ»ããŸãã ãã®èšäºã®1.5éšããŸã èªãã§ããªã人ã¯ãã
èªãã§èªãããšããå§ãããŸããããããªã
ãš ãäœãç解ã§ããªãå±éºããããŸãã
æ¢ã«ç¥ã£ãŠããããã«ã13ã®æšæºãã¡ã€ã«ã¿ã€ããå®çŸ©ãããŠããŸãã
åœ¹è· | çš®é¡ | 説æ |
---|
RAW | 0x01 | ãã®ãããªãã¡ã€ã«ã®æ§é ã¯ããŠãŒã¶ãŒã«ãã£ãŠå®å
šã«æ±ºå®ãããäºåã«äœãç¥ãããŠããªã |
ããªãŒãã©ãŒã | 0x02 | ãã®ãããªãã¡ã€ã«ã«ã¯ã»ã¯ã·ã§ã³æ§é ããããŸãããã»ã¯ã·ã§ã³ã®å
容ã«ã€ããŠã¯äºåã«äœãããããŸããã |
SECURITY_CORE | 0x03 | SECãã§ãŒãºã§ã³ãŒããå®è¡ããã»ãã¥ãªãã£ã«ãŒãã« |
PEI_CORE | 0x04 | PEIã³ã¢ãå¥åPEI Foundation |
DXE_CORE | 0x05 | DXEã®ã³ã¢ãå¥åDXE Foundation |
ãã€ã | 0x06 | PEIã¢ãžã¥ãŒã« |
ãã©ã€ã㌠| 0x07 | DXEãã©ã€ã㌠|
COMBINED_PEIM_DRIVER | 0x08 | ãã€ããªããPEI / DXEã¢ãžã¥ãŒã« |
ç³èŸŒã¿ | 0x09 | ã¢ããªã±ãŒã·ã§ã³ã èµ·åããã®ã¯DXEãããŒãžã£ãŒã§ã¯ãªãããŠãŒã¶ãŒã§ãããšããç¹ã§DXEãã©ã€ããŒãšã¯ç°ãªããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãUEFIã»ããã¢ãããUEFIã·ã§ã«ãBIOSã¢ããããŒããªã©ã§ãã |
SMM | 0x0A | SMMã¢ãžã¥ãŒã« |
FIRMWARE_VOLUME_IMAGE | 0x0B | ç»åFVã ããã¯ãããFVãå¥ã®FVã«åã蟌ãããšãã§ããç¹å¥ãªãã¡ã€ã«ã§ã |
COMBINED_SMM_DXE | 0x0C | SMM / DXEãã€ããªããã¢ãžã¥ãŒã« |
SMM_CORE | 0x0D | ã«ãŒãã«SMMãå¥åSMM Init |
ãã¡ã€ã«ã§äžèšã確èªããŠãã ããã
FVããããŒã®æåã®0x48ãã€ãã¯ããèå³ããããŸããããããåŸã«ç¶ããã®ãèå³ãæã¡ãŸãã GUID CEF5B9A3-476D-497F-9FDC-E98143E0422CãããããŒãã§ãã¯ãµã 0x36ãåé€ãããå±æ§
FFS_ATTRIB_CHECKSUM
ã瀺ãããŒã¿ãã§ãã¯ãµã 0xAAãå±æ§ãªãããµã€ãº0x1FFB8æšæºã®ãã¡ã€ã«ãããããšãããããŸãã ã çå®ã®ããã«èãããŸãã
次ã«ã»ã¯ã·ã§ã³ã«ã€ããŠã RAWãé€ããã¹ãŠã®FFSãã¡ã€ã«ã¯ããã¡ã€ã«ããŒã¿é åã®å
é ãã4ãã€ãã®å¢çã§æŽåããã»ã¯ã·ã§ã³ã«åå²ããå¿
èŠããããŸãã åã¿ã€ãã®ãã¡ã€ã«ã«ã¯ãã»ã¯ã·ã§ã³ã®æ°ãšã¿ã€ãã«é¢ããç¬èªã®èŠä»¶ããããŸããããã®èšäºã«ã¯èŠä»¶ã®ãªã¹ãã¯ãããŸãããé·ãããŠéå±ãããŸãã ããããã»ã¯ã·ã§ã³ã®èŠåºãããããã®ç®çãšçš®é¡ã«ã€ããŠã¯ãçŸåšæ€èšããŠããŸãã
ã»ã¯ã·ã§ã³ããããŒ
æå°ã»ã¯ã·ã§ã³ããããŒã¯æ¬¡ã®ããã«ãªããŸãã
typedef struct { UINT8 Size[3]; UINT8 Type; } EFI_COMMON_SECTION_HEADER;
ãµã€ãº ïŒãã¡ã€ã«ããããŒãšåã圢åŒã®ã»ã¯ã·ã§ã³ãµã€ãºã
ã¿ã€ã ïŒã»ã¯ã·ã§ã³ã®ã¿ã€ãã
ã»ã¯ã·ã§ã³ã¯ãã«ãã»ã«åãšãªãŒãã®2ã€ã®ãµãã¯ã©ã¹ã«åããããŸãã åè
ã«ã¯ä»ã®ã¿ã€ãã®ã»ã¯ã·ã§ã³ãå«ãŸããåŸè
ã«ã¯çŽæ¥ããŒã¿ãå«ãŸããŸãã äžéšã®ã¿ã€ãã®ã»ã¯ã·ã§ã³ã«ã¯æ¡åŒµããããŒããããŸãããå
é ã¯åžžã«äžè¬çãªããããŒãšäžèŽããŸãã
ã«ãã»ã«åã»ã¯ã·ã§ã³ã«ã¯ã次ã®3çš®é¡ã®ã³ã³ãã³ããå®çŸ©ãããŠããŸãã
0x01-
EFI_SECTION_COMPRESSION
ã¯ãã»ã¯ã·ã§ã³ãäœããã®ã¢ã«ãŽãªãºã ã«åŸã£ãŠå§çž®ãããŠããããšã瀺ããŸãã
EFI_COMPRESSION_SECTIONã®å®å
šãªèŠåºãïŒã¿ã€ãã«ã®åèªãæ··åãããŠããªããããã ãã§ãïŒã¯æ¬¡ã®ããã«ãªããŸãã
typedef struct { UINT8 Size[3]; UINT8 Type; UINT32 UncompressedSize; UINT8 CompressionType; } EFI_COMPRESSION_SECTION;
UncompressedSize ïŒè§£åãããããŒã¿ã®ãµã€ãºã
CompressionType ïŒé©çšãããå§çž®ã¢ã«ãŽãªãºã ã
çŸæç¹ã§ã¯ãTianoïŒ0x01ïŒãšLZMAïŒ0x02ïŒã®2ã€ã®å§çž®ã¢ã«ãŽãªãºã ããããŸãã æ§é ãå€æŽããã«ã»ã¯ã·ã§ã³ãã¢ã³ããã¯ãããå Žåãå§çž®ã¿ã€ããšããŠ0x00ãèšå®ãããã»ã¯ã·ã§ã³ãµã€ãºã¯ããã¯ãããããŒã¿ã®ãµã€ãºãšäžèŽããŸãã Tianoã¢ã«ãŽãªãºã ã¯LZ77ãšIntelã®ãããã³ã³ãŒãã®çµã¿åããã§ãããå§çž®ããã³è§£åã³ãŒãã¯BSDLã®äžã®TianoCoreãããžã§ã¯ããã¡ã€ã«ããååŸã§ããŸãã LZMAã¢ã«ãŽãªãºã ã¯ããŸãã«ãããç¥ãããŠããã®ã§ãå床説æããããšã¯ã§ããŸãããå§çž®ããã³å§çž®è§£é€ã³ãŒãã¯LZMA SDKã«ãããŸãã
ã«ãã»ã«åã»ã¯ã·ã§ã³ã®ã¿ã€ãã«ã€ããŠç¶ããŸãããã
0x02-
EFI_SECTION_GUID_DEFINED
ã¯ãã»ã¯ã·ã§ã³ã«èšé²ãããGUIDã«åŸã£ãŠããã¡ã€ã«ã®ãŠãŒã¶ãŒãã»ã¯ã·ã§ã³ã®å
容ã衚瀺ããå¿
èŠãããããšã瀺ããŸãã ãã®ãããªã»ã¯ã·ã§ã³ã§ã¯ãããŸããŸãªOEMããŒã¿ãããã³ã»ã¯ã·ã§ã³ãŸãã¯ãã¡ã€ã«å
šäœã®é»å眲åãä¿åã§ããŸãã
0x03-
EFI_SECTION_DISPOSABLE
ã¯ãããŒã¿ããã¡ã€ã«ã®æäœã«ãšã£ãŠéèŠã§ã¯ãªããã¹ããŒã¹ãç¯çŽããããã«åã¢ã»ã³ããªäžã«åé€ã§ããã»ã¯ã·ã§ã³ã瀺ããŸãã å®éã®ãã¡ã€ã«ã§ã¯ãBIOSã¯èŠã€ãããŸããã
ãªãŒãã»ã¯ã·ã§ã³ã«ã¯ã12ã®ã³ã³ãã³ãã¿ã€ããå®çŸ©ãããŠããŸãã
åœ¹è· | çš®é¡ | 説æ |
---|
PE32 | 0x10 | ãã¹ãŠã®ããããŒãå«ãPE32 +圢åŒã®64ãããå®è¡å¯èœã³ãŒãã UEFIã®å®è¡å¯èœã³ãŒãã®ã¡ã€ã³åœ¢åŒã |
åç | 0x11 | 64ãããã®äœçœ®ã«äŸåããªãå®è¡å¯èœã³ãŒãã äžéšã®PEIã¢ãžã¥ãŒã«ã§ã®ã¿äœ¿çšããã圢åŒã¯PE32 +ãšåãã§ããåé
眮æ
å ±ã®ã¿ãåãæšãŠãããŸãã |
TE | 0x12 | ã¢ãžã¥ãŒã«ããã³PEIã³ã¢ã§äœ¿çšããã64ãããã®å®è¡å¯èœã³ãŒãã PE32 +ãšã¯ãããã»ããµãã£ãã·ã¥ã®ã¹ããŒã¹ãç¯çŽããããã«åæžãããããããŒãç°ãªããŸãã ãã®èšäºã®1.5éšã®èª¬æãèªãã§ãã ããã |
DXE_DEPEX | 0x13 | é
眮ãããŠããDXEãã©ã€ããŒã®äŸåé¢ä¿ã説æããã»ã¯ã·ã§ã³ã ãã®ã»ã¯ã·ã§ã³ã®åœ¢åŒã«ã€ããŠã¯ã第2å·»ã§èª¬æããŠããŸã |
ããŒãžã§ã³ | 0x14 | ãã¡ã€ã«ã®ããŒãžã§ã³ãšããªãã·ã§ã³ã§ãã«ããŒãžã§ã³ã®Unicodeæååãå«ãŸããŸãã éåžžã«ãŸãã§ãã |
USER_INTERFACE | 0x15 | ãã¡ã€ã«åãæã€unicode-termãå«ãŸããŸãã ãã®ã»ã¯ã·ã§ã³ã®å
容ã§ãã¡ã€ã«ãæ€çŽ¢ãããšéåžžã«äŸ¿å©ã§ãã ããã¯é »ç¹ã«äœ¿çšãããŸããããã®ãããªã»ã¯ã·ã§ã³ãå«ãåäžã®ãã¡ã€ã«ããªãBIOSãèŠã€ãããŸãã |
äºææ§16 | 0x16 | å€ãã·ã¹ãã ãšã®äºææ§ã®ããã®16ãããå®è¡å¯èœã³ãŒãã |
FIRMWARE_VOLUME_IMAGE | 0x17 | FVç»åãå«ãã»ã¯ã·ã§ã³ã ãã®FVå
ã«ã¯ããã€ã¯ããµãŒãããå
ã®å ŽæããªããªããŸã§ããã®ãããªã»ã¯ã·ã§ã³ãå«ããã¡ã€ã«ãããå ŽåããããŸãã |
FREEFORM_SUBTYPE_GUID | 0x18 | ã»ã¯ã·ã§ã³ã«ã¯ããŒã¿ãå«ãŸãããã®è§£éã¯èšé²ãããGUIDã®å
é ã«äŸåããŸãã ãã£ãã«äœ¿çšãããŸããã |
RAW | 0x19 | çããŒã¿ãå«ãã»ã¯ã·ã§ã³ã ããããã©ããããã¯ããã®ãã¡ã€ã«ãéãã人ã«ãã£ãŠæ±ºå®ãããŸãã |
PEI_DEPEX | 0x1B | åžžé§ããPEIã¢ãžã¥ãŒã«ã®äŸåé¢ä¿ã説æããã»ã¯ã·ã§ã³ã ãã®ã»ã¯ã·ã§ã³ã®åœ¢åŒã¯ãããªã¥ãŒã 1ã§èª¬æãããŠããŸãã |
SMM_DEPEX | 0x1C | é
眮ãããŠããSMMãã©ã€ããŒã®äŸåé¢ä¿ã説æããã»ã¯ã·ã§ã³ã圢åŒã¯DXE_DEPEXãšåãã§ãã |
äžèšã®äŸã§ç¢ºèªããŠãã ããã ååæ€èšããRAWãã¡ã€ã«ã«ã¯ã»ã¯ã·ã§ã³ãå«ãŸããŠããªããããå¥ã®ãã¡ã€ã«ãã€ãŸããªãã»ãã0x7AD210ã«ããPchUsbãšããååã®PEIã¢ãžã¥ãŒã«ãåãäžããŸãã
ããã¯å®éã«ã¯PEIMïŒãã¡ã€ã«ã¿ã€ãã¯0x06ïŒã§ããã2ã€ã®ã»ã¯ã·ã§ã³ãå«ãŸããŠããããšãããããŸãã ãµã€ãº0x3Aããã³ã¿ã€ãPEI_DEPEXïŒ0x1BïŒã®æåã®ã»ã¯ã·ã§ã³ã«ã¯ããã®äŸåé¢ä¿ã«é¢ããæ
å ±ãå«ãŸããŠããŸãã 2çªç®ã®ã»ã¯ã·ã§ã³ïŒ4ãã€ãã®å¢çã§æŽåïŒã®ãµã€ãºã¯0x31Aã§ãCOMPRESSED_SECTIONïŒ0x01ïŒåã§ããããã®äžã®ããŒã¿ã¯LZMAã¢ã«ãŽãªãºã ïŒ0x02ïŒã§ããã¯ãããã¢ã³ããã¯åŸã®ãµã€ãºã¯0x558ã§ãã LZMAã解åããæ¹æ³ãå¿åŸãŠããå Žåã¯ããã®ã»ã¯ã·ã§ã³ã®å
容ããã§ã«æšæž¬ããŠããã¯ãã§ããããã§ãªãå Žåã¯ããç¥ããããŸãã ããã«2ã€ã®ã»ã¯ã·ã§ã³ããããŸããã¢ãžã¥ãŒã«ã®å®è¡å¯èœã³ãŒããå«ãPE32ãšããã¡ã€ã«åãå«ãUSER_INTERFACEã§ãã ããªãã¯ãLZMAãç§ã®å¿ã®äžã«è§£åã§ããªããã©ãããã©ããã£ãŠç¥ãã®ã§ããïŒ ãã®ããã®ã¢ããªããããŸãïŒ
PhoenixToolãšçµè«
ãã®ã¢ããªã±ãŒã·ã§ã³ã¯PhoenixToolãšåŒã°ãããã®äž»ãªã¿ã¹ã¯ã¯SLICãUEFI BIOSãã¡ã€ã«ã«è¿œå ããããšã§ãããç§ãã¡ã¯æ³ãé å®ããŠãããBIOSã«SLICãè¿œå ããŸããã ããã°ã©ã ã®ãã¹ãŠã®æ©èœã®äžã§ã䜿çšããBIOSãæå®ããåŸã«äœ¿çšã§ãã[æ§é ]ãã¿ã³ã«æ³šç®ããŸãã æ§é ãå¥ã®ãŠã£ã³ããŠã§éããUEFI BIOSã€ã¡ãŒãžãããªãŒãšããŠè¡šç€ºãããŸãã åã³ã³ããŒãã³ãã«ã€ããŠããã®æ
å ±ãšäœ¿çšå¯èœãªã¢ã¯ã·ã§ã³ãå³åŽã«è¡šç€ºãããŸãã ãã®ãŠã£ã³ããŠã®äžèšã®äŸã§æ€èšãããã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
ãã®ããã°ã©ã ã§ã¯ããã¡ã€ã«æ§é ã®ç·šéãå¶éã§ããŸãããåé¿ããããã«ãã¡ã€ã«æ§é ãå€æŽããªãããšããå§ãããŸãã
UEFIå®è¡å¯èœãã¡ã€ã«ãããé©åã«ç·šéããæ¹æ³ãšãããã§ããããšã«ã€ããŠã¯ã次ã®èšäºãåç
§ããŠãã ããã
ãæž
èŽããããšãããããŸããã
æåŠ
UEFIãã©ãããã©ãŒã åæåä»æ§1.2.1ãšã©ãã¿AãUEFIãã©ãŒã©ã ã«ããããã¥ã¡ã³ã