리눅스 부팅 프로세스
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 |
댓글