카이도스의 Tech Blog

리눅스 부팅 과정 이해 본문

지식

리눅스 부팅 과정 이해

카이도스 2022. 8. 3. 14:25
728x90
반응형
리눅스 부팅 과정 이해
 
 
 
•리눅스 부팅 과정을 통 해 시스템 장애 발생 시 장애의 원인을 분석하여 적절한 조치를 취할수 있다.
 
 
1.   시스템 부팅 과정
Power On
ROM-BIOS에서 지정된 부트 드라이브로 부팅 시작
부트 드라이브의 첫 번째 섹터인 부트 섹터 읽어 들임
부트 섹터의 부팅 프로그램인 Boot loader 작동
커널이미지 (/boot/vmlinuz) 적재
루트 파일 시스템 (root filesystem)마운트
시스템 초기화 프로그램(init) 작동
Login : 프롬프트
 
 
 
 
 
2.   시스템 부팅 단계
 
   1)  부팅 1단계 : ROM-BIOS
 
           - 컴퓨터 하드웨어, 각 장치 사용을 위한 인식및 준비를 위한 기초적인 프로그램
 
           - ROM-BIOS는 컴퓨터 전원이 들어오면 가장먼저 실행되는 CROM에 들어있음.
 
           - ROM-BIOS란 ROM에 들어있는 BIOS(Basic Input Output System)를의미
 
▶ ROM-BIOS의 역할
 
▷ POST ( Power On Self Test) (자체 진단기능)
•하드웨어 자체가 스스로의 시스템에 문제가 없는지 기본적인 사항을 체크
•BIOS(Basic Input / OutputSystem)에 의해 실행
 
▷ BootLoader
•Boot loader 종류에는 LILO와 GRUB가 있음.
•POST과정에서 이상이 발생하지 않으면 Boot Loader를 메모리에 로딩하여 리눅스 부팅 시작
•Boot Loader는 부팅매체(HDD, CD-ROM, USB)를 하나씩 검사.
•부팅매체의 0번섹터 (MBR)에서 Boot Program을 읽어 들여 메모리 로드.
•Boot Program(= Boot Loader, BootSector)에 GRUB이 들어있음.
•ROM-BIOS에 의해 Boot loader가 메모리에 로딩된 이후부터 ROM-BIOS는 시스템부팅
 
제어권을 GRUB에게넘겨주고 자신은 종료, GRUB이 시스템의 부팅과정을 주도하게 됨
 
▷ MBR ( Master Boot Record )
•MBR은 저장매체의 첫번째 섹터 (LBA 0)에 위치하는 512바이트 크기의 영역.
•OS가 부팅할 때 POST(Power On Self Test)를 하고, Disk의 첫번째섹터 호출을 시도.
 
 
   2)  부팅 2단계 : Boot Loader 실행과 역할
 
     2-1) 리눅스 커널 적재
 
           - GRUB실행화면에서는 어떤 커널을 로딩할 것인가를 선택 가능.
           - 리눅스 커널이 메모리에 적재되는 이 순간부터 부팅이 진행
           - GRUB은 /boot/grub/grub.conf 파일에 정의되어 있는 여러 가지 리눅스 커널 중 선택된 리눅스 커널을
             메모리에 로딩
 
     2-2) 스와퍼 프로세스 호출
 
           - 리눅스 커널 로딩이 끝난 후 수행되는 작업
   3)  부팅 3단계 : 스와퍼 프로세스
           - 스와퍼라는 프로세스의 첫번째 역할은 전에 인식했던 각 장치들의 드라이브를
           - 초기화하고 PID가 1인 init프로세스를 실행 후 그 외 몇가지 기능을 수행 부팅이 완료되면 사라짐
 
   4)  부팅 4단계 : init 프로세스의 실행
           - init프로세스는 /etc/inittab라는 설정 파일을 읽어 들여 부팅 시 화면에 뿌려주고 설정 파일대로 실행 됨.
 
   5)  부팅 5단계 : 부팅 레벨의 결정단계
 
           - /etc/inittab 설정 파일에서 시스템부팅레벨을 확인하여 부팅
 
 
 
실행레벨 (RunLevel)
0
시스템 중지(halt)
1
단일 사용자 모드, single 모드로 쉘로 바로 부팅
2
NFS 기능을 제외한 다중 사용자 모드
3
모든 기능을 포함한 다중 사용자 모드
4
사용하지 않음
5
X-Window로 부팅
6
시스템 리부팅(reboot)
 
   6)  부팅 6단계 : 부팅 레벨의 결정단계
 
            - 시스템 초기화 작업을 수행하는 스크립트
 
   7)  부팅 7단계 : /etc/rc.d/rcN.d/ 디렉토리 실행
 
            - 부팅레벨에 따라 'N'의 숫자가 바뀜
            - 부팅레벨에 따라 시스템 부팅시에 자동실행될 서비스들에 대한 설정
            - /etc/rc.d/init.d/ 디렉토리에 있는 파일이 원본
            - 'K'로 시작하는 것은 자동시작되지 않는 서비스
            - 'S'로 시작하는 것은 자동시작되는 서비스
            - 'K. S' 다음에 오는 숫자는 실행된 순서를 의미
            - S99local 은 /etc/rc.d/rc.local 파일을 원본으로 하는 링크파일로 2,3,4.5번 부팅레벨에서만 실행,
            - S99local은 부팅레벨에서 가장 마지막 단꼐 실행되는 파일.
            - rc.local 파일에는 부팅시 소스로 직업컴파일하여 설치했던 apache, mysql, proftpd등
            - 응용프로그램들을 자동실행하기 위한 설정파일
 
 
 

 

728x90
반응형

'지식' 카테고리의 다른 글

[Raid] Raid Controller 테스트  (0) 2022.08.03
[CentOs6.x] 서버 장애로 메인보드 교체시 네트워크 설정  (0) 2022.08.03
[리눅스] 부팅과정  (0) 2022.08.03
bios 업데이트  (0) 2022.08.03
inode  (0) 2022.08.03
Comments