본문 바로가기
IT/Linux_리눅스

[Linux / initramfs] initramfs 란??? / 리눅스 설치 중 initramfs로 빠지는 이유와 상황

by 능보테 2024. 9. 3.
728x90
반응형

안녕하세요 이번 글에서는 리눅스의 initramfs가 무엇인지 그리고 어떤 상황에서 initramfs로 빠지는 상황이 발생하는지에 대해 씁니다. 

 


반응형

1. initramfs 란??

initramfs는 "initial RAM filesystem"의 약자로써 리눅스 시스템의 부팅 과정에서 매우 중요한 역할을 합니다.

initramfs는 간단하게 설명하자면 커널이 디스크의 루트 파일 시스템을 마운트하기 전에 필요한 초기 파일 시스템입니다. 이 초기 파일 시스템에는 부팅에 필요한 기본 리눅스 명령어들과 커널 모듈들이 포함되어 있습니다.

 

 

initramfs의 역할과 동작

  1. 커널 로드: 시스템이 부팅되면 부트로더(예: GRUB)가 커널과 함께 initramfs 이미지를 메모리에 로드합니다.
  2. 초기 환경 설정: 커널이 실행되면서 initramfs를 이용해 메모리 상에서 임시 파일 시스템을 구성합니다. 이 단계에서 필요한 장치 드라이버나 루트 파일 시스템을 마운트하는 데 필요한 스크립트들이 실행됩니다.
  3. 루트 파일 시스템 마운트: initramfs의 작업이 완료되면, 실제 루트 파일 시스템(/)이 마운트됩니다.
  4. initramfs 해제: 루트 파일 시스템이 성공적으로 마운트되면, initramfs는 메모리에서 해제되고 루트 파일 시스템이 활성화됩니다.

위의 과정들을 통해 커널은 디스크에 있는 루트 파일 시스템을 접근할 수 있게 됩니다.

initramfs 구성 요소

initramfs는 다음과 같은 구성 요소로 이루어져 있습니다:

  • 커널 모듈: 특정 하드웨어를 지원하기 위해 필요한 모듈들.
  • 부팅 스크립트: 루트 파일 시스템을 마운트하기 위한 스크립트.
  • 기본 유틸리티: bash, mount, udevadm 같은 기본 리눅스 명령어들.

initramfs가 포함된 리눅스 시스템의 부팅 과정

 

initramfs가 포함된 리눅스 시스템의 부팅 과정은 위와 같은 도식으로 간단하게 표현될 수 있습니다. 

 

 


 

 

2. initramfs로 빠지는 상황과 이유

설치 과정 중에 시스템이 initramfs 쉘로 빠지는 상황은 일반적으로 부팅 과정에서 커널이 루트 파일 시스템을 제대로 마운트하지 못할 때 발생합니다. 이 상황은 여러 가지 이유로 발생할 수 있으며, 몇 가지 주요 원인은 다음과 같습니다:

1. 루트 파일 시스템 마운트 실패

  • 잘못된 UUID 또는 LABEL: 부팅 설정 파일(e.g., /etc/fstab 또는 부트로더 설정)에서 루트 파일 시스템의 UUID나 LABEL이 잘못 설정된 경우, 커널이 올바른 파티션을 찾지 못할 수 있습니다.
  • 파일 시스템 손상: 루트 파일 시스템이 손상된 경우, 커널이 파일 시스템을 마운트할 수 없어 initramfs로 빠질 수 있습니다.
  • 디스크 파티션 변경: 파티션 구조가 변경되었는데도 부트로더 설정이 업데이트되지 않은 경우, 커널이 이전 파티션 정보를 사용해 루트 파일 시스템을 마운트하려고 시도하다 실패할 수 있습니다.

2. 드라이버 문제

  • 필수 모듈 누락: 루트 파일 시스템을 인식하기 위해 필요한 디스크 드라이버 모듈이 initramfs에 포함되지 않은 경우, 커널이 디스크를 인식하지 못해 루트 파일 시스템을 마운트하지 못합니다.
  • RAID 또는 LVM 문제: 루트 파일 시스템이 RAID 또는 LVM(Logical Volume Manager) 위에 구성되어 있는데, 해당 구성 요소를 인식하는 데 필요한 모듈이나 설정이 initramfs에 포함되지 않은 경우.

3. 부트로더 설정 오류

  • 커널 또는 initramfs 경로 오류: 부트로더가 잘못된 커널이나 initramfs 이미지를 로드하려 시도할 때 발생할 수 있습니다. 이로 인해 올바른 파일 시스템을 찾을 수 없게 됩니다.
  • 부트 파라미터 오류: 부트로더 설정에서 커널에 전달되는 파라미터에 문제가 있는 경우, 예를 들어, 잘못된 루트 파일 시스템 위치를 지정한 경우에도 initramfs로 빠질 수 있습니다.

4. 하드웨어 인식 문제

  • 디스크나 컨트롤러 인식 실패: 하드웨어 문제로 인해 디스크나 디스크 컨트롤러가 인식되지 않을 경우, 커널이 루트 파일 시스템을 찾지 못해 initramfs로 빠질 수 있습니다.

해결 방법

  • UUID 확인: 부팅된 initramfs 쉘에서 lsblk -f 명령어를 사용해 디스크의 UUID를 확인하고, 부트로더 설정 파일과 일치하는지 확인합니다.
  • 모듈 로드: modprobe 명령을 사용해 필요한 커널 모듈을 수동으로 로드한 뒤, 파일 시스템을 수동으로 마운트할 수 있는지 시도합니다.
  • 파일 시스템 검사: fsck 명령어를 사용해 파일 시스템의 무결성을 검사하고, 손상된 부분을 복구합니다.
  • 재설치 또는 재구성: 필요한 경우 initramfs 이미지를 다시 생성하거나 부트로더 설정을 수정해야 할 수도 있습니다.

이런 상황을 해결하지 못하면 시스템은 계속해서 initramfs 쉘로 빠지며 정상적으로 부팅되지 않습니다.

 

 

 


 


 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

728x90
반응형

댓글