네트워크 관리사/리눅스 서술형 단답형

리눅스

유혁스쿨 2021. 1. 8. 18:44
728x90
반응형

리눅스 부팅 절차

1. BIOS 실행단계
▶ 메인보드의 rom-bios에 있는 bios프로그램이 자동으로 실행
▶ Post실행 - coms,cpu,메모리,그래픽카드 등 하드웨어의 각 장치를 인식하고 초기화 함
▶ 부트로더 호출 - post에 문제가 없는 경우 부트로더 메모리로 로딩하여 리눅스 부팅을 시작하는 부트로더를 호출

윈도우도 부팅 절차가 있듯이 리눅스도 부팅 절차가 있다.

제일 먼저 바이오스에 내장된 rom-bios(기본 입출력 시스템) 프로그램 - 바이오스에 내장된 프로그램을 읽어들이고 실행하는 단계가 제일 먼저 실행된다.

오류가 발생하면 오류메시지를 뿌리고 실행이 중단된다.

 

문제가 없었다면 부팅에 필요한것들을 읽어들인다. 바로 부트로더를 호출하게 된다

 

리눅스에서는 이러한 부트로더가 LILO , GRUB 2가지가 있다

LILO 는 예전부터 사용되어왔으며 GRUB은 LILO의 발전된 형태이다.

LILO는 원칙적으로 텍스트 기반의 운영체제 형태만 제공을 하며, GRUB은 그래픽 환경까지 제공을 한다.

여기서 부트로더란 부팅에 필요한것들이 들어있는 프로그램이다.

 기본적인 정보를 lilo.conf , grub.conf - 즉, 환경설정파일을 실행하게 된다.

2. GRUB 실행
▶ 부트로더 grub이 실행되면 부팅할 운영체제를 선택하고 원하는 커널을 찾아 부팅을 수행
▶ 리눅스 커널 적재 - 리눅스 커널이 메모리에 적재되는 순간 본격적으로 부팅 진행
▶ 스와퍼 프로세스 실행 - 각 장치들이 드라이버를 초기화 한 후 init 프로세서를 실행

리눅스가 커널(여기서 커널은 핵심적인 장치를 말한다) 에 로딩되며, 리눅스 커널이 메모리에 적재되는 순간 본격적인 부팅이 이루어지게 된다.

그 다음 스와퍼 프로세스가 실행된다. 즉, 각각의 장치들의 드라이버가 모두 초기화 된 뒤에 init 프로세스가 실행된다.

init 프로세서 리눅스에 기본 디렉토리중의 하나가 etc라는 디렉토리이며, etc는 시스템 설정과 관련한 시스템 설정파일이 저장되어 있는 디렉토리가 바로 etc이다.

3. Init 프로세서 실행
▶ /etc/inittab 파일에 설정된 내용을 순차적으로 실행

etc디렉토리 안에 inittab파일이 순차적으로 실행된다.

 

inittab(Initialize Tab)

init (initial) - 초기화

시스템을 부팅할 때 , 부팅하는 내용들이 그래픽환경, 텍스트환경 혹은 단일사용자 로 부팅해달라는 요구사항이 있을 때 이것을 runLevel이라 하며

runLevel이 무엇이냐에 따라서 조금씩 실행되어야 할 내용의 차이점이 있다는 것이다.

바로 이 리눅스의 실행레벨에서 실행되어야 할 정보등의 내용이 들어있는것이 바로 inittab이다.

 

 

GRUB의 환경설정 파일 grub.conf

참고로 리눅스는 오픈 무료 라이센스 이기 때문에, 리눅스의 버전이 센토스,우분투,페도라,레드헷 등여러가지가 있으며

위 표의 그림은 센토스리눅스 화면이다.

#boot=/dev/hda - 부트에대한 마운트 정보

default = 0 / timeout=5 등 설정한 내용대로 부팅이 된다.

 

4. /etc/rc.d/rc.sysinit 실행
▶ SI::sysinit:/etc/rc.d/rc.sysinti 항목의 스크립트 실행
▶ 해당 스크립트는 기본 파일 경로설정 , 네트웍 설정확인과 적용, 스왑작동, 도메인 네임 설정 , 파일시스템 점검 , 커널 모듈 로딩, 모듈 의존성 설정, 시스템시간/폰트 설정, 각종 시스템 초기화 수행작업 등을 담당

시스템 initialize 즉, 각종 시스템 초기화 수행작업 항목들의 스크립트가 /etc/rc.d/rc.sysinti에서 실행된다.

 

