OpenCore ScanPolicy에 대한 모든 것
해킨토시 | Hackintosh/해킨토시 가이드 | Hackintosh Guide

OpenCore ScanPolicy에 대한 모든 것

OpenCore를 사용하면서 보통 ScanPolicy는 일반적으로 건들일이 거의 없습니다.

말 그대로 OpenCore가 스캔할 디스크 볼륨의 정책을 설정하는 옵션인데, 일반적으로는 '0' 값을 사용하시면 모든 볼륨이 스캔되므로 특별히 건들지 않게 됩니다.

다만.. 제 상황처럼 특별한 상황에서는 이것을 건들여야하는 상황이 오기도 하지요.
예를 들면, 아래 상황에서 대표적으로 사용할 수 있습니다.

  • OpenCore가 macOS가 설치된 볼륨 외의 Windows 볼륨을 인식하지 못하게 하고 싶다.
    • 저는 Windows를 아주 간혹 사용합니다.
    • 다만 NVRAM 초기화 시 Windows로 기본 부팅 볼륨이 지정되는 것이 아주 불편하여.. 그냥 OpenCore를 통해 Windows를 부팅하지 않기로 결정했습니다.
    • OpenCore >> Windows로 진입하지 않고 대신 메인보드 부트 피커에서 Windows Boot Manager를 호출하여 부팅하여 사용하면 되지요.
  • OpenCore가 macOS 또는 Windows 볼륨을 인식하지 못한다.
  • USB/SATA/NVMe 드라이브가 다른 형태로 표시된다. (SATA 드라이브가 외장 드라이브(external)로 보임)

아마 이 글을 찾아 오신 분들은 두 번째 경우가 가장 많지 않을까 싶습니다.

초보자의 경우 타인의 EFI로 보통 해킨토시를 처음 시도하는데..
간혹 ScanPolicy 값을 0으로 지정하지 않고 공유하는 유저들이 있어서, 부트피커에 나타나지 않는 볼륨을 보고 좌절하는 경우가 많이 있었습니다.

일단! 이 내용은 고급 사용자를 위한 내용이므로, 아래 내용을 함부로 따라하다가 부팅 볼륨 자체가 사라져서 부팅이 안되는 경우가 흔히 생길 수 있습니다. 라서 Config 파일을 수정할 수 있는 백업 솔루션 등이 준비되지 않은 상황에서는 절대 시도하지 않는 것을 추천합니다.

추천하는 방법으로는 USB 메모리 등에 잘 부팅되던 부트로더 파일 구성을 복사해 백업 후 해당 USB로 부팅하여 부팅에 문제가 없음을 확인한 후, USB 상에서 테스트를 진행하여 불상사를 사전에 대비할 수 있도록 하세요.

 


| ScanPolicy 값 계산 가이드

  • 각 옵션에 대한 값을 다음 섹션에 정리해두었습니다.
  1. 필요한 옵션을 확인하고, 해당 옵션의 값(대괄호 안의 숫자)을 Hexadecimal(16진수) 계산기를 통해 모두 더합니다.
    macOS 내장 계산기를 실행한 후 커맨드 + 3를 누르면 16진수 계산기로 변경됩니다.
  2. 1단계에서 더해 나온 값은 현재 Hexadecimal(16진수)입니다. 이것을 Decimal(10진수)으로 변환합니다.
  3. 변환은 아래 사이트를 이용하시면 됩니다.

 

www.rapidtables.com/convert/number/hex-to-decimal.html

 

Hexadecimal to Decimal Converter

From Binary Decimal Hexadecimal To Binary Decimal Hexadecimal

www.rapidtables.com

 

  • OpenCore의 config.plist를 열고, Misc - Security - ScanPolicy에 변환한 값을 입력 후 저장, 재부팅하면 적용됩니다.

 


