Simple is IT, 누구나 보고 누구나 깨닫는 IT

리눅스의 부팅 과정 본문

Simple is IT/Server

리눅스의 부팅 과정

currenjin 2020. 5. 6. 09:30
기본적인 부팅과정

1. Power On

2. Power On Self Test

3. Basic Input/Output System 단계

4. 부팅 장치 검색

5. 부트 로더 실행 (Grub 실행, /boog/grub2/grub.cfg, /etc/default/grub)

6. 실행 할 커널 선택 (커널 이미지 파일 : vmlinuz)

7. 커널 로드 및 PID 1번 실행

8. 기타 필수 프로그램 실행 (해당 Run level에 맞는 시스템이 실행)

9. 부팅 완료 (boot log file : /var/log/boot.cfg)

런 레벨(Run Level)

: 숫자 또는 문자로 표현된 시스템의 상태를 나타내는 값이다.

0 (halt, 시스템종료) : 0으로 변경 시 시스템 종료

1 (Single User Mode, 시스템 복원 모드) : 기본적으로 '관리자 권한'을 획득 - 주로 파일 시스템 점검, 패스워드 분실 시 사용

2 (Multi User Mode, NFS) : 네트워크를 사용하지 않는 텍스트 유저 모드

3 (Full Multi User mode) : 거의 모든 자원 사용 가능한 텍스트 유저 모드

4 : Unused

5 : level 3과 비슷하나 X Windows가 실행된 그래픽 유저 모드

6 (Reboot, System Reboot) : 6으로 변경 시 시스템 재부팅

관련 명령어

who -r : 현재 및 이전 런 레벨을 확인

init [run level] : 런 레벨 스크립트를 실행

rpm -qa | grep kenel / uname -r : 커널 버전 확인

shutdown

-r : 재부팅

-h : 종료

-t : 시간 지정

halt, poweroff : rc0 스크립트들을 실행하지 않으므로 해당 프로세스가 있으면 문제가 발생할 수도 있다.

reboot : 기본적으로 시스템을 런 레벨 3으로 설정하면서 시스템을 즉시 종료 시킨다.

* MBR(Master Boot Record)

저장 매체의 가장 첫번째 저장 공간(0번 섹터) 512바이트, 매직넘버(2), 파티션 테이블(64, 주 파티션 개당 16), 부트 코드 (446)으로 구성되어 있다. 부트로더(GRUB)를 로드시킨다.

실습

{ 커널 이미지 실습

vi /boot/grub2/grub.cfg

87 lines menuentry 'CentOS ... ... // 해당 메뉴

linux16 /vmlinuz ... ... // 메뉴 선택 시 실행 될 커널 -> boot directory에 존재하는 커널

커널을 업그레이드 하여 실행해보자.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvg https://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum -y install yum-plugin-fastestmirror

yum --enablerepo=elrepo-kernel install kernel-ml -y

cat /boot/grub2/grub.cfg 를 확인해보면 새로 생성되어있다.

init 6

-> 추가한 커널 이미지 선택

커널 이미지 지우는 방법

yum remove [커널 버전]

yum.conf 파일 수정

installonly_limit=5 // 5개까지 업데이트를 유지하겠다. }

{ root password 분실 시

init 1 실행 // 관리자 모드로 접속한다.

(or 커널 선택 화면에서 'e' 입력 시 /boot/grub2/grub.cfg 파일로 접속 후 커널 파일 ro -> rw, rhgb quite -> init=/bin/bash 저장)

접속이 되었으면 mount -o remount.rw /

passwd 명령으로 변경하거나 '/etc/shadow'의 password field를 공백으로 둔다.

touch /.autorelabel, exec /sbin/init // 재부팅 }

{ kernel 버전 기본 실행

grub2-editenv list // 현재 기본값으로 지정된 kernel 버전

grub2-set-default 'kernel version' // 기본값인 kernel 버전 변경 }

{ Grub Password Setting

grub2-mkpasswd-pbkdf2 // 현재 사용하는 grub의 password 설정

나온 값들을 복사 한 후

vi /etc/grub.d/40_custom // 맨 밑줄에다가 해당 내용 복사

set superusers="root"

password pbkdf2 root <복사 한 값>

grub2-mkconfig -o /boot/grub2/grub.cfg // 윗 내용들을 부팅 grub 적용 }


Comments