자격증/리눅스마스터 2급

01. 리눅스 일반 - 2

박 성 하 2022. 4. 8. 13:17
728x90

02. 리눅스의 설치

Section 1 : 리눅스 설치 및 유형

배포판 설치

  • 사용자 지정 설치를 제외한 다른 유형은 자동으로 하드디스크를 재구성하므로 기존 자료가 모두 삭제된다
  • 플러그 앤 플레이(Plug and Play) 기능을 이용하여 자동으로 하드웨어를 검색

Section 2 : 리눅스 부트

부트 매니저(Boot Manager)

  • 필요로 하는 운영체제를 선택하여 부팅하는 기능

리눅스 부팅 과정

단계 진행 과정 설명
1단계 ROM-BIOS - POST(Power On Self Test) 과정 후 하드웨어 이상 유무 검사한 후 에러 발생 시 알림
- 부트 로더 로딩
2단계 부트 로더 - 커널 로딩 후, 스와퍼 프로세스 호출
- LILOGRUB가 있음
3단계 스와퍼 프로세스 -장치들의 드라이버 초기화
- 'init' 프로세스 실행
4단계 'init' 프로세스 - '/etc/inittab' 파일 읽음
5단계 부트 레벨 결정 - 부트 레벨 결정
6단계 'rc.sysinit' 스크립트 실행 - 'etc/rc.d/rc.sysinit 스크립트 실행하여 시스템 초기화 작업 진행
7단계 'rcx.d' 스크립트 실행 - 'etc/rcx.d' 스크립트 실행하여 해당 부트 레벨 스크립트 순차적으로 진행
8단계 'X윈도 실행' - 부트 레벨이 5일 경우 X-Window환경으로 부팅

부트 로더(Boot Loader)

  • 부트스트랩 로더(Bootstrap Loader)의 약어
  • 하드디스크에 저장된 운영 체제를 주기억 장치에 적재해 주는 프로그램
  • 운영체제 실행 전 미리 실행
  • 하나의 시스템에 여러 개의 운영체제가 설치되어 있을 경우, 선택하여 부팅할 수 있는 멀티 부팅 지원

부트 로더 종류 및 특징

LILO(Linux Loader) GRUB(Grand Unified Bootloader)
리눅스 운영체제에서만 사용 가능
반드시 'MBR(Mater Boot Record)'에 설치되어야 하는 것은 아니다
다양한 운영체제를 선택해서 사용할 수 있다
그래픽 로그인일 때 Linux와 다른 운영체제가 보인다
'text'로그인일 때 tab키를 누르면 사용 가능한 운영체제를 볼 수 있다
/etc/lilo.conf파일을 수정하여 LILO를 설정할 수 있다
GRUB보다 먼저 개발되었다
다르 운영체제와 리눅스를 동시에 부팅 가능하게 해주거나, 여러 버전의 커널로 부팅이 가능하게 해주는 프로그램이다
리눅스 운영체제 외에도 사용 가능
'LILO'의 단점을 보완
대화형 모드로 부팅, 설정 가능
IDE 하드디스크를 장착한 순서대로 인식한다
부트 디스크를 통한 부팅을 지원하지 않는다
리눅스의 명령어를 설치하기 위한 프로그램이다
리눅스의 설치에 필요한 크기를 확보하기 위한 프로그램이다
리눅스 부트 디스크를 만들기 위한 프로그램이다

/etc/lilo.conf
-LILO 설정 파일
-boot = /dev/hda : 'LILO'가 설치될 파일
-map = /boot/map : 'LILO'에 의해서 자동으로 생성되는 파일
-install = /boot/boot.b : 부트 섹터 위치 정보를 가진 파일
-timeout = 50 : 키보드 입력이 없을 시 자동 부팅시간 '5초'로 설정

grub 환경설정 파일 내용

[root@localhost ~]# cat /boot/grub/grub.conf
default = 0
timeout = 5
splashimage=(hd0.0)/grub/splash.xpm.gz
password --md5 $1$6h8Y01$HIA5xjCDV9VznbBAZw05o1
hiddenmenu
title CentOS (2.6.18-308.el5)
            root (hd0,0)
            kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/
            initrd /initrd-2.6.18-308.el5.img
옵션 설명
default 초기 부팅화면에서 메뉴를 선택하지 않았을 경우, 기본 부팅 메뉴선택
timeout 대기 시간을 단위로 설정
대기 시간 동안 메뉴를 선택하지 않았을 시, 기본 부팅 메뉴로 부팅
splshimage 초기 부팅 화면의 배경 이미지 설정
password 부팅 시 GRUB모드로 들어가기 위한 패스워드
패스워드 항목이 존재하지 않을 시 패스워드 없이 진입 가능
title 초기 부팅화면의 메뉴에 나타나는 제목
root 루트 장치 설정
'root'(하드디스크 장치명, 부트 파티션명)
ex) 'root (hd0,0)'의 의미는 첫번째 하드디스크의 첫번째 파티션이 루트 장치라는 의미
kernel 커널 이미지 파일의 경로 지정
initrd SCSI 하드디스크를 사용할 경우 반드시 지정해야 하는 항목
지정하지 않을 시 'kernel panic' 오류 발생

