mingming

Linux 부팅 실패 후 dracut 모드로 진입했을 때의 복구 과정 본문

카테고리 없음

Linux 부팅 실패 후 dracut 모드로 진입했을 때의 복구 과정

mingming_96 2026. 1. 18. 05:02

Linux 부팅 실패 후 dracut 모드 진입: initramfs 재생성

서버 재부팅 후 Root Volume을 찾을수 없다는 에러와 함께 dracut 모드로 진입했습니다.
dracut 모드에서 현재 상태 진단 및 복구하는 과정을 공유해보려 합니다.


1. 장애 상황 개요

  • Netbackup의 WORM 인스턴스 다운 및 재기동 실패
  • Netbackup 재부팅 후 정상 부팅 실패
  • 부팅 과정에서 dracut emergency mode 진입
  • 루트 파일시스템을 찾지 못했다는 메시지 출력

이 시점에서 가장 큰 혼란은 명확한 원인을 찾지 못한다는 것이었습니다.


2. 장애 발생 환경

2.1 dracut 모드 진입

Entering emergency mode.
dracu:/#

2.2 /dev/mapper 상태

ls /dev/mapper
  • control만 존재
  • 루트 볼륨으로 사용 중이던 Logical Volume이 보이지 않음

➡️ dm_mod는 올라왔지만, LVM을 통해 루트 볼륨을 활성화 하지 못함.


2.3 LVM 명령어 상태

dracut:/# lvs
command not found


dracut:/# pvs
command not found

dracut:/# lvm pvscan
segmentation fault
  • lvs, pvs, vgs 명령어 자체가 없음
  • lvm pvscan 실행 시 segmentation fault 발생

이 때문에 처음에는 다음과 같은 가설을 세웠다.

  • LVM 메타데이터 손상?
  • 디스크 자체 장애?

하지만 이후 분석 결과, 이 가설은 모두 결과에 대한 오해였다.


3. segmentation fault

pvscan 실행 시 발생한 segmentation fault는 매우 위협적으로 보였다.

일반적으로 segmentation fault는 다음과 같은 오류를 의미한다.

  • 잘못된 메모리 접근
  • 손상된 바이너리 또는 라이브러리
  • 불완전한 실행 환경

이번 케이스에서는 LVM 바이너리가 initramfs 내에서 필요한 라이브러리를 정상적으로 로딩하지 못한 상태였고,
그 결과 pvscan이 정상 실행되지 못하며 segmentation fault가 발생한 것이다.


4. 리눅스 부팅 단계에서 무슨 일이 벌어졌나

리눅스 부팅 과정은 크게 다음과 같다.

BIOS/UEFI
→ GRUB
→ Kernel
→ initramfs (dracut)
    ├─ 스토리지 드라이버 로드
    ├─ 디스크 장치 생성 (/dev/sdX, /dev/nvmeX)
    ├─ device-mapper 로드 (dm_mod)
    ├─ LVM 유저스페이스 실행
    │     ├─ pvscan
    │     ├─ VG 활성화
    │     └─ LV 생성
    ├─ root LV 마운트 (/sysroot)
→ systemd

이번 장애는 initramfs 생성 단계의 LVM 유저스페이스 실행 단계에서 실패했다.

initramfs 안에 LVM 관련 바이너리, 필요한 라이브러리 등이 완전하게 포함되지 않은 상태였다.

그 결과 커널은 정상은 로드되었지만 LVM을 통해 루트 볼륨을 활성화하지 못하였다.


5. 근본 원인 분석

이번 장애의 근본 원인은 LVM이나 디스크 자체의 문제가 아니라, initramfs(dracut) 환경이 단독으로 손상되거나 불완전하게 생성된 것이었다.
중요한 점은 커널 업데이트는 전혀 없었다는 사실이다. 그럼에도 불구하고 dracut 단계에서 부팅이 멈춘 이유는, 리눅스 부팅 구조상 커널과 initramfs가 서로 독립적으로 관리되기 때문이다.

5.1 무엇이 깨졌나

  • 커널은 정상적으로 로딩됨
  • device-mapper 커널 모듈(dm_mod)도 로드됨
  • initramfs 내부에 있어야 할 LVM 사용자 공간 바이너리 관련 shared library udev rule 일부 가 누락되거나 정상적으로 포함되지 않은 상태

그 결과, 커널은 디스크를 인식했지만 LVM을 통해 루트 Logical Volume을 활성화할 수 없었고, 부팅은 dracut 단계에서 중단되었다.

