부트 프로세스 200811436 박철승.

Slides:



Advertisements
Similar presentations
Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제 10 강.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
강 명 수 LINUX 부팅과정 & 부트로더.
PE 로 Windows 7/8 운영체제 만들기 4 조 : 박 성 진. 1.PE로 부팅 합니다. 1) Windows7 PE CD 를 삽입 합니다. 2) BISO 설정에서 부팅순서를 CD-ROM 또는 USB 를 1 순위로 올려준다. 3) 부팅이 될 때 까지 기 달려요.
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Essential System Manager
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
MYSQL 설치.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
뇌를 자극하는 Windows Server 2012 R2
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Windows Server 장. 사고를 대비한 데이터 백업.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
강 명 수 LINUX 설치 강 명 수
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Ch 08. 부트 프로세스 Flatstar.
ServerGuide CD를 이용한 xSeries 설치가이드
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Linux Master 김희승 임승한 OneScore 임승한.
강철(cancho_at_sparcs)
Day-19(Tue_10.02) 이론적인 배경 Hypervisor(Type1) : 물리적인 자원을 추상화해서 관리해줌
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
Cross Compiler를이용한 커널 컴파일 및 포팅
플랫폼의 개념 클럭, 버스, 대역폭의 의미 64비트 PC
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
설치 환경 □ 운영체제 버전 : CentOS Linux 7.2 □ 리눅스 커널 버전 :
홀인원2.0 설치 메뉴얼.
WZC 무선 연결 방법 (Windows XP Ver.).
뇌를 자극하는 Windows Server 2012 R2
ADC 디바이스 사용법.
임베디드 시스템 개론 임베디드 타겟 보드 포팅 및 H/W 제어 3일차 강의 자료 Embedded System Lab.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
뇌를 자극하는 Solaris bible.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
WZC 무선 연결 방법 (Windows 7 Ver.).
AT MEGA 128 기초와 응용 I 기본적인 구조.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
 파일 아카이브와 압축 명령 익히기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
임베디드 시스템 개론 3주차.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
Installation Guide.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Docker Study 6~7.
시스템 해킹과 보안 permission과 SetUID.
CCISS 어레이 형식 centos7 설치방법
Presentation transcript:

부트 프로세스 200811436 박철승

부트 프로세스 들어가기 전 윈도우와 반대로 리눅스는 부팅과정을 사용자에게 보여주게 되는데, 리눅스의 부팅과정을 이해하는 것은 시스템의 전반적인 이해 부팅과정 중 각종 하드웨어의 인식과 커널 부트로더 파일시스템 마운트 시스템 초기화 스크립트 등 알 수 있다 시스템 장애시 부팅과정을 순차적으로 분석하여 장애 원인을 알 수 있으며 조치를 취할 수 있다

부팅 메세지 대부분의 시스템은 이 때 MBR영역에 설치되어 있는 GRUB 부트로더를 이용하여 리눅스가 부팅 시스템 전원 가동 POST Booting(하드웨어, 메모리 테스트 및 부팅 순서 결정되기 전 과정) BIOS에 설정되어 있는 부팅 디바이스 순서에 의해 시스템 자동 부팅 이 때 MBR영역에 설치되어 있는 GRUB 부트로더를 이용하여 리눅스가 부팅 커널 이미지 적재, 파일 시스템 마운트, 시스템 초기화 프로그램 동작하여 부팅이 이루어짐

부트 프로세스 부트(Boot) 과정 : 컴퓨터의 시동 과정 시스템 전원 ON BIOS 프로그램의 실행 부팅매체 검색 부트로더 실행 커널 부트 이미지(vmlinuz) 적재 루트(/) 파일시스템 마운트 init 프로세스 실행

