블로그 홈

Veeam Linux Failed to load module [veeamsnap] - Secure Boot와 MOK 등록

Veeam Agent for Linux에서 Secure Boot 때문에 veeamsnap 또는 blksnap 모듈 로드가 실패할 때 Secure Boot 상태, MOK 등록, pre-built와 DKMS 차이를 확인하는 방법을 정리합니다.

운영자12분 읽기6회
Veeam Linux Failed to load module [veeamsnap] - Secure Boot와 MOK 등록

개요

Veeam Agent for Linux에서 백업을 시작했는데 Snapshot 모듈이 올라오지 않으면서 아래와 같은 오류가 발생하는 경우가 있습니다.

Failed to load module [veeamsnap]

또는 최신 커널을 사용하는 환경에서는 다음처럼 blksnap 관련 오류로 보일 수도 있습니다.

Failed to load module [blksnap]

모듈 파일 자체가 없거나 커널 버전이 맞지 않는 경우도 있지만, UEFI Secure Boot가 활성화된 서버라면 커널이 Veeam Snapshot Module의 서명을 신뢰하지 못해 로드를 차단하는 경우도 확인해야 합니다.

이번에는 Secure Boot를 끄는 단순한 방법과, Secure Boot를 유지한 상태에서 MOK(Machine Owner Key)를 등록해 Veeam Kernel Module을 정상 로드하는 방법을 같이 정리해봤습니다.

예전 Veeam Agent 5/6 계열 문서에서는 veeamsnap-ueficert 패키지와 veeamsnap-ueficert.crt 파일명이 사용됐습니다. 현재 Veeam Agent for Linux 13.1 문서에서는 pre-built kernel module용 인증서 패키지가 veeam-ueficert로 안내됩니다. 기존 작업 이력과 최신 문서의 파일명이 다를 수 있으므로 사용 중인 Agent 버전을 먼저 확인해야 합니다.

증상

Veeam Agent 백업 작업에서 Snapshot을 생성하기 전에 커널 모듈을 로드하지 못하면서 작업이 실패합니다.

Veeam KB2260에서는 대표적으로 다음 오류를 설명하고 있습니다.

Failed to load module [veeamsnap] with parameters [...]
Failed to load module [blksnap]

이 오류의 원인은 여러 가지입니다.

  • Veeam Kernel Module이 설치되지 않음

  • 현재 커널과 설치된 모듈이 호환되지 않음

  • DKMS 컴파일 실패

  • kernel headers / kernel-devel 버전 불일치

  • 지원되지 않는 Linux 배포판 또는 커널

  • Secure Boot 정책으로 Third-party Kernel Module 로드 차단

따라서 Secure Boot부터 무조건 끄기 전에 현재 오류가 정말 서명 문제인지 먼저 확인하는 게 좋습니다.

Secure Boot에서 왜 모듈이 막히는가

UEFI Secure Boot는 부팅 과정에서 신뢰된 키로 서명된 커널과 커널 모듈만 로드하도록 제한합니다.

Veeam Agent의 veeamsnap 또는 blksnap은 Linux 배포판 자체에서 제공하는 기본 모듈이 아니라 Veeam에서 사용하는 별도 Kernel Module입니다.

Secure Boot가 켜진 상태에서 해당 모듈의 서명 키가 시스템의 MOK 목록에 등록되어 있지 않으면 Linux 커널이 모듈 로드를 거부할 수 있습니다.

그림 1. Secure Boot 환경에서 Veeam Snapshot Module이 차단되는 구조

그래서 같은 Veeam Agent 패키지라도 Secure Boot를 끄면 바로 동작하고, Secure Boot를 켜면 Snapshot Module이 로드되지 않는 상황이 생길 수 있습니다.

먼저 Secure Boot 상태 확인

현재 서버에서 Secure Boot가 활성화되어 있는지 먼저 확인합니다.

mokutil --sb-state

활성화된 환경이라면 보통 다음과 비슷하게 표시됩니다.

SecureBoot enabled

이 상태에서 Veeam Snapshot Module이 로드되지 않는다면 MOK 등록 상태도 같이 확인해보는 것이 좋습니다.

mokutil -l

현재 등록 예정인 키가 있는지 확인할 때는 다음 명령을 사용할 수 있습니다.

mokutil -N

문제 분석 단계에서는 모듈 상태도 같이 봅니다.

lsmod | egrep -i 'veeamsnap|blksnap'
find /lib/modules -name '*veeam*' -exec ls -ld {} +
modinfo veeamsnap

환경에 따라 blksnap을 사용하는 경우라면 해당 모듈 이름으로 확인합니다.

가장 단순한 방법: Secure Boot 비활성화

테스트 환경이나 Secure Boot가 필수가 아닌 서버라면 가장 단순한 우회 방법은 UEFI 설정에서 Secure Boot를 비활성화하는 것입니다.

