[리눅스 마스터 2급] 리눅스 일반 - 리눅스 설치
| - 기본 설치 및 유형 - 파티션과 파일 시스템 - Boot Manager |
리눅스 설치
리눅스 설치의 개요
배포판에 따라 설치 환경 및 과정이 다름
- 리눅스 설치 유형
- Minimal: 필수 패키지만
- Desktop: 개인용 패키지, 문서 작성 SW 등
- Server: 기본서버, DB서버, Web서버
- Laptop: 노트북용 패키지
- 가상 호스트: KVM, XEN
- Software Development Webstation: 소스코드 컴파일, 개발도구
- 사용자 설정 시스템
- 디스크 파티션 시 모든 파일 삭제 → 설치 전 모든 파일 백업 필요
- 부팅 드라이브 다시 파티션 → 부트로더 재설치, 운영체제 전체 재설치
- 부팅 드라이브: OS를 탑재, 로딩해서 실행하게 함
리눅스 설치 위한 하드웨어 정보와 호환성 점검
- 하드웨어 정보
- CPU, Memory, HDD/SDD 및 Interface,네트워크 장치 및 주소 설정값, 모니터, 프린터, 키보드, 마우스
- 하드웨어 호환성 장치 웹사이트(장지 드라이버, 설명서, 호환성 목록), PNP 기능 동작하지 않을 경우 대비 PNP(plug and play): 컴퓨터에 하드웨어를 연결했을 때 운영체제가 자동으로 장치를 인식하고 필요한 드라이버를 설치하여 사용자가 별도의 설정 없이 바로 사용할 수 있게 해주는 기능
- 네트워크 설정 정보: 호스트명, 도메인명, IP주소, 서브넷 마스크, 게이트웨이 주소, DNS 서버 주소, 무선 네트워크 SSID/보안키
리눅스 설치 (CentOS)
- 설치 초기 환경(기본)
- install CentOS7
- Test this media & install CentOS7 (파일 이상여부 체크 후 설치)
- 설치 초기 화면(Troubleshooting)
- Recuse a CentOS System
- Run a Memory test
- Boot from local drive
- 언어 선택
- 설치요약 확인 : 현지화(시간, 언어, 키보드), SECURITY, 소프트웨어(설치소스, 소프트웨어 선택),시스템(파티션, 네트워크)
- 날짜와 시간 : 수동 설정, NTP(Network Time Protocol) → 시간 동기화(일치) 필요(장애대응, 분석/로깅 등에 필수)
- 설치소스 : 저장소(Repository) 서버주소(선택사항), yum이 업데이트 파일을 다운받기 위한 저장소 서버 주소
- 설치대상 : 설치 시 사용할 특수 저장장치(선택), SAN / FCoE / isCSI, Multipath 등
- 수동으로 파티션 설정 : 기본 저장 장치(HDD/SDD 파티션 설정(필수), 자동 혹은 수동 파티션 → root&swap(RAM 2배 권장)
- 소프트웨어 선택 : 리눅스 사용 목적에 따른 환경 결정, 최소 설치/인프라 서버/기본 웹 서버/가상화 호스트/GNOME 데스크톱 등 패키지 그룹 설정
- K DUMP 설정
- : 커널 충돌(Crash)발생 시 정보 수집 위한 데이터 저장 및 확인, 물리적 메모리 설정
- 네트워크 설정 및 호스트명 지정
- : 고정주소 / 유동주소, IP 주소, 서브넷 마스크, 게이트웨이 주소, DNS 서버 주소 등
- 사용자 설정
- ROOT 암호, 사용자 생성(암호지정)
파티션과 파일 시스템
파티션의 개요
파티션: 물리적 디스크를 여러 개의 논리적 디스크로 분할한 것
독립적 파일 시스템은 관리 효율성(부팅 시간, 오류 점검 시간, 백업/복구), 관리 안전성(시스템 손상 시 영향 최소화)면에서 장점이 있다.
상태 정보 확인: /proc/partitions
파티션의 구분

파티션과 파일 시스템
디스크와 장치명
- 파티션 이름: 디스크의 장치 파일명 + 숫자
- 디스크와 장치명 예: /dev/hda3 → /dev + /hd + a + 3
- /dev : 시스템 디바이스 파일들이 저장되는 디렉터리
- /hd: IDE 혹은 ATA(AT Attached) 방식
- /sd: SCSI(Small Computer System Interface) 혹은 USB 방식
- a: 하나의 케이블에 연결된 디스크의 우선순위
- 3: 파티션 번호
- 1~4: primary or extended
- 5~: logical
- 마운트(mount)시 지정된 장치명을 사용 ex) /dev/fd0, /dev/hda
파일 시스템(File System)의 개요
파일 시스템: 디스크의 파티션에 파일을 사용할 수 있도록 구성하는 방식 → 규칙, 구조
파일 시스템의 유형

저널링: 파일시스템에 오류 발생시 복구가 가능하도록 관리
네트워크: 다른 PC에 있는 파일 시스템을 마운트해서 사용(remote)
장치 파일 시스템: CD ROM, DVD와 관련
운영체제별: 윈도우(FAT32, NFTS), MAC(HPFS)
LVM(Logical Volume Manager)
물리적인 HDD를 어떻게 활용하는가? → 논리적으로 재구성!