부트 프로세스 1단계: 시스템 전원 ON 2단계: BIOS 프로그램의 실행 시스템에 전원을 공급하는 과정 모든 운영체제에 부팅하기 위한 첫 번째 과정 1. 메인보드의 ROM-BIOS에 있는 BIOS 프로그램들이 자동으로 실행 2. BIOS 프로그램들은 전원공급과 함께 메모리와 CPU를 작동 2단계: BIOS 프로그램의 실행 포스트(POST)과정 – 자체진단기능을 통하여 컴퓨터의 이상 유무 검사 포스트과정 중 문제가 생기면 경고음을 통해 문제를 알려줌 1. 컴퓨터에 전원이 들어오면 전류는 CPU로 흘러가고, CPU는 시동 프로그램(BIOS 프로그램)을 불러들인다 2. BIOS프로그램은 CPU를 시작으로 CMOS를 검사하고, 메모리를 테스트 후 용량 확인 3.이어서 그래픽카드, 키보드, 마우스 등 각종 장치의 이상 유무를 검사하여 장치를 초기화

부트 프로세스 3단계: 부팅매체의 검색 4단계: 부트로더의 실행 POST과정에서 검사가 완료되면 검색된 부팅매체(하드디스크, CD-ROM, Network) 중 CMOS에 설정되어 있는 순서대로 부팅을 시도 하드디스크로의 부팅에서 시스템파일의 가장 첫번째 부분(MBR: Master Boot Record)으로 부팅의 제어권을 넘긴다 MBR에 존재하는 부트로더인 GRUB를 읽고, 부트로더(GRUB)가 메모리에 적제되고 시스템의 제어권은 부트로더(GRUB)가 갖는다 4단계: 부트로더의 실행 부트로더인 GRUB는 커널을 메모리에 올려놓는다 GRUB 설정파일인 /boot/grub/grub.conf 파일을 읽어서 부팅할 커널 선택 설정에 따라 자동선택, 사용자 직접 선택 가능 GRUB는 커널이미지를 불러들이고 시스템의 제어권을 넘겨준다 커널이미지 : 커널이 하나의 파일로 디스크에 저장되어 있는 것을 의미

부트 프로세스 5단계: 커널 부트 이미지(vmlinuz) 적재 6단계: 루트 파일시스템 마운트 GRUB의 부트 메뉴에서 커널을 선택하면 커널 이미지가 동작한다 이 때 커널 이미지는 압축되어 있기 때문에 PID 0번인 swapper 프로세스를 호출한다 swapper 프로세스가 커널 이미지를 압축해제하고 커널이 사용할 각 장치드라이브들(메모리, 디스크, 시리얼 장치, 마우스 등 하드웨어)을 초기화하고 자세한 정보를 콘솔에 나타낸다 6단계: 루트 파일시스템 마운트 하드웨어 검색 후 커널은 루트(/) 파일시스템을 마운트한다 파일시스템이 안전하게 점검될 수 있도록 읽기 전용으로 마운트 이후에 읽기/쓰기로 마운트

부트 프로세스 7단계: init 프로세스 실행 모든 프로세스의 부모 역할을 하는 PID1번의 init 프로세스를 실행 여러 명령 스크립트 파일을 호출하여 시스템 초기화 진행 1. init 프로세스는 기본 시스템 초기화 스크립트인 sysinit 스크립트를 실행 sysinit 스크립트는 fsck명령어를 이용하여 로그인 프롬프트가 나오기 전까지 파일시스템 점검, 필요한 커널 모듈의 메모리 적재, 스왑 파티션 초기화, 네트워크 초기화, 서비스 프로세스 관리, 가상 콘솔 접속 관리, 실행 레벨 관리를 실행하고, /etc/fstab에 명시되어 있는 각 파티션들을 마운트하는 과정을 수행 2. sysinit프로세스 호출이 끝나고, init프로세스는 가장 먼저 /etc/inittab파일을 읽 어 들인다 /etc/inittab파일에는 시스템의 기본 실행 단계가 정의 되어 있다