Secure Boot가 비활성화되면 커널 모듈 서명 검증 때문에 Veeam Module이 차단되는 문제를 피할 수 있습니다.

다만 운영 서버에서는 Secure Boot가 보안 기준이나 회사 정책에 포함되어 있을 수 있으므로, 단순히 Backup을 정상화하기 위해 바로 비활성화하기보다는 변경 영향부터 확인하는 편이 좋습니다.

Veeam 공식 문서도 DKMS Module의 키를 자동 생성하거나 등록할 수 없는 환경에서는 다음 두 가지 방법을 안내합니다.

  • Kernel Module을 직접 서명하고 MOK 등록

  • Secure Boot 비활성화

즉 Secure Boot를 끄는 것은 가능한 해결 방법이지만 유일한 방법은 아닙니다.

Secure Boot를 유지하려면 MOK 등록

Secure Boot를 유지해야 한다면 Veeam Kernel Module을 서명한 키를 MOK 목록에 등록해야 합니다.

여기서 설치 방식에 따라 절차가 달라집니다.

1. Pre-built Kernel Module을 사용하는 경우

현재 Veeam Agent for Linux 13.1 문서에서는 Veeam이 제공하는 public key가 veeam-ueficert 패키지에 포함되어 있습니다.

광고

RHEL / Rocky Linux / AlmaLinux 계열의 온라인 설치라면 다음과 같이 설치할 수 있습니다.

yum install veeam-ueficert

패키지 설치 후 대부분의 지원 배포판에서는 다음 재부팅을 위한 MOK Enrollment 요청이 자동으로 등록됩니다.

등록 예정 상태를 확인합니다.

mokutil -N

등록 요청이 보인다면 재부팅 후 MOK Manager에서 등록을 마무리하면 됩니다.

RHEL 10 / Rocky Linux 10 / AlmaLinux 10 / Oracle Linux 10

현재 Veeam 13.1 문서에서는 이 계열의 경우 강화된 OS 보안 정책 때문에 veeam-ueficert를 설치해도 키가 자동 Import되지 않는다고 안내합니다.

이 경우 직접 Import합니다.

mokutil --import /etc/uefi/certs/veeam-ueficert

명령을 실행하면 MOK 등록 시 사용할 일회성 Password를 입력하게 됩니다.

그 다음 재부팅합니다.

예전 Veeam Agent 5/6 계열이라면

사용자가 참고한 과거 문서와 기존 현장 사례에서는 다음과 같은 패키지와 인증서 이름이 사용됐습니다.

veeamsnap-ueficert
veeamsnap-ueficert.crt

먼저 인증서 경로를 확인합니다.

ls -l /etc/uefi/certs

예전 버전에서 인증서가 다음 경로에 있다면:

/etc/uefi/certs/veeamsnap-ueficert.crt

MOK 등록 요청은 다음처럼 진행할 수 있습니다.

mokutil --import /etc/uefi/certs/veeamsnap-ueficert.crt

mokutil --import veeamsnap-ueficert.crt처럼 파일명만 입력하면 현재 작업 디렉터리에 해당 파일이 없을 경우 Failed to get file status가 발생할 수 있습니다. 인증서의 실제 경로를 확인한 뒤 절대 경로로 실행하는 편이 안전합니다.

다만 이 이름은 과거 Agent 계열의 예시입니다. 현재 Veeam Agent 13.1에서는 veeam-ueficert 패키지와 경로를 기준으로 확인해야 합니다.

DKMS 방식은 조금 다름

DKMS로 Veeam Kernel Module을 빌드하는 환경은 Veeam에서 미리 서명된 ueficert 패키지를 그대로 사용하는 구조가 아닙니다.

현재 Veeam 문서에서는 DKMS 설치 후 생성된 Machine Owner Key를 등록하도록 안내합니다.

Debian 12 이상, RHEL / Oracle Linux 8 이상에서는 예를 들어 다음 경로를 사용합니다.

mokutil --import /var/lib/dkms/mok.pub

Ubuntu 20.04 이상은 일반적으로 키 등록 요청이 자동으로 수행되지만, 스크립트나 Non-interactive 방식으로 설치한 경우 자동 등록이 되지 않을 수 있습니다.

이 경우 등록 예정 상태를 먼저 확인합니다.

mokutil -N

등록되어 있지 않다면 현재 공식 문서에서는 다음 경로를 안내합니다.

mokutil --import /var/lib/shim-signed/mok/MOK.der

즉 Pre-built Module과 DKMS Module의 MOK 경로를 섞어서 적용하면 안 됩니다.

재부팅 후 MOK Manager에서 등록

키 Import만 했다고 끝나는 것은 아닙니다.

MOK Enrollment 요청을 넣은 다음 서버를 재부팅해야 실제 UEFI MOK 목록에 등록됩니다.

그림 2. Veeam Snapshot Module을 위한 MOK 등록 흐름