LVM의 개요
LVM: 다수의 물리적인 하드디스크를 논리적으로 통합하여 하나의 파일 시스템으로 구성하여 사용하는 방식
→ 큰 용량의 저장장치, 파티션 구성에 유연성
LVM 구성 볼륨의 종류
- 물리 볼륨: 개별 물리적인 디스크
- 볼륨 그룹: 여러 개의 물리 볼륨을 하나의 그룹으로 구성
- 논리 볼륨: 볼룸 그룹의 일부를 논리 그룹으로 나누어 사용
RAID
: 여러개의 물리적 디스크를 하나의 논리적 디스크로 작동하게 하는 기술
→ 데이터 분할 저장, 데이터 중복 저장, 오류 관리 → 고용량, 신뢰성, 성능 향상
RAID 구성 방식(RAID0 ~ RAID6)
- RAID 0: 스트라이핑, 디스크에 나누어 저장 → 고용량, 빠른 I/O, 고장에 취약
- RAIID 1: 미러링, 디스크 중복 저장 → 결함허용, 2배의 저장 공간 필요
- RAID 0+1: 스트라이핑 후 미러링, 빠른 I/O, 느린 복구 시간
- RAID 1+0: 미러링 후 스트라이핑, 손실된 데이터의 빠른 복원
fdisk: 파티션 관리 명령어
파티션의 생성, 수정, 삭제
기본 사용법: fdisk 장치명
| a | 부팅 파티션 설정 | w | 파티션 정보 저장 |
| l | 지원하는 파티션 목록 표시 | p | 파티션 정보 확인 |
| n | 새로운 파티션 생성 | q | 종료 |
| t | 파티션 종류 변경 |
Boot Manager
리눅스 부팅 과정
- ROM-BIOS: POST(Power On Self Test), 부트로더(LILO, GRUB) 로딩
- 부트로더: 리눅스 커널 선택 및 로딩, 커널에 의한 부팅 시작, 스와퍼 프로세스 호출
- 스와퍼 프로세스: 장치 드라이브 초기화, init 프로세스 수행
- init 프로세스: /etc/inittab의 내용에 따라 필요한 프로세스 실행
- 부팅 레벨 결정
- rc.sysinit 스크립트: /etc/rc.d/rc.sysinit 스크립트 실행 → 시스템 초기화 작업
- rcX.d 스크립트: /etc/rc.d/rcX.d 스크립트 실행 → 부팅 레벨에 따른 스크립트 순차 실행
- X윈도우: 부팅레벨이 5일 경우 X윈도우 실행(GUI)
부트로더
부트로더(bootstrap loader, boot manager)의 개요
운영체제를 주기억장치로 적재하는 프로그램 → 필요한 초기 작업, 운영체제(멀티부팅)를 주메모리로 복사, 운영체제 실행
임베디드 시스템 부트로더: PC BIOS와 OS Loader 기능 수행
부트로더의 저장 위치: MBR(Master Boot Record), 하드디스크의 첫번째 섹터(부트 섹터), 512byte 주 파티션마다 고유의 부트 섹터가 할당됨
부트로더의 종류
- LILO(Linux Loader): 리눅스 전용
- GRUB2(Grand Unified Bootloader version 2)/etc/default/grub과 /etc/grub.d로 환경 설정 → grub2-mkconfig로 적용
- 부팅 시 부트 정보 수정 지원, 멀티부팅, 파일 시스템과 커널 실행 형식 인식 후 부팅
- 편리한 설정 및 사용, 대화형 UI, /boot/grub2/grub.cfg 읽기전용 설정파일(/etc/grub2.cfg로 링크)
런레벨(Run Level)
런레벨의 개요
서비스(프로그램)의 실행을 단계별로 구분, 7개 레벨(0~6) → /etc/inittab에 설정, init 프로세스가 참고
⭐ 런레벨0과 6은 기본값 설정 불가
| 런레벨0 | Halt, 시스템 중지, 기본값으로 설정 불가(init 0과 동일) |
| 런레벨1 | Single User mode, 네트워크 등 사용하지 않음, 시스템 복구 등 관리 목적, root 계정 로그인 |
| 런레벨2 | Multi User, without NFS, 네트워크 사용X |
| 런레벨3 | Full Multi User, CLI, 일반적인 다중 사용자 모드 |
| 런레벨4 | Unused, 사용자가 정의해서 사용 |
| 런레벨5 | X11, GUI 다중 사용자, 최근 리눅스의 기본값 |
| 런레벨6 | Reboot, 시스템 재부팅, 기본값으로 설정 불가(init 6과 동일) |
/etc/inittab 형식
- id(코드/이름): runlevel : action(프로세스 실행 지시어) : process(실행 프로세스)
로그인과 로그아웃
리눅스의 로그인
- 로그인 과정
- 패스워트 확인 → /etc/passwd의 패스워드 필드
- Shell 설정 실행 → PATH 경로, 터미널 설정, 환경변수, 로그인 시 실행명령, 로그인 메시지 출력
- 로그인 Shell 실행 → /etc/passwd의 마지막 필드
- 로그인 메시지 설정 파일/etc/motd(로그인 후 메시지)
- /etc/issue(로그인 전 콘솔 접속 시), /etc/issue.net(로그인 전 원격 접속 시)
- Shell의 종류와 프롬프트sh(본셸, $), csh(C셸, %), ksh(콘셸, $), bash(배시셸, $)
- Shell 프로그램 저장 위치: /bin/
- shell: 사용자에게 명령어를 입력받아 커널에 처리를 요청하고 커널이 처리한 결과를 사용자에게 알려줌
리눅스의 로그아웃
- 로그아웃 방법: logout, exit, CTRL+D
- 전체 사용자 로그아웃 타임아웃: /etc/profile 의 TMOUT 값 설정(초)
- 특정 사용자 로그아웃 타임아웃 ~/bashrc의 TMOUT 값 설정(초)
→ source 명령으로 설정 값 적용