id : runlevel : action : process 부트 프로세스 /etc/inittab 구성 id : id는 inittab에서 다른 설정과 구분하기 위해서 사용하는 것 1~4 글자 runlevel : 특정한 동작을 하게 되는 실행 레벨 리스트 action : 그 줄의 프로세스가 어떤 동작을 취할지 설정하는 것 -respawn : 프로세스가 종료되면 재실행하는 것 -wait : 프로세스의 특정 레벨에서 한번 실행된 init은 프로세스 종료될 때까지 대기 -once : 지정한 runlevel이 실행되면 한번만 그 프로세스를 실행 -boot : 시스템 부팅 때 그 프로세스를 실행. 이 때 runlevel 값은 무시 -bootwait : 시스템 부팅 시 그 프로세스가 실행되는데 이 때 init는 그 프로세스가 종료될 때 까지 대기 -off : 아무것도 아님. 단지 id만 존재 -ondemand : 지정한 ondemand runlevel이 호출될 때마다 그 프로세스를 실행. runlevel은 바뀌지 않는다 -initdefault : 시스템 부팅 뒤에 실행될 runlevel을 지정. 이부분이 없을 경우 어떤 runlevel을 사용할 지 콘솔에서 물어본다 -sysinit : 시스템 부팅시 그 프로세스가 실행. boot, bootwait로 지정된 프로세스보다 먼저 실행 process : 실행될 프로세스를 지정 id : runlevel : action : process

부트 프로세스 Default runlevel (기본 실행 레벨) 실행레벨 : init프로세스에 의해 시스템이 어떻게 동작할 것인지 결정하는 실행값 윈도우 부팅시 F8키를 눌러서 시스템을 어떻게 시작하려는 결정(안전모드,표준모드) 0~6번까지 7개의 값을 가지며 보통 Runlevel 3이지만, 시스템 성능이 향상되면서 요즘엔 Runlevel 5로 운영하는 시스템이 많다 Runlevel 0 : 시스템 종료(halt) Runlevel 1 : 단일 사용자 모드, 싱글 모드 Runlevel 2 : NFS를 지원하지 않는 다중 사용자 모드 Runlevel 3 : 모든 기능을 포함한 다중 사용자 모드, TUI환경 Runlevel 4 : 사용되지 않는 실행 모드(사용자가 직접 정의하여 사용 가능) Runlevel 5 : X 윈도우 부팅 Runlevel 6 : 시스템 재부팅 실행레벨이 5이라면 /etc/rc.d/rc5.d 디렉토리에 있는 스크립트를 실행 실제로는 심볼링 링크 파일만 담고 있고 rc스크립트에 의해 실행될 모든 스크립트 파일의 원본은 /etc/rc.d/init.d 디렉토리에 있다 각 실행 레벨에서 새로운 서비스를 추가하고자 하면 /etc/rc.d/init.d 특정 형식에 맞추어 실행 스크립트를 만든 후 실행 레벨 디렉토리에 심볼릭 링크를 만들면 된다

부트 프로세스 ls –l 명령어를 이용하여 링크된 파일만 존재하는 것을 알 수 있다 또한 S나 K로 시작하게 되는데 S는 데몬을 시작 K는 데몬을 종료시키는 것이다

부트 프로세스 S(Start) 파일 K(Kill) 파일 실행레벨 변경 S00microcode_ctl → S04readahead_early → S05kudzu → S06cpuspeed → S08arptables_jf 순으로 스크립트들이 실행 K(Kill) 파일 K01yum → K02NetworkManager → K03rhnsd → K05saslauthd → K10dc_server 순으로 스크립트들이 종료 /etc/rc.d/rc0.d 에서는 디렉토리내의 파일들이 모두 K*로 구성. (shutdown이기 때문) 실행레벨 변경 init 명령어 init [runlevel 0~6] 명령어 입력을 하면 바로 해당 실행레벨로 부팅 telinit 명령어 telinit [runlevel 0~6]

부트 프로세스 시스템 초기화 프로세스(init) sysinit라는 키워드가 action 필드에 지정 제일 처음 init프로세스가 실행시키는 명령어 (start-up 스크립트)

부트 프로세스 Ctrl + Alt + Delete 키 : 시스템 재시작 UPS 전원관련 시스템 종료 Ctrl + Alt + Delete 키 조합을 누르게 되면 shutdown 명령에 의해 시스템이 재부팅 되도록 설정 UPS 전원관련 시스템 종료 정전으로 인해 시스템을 보호하기 위해 무정전 전압 장치인 UPS를 이용할 경우 유용한 설정 UPS 전원이 부족할 경우 2분 후에 시스템을 종료

