본문 바로가기
Computer & Program/Linux

[Linux] 부팅(Booting)

by TDRemon 2021. 12. 15.
반응형

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

댓글