Engineer-Lee 2022. 7. 16. 13:24
반응형

리눅스 시스템 부팅 순서:

  1. BIOS(Basic Input/Output System) 에서 하드웨어 검사 후 부팅 기기 선택 및 파티션 식별
  2. 부트로더에서 커널 선택 및 커널 로드
  3. 커널 자료구조 초기화 및 시작 서비스 구동

Q. 클라우드 가상머신 부팅 시 로그는 어떻게 확인하는가?

-> 부팅 후 dmesg, syslog로 확인

 

 

BIOS:

  • 컴퓨터에 전원이 인가되면 실행이 시작되는 최초의 프로그램
  • 바이오스는 마더보드에 연결된 디바이스를 초기화하고 검사 (POST)하는 역할을 수행
    POST: Power On Self Test
  • 부트로더 또는 운영체제를 RAM으로 읽어오는 기능을 수행

* 클라우드/가상화/컨테이너 환경에서는 시스템 관리자가 하드웨어 상태를 직접 관리할 일은
많지 않음
* 하드웨어 상태 조회 시 사용 가능
Q. 호스트 머신 하드웨어의 문제 발생했다면??
인스턴스 stop, start로 해결 (VM이 다른 호스트에서 구동됨)
* stop + start != restart  <- 동일한 호스트에서 재구동

 

 

 

BIOS에서 시스템 정보 읽기

dmidecode 명령어: DMI 테이블 정보를 사람이 읽을 수 있는 형태로 출력해줌

 

 

UEFI:

  •  BIOS를 계승해서 좀 더 정형화하고 표준화한 PC 펌웨어
  • 주요 차이점: 2TB이상 Storage지원, 더 빠른 부팅시간, UI 및 기능 개선 (주소공간 추가)
  • PC 환경에서는 UEFI가 표준화되어 가고 있지만, 가상화 환경에서는 BIOS가 여전히 많이 사용됨

 

 

부트로더:

  • 사용 가능한 커널을 확인하고 로드 하는 작업을 수행
  • 대부분의 부트 로더는 부팅 타임에 사용 가능한 운영체제를 선택하기 위한 UI를 제공
  • 커널 부팅 방법에 대한 설정
    예) -s 옵션: 런레벨1, 단일 사용자모드, 시스템 관리 목적으로 부팅 (예, 네트워크 연결 안됨)
  • 부트로더의 종류: GRUB Legacy, GRUB 2

 

 

클라우드 환경에서의 GRUB

(사례) EC2에 커널 업데이트를 수행했는데, 커널이 손상되어 부팅 실패. 
물론, SSH를 사용하여 손상된 인스턴스에 연결도 불가능

 

해결 방법

  1. 루트 볼륨에 접근
    방법1. EC2 직렬 콘솔 사용
       - 가상머신의 직렬 포트에 액세스하는 기능을 지원
       - 부팅, 네트워크 구성 및 기타 문제를 해결에 사용
       - Nitro 기반 인스턴스 유형에서 사용 가능
    방법2. 복구 인스턴스 사용
       - 별도의 가상머신을 생성 à 인스턴스의 볼륨을 마운트
  2. GRUB 설정의 기본 커널 정보를 변경
  3. 다시 마운트 후 부팅
반응형