| ScanPolicy 값 목록

  • [ 1 ] OC_SCAN_FILE_SYSTEM_LOCK
    • 알려진 파일 시스템만 스캔하도록 제한합니다.
    • 일부 파일 시스템 드라이버는이 정책을 인식하지 못할 수 있습니다.
    • 원하지 않는 파일 시스템의 마운트를 방지하려면 해당 드라이버를 로드하지 않는 것이 가장 좋습니다.
    • 이 비트는 파일 시스템이있을 수있는 dmg 마운트에 영향을주지 않습니다.
    • 알려진 파일 시스템에는 OC_SCAN_ALLOW_FS_ 접두사가 붙습니다. 
  • [ 2 ] OC_SCAN_DEVICE_LOCK
    • 이 정책의 일부로 정의 된 알려진 장치 유형으로 만 검색을 제한합니다.
    • 이것은 프로토콜 터널링을 항상 감지 할 수있는 것은 아니므로 일부 시스템에서는 USB HDD가 SATA로 인식 될 수 있다는 점에 유의하십시오.
    • 이와 같은 경우는 반드시 보고 되어야합니다.
    • 알려진 장치 유형은 OC_SCAN_ALLOW_DEVICE_로 시작됩니다. 
  • [ 100 ] OC_SCAN_ALLOW_FS_APFS
    • APFS 파일 시스템을 스캔 할 수 있습니다. 
  • [ 200 ] OC_SCAN_ALLOW_FS_HFS
    • HFS 파일 시스템을 스캔 할 수 있습니다. 
  • [ 400 ] OC_SCAN_ALLOW_FS_ESP
    • EFI 시스템 파티션 파일 시스템을 스캔 할 수 있습니다. 
  • [ 10000 ] OC_SCAN_ALLOW_DEVICE_SATA
    • SATA 장치 검색을 허용합니다. 
  • [ 20000 ] OC_SCAN_ALLOW_DEVICE_SASEX
    • SAS 및 Mac NVMe 장치 스캔을 허용합니다. 
  • [ 40000 ] OC_SCAN_ALLOW_DEVICE_SCSI
    • SCSI 장치 검색을 허용합니다. 
  • [ 80000 ] OC_SCAN_ALLOW_DEVICE_NVME
    • NVMe 장치 검색을 허용합니다. 
  • [ 100000 ] OC_SCAN_ALLOW_DEVICE_ATAPI
    • CD / DVD 장치 스캔을 허용합니다. 
  • [ 200000 ] OC_SCAN_ALLOW_DEVICE_USB
    • USB 장치 검색을 허용합니다. 
  • [ 400000 ] OC_SCAN_ALLOW_DEVICE_FIREWIRE
    • FireWire 장치 검색을 허용합니다. 
  • [ 800000 ] OC_SCAN_ALLOW_DEVICE_SDCARD
    • 스캔 카드 리더 장치를 허용합니다. 
  • [ 1000000 ] OC_SCAN_ALLOW_DEVICE_PCI
    • PCI 버스 ( : VIRTIO) 직접 연결된 스캐닝 장치를 허용합니다.

| 예시

  • 적용할 값 목록
    • OC_SCAN_FILE_SYSTEM_LOCK
    • OC_SCAN_DEVICE_LOCK
    • OC_SCAN_ALLOW_FS_APFS
    • OC_SCAN_ALLOW_FS_HFS
    • OC_SCAN_ALLOW_DEVICE_SATA
    • OC_SCAN_ALLOW_DEVICE_SASEX
    • OC_SCAN_ALLOW_DEVICE_SCSI
    • OC_SCAN_ALLOW_DEVICE_NVME
    • OC_SCAN_ALLOW_DEVICE_USB
    • OC_SCAN_ALLOW_DEVICE_PCI

 

>> 1 + 2 + 100 + 200 + 10000 + 20000 + 40000 + 80000 + 200000 + 1000000 = 0x12F0303

  • 여기에서 0x는 제거하고, 12F0303을 Decimal로 변환합니다.

 

  • 변환된 값은 19858179가 됩니다.

 

  • OpenCore config.plist를 엽니다.
  • Misc - Security - ScanPolicy 하위에 변환된 값 '19858179'를 입력후 저장합니다.
  • 재부팅하면 해당 값이 적용된 상태로 OpenCore가 부팅됩니다.

 

참고로 예시에서 적용한 값은 Windows외 macOS 및 macOS 설치를 위한 외장 드라이브(USB 등)를 인식하도록 하는 옵션을 적용한 값입니다. 감사합니다.