리눅스/Part3. Ch01. 부팅 및 시스템 관리 데몬의 이해
01. 부팅 프로세스 이해
Engineer-Lee
2022. 7. 16. 13:24
반응형
리눅스 시스템 부팅 순서:
- BIOS(Basic Input/Output System) 에서 하드웨어 검사 후 부팅 기기 선택 및 파티션 식별
- 부트로더에서 커널 선택 및 커널 로드
- 커널 자료구조 초기화 및 시작 서비스 구동
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. EC2 직렬 콘솔 사용
- 가상머신의 직렬 포트에 액세스하는 기능을 지원
- 부팅, 네트워크 구성 및 기타 문제를 해결에 사용
- Nitro 기반 인스턴스 유형에서 사용 가능
방법2. 복구 인스턴스 사용
- 별도의 가상머신을 생성 à 인스턴스의 볼륨을 마운트 - GRUB 설정의 기본 커널 정보를 변경
- 다시 마운트 후 부팅
반응형