○ 리눅스 부팅 과정을 알아야 하는 이유
▷ 리눅스 시스템 부팅 과정을 정확하게 알아야 시스템 장애 발생 시 정확하게 처리 가능
▷ 부팅하는 과정중에 에러가 자주 발생하기 때문
▷ 부팅 과정을 정확히 이해해야 리눅스라는 운영체제를 알 수 있음
▷ 부팅 과정의 에러들은 주로 커널패닉, 부트로더에러가 대부분입니다.
▷ 부팅 중 하드웨어에 대한 인식 과정을 이해, 커널이 어떻게 메모리로 올라가 부팅이
완료되는지에 대한 부팅 과정의 모든 것들을 이해해야 합니다.
○ 리눅스 부팅 과정
부팅 과정을 크게 5가지로 간단하게 분류해도록 하겠습니다.
용어 정리는 아래에서 해놓았습니다.
● 1단계 : 전원 ON (시스템 전원 공급)
● 2단계 : BIOS 단계
● 3단계 : 부트로더 (GRUB) 단계
● 4단계 : 커널 (kernel) 단계
● 5단계 : init 프로세스 단계
1단계 : 전원 ON
▷ 시스템 전원 공급
▷ 메인보드의 ROM-BIOS에 있는 BIOS 프로그램을 자동 실행
(Read Only Memory - Basic Input Output System)
BIOS 프로그램은 전원 공급와 함께 메모리의 특정번지에 자동 로드
CPU는 전원 공급과 함께 특정번지의 BIOS 프로그램(명령들)을 자동 실행
2단계 : BIOS 단계
▷ 자체진단기능(POST-Power On Self Test)
▷ CMOS검사, CPU, MEMORY, 그래픽카드, 키보드, 마우스등 각종 장치들의 이상 유무를 검사하고
이들 장치(하드웨어들)을 초기화
▷ 부팅매체검색과 부트로더 실행
▷ POST과정이 이상 없이 진행 완료되면 검색된 부팅매체(하드디스크, CD-ROM 등)에서
부트로더(예:GRUB, LILO)를 불러들인다.
(예를들어 하드디스크가 부팅매체로 선택되었다면 하드디스크의 부팅파티션에 있는 0번섹터
(대부분 MBR이라고도 함)에 있는 부트로더(Boot Loader, 즉, GRUB)을 읽어 들이게 된다.)
▷ 부트로더(GRUB)가 메모리에 적재되면 BIOS는 종료되고, 시스템 제어권은 부트로더(GRUB)이 갖게 됨
3단계 : 부트로더 (GRUB) 단계
▷ 리눅스에서 사용하는 부트로더는 LILO(Linux Loader)나 GRUBGRUB(GRand Unified Bootloader)다.
/boot/grub/grub.conf 파일을 읽어서 어떤 부팅 메뉴(커널)로 부팅할 것인지를 결정
(사용자 선택 or 자동 결정)
▷ GRUB은 커널(kernel)이미지를 불러들이고 시스템 제어권을 커널에게 넘겨줌
환경 설정 파일 : /boot/grub/grub.conf(/etc/grub.conf)
실행 파일 : /sbin/grub
설정 옵션 : /boot/grub/grub.conf
CentOS 7이상 : /etc/default/grub
파일 수정 후 # grub2-mkconfig -o /boot/grub2/grub.cfg 명령어로 설정 적용
4단계 : 커널 (kernel) 단계
▷ /etc/grub/grub.conf 파일에 의해서 커널이 메모리상에서 실행되면,
하드웨어를 점검하고 /var/log/dmesg 파일에 기록
▷ 루트 파일시스템(/)을 읽기 전용으로 마운트 합니다. 만약 마운트 실패시 "커널 패닉" 메세지를 출력
▷ 커널은 swapper프로세스(PID 0번)를 호출
▷ swapper(PID 0번)는 커널이 사용할 각 장치드라이브들을 초기화하고 init프로세스(PID 1번)가 실행
▷ /sbin/init프로세스가 실행되면서 /etc/inittab파일을 읽어들여서 그 내용들을 차례대로 실행
5단계 : init 프로세스 단계
▷ /sbin/init 프로세스가 실행이 되면 /etc/inittab 파일에 정의된 순서에 따라서 시스템을 초기화
▷ 로그인 프롬프트가 나오는 부팅 완료 화면까지 init프로세스에 의해서 실행되는 내용
○ 정리
부팅이란 ?
- 부트스트랩, 컴퓨터를 동작시키는데 필요한 프로그램이나 과정을 의미
(컴퓨터의 전원이 켜진 후 컴퓨터가 자체적으로 하드웨어를 검사,
컴퓨터가 운영체제를 읽어서 기능을 수행할 수 있게 되기까지의 과정)
요약
① 전원 ON & BIOS구동
전원 공급 & 기본적인 I/O (Input/Output) 시스템으로 MBR 실행
※ BIOS 란?
BIOS시스템은 1.무결성 검사
2.부트로더 프로그램 검색, 적재, 실행시킴
부트로더 프로그램을 감지하고 메모리에 적재하면, BIOS는 제어를 적재된 부트로더에 넘김
② MBR (Master Boot Record)
마스터 부트 레코드로 GRUB을 실행
※ MBR 란?
마스터 부트 레코드로 부팅 가능한 디스크에서 첫번째 섹터에 위치
③ 부트로더
GRUB 커널을 실행
④ 커널
/sbin/init을 실행
⑤ 파일 시스템 마운트
파일 시스템 마운트 & init 실행
⑥ 사용자 프로세스 실행
runlevel 실행
댓글