피드로 돌아가기
더 작은 NixOS ISO를 만들 수 있을까?
GeekNewsGeekNews
Infrastructure

더 작은 NixOS ISO를 만들 수 있을까?

NixOS ISO 최적화를 통한 이미지 크기 458MiB에서 183MiB로 60% 감축

neo2026년 6월 20일10advanced

Context

NixOS는 선언적 설정을 통해 ISO 생성이 용이하나 기본 최소 이미지 크기가 458MiB로 Alpine Linux 대비 과도하게 큼. 특히 nix-store.squashfs 내의 Python, Perl, Kernel Modules 등 기본 의존성이 전체 크기의 대부분을 차지하는 구조적 한계 존재.

Technical Solution

  • Nix Daemon 및 관련 문서 제거를 통한 Boost 의존성 제거 및 360MiB까지 경량화
  • Stub 모듈 설계를 통한 programs/ssh.nix 모듈 제외 및 연쇄적 빌드 오류 해결
  • system.systemBuilderCommands를 이용한 런타임 커널 모듈 폴더 강제 삭제로 144MiB 공간 확보
  • system.etc.overlay 및 userborn 도입을 통해 시스템 활성화 단계의 Perl 의존성 대체
  • system.extraDependencies 및 environment.systemPackages 초기화를 통한 GRUB 설치 도구 제거
  • CorePackages 유지를 통한 getty Crashloop 방지 및 최소 셸 환경 보장

- NixOS 이미지 최적화 시 nix why-depends를 활용해 의존성 전파 경로 정밀 분석 - 모듈 제거 시 발생하는 연쇄 오류 해결을 위해 빈 옵션만 정의한 Stub 모듈 작성 검토 - 시스템 빌드 후반 단계에서 불필요한 디렉토리를 삭제하는 systemBuilderCommands 활용 가능 여부 확인 - 기본 시스템 구성 요소의 의존성 제거를 위해 실험적 기능(Overlay, native userborn) 적용 검토

원문 읽기