프로젝트 소개

sd-boot는 systemd의 kernel-install을 사용하여 리눅스 커널과 EFI 프로그램을 부팅 파티션에 설치합니다. README에 따르면, 이는 부팅 파티션에서 부팅 가능한 소프트웨어를 체계적으로 설치하거나 제거하는 방법을 제공합니다. kernel-install은 $BOOT를 파티션 또는 그 마운트 지점을 가리키는 데 사용하며, 일반적으로 /efi 또는 /boot에 마운트됩니다. README는 두 가지 권장 레이아웃을 언급합니다: ESP를 /efi에 마운트하고 선택적으로 XBOOTLDR 파티션을 /boot에 두는 방식(kernel-install 권장 사항), 또는 ESP를 /boot에 마운트하는 방식입니다. sd-boot와 kernel-install은 두 접근 방식 모두에서 작동하며, 프로젝트는 첫 번째 방식을 선호합니다. 이 프로젝트는 커널 패키지가 설치, 업데이트 또는 제거될 때 커널과 EFI 도구를 설치하거나 제거하는 pacman ALPM 훅, 해당 훅에 의해 트리거되는 설치 프로그램, 관리자가 커널을 직접 재설치하거나 제거할 수 있는 명령줄 도구, 그리고 비 UKI 커널과 EFI 도구를 위한 로더 항목에 사용되는 kernel-install 플러그인을 제공합니다. 커널 설치란 부팅할 수 있도록 이미지를 $BOOT 파티션에 배치하는 것을 의미하므로, 커널 패키지는 커널 이미지를 /usr에만 배치해야 하며, edk2-shell 및 memtest86+와 같은 부팅 가능한 EFI 도구도 마찬가지입니다. 문서는 /usr/share/sd-boot/docs 아래에 HTML 및 PDF로 설치되며, readthedocs에서도 사용할 수 있습니다. sd-boot-efifs-update, sd-boot-efi-tool-update, sd-boot-find-boot-mounts 및 sd-boot-kernel-update에 대한 매뉴얼 페이지가 포함되어 있습니다. README는 코딩 표준을 설명합니다: 기능 테스트, clang-tidy와 같은 도구를 사용한 정적 분석, -fanalyzer와 같은 컴파일러 분석, valgrind에서의 깨끗한 실행, 사람에 의한 코드 리뷰, 그리고 추가적인 AI 리뷰입니다. 구성은 kernel-install 구성과 sd-boot 구성으로 나뉘며, 둘 다 드롭인 파일과 함께 Linux 우선순위 순서를 따릅니다. sd-boot는 /usr/lib/kernel/install.conf.d/010-sd-boot-install.conf를 제공하여 layout=uki, initrd_generator=dracut 및 uki_generator=ukify를 설정하며, 이는 /etc/kernel/install.conf 또는 /etc/kernel/install.conf.d/에서 재정의할 수 있습니다. README는 UKI와 dracut을 고수할 것을 권장합니다. sd-boot 구성 파일은 /etc/sd-boot에 있습니다: verb 및 skip_kernel_plugins 설정이 있는 config.yaml; memtest86_64-git 및 edk2-shell과 같은 EFI 도구 패키지 이름을 나열하는 efi-tool.packages; 그리고 관리되는 커널 패키지를 나열하는 kernel.packages. EFI 도구는 .efi 프로그램의 전체 경로를 포함하는 패키지 이름.image 파일을 제공해야 합니다; sd-boot는 edk2-shell.image 및 memtest86_64-git.image를 포함합니다. #으로 시작하는 주석 줄은 모든 구성 파일에서 허용됩니다. 기본 dracut 구성은 /usr/lib/dracut/dracut.conf.d/010-sd-boot-dracut.conf에 제공되며 /etc/dracut.conf.d/010-sd-boot-dracut.conf에서 재정의할 수 있습니다.