전체적인 시스템 부팅 과정은 아래와 같다.
■ 부트로더 : 부트섹터(MBR, Master Boot record)에 적재되어 있는 프로그램.
CentOS에는 GRUB
부트로더에 의해 선택된 운영체제로 부팅 시작
■ 커널 : 부트로더에 의해 운영체제 부팅이 시작되면 맨 먼저 커널(kernel)이 동작됨.
부팅 시 시스템 내의 하드웨어를 인식하여 그에 대한 정보를 보여주는데 이를 커널 메시지라
한다.
■ 부트스플래시 : 부팅 진행 상황을 그래픽으로 보여주는 것.
(BootSplash) CentOS에서는 RHGB(RedHat Graphical Boot)이 기능 제공
■ 루트 파일 시스템 마운트
커널 동작 후 initrd.gz 또는 initrd.img로 된 램 초기 디스크가 동작하여
리눅스가 설치된 파티션을 루트 파일시스템으로 읽기 모드(Only-read)로 마운트됨
운영체제 적재 끝나면 rc.sysinit 스크립트에 의해 로컬 디스크가 읽기/쓰기 모드로 다시 마운트됨
* 응급복구모드에서는 루트 파일시스템이 읽기 모드로만 마운트되어 있으므로, 읽기/쓰기 모드로
재 마운트 시켜 주어야 시스템 파일 수정 가능(mount -o remount,rw /)
■ 시스템 초기화 프로세스(init, inittab)
1. 루트 파일 시스템이 마운트된 후 프로세스 ID(pid) 1번 값을 가지는 init 프로세스에 의해
시스템 초기화 실행
* init 프로세스는 로그인 프롬프트 나오기 전까지 파일 시스템 점검, 서비스 프로세스 관리, 가
상 콘솔 접속 관리, 실행 레벨 관리 등 리눅스 사용환경을 위한 초기화 작업 실행
2. init 프로세스가 실행되면 가장 먼저 /etc/inittab 파일을 읽어들임
3. inittab 파일은 맨 처음 /etc/rc.d/rc.sysinit 스크립트 구동
(네트워크 설정, 호스트이름 설정, /proc 마운트, 시스템 시간 설정, 시스템 폰트 구동, 스왑 구
동, 루트 파일 시스템 및 리눅스 파일 시스템 마운트 및 점검, 하드 디스크 최적화, Raid 디바
이스 구동 등의 작업 진행)
4. default로 지정되어 있는 /etc/rc.d/rc 디폴트번호 가 실행됨
○ 런레벨
<런레벨 정의> : 런레벨은 총 7가지가 있음
- 0 : 시스템종료(halt)
- 1 : 싱글유저(윈도우의 안전모드와 유사, root의 비밀번호 변경 가능)
- 2 : 멀티유저(NFS(Network File System) 기능 제외)
- 3 : 멀티유저(모든기능 포함, 콘솔 부팅)
- 4 : 사용 안함
- 5 : x윈도우
- 6 : 재부팅
5. 시스템 재시작 Ctrl-Alt-Del키 설정
재시작키 설정을 없애려면 주석 처리
만약 명시된 사용자만이 이 조합키를 사용할 수 있게 하려면 -a 옵션 사용
-> /etc/shutdown.allow 파일 만들고 여기에 사용자 추가
6. UPS 전원 부족 시에 자동으로 셧다운하기
UPS 파워가 부족할 경우 2분 후에 자동으로 셧다운
UPS 전원이 충전되어 전원 공급에 문제가 없을 경우 실행한 셧다운 명령을 취소
7. 가상 콘솔 접속을 위한 mingetty 설정
리눅스에서는 6개의 가상 콘솔을 제공
가상 콘솔을 제공하는 프로토콜 : getty (주로 mingetty와 mgetty가 많이 사용됨)
respawn은 커널 메모리 상에서 프로세스가 실행되었다가 죽으면 다시 실행되어 살아날 수 있도록
해 주는 명령. 로그아웃 후에도 계속 같은 로그인 프롬프트가 뜨는 이유.
8. X window 실행
실행레벨이 5인 경우 preefdm 스크립트에 의해 엑스 윈도우로 부팅 이루어짐
/etc/sysconfig/desktop 파일에 명시되어 있는 오픈 데스크톱 유형에 따라 엑스 디스플레이 관
리자가 실행되어 엑스 로그인 화면 나타남
CentOS에서는 GNOME을 기본 데스크톱 환경으로 지원하므로, gdm(Gnome Display Manager)
가 동작함