Skip to content

램 디스크가 필요한 이유와 mkinitcpio.conf 와 HOOKS의 역할

[!question] /etc/mkinitcpio.conf 파일은 왜 필요하며, HOOKS가 하는 역할이 뭐야?

/etc/mkinitcpio.conf 파일은 Arch Linux 및 그 파생 배포판에서 초기 램디스크(initramfs)를 생성할 때 사용하는 설정 파일입니다. 이 파일은 부팅 과정에서 초기 환경을 설정하고, 시스템이 루트 파일 시스템을 마운트할 수 있도록 준비하는 데 중요한 역할을 합니다.

initramfs는 커널이 로드된 후 첫 번째로 실행되는 파일 시스템으로, 주요 목적은 부팅을 위한 필수 모듈을 로드하고 루트 파일 시스템을 마운트하는 것입니다. mkinitcpio는 이를 생성하는 도구입니다.

HOOKS의 역할#

HOOKSmkinitcpio.conf 파일 내에서 정의되며, initramfs에 포함될 스크립트와 모듈들의 목록을 지정합니다. 각 HOOK은 부팅 과정에서 특정 기능을 수행하는 데 필요한 모듈과 파일들을 로드합니다. 이를 통해 부팅에 필요한 환경을 단계별로 설정할 수 있습니다.

주요 HOOKS 설명#

  • base: 기본적인 필수 모듈을 포함합니다. initramfs가 정상적으로 작동하기 위해 기본적으로 필요한 모듈들입니다.
  • udev: udev 장치 관리 데몬을 로드하여 하드웨어 탐지와 관련된 기능을 제공합니다.
  • autodetect: 현재 시스템에서 필요한 모듈들만 자동으로 탐지해서 추가합니다. 일반적으로 부팅 시간을 단축하는 데 사용됩니다.
  • modconf: modprobe 구성 파일을 추가하여 커널 모듈 설정을 할 수 있게 합니다.
  • block: 스토리지 장치를 탐지하고 초기화하는 데 필요한 모듈들을 추가합니다. SATA, NVMe 등 디스크 관련 모듈이 포함됩니다.
  • filesystems: 루트 파일 시스템을 지원하기 위한 파일 시스템 관련 모듈들을 추가합니다. 예를 들어 ext4, xfs, btrfs 등의 파일 시스템 지원 모듈이 포함됩니다.
  • keyboard: 암호화된 루트 파일 시스템이나 암호화된 파티션을 사용하는 경우, 부팅 시 키보드 입력을 인식하도록 키보드 드라이버를 추가합니다.
  • encrypt: 암호화된 디스크를 사용하고 있는 경우, 암호 해제에 필요한 기능을 제공합니다.

예시#

HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)

위 예시에서는 부팅 과정에서 기본적인 기능을 포함하여, 파일 시스템 검사(fsck)까지 할 수 있도록 설정된 HOOKS입니다.

mkinitcpio.conf에서 HOOKS 설정은 시스템의 부팅 속도와 안정성에 영향을 줄 수 있으므로, 시스템에 필요한 것만 선택적으로 포함하는 것이 좋습니다.