- programmers
- Linux
- 리눅스마스터2급
- Python
- 자격증
- study
- Artificial_Intelligence
- Kubernetes
- c++
- datastructure
- Image_classification
- 오블완
- Univ._Study
- C
- Java
- Personal_Study
- Baekjoon
- Operating_System
- cloud_computing
- codingTest
- Algorithm
- pytorch
- tensorflow
- 티스토리챌린지
- Database_Design
- 2023_1st_Semester
- Unix_System
- app
- Android
- SingleProject
코딩 기록 저장소
[PART1] 리눅스 일반 - Ch.02 리눅스의 설치 본문
01. 리눅스 설치 및 유형
리눅스 설치 유형
- 배포판마다 다르지만 데스크톱, 서버, 사용자 정의 유형 등으로 구분
최소 (Minimal) | - 필수 패키지만 설치 |
데스크톱 (Desktop) | - 개인용 컴퓨터에 적합한 패키지 설치 - 문서 작성, 멀티미디어, 그래픽 도구 등 설치 |
서버 (Server) | - Basic 서버 : 서버 운영 관련 필수 패키지 설치 - Web 서버 : 아파치 서버 관련 패키지 설치 - FTP 서버 : 파일 전송 서버 관련 패키지 설치 - DB 서버 : 데이터베이스 서버 관련 패키지 설치 |
랩톱 (Laptop) | - 노트북 PC 관련 패키지 설치 |
가상 호스트 (Virtual Host) | - 가상화 시스템 관련 패키지 설치 - 하이퍼바이저 소프트웨어(KVM, Xen) 설치 |
Software Development Workstation | - 소프트웨어 관리 도구를 포함한 패키지 설치 - 소스 컴파일 도구를 포함한 패키지 설치 |
사용자 지정 (Custom) | 사용자에게 필요한 패키지 직접 선택하여 설치 |
배포판 설치
- 사용자 지정 설치를 제외한 다른 설치 유형을 선택시 설치과정에서 자동으로 하드디스크를 재구성함
- 기존 자료는 모두 삭제됨
- 중요한 자료는 리눅스를 설치 전에 모두 백업해야 함
- 하드웨어 정보 파악
- 최근 리눅스 배포판들을 하드웨어 호환성 뛰어남
- 플러그 앤 플레이 (Plug and Play) 기능을 이용해 자동으로 하드웨어 검색
- 하드웨어 문제 발생시 오류처리 가능
- 하드웨어 (H/W)
중앙처리장치 (CPU) - 제조사 및 모델명 확인
- 중앙처리장치 종류 확인 (32/64 비트)주기억장치 (RAM) - 주기억장치 용량 확인
- Swap 파티션 생성 시 사용하드디스크 드라이브 (HDD) - 하드디스크 장치 종류 확인
- 하드디스크 장치 파일명 확인
- IDE, E-IDE 인터페이스 장치명 : /dev/hda
- SCSI, S-ATA, SSD, USB 인터페이스 장치명 : /dev/sda네트워크 인터페이스 카드 (NIC) - 제조사, 모델명, 유/무선 여부
- 네트워크 인터페이스 정보 확인
- NIC 장치 파일명 : /etc/sysconfig/network-scripts/eth0비디오 카드 (Video Card) - 제조사 및 모델명 확인
- 비디오 램(RAM)크기, 해상도와 색상 확인기타 장치 - 모니터, 키보드, 마우스, 프린터 등의 제조사 및 모델명 확인 - 시스템 정보
- ROM-BIOS : 시스템 전원 켜고, F2 또는 Delete 키 누르면 BIOS 화면 확인 가능
- 장치 관리자 : 시스템 부팅 후 [제어판] -> [시스템 및 보안] -> [장치관리자]를 선택함
- 네트워크 : 호스트 이름, TCP/IP 정보 (IP주소, Subnetmask주소, Gateway주소, DNS주소)
- 하드웨어 (H/W)
02. 리눅스 부트
부트 매니저 (Boot Manager)
- 부팅시 사용자 PC에 설치되어 있는 운영체제 중 필요로 하는 운영체제를 선택하여 부팅하는 기능
리눅스 부팅 과정
단계 | 진행 과정 | 설명 |
1단계 | ROM-BIOS 실행 | - 'POST(Power On Self Test)' 과정 수행 - 하드웨어 이상 유무 검사 - 에러 발생시 알림 - 부트 로더 로딩 |
2단계 | 부트 로더 실행 | - 부트로더 실행해 커널 로딩 - 스와퍼 프로세스 호출 - 'LILO'와 'GRUB'가 있음 |
3단계 | 스와퍼 프로세스 실행 | - 장치들의 드라이버 초기화 - 'init' 프로세스 실행 |
4단계 | 'init' 프로세스 실행 | - 'init'프로세스 실행해 'etc/inittab' 파일 읽음 |
5단계 | 부트 레벨 결정 | - 부트 레벨을 결정 |
6단계 | 'rc.sysinit' 스크립트 실행 | - 'etc/rc.d/rc.sysinit' 스크립트를 실행해 시스템 초기화 작업 수행 |
7단계 | 'rcx.d' 스크립트 실행 | - '/etc/rcx.d'스크립트를 실행해 해당 부트 레벨 스크립트를 순차적으로 실행 |
8단계 | X 윈도 실행 | - 부트 레벨이 '5'일 경우 X윈도 환경으로 부팅 |
부트 로더 (Boot Loader)
- '부트스트랩 로더(Bootstrap Loader)'의 약어
- 하드디스크에 저장된 운영체제를 주기억장치에 적재
- 운영체제가 실행되기 전 미리 실행, 커널이 안정적으로 실행되기 위한 모든 관련 작업 수행
- 하나의 시스템에 여러 개의 운영체제가 설치되어 있을때, 선택하여 부팅 가능(멀티 부팅)
- 부트 로더 종류 및 특징
- LILO (Linux Loader)
- 리눅스 운영체제에서만 사용 가능
- GRUB (Grand Unified Bootloader)
- 리눅스 운영체제 외에도 사용 가능
- 'LILO'의 단점을 보완
- 대화형이므로 커널의 경로와 파일 이름만 알면 부팅 가능
- 메뉴 설정 환경을 지원, 대화형 모드로 부트 정보를 설정 가능
- LILO (Linux Loader)
- GRUB
- 환경설정 파일 내용
default - 초기 부팅화면에서 메뉴를 선택하지 않았을 경우, 기본 부팅 메뉴 선택
- 각 메뉴의 번호는 '0'번부터 시작timeout - 초기 부팅 화면에서 대기 시간을 초 단위로 설정
- 이 시간 동안 메뉴 선택하지 않으면 기본 부팅메뉴(default 항목)로 부팅splashimage - 초기 부팅화면의 배경 이미지 설정 password - 부팅 시 GRUB 모드로 들어가기 위한 암호화된 패스워드
- 'password'항목이 존재하지 않는다면 패스워드 없이 GRUB 모드로 들어갈 수 있음title - 초기 부팅화면의 메뉴에 나타나는 제목
- 간단한 설명문(comment)을 적어도 됨root - 해당 메뉴로 부팅 시 사용할 루트 장치를 지정
- 루트 장치를 설정하는 형식 : root (하드디스크 장치명, 부트 파티션명) ex:root (hd0.0)kernel - 커널 이미지 파일의 경로 지정 initrd - SCSI 하드디스크를 사용하는 경우 반드시 지정해야 하는 항목
- 해당 메뉴로 부팅 시 사용할 'Initrd' 이미지를 지정
- SCSI 하드디스크로 부팅 시 'initrd' 항목이 설정되어 있지 않으면 'kernel panic' 오류 발생 - GRUB 편집 모드
- 초기화면에서 'c'키 입력
- 편집 모드에서 사용하는 키(Key)
↑ 위로 이동 ↓ 아래로 이동 a 커널과 관련된 매개변수 추가 b 선택된 부트 메뉴로 시스템 부팅 c 대화식으로 직접 입력할 수 있는 모드 d 선택된 행 삭제 e 선택된 부트 메뉴 편집 o 새로운 행을 커서 다음 행에 삽입 O 새로운 행을 커서 앞 행에 삽입 Ese GRUB 이전 메뉴로 이동
- 환경설정 파일 내용
런 레벨 (Run Level)
- 리눅스 부팅의 마지막 단계에서 모든 프로세스의 부모 프로세스인 'init'이 생성됨
- 부팅 시 'init' 프로세스가 참조하는 것이 런 레벨
- 런 레벨은 0에서부터 6까지 있음
- 런 레벨 실행 스크립트 파일
- init.d : 여러 가지 서비스 데몬들을 시작하고 종료, 재시작하는 스크립트 파일들이 저장됨
- rc.local : 부팅 시 자동으로 명령어 스크립트 수행
- rc0.d~rc6.d : 각 런 레벨별로 실행해야 하는 서비스들의 디렉터리
- 런 레벨 운영 모드
런 레벨 운영모드 설명 0 Halt 시스템 종료 1 Single User Mode 단일 사용자 모드 (CLI) 2 Multi User Mode (Without Networking) 다중 사용자 모드 (CLI) (네트워크 사용 불가) 3 Multi User Mode (Only Console Login) 다중 사용자 모드 (CLI) 4 Not Used 사용하지 않음 5 Multi User Mode With Display Manager 다중 사용자 모드 (GUI, X 윈도) 6 Reboot 재시작
로그인 및 로그아웃
- 로그인 및 로그아웃 환경
- 'GUI (X 윈도)' 환경에서 로그인/로그아웃
- 'CLI (Command Line Interface)' 환경에서 로그인/로그아웃
- 로그인
- 로그인 과정
- 로그인 프롬프트에서 아이디(ID) / 패스워드(Password)를 입력
- 'etc/passwd' 파일 비교 후 일치하면 로그인 허용
- 프롬프트 종류
- 'root' 사용자 로그인 프롬프트
[root@localhost ~]#
- 일반 사용자(seed) 로그인 프롬프트
[seed@localhost ~]$
- 'root' 사용자 로그인 프롬프트
- 로그인 과정
- 로그아웃
- 명령어 종류
- 로그아웃을 실행하기 위한 명령어 : logout, exit
- Ctrl + D
- 자동 로그아웃 설정 (일정 시간 지난 후)
- 300초 후에 자동 로그아웃
export TMOUT=300
- 300초 후에 자동 로그아웃
- 명령어 종류
시스템 종료 명령어
- shutdown
- 시스템을 종료하거나 재시작하는 명령어
- 현재 실행 중인 프로세스나 저장되지 않은 데이터를 안전하게 디스크에 저장
- 모든 파일 시스템 'umount' 시킨 후 시스템을 종료함
- 기본 형식
[root@localhost ~]# shutdown [옵션] [시간] [경고 메시지]
- 옵션
- -c : 예약된 종료 명령을 취소
- -h : 시스템을 안전하게 종료
- -k : 종료 명령을 수행하지 않고 메시지만 전달
- +m : 'm'분 후에 시스템 종료
- -P : 시스템 강제 종료
- -r 시스템 재시작
- -t : 지정 시간에 시스템을 종료하거나 재시작
- 기본 형식
- init
- 시스템을 종료하거나 재시작하는 명령어
- 기본 형식
- 런 레벨 0으로 지정 시 시스템 종료, 6으로 지정 시 시스템 재시작[root@localhost ~]# init [런 레벨]
- 기본 형식
- 시스템을 종료하거나 재시작하는 명령어
- halt
- 시스템을 종료하는 명령어
- 기본 형식
[root@localhost ~]# halt [옵션]
- 옵션
- -f : 시스템 강제 종료 (power off)
- 기본 형식
- 시스템을 종료하는 명령어
- poweroff
- 시스템을 종료하는 명령어
- 기본 형식
[root@localhost ~]# poweroff
- 기본 형식
- 시스템을 종료하는 명령어
시스템 재시작 명령어
- reboot
- 시스템을 재시작하는 명령어
- 기본 형식
[root@localhost ~]# reboot [옵션]
- 옵션
- -f : 시스템 강제 재시작
- 기본 형식
- 시스템을 재시작하는 명령어
03. 파일 시스템과 파티션
파일 시스템
- 파일을 어디에 위치시킬 것인지를 나타내는 모든 조직체계
- 파일 시스템 기능
- 다양한 종류의 접근 제어 방법 제공
- 파일 생성·수정 ·삭제 등 관리
- 무결성 유지, 보안 유지 기능 제공
- 데이터 백업 및 복구 기능 제공
- 데이터 효율적 저장과 관리를 위한 방법 제공
- 파일 시스템 종류
- 리눅스 : ext, ext2, ext3, ext4
- 저널링 : JFS, XFS, ReiserFS
- 네트워크 : SMB, CIFS, NFS
- 윈도 : FAT, FAT32, VFAT, NTFS
- CD-ROM : iso9660
- 유닉스 : HPFS, SysV
- 클러스터링 : RedHat GFS, IBM GPFS, IBM SanFS, Compaq CFS, Oracle OCFS2
파티션
- 하나의 물리적인 디스크를 여러 개의 논리적인 디스크로 분할
- 파티션 확인 파일 : /proc/partitions
- 종류
- 기본 파티션 (Primary Partition)
- 하나의 하드디스크에 기본 파티션과 확장 파티션 모두 4개의 파티션까지 분할 가능
- 4개 이상의 파티션이 필요한 경우 확장 파티션 내에 논리 파티션 만듦
- 확장 파티션 (Extended Partition)
- 여러 개의 파티션으로 나누고자 할 때 만듦
- 디스크당 하나만 만들기 가능
- 논리 파티션 (Logical Partition)
- 4개 이상의 파티션 사용시 확장 파티션 내에 생성
- 하나의 하드디스크에서 논리 파티션 수는 12개까지
- 스왑 파티션 (Swap Partition)
- 하드디스크 일부를 주기억장치처럼 사용
- 리눅스 설치 시 반드시 필요한 영역
- 기본 파티션 또는 논리 파티션에 생성
- 스왑 영역 크기는 일반적으로 주기억장치의 2배로 설정
- 기본 파티션 (Primary Partition)
- 파티션 분할
- 하나의 하드디스크 기억 공간을 별도의 데이터 영역으로 만듦
- fdisk 명령어로 디스크 파티션을 생성, 수정, 삭제 등 관리 가능
- 기본 형식
[root@localhost ~]# fdisk [옵션] [장치명]
- 옵션
- -a : 부팅 가능한 플래그로 지정
- -l : 알려진 파티션 유형 목록 출력
- -m : 이 목록 출력
- -n : 새로운 파티션 생성
- -t : 파티션 유형 변경
- -w : 파티션 정보를 디스크 테이블에 기록
- -p : 파티션 정보 확인
- -q : 작업 종료 후 빠져나감
- 기본 형식
- 디스크 유형 및 장치명
- 플로피 디스크
- 첫 번째 플로피 디스크 : /dev/fd0
- 두 번째 플로피 디스크 : /dev/fd1
- IDE-유형 디스크
- Primary Master : /dev/hda
- Primary Slave : /dev/hdb
- Secondary Master : /dev/hdc
- Secondary Slave : /dev/hdd
- SCSI 유형 디스크
- 첫 번째 드라이브 : /dev/sda
- 두 번째 드라이브 : /dev/sdb
- CD-ROM
- SCSI CD-ROM : /dev/scd0 또는 /dev/sr0
- 플로피 디스크
- 장치명 및 파티션 번호
- 첫 번째 SCSI 유형 디스크의 두 번째 파티션인 경우 (/dev/sda2)
① : SCSI 유형 하드디스크
② : 첫 번째 물리적인 하드디스크
③ : 두 번째 파티션
/dev/sd a 2 ① ② ③
- 첫 번째 SCSI 유형 디스크의 두 번째 파티션인 경우 (/dev/sda2)
- 장점
- 부팅시간 단축
- 안정성 높임
- 백업과 업그레이드 편리
디렉터리
- 최상위 디렉터리(/) 아래로 계층적인 트리 구조로 이루어져 있음
/ | 최상위 디렉터리로 루트(/) 디렉터리라고 함 |
/bin | 'System Binary'의 약어로 이진 파일이며, 리눅스에서 기본 명령어가 저장된 디렉터리 |
/usr | 시스템에 사용되는 각종 프로그램이 설치되는 디렉터리 |
/etc | 리눅스 시스템의 각종 환경설정 파일과 디렉터리가 저장된 디렉터리 |
/sbin | 시스템 관리를 위한 명령어가 저장된 디렉터리 |
/lib | 프로그램의 각종 라이브러리 파일이 저장된 디렉터리로 유틸리티(Utility), 패키지(Package) 등의 파일 포함 |
/var | - 시스템에서 사용되는 동적인 파일을 저장하는 디렉터리 - 각종 시스템 로그파일, 사용자 로그인에 대한 로그 기록 - 메일서버를 운영한다면 사용자에게 전송된 메일을 임시 저장함 |
/tmp | 임시 디렉터리로 스티키 비트가 설정되어 있음 |
/root | 시스템 관리자(root)의 홈 디렉터리 |
/proc | - 시스템의 각종 프로세서, 프로그램 정보 그리고 하드웨어 정보가 저장된 디렉터리 - 가상 파일 시스템으로 하드디스크에 물리적인 용량을 가지지 않는 디렉터리 |
/dev | 시스템의 각종 장치에 접근하기 위한 장치 드라이버가 저장된 디렉터리 |
/home | 일반 사용자의 홈 디렉터리 |
LVM (Logical Volume Manager)
- 논리 볼륨 관리자
- 여러 개 물리적인 하드디스크를 논리적인 디스크로 할당
- 하나의 대용량 파일 시스템으로 만듦
- 서버 운영시 대규모 저장 공간 필요할 때 주로 사용
- 물리적 볼륨
- 각각의 파티션을 'LVM'으로 사용하기 위해 형식 변환시킴
- 볼륨 그룹
- 'PV'로 되어 있는 파티션을 하나의 물리적인 그룹으로 만듦
- 논리적 볼륨
- 사용자가 다루는 부분, 마운트 포인터로 사용할 실직적 파티션, 크기 확장 및 축소 가능
RAID (Redundant Array of Independent Disks)
- 여러 개의 물리적인 하드디스크를 하나의 논리적인 디스크로 만드는 기술
- 데이터 저장 방법 여러가지 있고, 이를 레벨이라고 함
- 종류
- 하드웨어 RAID
- 'RAID' 기능을 하드웨어로 구현
- 여러 개의 하드디스크로 만들어 공급
- 안정적, 고가
- 소프트웨어 RAID
- 'RAID' 기능을 소프트웨어로 구현
- OS안에서 구현
- 성능 향상 낮고 안정성 떨어짐
- 하드웨어 RAID
- RAID 레벨 구조
① RAID 0
- 연속된 데이터들을 디스크 드라이브에 나눠서 저장하는 스트라이핑을 사용
- 하나의 디스크에 오류 발생하면 모든 데이터 잃어버릴 수 있음RAID 0 구조
② RAID 1
- 같은 데이터 2개 디스크에 저장하여 복사본 만드는 미러링을 통해 하나의 디스크처럼 사용
- 완전히 동일하게 복제, 사용할 수 있는 용량은 절반
- 오류 발생시 미러링된 디스크로 복구RAID 1 구조
③ RAID 0+1
- RAID 0 + RAID 1 결합
- 최소 4개 이상의 디스크에서 2개씩 스트라이핑으로 묶고, 미러링으로 결합RAID 0+1 구조
④ RAID 2
- 오류 정정을 위해 해밍 코드를 사용하는 방식
- 최근 디스크 드라이브에는 오류 검출 기능이 있어 거의 사용하지 않음RAID 2 구조
⑤ RAID 3/4
- 하나의 디스크 패리티 정보를 위해 사용, 나머지 디스크에 균등하게 데이터 분산 저장
- 읽기 성능은 RAID 0과 비슷, 쓰기는 패리티 처리로 성능 저하 발생
- 하나의 디스크에 오류 발생시 패리티를 통해 복구
- RAID 4는 블록 단위로 분산 저장함. 모든 블록이 균등하게 저장되지 않음
- 병목 현상 발생시 성능 저하 발생RAID 3/4 구조
⑥ RAID 5
- 3개 이상의 디스크를 사용해 하나의 디스크처럼 사용, 각각 디스크에 패리티 정보 가짐
- 하나의 디스크에 오류 발생해도 다른 두 개의 디스크로 복구 가능
- 패리티 디스크 별도 사용하지 않아 병목 현상 발생하지 않음RAID 5 구조
⑦ RAID 6
- 하나의 패리티를 두 개의 디스크에 분산 저장
- 패리티 이중 저장으로 두 개의 디스크에 오류 발생해도 복구 가능
- 쓰기 속도는 저하, 안정성 높아짐RAID 6의 구조
'개인 공부 > [자격증] 리눅스 마스터 2급' 카테고리의 다른 글
[PART2] 리눅스 운영 및 관리 - Ch.02 셸(Shell) 관리 (2) | 2024.11.12 |
---|---|
[PART2] 리눅스 운영 및 관리 - Ch.01 파일 시스템 관리 (0) | 2024.11.11 |
[PART1] 리눅스 일반 - Ch.03 기본 명령어 (0) | 2024.11.09 |
[PART1] 리눅스 일반 - Ch.01 리눅스의 이해 (1) | 2024.11.07 |