런 레벨(Run Level)

  • 리눅스 부팅의 마지막 단계에서 모든 프로세스의 부모 프로세스init이 생성
  • 부팅 시 init 프로세스가 참조하는 것이 런 레벨런 레벨 실행 스크립트 파일```shell
    [root@localhost ~]# pwd
    /etc/rc.d
    [root@localhost rc.d]# ls -l
    drwxr-xr-x. 2 root root 70 10월 16 2019 init.d
  • rw-r--r-rr. 1 root root 473 10월 31 2018 rc.local
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc0.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc1.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc2.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc3.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc4.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc5.d
    drwxr-xr-x. 2 root root 45 10월 16 2019 rc6.d
    |파일|설명|
    |:--:|:--:|
    |**init.d**| 서비스를 시작, 종료, 재시작하는 <span style="color:#0080ff">**스크립트 파일**</span> 저장|
    |**rc.local**| 부팅시 자동으로 <span style="color:#0080ff">**명령어**</span> 스크립트 파일 수행 |
    |**rc0.d~rc6.d**| 런 레벨별로 실행해야하는 서비스들의 디렉터리|
    ####런 레벨 설정
    ```shell
    [root@localhost ~]# cat /etc/inittab
    id:runlevels:action:process
    [id:3:initdefault:]
    

[root@localhost ~]# runlevel
N 3

#### 런 레벨 운영 모드
|런 레벨|운영 모드|설명|
|:------:|:-----:|:------:|
|**0**|Halt|시스템 종료|
|**1**|Single User Mode|단일 사용자 모드(CLI)|
|**2**|Multi User Mode <br> (Without Networking) | 다중 사용자 모드(CLI)<br>(네트워크 사용 불가)|
|**3**|Multi User Mode<br>(Only Console Login)|다중 사용자 모드(CLI)|
|**4**|Not Used|사용하지 않음|
|**5**|Multi User Mode<br>With Display Manager|다중 사용자 모드(GUI, X-Window)|
|**6**|Reboot|재시작|

