LabHub

폐쇄망 GPU 드라이버 반입 설치 · 설치 검증과 롤백 · 실습

검증과 롤백

LabHub 에서 이어서 보기

목표

반입물의 무결성을 검증하고, 변조를 탐지하고, 버전을 고정하고, 실제로 롤백까지 수행합니다.

왜 중요한가

폐쇄망에서는 롤백 경로가 없는 변경을 하지 않습니다. 무언가를 지웠는데 다시 받으려면 반입 심의를 또 거쳐야 하고, 그게 며칠입니다. 그래서 작업 절차의 절반은 "무엇을 바꿨는지 기록하고 어떻게 되돌릴지 미리 정하는 것" 입니다.

그리고 검증은 층을 순서대로 해야 합니다. 최종 확인만 해 보고 실패하면 어느 층이 문제인지 모릅니다. 커널 → 유저 공간 → 컨테이너 주입 → 실제 실행 순으로 올라가면 실패 지점이 곧 원인입니다.

단계

1. /root/gpu/pool 안의 모든 .deb 에 대한 SHA-256 매니페스트를 /root/gpu/manifest.sha256 으로 만들고, 검증을 수행해 결과를 /root/gpu/verify-ok.txt 로 저장하세요. 모든 줄이 정상이어야 합니다.
2. /root/gpu/tamper/ 디렉터리를 만들어 .deb 하나를 복사한 뒤 사본을 변조하고, 그 사본에 대한 검증이 실패하는 것을 확인해 출력을 /root/gpu/verify-fail.txt 로 저장하세요. 원본 pool 은 그대로여야 합니다.
3. 설치된 nvidia-container-toolkit 의 파일 무결성을 확인해 결과를 /root/gpu/dpkg-verify.txt 로 저장하세요.
4. /root/gpu/verify-plan.txt 를 다음 4줄로 만드세요. 실제 GPU 가 있는 환경에서의 검증 순서입니다.
L1=lsmod / L2=nvidia-smi / L3=nvidia-ctk / L4=podman-run
5. nvidia-driver-550nvidia-container-toolkit 을 업그레이드 대상에서 제외하고, 고정 목록을 /root/gpu/holds.txt 로 저장하세요. 두 패키지가 모두 보여야 합니다.
6. apt 의 설치 트랜잭션 기록에서 이번 설치와 관련된 부분을 /root/gpu/history.txt 로 저장하세요. nvidia 문자열이 포함돼야 합니다.
7. nvidia-container-toolkit 을 설정 파일까지 완전히 제거(롤백)하고, 제거 후 상태를 /root/gpu/after-rollback.txt 로 저장하세요. 그 패키지가 설치 상태가 아니어야 하고, nvidia-driver-550 은 여전히 설치 상태여야 합니다.
8. /root/gpu/final-report.txt 를 다음 6줄로 만드세요.
BUNDLE_VERIFY=OK / TAMPER_DETECTED=yes / HELD=2 / DRIVER_STILL=installed / TOOLKIT_NOW=removed / SNAPSHOT=<오늘 날짜 YYYY-MM-DD>

참고

단계 8개

  1. 무결성 매니페스트 생성
  2. 변조 탐지 재현
  3. 설치 파일 무결성 확인
  4. 검증 계획 문서
  5. 버전 고정
  6. 설치 트랜잭션 확인
  7. 롤백 실행
  8. 반입·설치·검증·롤백 보고서