Linux

Linux) 부팅 프로세스

5_jinseok12 2018. 2. 19. 12:30
728x90

부팅 프로세스.

 

1. Power On

- 전원이 들어오면 CPU가 ROM(Read Only Memory)에 저장된 Bios(Bios Input Output System) 실행

-  BIOS는 POST(Power On Self Test/자체진단기능)을 수행하여 하드웨ㅇ의 장치들을

   인식하며 하나 이상 유무를 확인

- 하드디스크를 인식하며 첫번째 섹터(Sector)에서 MBR(Master Boot Record)을

  읽어 들여 부터로더를 실행한다

 

 

위와 같은 화면이 뜬 것을 본적 있을 것 이다.

이런 화면이 뜨는 것을 POST라고 한다.

 

POST : 예전에는 컴퓨터를 부팅할 때 포스트 화면이 많이 보여졌지만 요즘은 회사 로고로 많이 가리는 편.

    포스트를 통해 컴퓨터의 상태를 알 수 있다.

 

 

 

 

재부팅 화면 중 e 키를 누르면 아래 화면처럼 바뀐다

<e>는 부팅 메뉴 편집을 해주는 기능이다.

 

#vi /boot/grub/grub.conf : 부팅 메뉴 출력

- 부팅하고자 하는 운영체제를 선택하면, 해당 메뉴에 설정된 옵션에 따라 운영체제가 부팅된다

- vmlinuz 커널 이미지 파일이 메모리에 로딩되어 압축이 해제되고 운영체제가 실행된다..

 이때 vmlinuz 파일에는 하드웨어를 조작할 수 있는 장치 드라이버가 없기 때문에

 추가적인 장치 드라이버를 사용하기 위해 initrd.img 파일을 함께 메모리 로딩한다,

- 리눅스 대표 부르토러 GRUB

- 부트로더는 init 프로세스를 실행한다.

 

vm linuz : 기본적인 하드웨어만 조작할 수 있는 압축된 운영체제.

inittab
 - init 프로세스는 /etc/inittab 파일을 참조하여 설정된 Runlevel을 확인한다
   런레벨(부팅레벨/실행환경)
  - 시스템을 어떤 방식으로 부팅할 것인가를 분류해놓은것
  
  0 : 시스템 종료
  1 : 싱글 유저 모드
  2 : 네트워크 기능이 없는 다중 사용자 모드
  3 : 네트워크 기능이 있는 다중 사용자 모드
  4 : 사용하지 않음
  5 : X-window (GUI 환경)
  6 : 시스템 재부팅

 

위에 옵션들을 참고해보자면,

default =0 . 즉 시스템 종료할 때

timeout =5.  5초의 타이머.

 

#vi /etc/inittab을 통해 확인한다.

id:3:initdefault : 3레벨(가운데 숫자)을 사용하고 있다고 출력해준다.

[id]:[renlevel]:[option]

과거에는 해당파일에 부팅 시 실행할 내용이 모두 작성되어 있으나

현자에는 런레벨만 결정하고 있다.

 

런레벨

  0 : 시스템 종료
  1 : 싱글 유저 모드
  2 : 네트워크 기능이 없는 다중 사용자 모드
  3 : 네트워크 기능이 있는 다중 사용자 모드
  4 : 사용하지 않음
  5 : X-window (GUI 환경)
  6 : 시스템 재부팅
 

 

영구적으로 런레벨을 변경할 때
  #vi /etc/ininttab
  일시적으로 런레벨을 변경할 때
  (1)#init [runlevel]
  (2)부팅 과정 중에 옵션을 변경을 통해도 가능하다.

 

Sing User Modde

 

이런 방법이 바로 부팅 과정 중에 옵션을 변경하는 것이다.

위에서 본 부팅시 5초의 시간안에 e를 입력한다면 이런 화면을 볼 수 있다.

 

1. 부팅 후, GRUB부트 메뉴로 진입하여 "E"키를 눌러 설정을 편집한다. (EDIT)
 2. 커널이미지가 로딩이 될때 사용하는 옵션을 편집하기 위해 "E"키를 눌러 설정을
    편집한다. 싱글모드를 의미하는 숫자 1, 혹은 single을 입력한다. (일시적)
 3. "ENTER"키를 눌러 저장 한 후, "B"버튼 눌러 부팅을 한다. 
 4. 로그인 과정없이 root의 권한을 가지게 된다.
     패스워드변경, fstab 파일 수정 등, 부팅이 안될때 문제를 해결 할 수 있다.

 

 

싱글 유저 모드는 부팅에 필요한 최소한의 설정으로 부팅한다.

부팅 시 사용되는 파일에 오타나 잘못된 설정으로 부팅이 되지 않을 경우 싱글 유저 모드로 진입하여 문제를 해결할 수 있다.

ex) etc /fstab.root 패스워드 분실 등/