5.2 왜 이런 일이 발생했나

가능성이 높은 원인은 다음과 같다.

  • /boot 파티션 공간 부족 상태에서 dracut가 실행됨
  • lvm2, dracut, systemd 등 관련 패키지 업데이트 중 initramfs 자동 재생성 실패
  • initramfs 생성 과정 중 전원 차단 또는 강제 재부팅
  • 일시적인 I/O 오류로 인한 initramfs 이미지 손상

이 중 어떤 경우든 공통점은 하나다.

"부팅에 필요한 모든 구성 요소가 포함되지 않은 initramfs가 생성되었다"

이 상태에서는 LVM 명령어가 없거나, 실행되더라도 필요한 라이브러리를 찾지 못해 segmentation fault와 같은 비정상 동작이 발생할 수 있다.


6. 해결 방법 (복구 절차)

6.1 Rescue 모드 진입

  • OS 설치 ISO로 부팅
  • Rescue mode 선택
  • 기존 시스템을 /mnt/sysimage에 마운트
  • /mnt/sysimage 하위에 가상파일시스템 연결
mkdir -p /mnt/sysimage

# root LV 마운트
mount /dev/mapper/root-vol /mnt/sysimage

# mount pseudo-filesystems inside chroot
for i in proc sys dev; do mount -rbind /$i /mnt/sysimage/$i; done

6.2 chroot 진입

chroot /mnt/sysimage /bin/bash

6.3 initramfs 강제 재생성

현재 커널의 initramfs 재생성

dracut -f -v

 

또는 특정 커널 지정:

dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

➡️ LVM, device-mapper, 필수 라이브러리를 initramfs에 다시 포함


6.4 GRUB 설정 재생성 (안전 확인)

BIOS 환경

grub2-mkconfig -o /boot/grub2/grub.cfg

UEFI 환경

grub2-mkconfig -o /boot/efi/EFI/*/grub.cfg

6.5 재부팅 및 확인

재부팅 후 체크리스트

  • dracut emergency shell로 떨어지지 않고 정상 부팅되는지
  • /dev/mapper/root-vol 이 정상적으로 마운트되는지
  • lsblk, mount, df -h 명령으로 root filesystem 상태 확인
  • systemctl status를 통해 주요 서비스 정상 기동 여부 확인

7. 정리하며

7.1 디스크도 LVM도 정상인데, 왜 부팅이 되지 않았을까

이번 장애를 겪으면서 가장 혼란스러웠던 점은 디스크와 LVM이 모두 정상임에도 불구하고 OS가 부팅되지 않았다는 사실이었다. 복구 모드에서는 root volume이 정상적으로 보였고, 파일시스템 역시 문제없이 마운트되었다. 그렇다 보니 자연스럽게 “이게 왜 안 올라오지?”라는 의문이 들 수밖에 없었다.

7.2 initramfs의 역할

initramfs는 단순히 부팅에 필요한 파일 묶음이 아니라, 커널이 부팅 초기에 root filesystem에 도달하기 위해 필요한 드라이버와 도구들을 담고 있는 일종의 설계도에 가깝다.

이번 경우에는 이 설계도 안에서 root LVM을 자동으로 활성화하는 과정이 정상적으로 수행되지 않았다. 그 결과 /dev/mapper에는 control 디바이스만 남았고, 커널은 root filesystem을 찾지 못한 채 dracut 단계에서 멈춰 서게 되었다.

7.3 장애의 본질

중요한 점은 이것이 디스크 손상이나 LVM 메타데이터 문제 때문이 아니라, initramfs가 생성되던 시점의 시스템 상태와 실제 재부팅 시점의 상태가 어긋나면서 발생했다는 것이다. 운영자가 의도적으로 작업을 하지 않았더라도, dracut 자동 실행 실패나 시스템 환경 변화로 인해 이러한 불일치는 충분히 발생할 수 있다.

결국 이번 장애의 본질은 “디스크가 없어서”가 아니라, 부팅 단계에서 그 디스크에 도달하지 못했다는 점이었다.

이번 경험을 통해, dracut 모드에서 발생하는 부팅 장애는 단순히 스토리지 가시성만으로 판단해서는 안 되며, initramfs가 부팅 과정에서 어떤 역할을 수행하는지부터 차분히 되짚어보는 것이 가장 빠른 해결로 이어진다는 점을 다시 한 번 확인할 수 있었다.