부트 프로세스 가상 콘솔 설정 xdm의 실행 레벨 표준 레벨로 gettys를 실행하도록 설정 6개의 가상 콘솔을 제공 X-Window의 기본 실행 레벨 설정

실행 레벨 설정 수동으로 실행 레벨 설정 각 실행레벨에 해당하는 디렉토리에 각 순위를 고려하여 /etc/rc.d/init.d 디렉토리에 존재하는 데몬 실행 스크립트 파일과 연결해주면 된다 EX) 실행레벨2는 NFS서비스를 제외하곤 실행레벨3과 같다. NFS서비스 동작 설정을 하려면 ln –s : 심볼링 링크 생성

실행 레벨 설정 chkconfig 유틸 실행 단계별로 데몬을 관리할 수 있는 편리한 관리도구 실행 레벨에 따른 실행 여부 확인 chkconfig –list | more

실행 레벨 설정 특정 데몬의 실행 여부 확인 데몬의 실행 레벨 변경 ex) 아파치 웹서버의 데몬인 httpd의 실행 레벨에 따른 실행 여부 확인 chkconfig --list daemon_name 데몬의 실행 레벨 변경 ex) 데몬 httpd를 실행레벨 2, 3, 5에 실행이 될 수 있도록 하는 등록 예 chkconfig --level 235 httpd on

실행 레벨 설정 ntsysv 유틸리티 chkconfig와 마찬가지로 실행 레벨별로 서비스 데몬을 관리하는 인터페이스 프로그램 ntsysv 입력 ( 방향키, space키, tab키를 이용) 현재로그인 되어 있는 실행레벨에서의 서비스 데몬만 설정 가능 전체 실행 레벨에서의 데몬 실행 여부를 결정하기 위해서는 ex) ntsysv --level 235

실행 레벨 설정 system-config-service : 서비스 설정 도구 각 실행레벨별로 서비스 데몬을 관리하는 그래픽 응용프로그램 system-config-services / [프로그램]→[시스템설정] →[서버설정] →[서비스]

리눅스 부트로더 GRUB(GRand Unified Bootloader) 부트로더 GRUB의 설정 파일시스템과 커널 실행 포맷을 인식하여 하드디스크 상에서의 커널의 물리적인 위치를 기록하지 않고도 커널 파일명과 커널이 위치하고 있는 파티션의 위치만을 알고 있으면 시스템 부팅이 가능 전통적인 부트로더 LILO의 단점을 보안하여 막강한 기능을 가진 Linux의 기본 부트로더로 자리를 잡았다 GRUB의 설정 설정파일 : /boot/grub/grub.conf

리눅스 부트로더 설정 파일 default=0 timeout=5 GRUB에서 기본 부팅을 시도할 부트 엔트리값 엔트리 순서는 0번부터 시작하며 현재는 title CentOS (2.6.18-238.el5) 로 부팅 된다 timeout=5 지정된 시간동안 키보드입력이 없으면 지정된 엔트리로 부팅(시간 단위는 초) splashimage=(hd0,1)/grub/splash.xpm.gz GRUB의 부팅 이미지 파일 위치를 지정 hiddenmenu hiddenmenu가 적용된 이후에는 메뉴를 숨기게 되고 부팅 중 키 조작이 있으면 hiddenmenu이후의 메뉴들을 출력 password GRUB 부트로더에 암호를 지정하는 옵션

password --md5 <password-hash> 리눅스 부트로더 password 설정 방법 MD5로 암호화된 패스워드 생성 /boot/grub/grub.conf 파일 설정 /boot/grub/grub.conf 파일에서 timeout 옵션 밑에 를 추가 # grub-md5-crypt password --md5 <password-hash>

리눅스 부트로더 title root kernel initrd title에 지정된 운영체제의 위치를 정의. ex) (hd0,0) : 첫번째 하드디스크 hd0, 첫번째 파티션 0 kernel 루트 디렉토리 내에 존재하는 기본 부트 커널 이미지 initrd initrd 이미지의 위치 및 파일명을 지정

Q & A