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 적용 }