Linux의 부팅의 순서 및 실행 레벨에 대해서 간략히 정리해 볼려고 한다.
기본적으로 설명은 CentOS를 기준으로 한다.
1. BIOS에서 하드디스크 0번 섹터인 MBR(Master Boot Record)로부터 boot.img를 읽는다.
- MBR은 512byte여서 파일 시스템을 해석하기에는 작음
- 그래서 1.5단계인 core.img를 점프하는 역할까지만 수행
2. 다음 파티션인 63번 섹터 이전까지의 62개의 섹터(약 30KB)에 ext, fat, NTFS와 같은 파일 시스템 드라이버를 포함
- core.img는 파일 시스템 드라이버를 로드하고 2단계로 점프
3. GRUB legacy & GRUB2의 grub.conf의 설정에 따라 운영체제 목록을 표시
- 사용자가 운영체제를 선택하면 해당 운영체제를 위한 커널을 메모리에 로드하고 제어권 넘김
4. 커널은 한번 RAM에 로드되면 종료할 때 까지 상주
- GRUB로부터 제어권을 이어받은 커널은 /sbin/init의 프로그램 실행
- Centos6는 init 프로세스, Centos7은 systemd 프로세스를 실행
5-1. Centos6의 init 프로세스 경우
- 모든 설정 및 하드웨어를 체크하기 위해 /etc/rc.d/rc.sysinit 스크립트를 수행
- /etc/inittab 파일을 읽어 실행 레벨 확인. 실행 레벨이 맞는 /etc/rc[LEVEL].d 디렉토리 밑의 스크립트 실행
- 실행 레벨과 관련된 스크립트가 모두 수행되고 나면 init 프로세스는 /etc/rc.loal에 정의된 프로세스를 마지막으로 실행
5-2. Centos7의 systemd 프로세스의 경우
- 유닛(unit)이라는 단위로 시스템 및 서비스를 제어
- 부팅 시 여러 서비스 스크립트를 병렬로 실행 가능
- init 프로세스의 실행 레벨에 대으하는 target 유닛 개념이 있음
- default.target 유닛에 심볼릭 링크되어 있는 target 유닛을 실행
마지막으로 init 프로세스의 실행 레벨 및 systemd의 target을 정리하면 다음과 같다.
레벨 | systemd target | 설명 |
0 | Poweroff.target | 시스템 종료 |
1 | rescue.target | 단일 사용자 모드. 시스템 복구언 모드로 root 권한 shell을 얻을 수 있음 |
2 | multi-user.target | 텍스트 기반의 네트워크 기능을 제공하지 않는 다중 사용자 모드 |
3 | multi-user.target | 텍스트 기반의 네트워크 기능을 제공하는 다중 사용자 모드 |
4 | multi-user.target | 현재는 사용되지 않는 모드 |
5 | graphical.target | X 윈도우를 사용하는 다중 사용자 모드 |
6 | 시스템 재부팅 |
'Computer & Program > Linux' 카테고리의 다른 글
[Linux] Shell에서의 단축키 (1) | 2021.12.23 |
---|---|
[Linux] Shell의 설정 파일 (0) | 2021.12.21 |
[Linux] 주요 디렉토리 구조 (0) | 2021.12.20 |
댓글