5. 부팅 레벨별 스크립트 실행
▶ /etc/rc.d/rc번호.d 스크립트 파일을 실행(번호는 부팅 레벨번호)
▶ /etc/rc.d/rc번호.d 디렉토리에 있는 파일들은 모두 /etc/rc.d/init.d 디렉토리에 있는 파일로 링크되어 있는 링크파일 이므로 실제 실행될 링크파일은 /etc/rc.d/init.d 디렉토리에 존재

rc번호라는것은 바로 runLevel이며, 리눅스의 runLevel은 0~6까지 있다.

즉, 각각의 스크립트 파일이 실행된다.

init.d 디렉토리에 있는 각 스크립트 파일은 링크파일 이므로 실제로 실행되는것은 스크립트 파일이 아닌 init.d 디렉토리이다.  

부팅레벨에 따라 스크립트 번호가나오며 해당 스크립트가 실행되면 그 안에 링크되어 있는 init.d 디렉토리를 찾아가 궁극적으로 해당 레벨에 대한 실행내용이 실행된다. 

 

6. 매직키 설정
CTRL + ALT + DEL 키의 실행을 설정하여 /sbin/shutdown -t3 -r now 명령을 실행한 것과 같은 효과를 나타내도록 함

어떠한 키들을 조합해서 명령을 실행한 것과 같은 효과를 나타내는것을 매직키 라고 한다.

(여기서 shutdown은 시스템을 종료하라는 뜻이다.)

 

7. 시스템 전원공급 설정
▶ 시스템 전원공급 설정 수행
8. 가상 콘솔 실행
Inittab 8번 영역에 해당하는 부분으로 각 콘솔 전환방법은 ALT + F1~F6을 눌러서 해당 콘솔 실행
▶ Respawn
mingetty 프로세스가 종료되면 다시 자동으로 재실행 된다는 의미

가상 콘솔이 실행되면

 

9. 로그인 프롬프트
▶ 부팅레빌이 5번이라면 x윈도우 실행
▶ 아니면 텍스트 모드에서의 로그인 화면이 나타남

1번부터 8번까지 실행에 문제가 없으면 로그인 프롬프트 즉, 사용자에게 계정을 입력하여 로그인 정보를 입력하라는 입력창에 커서가 뜨게된다.(텍스트, 그래픽 모드로 부팅이된다.)

예를들어 runLevel 즉, 부팅레벨이 5번이라면 텍스트 환경이 아닌 그래픽환경인 x윈도우가 실행되며 그 외 부팅레벨 (5번이 아니라면)이면 텍스트 모드에서 로그인 화면이 나타난다.


1. 리눅스 부팅과 디렉토리 (rms)

 

 


리눅스 시스템 종료와 재부팅을 위한 명령어

1. Shutdown - 시스템을 종료하거나 재부팅 할 때 사용      
형식 : shutdown [옵션] [시간] [메시지]

옵션
-r : 시스템 재부팅
-f : 다음 부팅시 파일 시스템 검사를 하지 않음

-h : 셧다운 시 halt작업 실행,
-c : 예약되어 있는 shutdown 작업을 취소
-t n : 경고 메시지를 보낸 후 n초 후에 kill시그널 전송
예)
shutdown -r now
시스템을 재부팅하라는 의미
shutdown -h now
 시스템을 종료
shutdown -h 17:00
 17시에 시스템을 종료
shutdown -r 15
 15분 후에 시스템 재부팅

 

2. Halt - 시스템을 종료할 때 사용
형식 : halt [옵션]

옵션
-f : 강제종료
-d : /var/log/wtmp 파일에 기록을 남기지 않음
예)
halt
시스템을 종료
3. Reboot - 시스템을 재부팅할 때 사용  
형식 : reboot [옵션]
옵션
-f : 강제 재부팅
예)
reboot : 시스템을 재부팅 하라는 의미
reboot -f : 시스템을 강제로 재부팅 

 

4. Init - 앞서 학습한 RunLevel중에 재부팅, 종료 레벨을 init을 사용하여 표시
형식 : init 런레벨 예)
init 0 : 시스템을 종료
init 6 : 시스템을 재부팅

 

리눅스 디렉토리 명령어
01. /root - root 디렉토리

02. /dev - 리눅스 시세틈의 모든 장치들이 파일로 표시되어 있음
예) /dev/hda - master IDE 하드디스크
     /dev/hdb - slave IDE 하드디스크
     /dev/sda - 첫번째 scsi 혹은 sata 하드디스크

03. /boot - 시스템이 부팅될 때 부팅 가능한 커널 이미지 파일을 담고 있는 디렉토리

