본문 바로가기
카테고리 없음

[Linux] 리눅스 시스템 부팅 과정

by 떵해이 2020. 12. 15.
300x250

○ 리눅스 부팅 과정을 알아야 하는 이유

    ▷ 리눅스 시스템 부팅 과정을 정확하게 알아야 시스템 장애 발생 시 정확하게 처리 가능

    ▷ 부팅하는 과정중에 에러가 자주 발생하기 때문

    ▷ 부팅 과정을 정확히 이해해야 리눅스라는 운영체제를 알 수 있음

    ▷ 부팅 과정의 에러들은 주로 커널패닉, 부트로더에러가 대부분입니다.

    ▷ 부팅 중 하드웨어에 대한 인식 과정을 이해, 커널이 어떻게 메모리로 올라가 부팅이

        완료되는지에 대한 부팅 과정의 모든 것들을 이해해야 합니다.

 

○ 리눅스 부팅 과정

부팅 과정을 크게 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 명령어로 설정 적용

(자세한 건 Grub개념편 참조)

 

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 실행

반응형

댓글