리눅스

리눅스 부팅 프로세스

박영욱 2017. 4. 16. 16:48

리눅스 부팅 프로세스

1. Power ON & ROM BIOS

-전원이 들어오면 CPU가 ROM에 저장된 BIOS 실행

- BIOS는 POST을 수행하여 하드웨어 장치들을 하나씩 인식하며 이상 유무 확인

- 부팅 장치에서 Bootsector에 MBR을 읽어드려 부트로더를 실행

 

리눅스 부트로더 - LILO -> 현재 사용 안함

 GRUB -> 현재 널리 사용하고 있는 부트로더

 

2. 부트로더 (GRUB) 실행

 

-부팅메뉴 (/boot/grub/grub.conf) 실행 , 부팅하고자하는 운영체제를 선택

- Kernel 이미지 (/boot/vmlinuz-*)가 메모리 로딩이 되고 , 동작에 필요한 프로세스를 생성한다.

 

3. init 프로세스 실행 (PID=1)

- /etc/inittab 파일을 참고하여 설정된 RunLevel 실행

- 부팅 레벨이 결정되면 /etc/rc.d/rc.sysinit 스크립트 실행

(PATH변수 설정 ,네트워크 설정 ,스왑메모리, 호스트 등등)

- 해당 Runlevel에 맞는 /etc/rc.d/rc#.d/* 디렉토리에 스크립트가 실행

 

S로 시작하는 파일은 해당 부팅 레벨로 부팅시  자동으로 실행되는 파일

K로 시작하는 파일은 자동으로 실행되지 않는 파일

숫자 파일들이 실행되는 우선순위

 

 

RunLevel - 시스템을 어떤 방식으로 부팅할 것인가를 분류해 놓은 것

0 - 시스템 종료

1 - 싱글유저모드(안전 모드)

2 - 네트워크 기능이 없는 다중 사용자 모드

3 - 모든 네트워크 기능을 지원하는 다중 사용자 모드

4 - 사용되지 않음

5 - X-Window

6 - 시스템 재부팅

 

root 패스워드 분실 시

런레벨 1 (싱글 모드)

- timeout 전에 엔터 키 입력 후 , e키 클릭 들어가서 수정

- single or 1 입력 후 부팅

GRUB에 password 설정

#grub

grub >md5crypt

Password :    

$1$/4tmG/$af6lPOuXQnASdyh5TkVol/

qrub > quit 종료

vi /boot/grub/grub.conf

password -md5 $1$/4tmG/$af6lPOuXQnASdyh5TkVol/

 

 


 

#reboot -> grub 부트로더 메뉴로 진입

#chkconfig

-데몬의 실행 레벨 정보를 관리 해주는 프로그램

#chkconfig --list //리스트 확인

#chkconfig --list [데몬이름]

#chkconfig --[add|del] [데몬이름]

#chkconfig --level # [데몬이름] [on|off|reset]

 

런레벨 3에서는 sshd 데몬이 부팅 시 자동으로 실행되지 않도록 설정

# chkconfig --level 3 sshd off

#reboot 후에 Xshell을 이용하여 해당 Server-A 접속 == 안됌

 

 

service sshd start //sshd 데몬 실행

Xshell 접속 시도 //가능


시스템 초기화및 관리 프로세스

-과거 system V init방식으로 시스템 초기화(init -> inittab -> rc.sysinit)

-현재 system V init + Upstart 방식을 함께 사용(init ->rcS.conf ->rc.conf -> rc.local)

-미래 Systemd