본문 바로가기
OS/Cent OS

리눅스의 부팅 과정

by 티옌.liy 2017. 2. 5.

리눅스 부팅 프로세스



1. Power ON & ROM BIOS

- 전원이 들어오면 CPU가 ROM에 저장된 BIOS를 실행한다.

- BIOS는 POST(자체 진단 기능)을 수행하며, 하드웨터를 인식하며 이상 유무를 확인한다.

- 부팅 할 디스크를 선택하여 부팅 디스크의 첫 번째 부트로더를 실행한다.


2. 부트로더 실행 ( GRUB )

- GRUB가 실행되면, 부팅메뉴를 출력하고 커널이미지와 init 프로세스를 실행한다.

1) 종류

- LILO : 구식 리눅스에서 사용하는 부트로더.

- GRUB : 최신 리눅스에서 사용하는 부트로더.


3. init 프로세스 ( PID=1 )

- /etc/inittab 파일을 참조하여 설정된 runlevel을 실행한다.

runlevel - 시스템을 어떤 방식으로 부팅할 것인지 분류해놓는다.


init 0 ) 시스템 종료

init 1 ) 싱글 유저 모드 ( 응급복구, 안전모드 )

init 2 ) 네트워크 기능이 없는 다중 사용자

init 3 ) 모든 네트워크 기능을 지원하는 다중 사용자 모드  - CLI , TUI

init 4 ) 사용되지 않는다.

init 5 ) X-windows - 리눅스에서 지원하는 GUI환경 (GNOME, KDE)

init 6 ) 시스템 재부팅


- 부팅 레벨이 결정되면 /etc/rc.d/rc.sysinit 스크립트를 실행한다. (network, swap memory, host name, system time...)

- 해당 런레벨에 맞는 /etc/rc.d/rc[숫자].d/* 스크립트 실행


이때, K로 시작하는 파일은, 부팅 시 실행되지 않는 스크립트 파일이고, S로 시작하는 파일은

부팅 시 실행되는 스크립트 파일이다. 그리고 K, S 뒤의 숫자는 파일이 실행될 순서를 의미한다.


/etc/rc.d/rc.local 파일은 각 사용자들이 부팅시 자동으로 실행할 프로그램이나 스크립트를 설정할 수 있다.

윈도우의 시작프로그램 같은 역할이다.


4. 로그인 프롬프트.

- 사용자의 ID와 Password를 입력하면 사용자의 권한에 따라 컴퓨터를 이용할 수 있다.


여담으로 시스템 초기화 및 관리 프로세스가

과거에는 System V init    ( init -> inittab -> rc.sysinit )

현재에는 System V init + Upstart ( init -> rcS.conf -> rc.conf -> rc.local )으로 구성된다.

최근에는 Systemd 하나로 모든걸 관리한다. ( 리눅스 3.X커널이나 CentOS 7.0이상 버전에서 사용한다.)

'OS > Cent OS' 카테고리의 다른 글

VMware에서 Bonding으로 서버 구축하기  (0) 2017.02.12
RPM & YUM  (0) 2017.02.11
chkconfig 과 service  (0) 2017.02.05
LVM ( Logical Volume Manager )  (0) 2017.02.05
파일검색 Find  (0) 2017.02.04
압축과 아카이브  (0) 2017.02.04

댓글