페도라 리눅스 Chapter 08 리눅스의 부팅과 종료
OS/Fedora Linux

페도라 리눅스 Chapter 08 리눅스의 부팅과 종료

리눅스 시스템의 부팅
리눅스의 부팅 과정
     PC부팅      리눅스 부팅


전원 ON
> 바이오스단계
> 부트 로더 단계
> 커널 초기화 단계
> systemd 서비스 단계
> 로그인 프롬프트 출력

 

바이오스 단계

  • PC의 전원 스위치를 켜면 가장 먼저 바이오스(BIOS, basic input output system)가 동작
  • 바이오스는 PC에 장착된 기본적인 하드웨어(키보드, 디스크 등)의 상태를 확인한 후
    부팅 장치를 선택하여 부팅 디스크의 첫 섹터에서 512B를 로딩
    이 512B를 마스터 부트 레코드(master boot record, MBR)라고 명칭
     바이오스 단계의 세부 동작

전원 ON
> 하드웨어 검사
Post (power on self test)
> 부팅 장치 선택
> MBR 로드
> 부트 로더 로드
> 부트 로더 단계

 

부트 로더 단계

  • 부팅할 운영체제를 선택할 수 있도록 메뉴를 제공
  • 리눅스 커널을 메모리에 로딩하는 역할 수행

가장 아래는 안전모드(rescue) >>

 

 

 

 

 

커널 초기화 단계

  • 시스템에 연결된 메모리, 디스크, 키보드, 마우스 등의 장치를 검사 (기본적인 초기화 과정)

 

systemd 서비스 단계

  • 리눅스가 본격적으로 동작하기 시작
  • 기존의 init 스크립트를 대체한 서비스

 


systemd 서비스
리눅스의 init 런레벨 / 런레벨과 target 유닛의 관계

 

systemd 관련 명령

systemctl
  • 기능 : systemd 를 제어
  • 옵션 :
    • -a :상태와 관계 없이 유닛 전체 출력
    • -t 유닛 종류 : 지정한 종류의 유닛만 출력
  • 명령 :
    • start : 유닛을 시작
    • stop : 유닛을 정지
    • restart : 유닛을 재시작
    • enable : 부팅 시 유닛이 시작하도록 설정
    • disable : 부팅 시 유닛이 시작하지 않도록 설정
stop : 유닛 서비스 정지

[user1@localhost ~]$ su -              *switch user

암호:
[root@localhost ~]# systemctl stop crond.service
[root@localhost ~]# systemctl status crond.service

 

단일 사용자 모드로 전환 : rescue.target(런레벨1)

다음 명령 중 하나를 사용하여 단일 사용자 모드로 전환 가능
systemctl isolate rescue
systemctl isolate runlevel1
init 1
telinit S

리부트 하고 싶은 경우 ?
systemctl isolate rescue < reboot
systemctl isolate runlevel1 < runlevel6
init 1 < 6
telinit S < 6

* NFS 포함 multi user 명령 4가지 ?

 


리눅스 시스템의 종료
리눅스 종료 방법
  • shutdown 명령
    • 셧다운한다는 메시지 보내고 종료
2분 후에 시스템이 종료되도록 설정하고 메시지를 보내려면 다음과 같이 지정
[root@localhost ~]# shutdown -h +2 "System is going down in 2 min"

시스템 즉시 종료
[root@localhost ~]# shutdown -h now
  • halt 명령
  • poweroff 명령
  • 런레벨 0 or 6 으로 전환
  • reboot 명령
  • 전원 종료 (최후의 수단)

 

런레벨 변경
런레벨 0 = 시스템 종료 상태 ( 런레벨을 0으로 바꾸면 시스템이 종료됨 )
[root@localhost ~]# telinit 0

시스템 재시작 = 런레벨 6
[root@localhost ~]# telinit 6

 

기타 시스템 종료 명령
halt : 멈춤

 


데몬 프로세스

 

데몬(daemon)
  • 리눅스의 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세스
  • 각종 서비스를 제공하는 프로세스
    • 리눅스 시스템에서 동작하는 웹 서버나 데이터베이스 서버, 원격 접속 서버 등

 


연습문제

01 | 리눅스의 부팅 과정을 5단계로 나누어 설명하시오.

더보기

바이오스 단계 > 부트로더 단계 > 커널 초기화 단계 > systemd 서비스 단계 > 로그인 프롬프트 출력

 

02 | 부트 로더의 역할을 설명하시오.

더보기

리눅스 커널을 메모리에 로딩하는 역할

 

08 | abc.service 유닛이 동작 중인지(active) 확인하는 명령은 무엇인가?

더보기

systemctl status abc.service

 

해설)

systemctl status 유닛명 : 지정한 유닛의 상태 정보를 출력한다.

상태 정보창에서 동작 중인지 확인할 수 있다.

녹색으로 표시된 active (plugged) : 활동중

 

09 | abc.service 유닛을 시작하는 명령은 무엇인가?

더보기

systemctl start abc.service

 

10 | 시스템에 문제가 있어서 단일 사용자 모드로 전환해야 한다. 기존 런레벨을 이용하는 방법과 systemd를 이용하는 방법을 각각 설명하시오.

더보기

systemctl isolate rescue.target

systemctl isolate runlevel1.target

 

11 | 시스템을 종료하는 방법을 두 가지 이상 설명하시오.

더보기

shutdown 명령 사용

poweroff 명령 사용

halt 명령 사용

런레벨 0 혹은 6으로 전환

reboot 명령 사용

전원 끄기

 

12 | 시스템을 2분 후에 종료하려고 한다. 사용자들에게 메시지를 보내고 종료하려면 어떻게 해야 하는가?

더보기

shutdown -h +2 "System is going down in 2 min"