04. /home - 사용자 계정이 위치하는 파티션

05. /usr -사용자가 사용하는 프로그램이 설치되는 디렉토리

06. /bin - 바이너리나 실행파일의 기본적인 프로그램이 위치하는 디렉토리

07. /etc - 시스템 설정 파일이나 계정 정보가 저장

08. /lib - 시스템 운영에 필요한 공유 라이버러리 이미지와 프로그램 공유코드부분을 저장

09. /mnt - 파일 시스템을 일시적으로 마운트 할 때 사용

10 /proc - 커널이 마운트 된 디렉토리로 동작중인 커널이 디렉토리 형태로 접근하며,
디렉토리 내용을 편집하면 메모리에 운영중인 커널기능을 제어할 수 있음

11. /sbin - 시스템 관리용 프로그램 저장

12. /tmp - 임시 파일을 저장

13. /var - 로그 파일이나 스풀 파일이 저장(파일크기 변경)

마운트

하드디스크에 대한 정보를 윈도우에서는 파티션으로 나눴을때 드라이버로 조직을 나눠주지만 리눅스같은 경우엔 드라이버로 나뉘지 않고 나누어진 각각의 영역을 하나의 장치로 연결시켜 주는 작업

 

/etc 디렉토리
사용자 관리를 위한 암호관련 파일, 네트워크 정보를 담고 있는 파일 등 시스템 전반적인 관리 파일이 들어있는 디렉토리로써 하위 디렉토리는 아래와 같다.
서브 디렉토리 기능
/etc/fstab 리눅스 시스템 부팅시에 처리되는 마운트 정보를 포함
/etc/passwd 리눅스 사용자들의 계정 정보와 패스워드, 사용 쉘 및 홈 디렉토리 정보를 가짐
/etc/shadow 패스워드 정보가 암호화 되어 있는 파일
/etc/group 사용자 그룹에 대한 정보 포함
/etc/cron.* 시스템에 주기적인 스케줄링을 하고자 할 때 cron 데몬을 이용하는데 관련된 파일이 위치
/etc/xinetd.d Xinetd 데몬에 의해 동작하는 서비스 데몬들의 설정파일이 포함
/etc/init.d 리눅스 시스템 부팅시 실행되는 프로그램과 시스템 종료시 동작중인 프로그램을 중단시키는 스크립트가 init.d에 존재
/etc/skel 사용자 계정 생성시 useradd명령 사용
이때, 각 계정의 홈에 환경파일이 생성되는데 필요한 파일이 존재

 


리눅스 부팅관련 선택형 유형 문제

# 아래는 <LINUX부팅 및 로그인 과정을 보여주고 있다. ID가 '1'인 프로세스는 (A)안에 저장되어 있는 스크립트들을 수행시켜 수행단계(RunLevel)별 프로세스들을 생성한다. (A)에 들어갈 알맞은 파일을 <보기>에서 하나 선택하여 답안란에 번호를 입력하시오.

제시문제 문제 해결 후 시스템 상태
[답안란] :  1. /etc/inittab
풀이
실행하게 되는 프로레스에 대한 기본적인 정보는 rc.rocal에 있으며, 이곳의 링크에서 실제로 수행단계 별 프로세서를 만들어 내는것은 inittab이다.


rc.rocal 

서버가 부팅될 때 매번 자동실행 되어질 내용을 기록해놓는 스크립트

 


 

# 아래는 <LINUX> 시스템에서 즉시 종료하는 명령어이다. "halt"와 "shutdown -h now"와 동일한 기능을 수행하기 위하여 빈칸 (A)에 해당하는 숫자를 답안란에 입력하시오

제시문제
[답안란] : 0
풀이
init 명령어의 옵션은 0부터 6까지 총 7개가 있으며, 이중 즉시 종료하는 명령어 옵션은 0이다.

 


# 아래는 redhat 7.x linux의 /etc/inittab 파일의 내용이다. 현재 설정되어 있는 default run level의 번호와 <내용>에서 가장 적절한 번호를 답안란에 적으시오.

제시문제 내용
[답안란] :  3. RunLevel 3 - Full multiuser mode
풀이
default run level이란 기본 런레벨 이라는 뜻이므로 현재 기본 런레벨은
id:3:initdefault로 RunLevel 3인 다중 사용자 모드가 된다. 


추가로 이 다중 사용자 모드는 네트워킹을 지원하는 다중 사용자 모드로서 텍스트 모드에서 로그인화면이 띄워지게 된다.
728x90
반응형