명령어/Linux

[RHEL] dracut initramfs 이미지 생성

jykim23 2026. 7. 18. 19:06
반응형

부제: 부팅 초기 램디스크(initramfs)를 다시 만들기

dracut --print-cmdline           # 지금 디스크 구성 기준 커널 명령줄만 출력(안전)
dracut -f                        # 현재 커널의 initramfs 강제 재생성
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
Version: 057-117.git20260625.el9_8
Creates initial ramdisk images for preloading modules
  -f, --force           Overwrite existing initramfs file.
  -a, --add [LIST]      Add a space-separated list of dracut modules.
  -o, --omit [LIST]     Omit a space-separated list of dracut modules.
  --add-drivers [LIST]  add kernel modules to the initramfs

dracut는 부팅 초기에 루트 파일시스템을 마운트하기까지 필요한 드라이버·모듈을 담은 initramfs를 만든다. 데비안 계열은 initramfs-toolsupdate-initramfsmkinitramfs를 쓰는데, RHEL은 dracut을 표준으로 삼는다. 스토리지 드라이버 추가, 커널 업데이트, 마운트 실패 복구 때 재생성한다.
-f로 실제 재생성하면 기존 이미지를 덮어쓴다. 잘못 만들면 부팅이 막히므로 실제 재생성은 물리·VM 시스템에서, 원본 백업 후 한다. 조회성 옵션인 --print-cmdline은 안전하다.

이렇게도 쓴다

지금 initramfs에 어떤 커널 명령줄이 필요한지만 본다(안전).

dracut --print-cmdline

 

특정 드라이버를 강제로 포함시켜 재생성한다.

dracut -f --add-drivers "nvme megaraid_sas" /boot/initramfs-$(uname -r).img $(uname -r)

 

모든 드라이버를 넣은 범용 이미지를 만든다(하드웨어 교체 대비).

dracut -f --no-hostonly --no-hostonly-cmdline

 

재생성 전에 원본을 날짜 붙여 백업한다(명령 치환 조합).

cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%F).bak

 

설치된 모든 커널의 initramfs를 한 번에 다시 만든다(반복 조합).

for k in $(ls /lib/modules); do dracut -f /boot/initramfs-$k.img $k; done

 

특정 dracut 모듈을 빼고 만든다(예: 네트워크 제외로 경량화).

dracut -f -o "network nfs" /boot/initramfs-$(uname -r).img $(uname -r)
반응형