Information Security
20-1 부팅 프로세스 본문
부팅 프로세스(Booting Process)
부팅 프로세스의 단계
1. Power ON & ROM BIOS
-전원이 들어오면 CPU가 ROM(Read Only Memory)에 저장된 BIOS(Basic Input Output System) 실행
-BIOS는 POST(Power On Self Test/ 자체 진단 기능)작업을 수행하며 하드웨어 장치들을 하나씩 인식하며 이상 유무 확인
-부팅 장치(HDD)를 선택하여 부팅 디스크의 첫 섹터(Sector)에서 MBR(Master Boot Record)을 읽어, 부트로더(Boot Loader)가 로딩된다.
2. 부트로더 실행
리눅스 가상머신을 실행하고 time out 되기 전 아무 키나 누르면 부팅 메뉴가 실행된다.
-부팅 메뉴 실행(/boot/grub/grub.conf)
-> 실행할 운영체제와 실행 시 사용할 옵션 선택
-Kernel 이미지와, initrd(램디스크 초기화)이미지 실행
-부트로더 init 프로세스 실행
3. init 프로세스 실행
-/etc/inittab 파일 참조하여 설정된 Runlevel을 확인하여 부팅 레벨(환경) 결정
-시스템 초기화 및 관리 설정 파일 실행
과거 : System V init (init -> inittab -> rc.sysinit) 5.X
현재 : System V init + Upstart (init 프로세스 실행 -> inittab 파일 읽음 -> rcS.conf -> rc.conf -> rc.local) 6.X
미래 : Systemd (init 프로세스가 사라지고, systemd 프로세스가 모든 프로세스를 관리) Cent OS 7.X 부터..
/etc/inittab 파일 내용 확인
[id] : [runlevel] : [option]
-1~25 줄은 모두 주석
-네트워크 지원하는 CLI 환경의 런레벨 3에서 리눅스를 사용하고 있다.
initdefault
부팅 시 실행할 런레벨을 지정할 때 사용하는 옵션
**runlevel
-부가 설명 & 실습 http://leeeeye321.tistory.com/111
시스템을 어떤 방식으로 부팅할 것인지를 분류해 놓은 것
4. Login 프롬프트 및 X-Windows 실행
/etc/rc.d/rc#.d/* (# : 숫자(runlevel))
-런레벨 #으로 부팅 시 실행할 스크립트
...
...
-런레벨 3으로 부팅 시 실행할 스크립트의 목록이다.
K~(Kill) K로 시작하는 스크립트는 해당 부팅 레벨로 동작 시 실행하지 않는 스크립트이다.
S~(Start) S로 시작하는 스크립트는 해당 부팅 레벨로 동작 시 실행할 스크립트이다.
숫자 우선순위
chconfig
-서비스 데몬의 실행 레벨을 저장하고, 관리해주는 명령어
#chkconfig --list
현재 시스템 내 모든 데몬의 목록 출력
#chkconfig --list [데몬명]
특정 데몬의 런레벨마다 동작 여부 확인
#chkconfig [데몬명] [on|off|reset]
모든 런레벨에서 비활성
확인
부팅 가능한 모든 런레벨에서 활성화
확인
#chkconfig --level [#] [데몬명] [on|off|reset]
sshd 데몬이 런레벨 3에서는 동작하지 않도록 설정
확인
재부팅
-Xshell 연결을 시도하면 실패한다.
-service 명령어로 다시 sshd 데몬을 동작시켜 보겠습니다.
service
-데몬의 상태를 관리하는 명령어
#service [데몬명] [stop|start|restart|status]
콘솔에서 sshd 데몬 상태 확인(중지 상태)
sshd 데몬 시작
다시 Xshell 연결을 시도하면 성공한다.
다음 번 런레벨 3에서 부팅 시 sshd가 동작하도록 설정
확인
#service sshd restart
-중지 후 시작
-서버 프로그램이 사용하는 설정 파일의 내용을 변경한 후에 프로그램에 적용하기 위해 자주 사용하는 형식
※ 시스템에 불필요한 프로그램(데몬)이 동작하고 있다면, 중지(stop)시키거나 다음 번 부팅 시 동작하지 않도록 해주는 것(chkconfig)이 시스템 최적화의 기본이다.
'Linux' 카테고리의 다른 글
20-3 압축 유틸리티 기본 사용 (0) | 2017.10.13 |
---|---|
20-2 Run Level (0) | 2017.10.13 |
19-3 xargs 명령어 (0) | 2017.10.12 |
19-2 find 명령어2 (0) | 2017.10.12 |
19-1 find 명령어 (0) | 2017.10.11 |