root계정으로 들어가는 것이 쉬워서 보안상 문제가 있을 수 있어 보일수도 있지만

원격으로 제어할 수 없으므로 내부 네트워크나 내부 관리자만 문제없다면 보안상 안전하다고 할 수 있다.

 

 

 

GRUB 부트로더 설정 프로그램

 

password를  passwd1 로 지정한다. 밑에 바로 내가 지정한 비밀번호가 출력된다.

원래 root 계정 같은 경우 비밀번호가 아예 안보이게 입력되는것에 비해 바로 출력되니까

싱글 유즈 패스워드는  별로 안중요한거 같지만 오히려 더 중요하다고 할 수 있다.

중요한 패스워드 이므로 한번 더 확인을 시켜주는 평문으로 출력되는 것이다.

 

#vi /boot/grub/grub.conf

상단에 추가

password --md5[암호화된 패스워드]

#reboot

부팅 메뉴 편집을 하기 위해서는 먼저 패스워드<p>를 입력해야지만 편집<e>가 가능하다

 

p를 눌러서 패스워드를 입력해서 잠금을 해제하지 않는 이상 e를 누를 수 없다

root 패스워드를 잊어버리고 싱글 유즈모드의 password까지 잊어버린다면 재설치밖에 답이 없다.

그러므로 싱글 유즈모드의 password는 절대 잊어버리면 안된다.

 

 

 

X-Windows 환경 구성하기 위한 패키지 설치

#yum groupinstally -y "X Window System" "Desktop" "Fonts" "Korean Support"

- 런레벨이 결정이 되면 /etc/rc.d/rc#.d 디렉토리에 위치한 스크립트가 실행된다

여기서 #이란 런레벨의 해당하는 숫자를 의미.

ex) Runlevele 3 -> /etc/rc.d/rc3.d

 

위의 rc3.c 의 파일들을 출력해본 후  S55sshd를 알아보자

S (start) - 부팅시 실행되는 스크립트

k (Kill) -  종료 시 사용되는 스크립트(부팅 시 실행되지 않음)

숫자 55 - 숫자/종료 시 동작할 우선순위

데몬명 sshd(프로그램명)

 

파일의 이름을 변경해서 동작 방식을 사용자가 수정하는 것이 아니라

명령어를 이용하여 부팅 시 동작할 프로그램을 결정할 수 있다.

 

 

#chkconfig

#chkconfig : 데몬의 실행 런레벨을 설정하고 관리하는 명령어

-- list 현재 시스템에 모든 데몬을 리스트 형태로 출력한다.

 

ex) #chksonfig --list sshd

항상 원격제어 xshell로 들어올 수 있었던 것도 3이 활성화가 되어 있었기 때문이다.

 

위에서는 #chkconfig -- list sshd 를 입력함으로써 sshd를 모두 비활성화 한다는 입력.

즉 3번도 비활성화를 통해 원격제어도 비활성화가 된다.

 

#chkconfig[데몬명][on|off|reset]

#chkconfig sshd off : 동작 가능한 런레벨에서 모두 비활성화

#chkconfig sshd on : 동작 가능한 런레벨에서 모두 활성화

#chkconfig sshd reset : 기본값으로 초기화.

 

#chkconfig --level 3 sshd off

런레벨 3으로 부팅시 sshd 데몬을 비활성화 하겠다. 즉 특성 레벨을 비활성화 하고 싶을땐 위처럼 직접 입력하면 된다.

원격제어는 3이 활성화가 되어야 되므로 다른 기능은 다 그대로지만 3만 비활성화이기 때문에

reboot으로 재부팅하고 나면 xshell로 접속할 수 없다.

 

#service : 현재 데몬의 상태를 관리하는 명령어

#service[데몬명][stop|start|restart|status]

 

#service sshd status : sshd 데몬의 현재 상태 확인

#service sshd start : sshd 데몬 활성화

#service sshd restart  : sshd 데몬 stop -> start (중지 후 재시작)

 

현재 상태에 따라 데몬이 켜져있을수도 있고 꺼져있을 수도 있기 때문에 

데몬 종류 중에서 [실패]가 뜨는건 문제가 되지 않는다.

네트워크 관리자 데몬 시작중에 [OK]가 뜬다면 문제없이 실행되고 있는 것이다.

 

영구적으로 바꾸고 싶을 땐 #vi /etc/inittab를 입력한 후

id:5:initdefault 를 통해 영구적으로 바꾼다.

 

 

 

 

 

 

반응형

'Linux' 카테고리의 다른 글

Linux 압축과 아카이브  (0) 2021.08.27
Linux) yum개념 및 실습  (1) 2018.02.19
Linux) RPM  (0) 2018.02.19
Linux 파일 검색(find)  (0) 2018.02.13
Linux 파일시스템 RIAD-1, RAID-5 , 볼륨  (0) 2018.02.09