### 로그인 및 로그아웃
#### 로그인
1. 로그인 과정
- 로그인 프롬포트에서 아이디(ID)/패스워드(password)를 입력한다.
-> 입력한 패스워드와 '/etc/passwd' 파일 비교 후 일치하면 로그인을 허용한다.
2. 프롬포트 종류
- <span style="color:#0080ff">**'root'**</span> 사용자 로그인 프롬포트
```shell
[root@localhost ~]#
  • 일반 사용자(test) 로그인 프롬포트
    [test@localhost ~]$
  1. 로그인 메시지 출력
출력 파일 설명 상태
/etc/issue 로컬 접속 시 메시지 출력 로그인 전
/etc/issue.net 원격 접속 시 메시지 출력 로그인 전
/etc/motd 로컬, 원격 접속 시 로그인 성공 후 메시지 출력 로그인 후

motd : message of the day

로그아웃

  1. 명령어 종류
    [root@localhost ~]# logout
    [root@localhost ~]# exit
  2. 자동 로그아웃 설정 (일정 시간 지난 후)
    300초 후에 로그아웃
    [root@localhost ~]# cat /etc/profile
    ....
    export TMOUT=300
    ....

시스템 종료 명령어

  1. shutdown
  • 시스템을 종료하거나 재시작하는 명령어
  • 저장되지 않은 데이터를 안전하게 디스크에 저장하고, 모든 파일 시스템을 'umount'시킨 후 시스템 종료

1) 기본 형식

[root@localhost ~]# shutdown [옵션][시간][경고 메시지]

2) 옵션

옵션 설명
-c 예약된 종료 명령을 취소
-h 시스템을 안전하게 종료
-k 종료 명령을 수행하지 않고, 메시지만 전달
+m 'm'분 후에 시스템 종료
-P 시스템 강제 종료
-r 시스템 재시작
-t 지정 시간에 시스템을 종료하거나 재시작
-f shutdown 전에 실행되던 프로세스를 강제 종료하고, 시스템을 종료한다
  1. init
  • 시스템을 종료하거나 재시작하는 명령어

1) 기본 형식

[root@localhost ~]# init [런 레벨]

2) 활용

  • 런 레벨을 '0'으로 지정할 경우 시스템 종료
    [root@localhost ~]#init 0
  • 런 레벨을 '6'으로 지정할 경우 시스템 재시작
    [root@localhost ~]#init 6
  1. halt
  • 시스템을 종료하는 명령어

1) 기본 형식

[root@localhost ~]# halt [옵션]

2) 옵션

옵션 설명
-f 시스템을 강제 종료(Power Off)

3) 활용

  • 옵션 없이 사용하면 모든 프로세스는 종료되지만 전원은 꺼지지 않는다.
    [root@localhost ~]# halt
  • 옵션(-f)을 지정할 경우, 모든 프로세스가 종료되고 전원도 꺼진다.
    [root@localhost ~]# halt -f
  1. poweroff
  • 시스템을 종료하는 명령어

1) 기본 형식

[root@localhost ~]# poweroff

시스템 재시작 명령어

  1. reboot
  • 시스템을 재시작하는 명령어

1) 기본 형식

[root@localhost ~]# reboot [옵션]

2) 옵션

옵션 설명
-f 시스템을 강제 재시작

Section 3 : 파일 시스템과 파티션

파일 시스템

  • 파일에 이름을 붙이고 저장이나 검색을 위하여 파일을 어디에 위치시킬 것인지를 나타내는 모든 조직체계

파일 시스템 기능

  • 파일에 대한 다양한 종류의 접근 제어 방법 제시
  • 파일의 생성, 수정, 삭제 관리
  • 파일의 무결성 유지보안 유지 기능을 제공
  • 데이터의 백업 및 복구기능 제공
  • 데이터의 효율적 저장과 관리를 위한 방법 제공무결성
  • 데이터가 완전한 수명 주기를 거치며, 정확성과 일관성을 유지하고 보증하는 것
  • 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미

파티션

  • 하나의 물리적인 디스크를 여러 개의 논리적인 디스크로 분할하는 것을 의미
  • 파티션 상태를 확인하는 파일 : /proc/partitions
  • Disk Druid : 사용자가 좀 더 쉽게 파티션을 분할 할 수 있도록 지원하는 유틸리티종류
    파티션 설명
    기본 파티션 - 4개의 파티션까지 분할 가능
    - 4개 이상의 파티션이 필요할 경우 확장 파티션 내에 논리 파티션을 만듦
    확장 파티션 - 논리 파티션을 만들 수 있게 하는 공간
    - 디스크 당 하나만 만들 수 있음
    - 주 파티션을 3개 사용 후 선언 가능
    논리 파티션 - 확장 파티션 내에 생성됨
    - 최대 12개까지 생성 가능
    스왑 파티션 - 하드 디스크 일부를 주기억장치처럼 사용하는 가상기억장치
    - 기본 파티션 또는 ** 논리 파티션에 생성
    - 스왑 영역의 크기는 주기억장치의 2배**로 설정

장점

  • 부팅시간 단축
  • 안정성
  • 백업과 업그레이드 편리

파티션 분할

  • fdisk 명령어로 디스크 파티션을 관리한다.

1) 기본 형식

[root@localhost ~]# fdisk [옵션][장치명]

2) 옵션

옵션 설명
-a 부팅 가능한 플래그로 지정
-l 파티션 유형 목록 출력
-m 목록 출력
-n 새로운 파티션 생성
-t 파티션 유형 변경
-w 파티션 정보를 디스크 테이블에 기록
-p 파티션 정보 확인
-q 작업 종료 후 빠져나감

3) 디스크와 장치명

  • SCSI, S-ATA, SAS, USB 유형은 '/dev/sda', '/dev/sdb' 등을 사용
  • IDE(E-IDE)유형은 '/dev/hda', '/dev/hdb' 등을 사용
디스크 유형 설명 장치명
플로피 디스크 첫 번째 플로피 디스크
두 번째 플로피 디스크
/dev/fd0
/dev/fd1
IDE 유형 디스크 Primary Master
Primary Slave
Secondary Master
Secondary Slave
/dev/hda
/dev/hdb
/dev/hdc
/dev/hdb
SCSI 유형 디스크 첫 번째 드라이브
두 번째 드라이브
/dev/sda
/dev/sdb
CD-ROM SCSI CD-ROM /dev/scd0 또는 /dev/sr0

/dev/sd a 2
-sd : 하드디스크 유형 (SCSI유형 하드디스크)
-a : 디스크 개수 (첫 번째 물리적인 하드디스크)
-2 : 파티션 번호 (두 번째 파티션)

디렉터리

  • 최상위 디렉터리(/) 아래로 계층적인 트리 구조로 이루어져 있다
디렉터리 설명
/ 루트 디렉터리
/bin 'System Binary'의 약어로 이진 파일이며, 기본 명령어가 저장된 디렉터리
/usr 시스템에 사용되는 각종 프로그램이 설치되는 디렉터리
/etc 각종 환경설정 파일과 디렉터리가 저장된 디렉터리
/sbin 시스템 관리를 위한 명령어가 저장된 디렉터리
/lib 라이브러리 파일이 저장된 디렉터리
/var 동적인 파일을 저장하는 디렉터리
/tmp 임시 디렉터리로, 스티키 비트가 설정
각 장치에 필요한 'socket 및 log' 파일들이 위치
/root root의 홈 디렉터리
/proc 프로세서, 프로그램, 하드웨어 정보가 저장된 디렉터리
물리적인 용량을 가지지 않는 디렉터리
/dev 장치 드라이버가 저장된 디렉터리
/home 일반 사용자의 홈 디렉터리
/opt 추가된 응용 프로그램 패키지가 설치되는 디렉터리

LVM(Logical Volume Manager)

  • 여러 개의 물리적인 하드디스크를 논리적인 디스크로 할당하여 유연하게 관리할 수 있도록 도와줌
  • 하나의 대용량 파일 시스템으로 만든다
  • 대용량 저장 공간이 필요할 때 주로 사용

볼륨 설명
물리적 볼륨 각각의 파티션을 'LVM'으로 사용하기 위해 형식을 변환시키 것 (/dev/hda1, /dev/hda2 등)
볼륨 그룹 PV로 되어 있는 파티션을 하나의 물리적인 그룹으로 만듦
/dev/sda1을 하나의 그룹으로 만들 수 있고, /dev/sda1과 /dev/sda2를 하나의 그룹으로 만들 수 있음
논리적 볼륨 사용자가 다루게 되는 부분
실질적인 파티션
크기를 확장 및 축소시킬 수 있음

RAID(Redundant Array of Independent Disks)

  • 여러 개의 물리적인 하드디스크를 하나의 논리적인 디스크로 인식하게 만드는 기술
  • 여러 개의 하드디스크에 동일한 데이터를 다른 위치에 중복해서 저장

종류

종류 설명
하드웨어 RAID 여러 개의 하드디스크로 만들어 공급
소프트웨어 RAID 주로 운영체제 안에서 구현

RAID 레벨 구조

1) RAID 0

  • 스트라이핑 사용
  • 오류가 발생하면 모든 데이터를 잃어버릴 수 있음
    스트라이핑
    : 드라이브를 병렬로 사용할 수 있는 기술

2) RAID 1

  • 미러링을 통해 하나의 디스크처럼 사용
  • 사용할 수 있는 용량이 절반밖에 되지 않음
  • 미러링된 디스크를 통해 복구 가능 > **미러링** : 같은 데이터를 2개의 디스크에 저장하여 복사본을 만드는 기술

3) RAID 0+1

  • RAID 0RAID 1를 결합하는 방식
  • 2개씩 RAID 0으로 묶고 이것을 다시 RAID 1로 결합하는 방식

4) RAID 2

  • 오류 정정을 위해 해밍 코드를 사용하는 방식으로, 비트 단위에 해밍 코드를 적용

5) RAID 3/4

  • 하나의 디스크를 패리티 정보를 위해 사용하고, 나머지 디스크에 데이터를 균등하게 분산 저장하는 방식
  • 읽기 성능RAID 0과 비슷하나, 쓰기는 패리티 처리로 인해 성능 저하가 일어난다
  • 하나의 디스크에 오류가 발생하면 패리티 디스크를 통해 복구 가능
  • 모든 블록이 각 디스크에 균등하게 저장되진 않는다
  • 병목 현상이 발생하면 성능 저하가 발생할 수 있다
    패리티
    : 오류가 생겼는지를 검사하기 위해 추가되는 비트
  • 병목 현상*
    : 용량이 하나의 구성요소로 인해 제한을 받는 현상

6) RAID 5

  • 3개 이상의 디스크를 하나의 디스크처럼 사용
  • 각각의 디스크에 패리티 정보를 가지고 있는 방식
  • 하나의 디스크에 오류가 발생해도 다른 두 개의 디스크를 통해 복구
  • 병목 현상이 발생하지 않는다

7) RAID 6

  • 하나의 패리티를 두 개의 디스크에 분산 저장
  • 두 개의 디스크에 오류가 발생해도 복구 가능
  • 쓰기 속도는 패리티를 10번 쓰기 때문에 느려지지만, 안정성은 높아진다
728x90

'자격증 > 리눅스마스터 2급' 카테고리의 다른 글

02. 리눅스 운영 및 관리 - 3  (0) 2022.04.08
02. 리눅스 운영 및 관리 - 2  (0) 2022.04.08
02. 리눅스 운영 및 관리 - 1  (0) 2022.04.08
01. 리눅스 일반 - 3  (0) 2022.04.08
01. 리눅스 일반 - 1  (0) 2022.04.07