현재 Veeam 공식 문서 기준 절차는 다음과 같습니다.

  1. 서버 재부팅

  1. 부팅 중 MOK Management 화면이 나오면 키 입력

  1. Enroll MOK 선택

  1. Continue 선택

  1. Yes 선택

  1. MOK Password 입력

  1. Reboot 선택

여기서 한 가지 주의할 점이 있습니다.

MOK 화면은 일정 시간 후 자동으로 일반 부팅으로 넘어갑니다. 현재 Veeam 문서에서는 약 10초 내에 키를 눌러 MOK Management에 진입해야 한다고 안내합니다.

그냥 Continue Boot로 지나가면 키가 등록되지 않고 다음 부팅에서도 Snapshot Module이 계속 실패할 수 있습니다.

등록 완료 확인

재부팅이 끝난 뒤 MOK 목록을 확인합니다.

mokutil -l

Secure Boot 상태도 다시 확인합니다.

mokutil --sb-state

그리고 Veeam Module 로드 상태를 확인합니다.

lsmod | egrep -i 'veeamsnap|blksnap'

필요하면 직접 로드 테스트를 진행합니다.

modprobe -vvv veeamsnap

또는 blksnap 환경이라면:

modprobe -vvv blksnap

정상적으로 로드되면 이후 동일한 Backup Job을 다시 실행해 Snapshot 생성부터 백업 완료까지 확인합니다.

veeamsnap과 blksnap도 구분해야 함

Secure Boot 문제를 확인하면서 하나 더 봐야 할 부분이 있습니다.

Veeam Agent for Linux 6부터는 blksnap이 추가됐으며, 새로운 Linux Kernel에서는 veeamsnap 대신 blksnap을 사용할 수 있습니다.

현재 KB2804 기준으로:

  • veeamsnap: Linux Kernel 5.18까지 지원

  • blksnap: Linux Kernel 5.10 이상 지원

일부 커널 범위는 겹치며 실제 기본 모듈은 배포판과 Veeam Agent 버전에 따라 달라집니다.

예를 들어 현재 Veeam Agent 13.1.1 기준 RHEL / Rocky / Alma 계열은 대략 다음처럼 나뉩니다.

  • 8.x 계열: veeamsnap

  • 9.x / 10.x 계열: blksnap

그래서 오류가 발생했을 때 무조건 veeamsnap만 찾기보다 현재 Agent와 OS가 어떤 모듈을 사용하는지 먼저 확인해야 합니다.

제가 확인하는 순서

실제 현장에서 Failed to load module이 보이면 아래 순서로 확인하는 게 편합니다.

1. 현재 OS와 Kernel 확인

cat /etc/os-release
uname -r

2. Veeam 패키지 확인

RPM 계열:

rpm -qa | grep -i veeam

Debian / Ubuntu 계열:

dpkg-query -l | grep -i veeam

3. Snapshot Module 확인

find /lib/modules -name '*veeam*' -exec ls -ld {} +

4. Secure Boot 확인

mokutil --sb-state

5. MOK 등록 상태 확인

mokutil -l
mokutil -N

6. Module Load 테스트

modprobe -vvv veeamsnap

또는:

modprobe -vvv blksnap

여기까지 확인하면 단순 패키지 누락인지, Kernel 호환성 문제인지, DKMS 문제인지, Secure Boot 서명 문제인지 범위를 많이 좁힐 수 있습니다.

정리

이번 이슈의 핵심은 Secure Boot가 활성화된 Linux 서버에서 Veeam Snapshot Kernel Module을 신뢰하지 못해 로드를 차단할 수 있다는 점입니다.

가장 단순한 우회는 Secure Boot를 끄는 것이지만, 운영 환경에서 Secure Boot를 유지해야 한다면 MOK 등록을 진행하면 됩니다.

다만 Veeam Agent 버전에 따라 명령어가 달라지는 점은 꼭 주의해야 합니다.

과거 Agent 5/6 계열에서는:

veeamsnap-ueficert
/etc/uefi/certs/veeamsnap-ueficert.crt

형태를 자주 볼 수 있었지만, 현재 Veeam Agent 13.1에서는 pre-built Module 기준으로:

veeam-ueficert
/etc/uefi/certs/veeam-ueficert

방식이 공식 문서에 안내되어 있습니다.

따라서 인터넷에서 예전 veeamsnap-ueficert.crt 명령을 그대로 복사하기보다는 현재 Veeam Agent 버전 → Pre-built/DKMS 방식 → OS 버전 → MOK 경로 순서로 확인한 뒤 적용하는 것이 가장 안전합니다.

공식 참고자료

광고

운

운영자

운영자

엔터프라이즈 인프라, 가상화, 백업 솔루션 및 데이터 아키텍처를 연구하고 기록합니다.

이전

다음

관련 게시글

댓글

또는 로그인

첫 번째 댓글을 남겨보세요!