Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

듀얼 부팅 시스템에서 'Shim SBAT 데이터 확인 실패: 보안 정책 위반' 오류 해결 방법

"Verifying shim SBAT data failed: Security Policy Violation"(Shim SBAT 데이터 확인 실패: 보안 정책 위반) 오류는 주로 Windows와 Linux를 함께 설치한 듀얼 부팅 컴퓨터에서 나타납니다. 이 오류는 Secure Boot(보안 부팅)라는 보안 기능이 Linux의 시작을 차단할 때 발생합니다.

그 원인은 Microsoft가 최근 Windows 업데이트를 통해 도입한 최신 보안 규칙과 Linux가 사용하는 구버전 부팅 파일(Shim 또는 GRUB)이 일치하지 않기 때문입니다. 이러한 업데이트로 Secure Boot가 한층 엄격해졌으며, Linux 부트로더가 업데이트되지 않았거나 올바르게 구성되지 않은 경우 시스템 부팅이 실패하고 이 오류가 표시될 수 있습니다.

다행히도 사용 환경에 따라 이 문제를 해결할 수 있는 몇 가지 방법이 있습니다. Windows와 함께 Linux를 계속 사용하든, 더 이상 필요하지 않든 아래의 방법들을 통해 시스템을 정상적으로 다시 부팅할 수 있습니다.

1. Secure Boot 임시 비활성화 후 Shim 업데이트 및 재활성화

이 오류의 주된 원인은 Linux 부트로더(주로 Shim)가 구버전이라 Secure Boot에서 더 이상 신뢰하지 않기 때문입니다. 이를 해결하려면 먼저 Secure Boot를 임시로 비활성화한 뒤, Shim을 안전한 버전으로 업데이트하고, 마지막으로 Secure Boot를 다시 활성화하여 시스템 보호를 완전히 복원해야 합니다.

1단계: Secure Boot 비활성화

  1. PC를 재시작하고 부팅 중 화면에 표시되는 키(일반적으로 Del, Esc, F2 또는 F10)를 눌러 BIOS/UEFI에 진입합니다.
  2. Boot 또는 Security 탭으로 이동합니다.
  3. Secure Boot 옵션을 찾아 Disabled로 설정합니다.
  4. F10을 눌러 변경 사항을 저장하고 BIOS를 종료합니다.
  5. Linux 시스템으로 부팅합니다.

2단계: Linux에서 SBAT 정책 삭제 및 Shim 업데이트

  1. Linux에 진입한 후 Ctrl + Alt + T를 눌러 터미널을 엽니다.
  2. 다음 명령어로 기존 SBAT 정책을 삭제합니다.
    sudo mokutil --set-sbat-policy delete
  3. 시스템을 한 번 재부팅합니다.
  4. 터미널을 다시 열고 다음 명령어로 Shim을 업데이트합니다.
    sudo apt update && sudo apt upgrade shim-signed
  5. 업데이트가 완료되면 PC를 다시 재부팅합니다.

3단계: Secure Boot 재활성화

  1. PC를 재시작하고 다시 BIOS에 진입합니다.
  2. Secure Boot 옵션으로 이동하여 Enabled로 다시 설정합니다.
  3. 변경 사항을 저장하고 BIOS를 종료합니다.
  4. 이제 Secure Boot가 활성화된 상태에서 유효하게 업데이트된 Shim과 함께 시스템이 정상적으로 부팅됩니다.

2. BIOS에서 부팅 순서를 변경하여 Windows Boot Manager 우선 설정

Shim을 수정한 후에도 SBAT 오류가 계속 표시되거나 시스템이 Linux로 부팅을 시도한다면, 잘못된 부트로더가 선택되고 있기 때문일 수 있습니다. 듀얼 부팅 시스템에서는 Windows와 Linux가 각각 자체 부트 관리자(Windows Boot Manager와 GRUB/Shim)를 설치합니다. 시스템이 Linux 부트로더를 먼저 사용하려고 하면 이 오류가 발생할 수 있으며, BIOS에서 부팅 순서를 변경해 Windows Boot Manager가 먼저 로드되도록 설정하면 해결할 수 있습니다.

  1. PC를 재시작하고 부팅 중 화면에 표시되는 키(일반적으로 Del, Esc, F2 또는 F10)를 눌러 BIOS/UEFI에 진입합니다.
  2. Boot 탭 또는 섹션으로 이동합니다.
  3. Boot Priority 또는 Boot Option Priorities 항목을 찾습니다.
  4. Windows Boot Manager를 첫 번째 부팅 옵션으로 설정합니다.
  5. GRUB, Shim 또는 기타 Linux 부팅 항목은 낮은 우선순위로 이동합니다.
  6. F10을 눌러 변경 사항을 저장하고 BIOS를 종료합니다.
  7. 이제 Linux 부트로더를 먼저 로드하지 않고 바로 Windows로 부팅됩니다.

3. BIOS에서 Fast Boot 비활성화

그래도 오류가 발생한다면 BIOS의 Fast Boot 기능이 원인일 수 있습니다. 이 설정은 하드웨어 검사를 건너뛰어 시작 속도를 높여주지만, 특히 듀얼 부팅 환경에서는 Linux나 다른 운영체제가 제대로 로드되지 못하게 막을 수 있습니다. Fast Boot를 비활성화하면 시스템이 모든 하드웨어를 정상적으로 검사하고 Shim이나 GRUB 같은 부트로더와의 충돌을 피할 수 있습니다.

  1. PC를 재시작하고 부팅 중 화면에 표시되는 키(일반적으로 Del, Esc, F2 또는 F10)를 눌러 BIOS/UEFI에 진입합니다.
  2. Boot 탭 또는 섹션으로 이동합니다. 일부 시스템에서는 먼저 Advanced Mode로 전환해야 할 수 있습니다.
  3. Fast Boot 설정 항목을 찾습니다.
  4. Disabled로 설정합니다.
  5. 변경 사항을 저장합니다(F10을 누르거나 Save & Exit 옵션 사용).
  6. PC를 재시작하고 다시 부팅을 시도합니다.

4. Windows 초기화로 충돌하는 부트로더 제거

더 이상 Linux를 사용하지 않고 오류 없이 Windows만 부팅하기를 원한다면, Windows 초기화가 확실한 해결책입니다. 이 과정은 남아 있는 Linux 부트로더(GRUB 또는 Shim)를 제거하고, 손상된 Windows 시작 파일을 복구하며, Secure Boot 설정을 기본값으로 되돌립니다. 다른 해결 방법이 효과가 없거나 부팅 후에도 여전히 SBAT 오류가 표시되는 경우에 적합한 방법입니다.

  1. PC를 강제로 3~4회 재시작하여 자동 복구(Automatic Repair) 화면을 불러옵니다.
  2. 화면이 나타나면 Troubleshoot(문제 해결)를 클릭합니다.
  3. Reset this PC(이 PC 초기화)를 클릭합니다.
  4. 개인 데이터를 유지하려면 Keep my files(내 파일 유지)를, 처음부터 새로 시작하려면 Remove everything(모두 제거)을 선택합니다.
  5. 화면의 지시에 따라 초기화를 완료합니다.

초기화가 완료되면 Windows는 기본 부트로더를 사용하여 정상적으로 부팅됩니다. 필요한 경우 BIOS를 통해 Secure Boot를 다시 활성화하여 추가적인 보호를 받을 수 있습니다.