제목

리눅스 마스터 2급 대비 정리(2) (리눅스의 설치 - 기본 설치 및 유형, 파티션, 부트 매니저)

   2023년08월14일     22분읽었습니다.

리눅스 마스터 2급 시험 대비를 위해 관련 책을 바탕으로 내용들을 정리하는 포스트입니다. 이번 포스트는 리눅스의 설치 파트로 기본 설치 및 유형, 파티션, 부트 매니저에 대해 알아보겠습니다.


개요

이번 포스트는 리눅스 설치를 할 때 필요한 기본 설치 및 유형, 파티션, 부트 매니저에 대해 알아보겠습니다.
참고한 책은 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴입니다. 실습한 리눅스 버전은 CentOS 7이고, ISO 명은 CentOS-7-x86_64-Minimal-2009.iso입니다.

목차

  1. 기본 설치 및 유형
  2. 파티션
  3. 부트 매니저

기본 설치 및 유형

리눅스 설치의 개요

| 버전 | 설명 | | :—: | :—: | | Minimal | 리눅스 설치 시 필수 패키지만 설치 | | Desktop | 개인용 컴퓨터에 적합한 패키지로써 문서작성, 멀티미디어 등 관련 프로그램들이 자동으로 설치됩니다 | | Minimal Desktop | 개인용 컴퓨터로 사용하기 위한 최소한의 프로그램만 설치되어있는 버전입니다 | | Server | 하드디시크의 모든 파티션을 삭제하고 서버 운영에 적합한 패키지가 설치됩니다, 종류로는 Basic(필수 기본 패키지), Database(DB 서버 관련 패키지), Web(아파치 웹 서버 관련 패키지) 서버가 있습니다 | | Laptop | 노트북 등 랩탑 시스템에 적합한 패키지 | | 가상 호스트 | 가상화 시스템 운영을 위한 패키지 | | Software Development Workstation | 소프트웨어 설치 시 필요한 다양한 도구들이 포함된 패키지, 소스 컴파일 도구를 기본적으로 포함하기 위해 선택합니다 | | 사용자 설정 시스템 | 사용자 취향에 맞는 소프트웨어 선택 후 설치합니다 |

리눅스 설치를 위한 하드웨어 정보 파악

  1. 설치 마법사의 Plug and Play(PNP) 기능으로 자동으로 하드웨어를 찾아냅니다.
  2. 설치 전 하드웨어 정보를 알아두는 것이 설치 작업을 용이하게 합니다.
  3. 리눅스는 많은 하드웨어 제품들에서 문제없이 작동하지만 다른 운영체제들만큼 다양한 종류의 하드웨어에서 동작하지는 못합니다.
  4. 시스템 관리자는 네트워크 설정에 필요한 정보를 알고 있어야 합니다.
  5. 무선 네트워크를 사용한다면 무선 네트워크 SSID와 보안키를 사용할 경우 WEP 키를 확인해야 합니다.

CentOS 리눅스 설치하기

해당 포스트는 CentOS 7.9.2009 버전을 기준으로 합니다.

  1. 설치 초기 화면에서 2개의 선택지 중 1개를 고릅니다.
    • Test this media & install CentOS 7: 파일의 이상 여부를 체크한 후 설치 실행
    • Install CentOS 7: 안전한 파일일 경우 선택 후 설치(일반적인 경우 해당 옵션을 선택합니다), 설치 시간을 줄일 수 있습니다.
  2. 이후 언어 선택 과정이 나옵니다. 한국어도 지원하니 원하시는 분들은 한국어를 선택하시고, 저는 영어를 선택해 진행했습니다.
  3. 설치 요약에서 여러 옵션을 선택해 설정할 수 있습니다.
    • 날짜 와 시간 설정: 기기의 시간대를 도시별로 설정할 수 있습니다. 저는 서울을 골랐습니다. 한국어를 설정하신 분들은 아마 서울로 설정되어 있을 꺼에요.
    • 이후 키보드와 언어 설정할 수 있는 곳이 있습니다.
    • Software에는 Installation Sources(설치 소스) 즉 저장소(Repository)를 설정해 줄 수 있는 곳이 있습니다. 설정하지 않아도 자동으로 서버가 설정되어 있지만 저는 아래 사진과 같이 “https://mirror.kakao.com/centos/7.9.2009/os/x86_64/” 로 국내 카카오 미러 저장소 서버로 주소를 설정했습니다. 해당 작업의 완료를 위해선 System 부분의 네트워크를 먼저 연결해야 합니다.
    • Software Selection(설치 대상)에서는 Minimal Install을 골랐습니다.
    • Installation Destination(설치 디렉터리)는 자동으로 파티션을 나눌수도 있지만 아래 I will configure partitioning.을 누르고 Done을 누르면 아래 사진과 같이 뜹니다. 거기서 자유롭게 파티션 설정을 진행하면 됩니다.
    • KDUMP는 커널 크래시 덤프 메커니즘으로 커널 충돌이 발생하면 시스템에서 정보를 수집해 충돌 원인을 규명하는 자료를 제공하는 기능인데 해당 작업에 할당될 물리적 메모리를 설정합니다.
    • 네트워크 설정에서는 네트워크를 선택할 수 있고
    • Security Policy는 보안 강화 리눅스에 대한 정책을 설정할 수 있는 항목으로써 데이터 스트림 문장이나 아카이브 URL을 작성하면 됩니다.
  4. 모든 작성을 완료하고 Begin Installation을 누르면 설치되는 동안 Root 비밀번호와 유저를 만들 수 있습니다.

저장소를 Kakao Mirror로 설정한 장면 저장소를 Kakao Mirror로 설정한 장면

파티션 나누기 전 수동으로 설정 파티션 나누기 전 수동으로 설정

파티션 나눈 후 파티션 나눈 후

추가 설명

  1. Troubleshooting이 난 경우 초기 화면
    • Rescue a CentOS system: 시스템이 정상 부팅이 되지 않는 경우 선택, 파일 시스템 손상 또는 GRUB 패스워드 분실 시 복구를 위해 선택합니다.
    • Run a memory test: 시스템의 메모리 상태를 점검합니다. 시스템 점검에 오랜 시간이 걸립니다.
    • Boot from local drive: 디스크 또는 DVD로 부팅시 사용합니다.
  2. NTP(Network Time protocol) 기반으로 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 자동으로 설정할 수 있습니다.
  3. 설치와 관련된 특수 저장 장치 설정
    • SAN(storage Area Network): 서버와 저장 장치를 Fiber Channel Switch로 연결한 고속 데이터 네트워크입니다.
    • FCoE(Fiber Channel over Ethernet) SAN: FCoE 프로토콜로 구성된 고속 데이터 네트워크입니다.
    • iSCSI(Internet Small Computer System Interface): IP 기반의 스토리지 네트워크입니다.
    • 멀티패스(Multipath): 대량의 스토리지 장치와 CPU 사이에 한 개 이상의 경로로 구성되어 있습니다.
  4. 파티션은 기본적으로 루트(/) 파티션과 SWAP 파티션만으로도 운용이 가능합니다.

파티션

파티션의 특징과 종류

  1. 파티션이란 하나의 물리적 디스크를 여러 개의 논리적 디스크로 분할하는 것입니다.
  2. 다중 파티션의 장점은 아래와 같습니다.
    • 파티션마다 독립적인 파일 시스템이 운영되기 때문에 파일 점검 시간이 줄어들어 부팅 시간을 단축시킬 수 있습니다.
    • 특정 파티션의 파일 시스템이 손상되더라도 다른 파티션에 영향을 주지 않기 때문에 높은 안정성을 보장합니다.
    • 필요한 파티션만 포맷할 수 있기 때문에 백업과 업그레이드 가 편리합니다.
    • 파티션 상태 정보를 확인할 수 있는 파일은 /proc/patitions입니다.
  3. 파티션은 아래 표와 같이 구분됩니다.
파티션 종류설명
주 파티션부팅이 가능한 기본 파티션입니다. 하나의 하드디스크에 최대 4개의 주 파티션이 분할 가능하며 하드디스크를 4개 이상의 파티션으로 사용해야 할 때 하나의 확장 파티션을 설정하여 확장 파티션 안에 여러 개의 논리 파티션을 분할해 데이터를 저장합니다
확장 파티션주 파티션 내에 생성되 하나의 물리적 디스크에 1개만 생성됩니다. 파티션 번호는 1~4번이 할당되고, 데이터 저장 영역을 위한 것이 아니라 논리 파티션을 생성하기 위함입니다
논리 파티션확장 파티션 안에 생성되는 파티션으로 논리 파티션은 12개 이상 생성하지 않는 것을 권고하며 5번 이후의 번호가 붙여집니다
스왑 파티션하드디스크의 일부를 메모리처럼 사용하는 영역입니다. 주 파티션 또는 논리 파티션에 생성되 프로그램 실행시 부족한 메모리 용량을 하드디스크로 대신합니다. 리눅스 설치 시에 반드시 설치되어야 하는 영역으로 스왑 영역의 크기는 메모리의 2배를 설정하도록 권고되고 있습니다

디스크와 장치명

/dev/hd a 3

  • hd부분은 하드디스크 유형을 지정하는 것으로 sd는 SCS 또는 USB 방식의 디스크를 의미하고, hd는 IDE 또는 ATA 방식의 디스크를 의미합니다.
  • a 부분은 한 케이블에 묶인 하드디스크의 우선순위를 정하는 것으로 마스터 또는 슬레이브로 설정합니다.
    • 첫 번째 하드디스크는 a, 두 번째 하드디스크는 b와 같이 증가합니다.
  • 3 부분은 파티션 번호로써 1~4번은 primary 또는 extended를 의미하고, 5번부터는 logical 파티션을 의미합니다.

파일시스템

파일 시스템 유형종류
리눅스 전용 파일 시스템ext, ext2, ext3, ext4
저널링 파일 시스템JFS, XFS, ReiserFS
네트워크 파일 시스템SMB, CIFS, NFS
크러스터링 파일 시스템레드햇 GFS, SGI cXFS, IBM GPFS, IBM SanFS, EMC highroad, Compaq CFS, Veritas CFS, 오라클 OCFS2
시스템 파일 시스템ISO9660, UDF
타 운영체제 지원 파일 시스템FAT, VFAT, FAT32, NTFS, HPFS, SysV

LVM(Logical Volume Manager)

  1. 여러 개의 하드디스크를 합쳐서 사용하는 기술로 한 개의 파일 시스템을 사용합니다.
  2. 작은 용량의 하드디스크 여러 개를 큰 용량의 하드디스크 한 개처럼 사용합니다.
  3. 서버를 운영하면서 대용량의 별도 저장 공간이 필요할 때 활용합니다.
  4. 다수의 디스크를 묶어 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있습니다.
    • 물리 볼륨: 여러 개의 물리적 하드디스크
    • 볼륨 그룹: 물리 볼륨을 합쳐 하나의 물리적 그룹으로 만드는 것을 의미합니다.
    • 논리 볼륨: 볼륨 그룹을 나눠 다수의 논리 그룹으로 나눕니다.

RAID

  1. RAID는 복수 배열 독립 디스크(Redundant Array of Independent Disks)의 약자입니다.
  2. 여러 물리적 디스크를 하나의 논리적 디스크로 인식해 작동하게 하는 기술입니다.
  3. 여러 개의 하드디스크에 일부 중복된 데이터를 나눠 저장하는 기술입니다.
  4. RAID 종류는 하드웨어 RAID와 소프트웨어 RAID로 나뉩니다.
RAID Level설명
RAID 0스트라이핑 저장방식을 사용해 연속된 데이터를 여러 디스크에 나눠 저장합니다. 최소 2개의 하드디스크가 필요합니다
RAID 1미러링 저장 박식을 사용해 하나의 디스크에 내용을 저장하면 다른 디스크에 동일한 내용이 백업되어 저장됩니다. 최소 2개의 하드디스크가 필요합니다
RAID 2스트라이핑 저장 방식으로 기록용 디스크와 데이터 복구용 디스크를 별도로 제공해 오류 제어 기능이 없는 디스크를 위해 해밍 코드를 사용하지만 모든 SCSI 디스크에 ECC를 탑재하고 있기 때문에 실제 사용되지는 않습니다
RAID 3스트라이핑 저장 방식으로 오류 검출을 위해 패리티 방식을 사용합니다. Byte 단위로 데이터를 저장하고, 최소 3개 이상의 하드가 필요합니다
RAID 43과 유사한 방식이지만 Block 단위로 데이터를 저장합니다
RAID 5스트라이핑 저장 방식으로 디스크마다 패리티 정보를 갖고 있어 패리티 디스크의 병목현상을 줄이는 것이 가능해 실무에서 많이 사용합니다. 디스크 섹터 단위로 저장합니다. 쓰기 작업이 많지 않은 다중 사용자 시스템에 적합니다
RAID 6dual parity를 사용함으로써 더 나은 무정지성을 갖게 합니다. 최소 4개의 드라이브가 필요합니다

파티션 분할

  1. fdisk는 파티션 테이블을 관리하는 명령어로 리눅스의 디스크 파티션을 생성, 수정, 삭제할 수 있는 일종의 유틸리티입니다.
  2. 해당 실습을 진행하기 위해 새로운 하드디스크를 가상 머신에 할당했습니다. 이제 아래 사진을 보며 설명하겠습니다.

시스템에 장착되어 있는 파티션을 확인합니다. sdb가 파티션이 나누어져 있지 않음을 확인했습니다 sdb가 안나눠 진 것을 확인

sdb의 주 파티션을 설정합니다 sdb의 주 파티션을 설정합니다

  • 파티션 파일 시스템은 ext로 하고, 주 파티션의 ID 번호는 83(Linux), 8e(Linux LVM), fd(Linux raid auto)가 있습니다.

설정된 파티션 정보를 확인 후 저장합니다 파티션 정보 확인 후 저장

명령어 fdisk -l로 전체적인 하드디스크의 파티션 정보를 확인합니다 파티션 정보 확인

fdisk 명령어

명령어설명
a부팅 파티션을 지정
l파티션 종류를 선택할 때 리눅스에서 지원하는 파티션 목록을 확인
n새로운 파티션을 추가
t파티션 종류를 변경
w파티션 정보를 저장
p파티션 정보를 확인
q작업을 종료
m명령어들을 잘 모르겠을때 사용합니다. 도움말 명령어

부트 매니저

부팅 과정은 전원 ON -> ROM-BIOS 실행 -> 부트로더 실행 -> 스와퍼 프로세스 수행 -> init 프로세스 실행 -> 부팅 레벨 결정 -> rc.sysinit 스크립트 실행 -> rcX.d 스크립트 실행 -> X 윈도우 실행 순입니다.

부트로더(Boot Loader) 기능

  1. 부트스크랩 로더(bootstrap loader)의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해 주는 프로그램입니다.
  2. 운영체제가 작동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 프로그램이다.
  3. 운영체제 실행에 필요한 환경을 설정하고 운영체제 이미지를 메모리에 복사합니다.
  4. 부트 메니저라고도 부르며 크기가 512바이트로 하드디스크의 첫 번째 섹터인 MBR(Master Boot Recond)에 위치합니다.
  5. 주 파티션마다 부트 섹터가 할당됩니다.
  6. 부트 섹터는 디스크의 다른 부분에 저장되는 부팅 프로그램을 담을 수 있는 하드디스크, 플로피 디스크 또는 비슷한 기억 장치의 섹터를 말합니다.
  7. 분할된 주 파티션들은 자신의 부트 레코드를 MBR에 기록해 실행됩니다.
  8. x86 아키텍처에서 많이 사용되는 부트로더는 LILO(LInux LOader)와 GRUB(GRand Unified Bootloader)입니다.
    • LILO는 리눅스 운영체제에 한정되 사용되는 반면 GRUB는 리눅스 운영체제 외에도 다른 운영체제에서도 사용 가능합니다.
    • GRUB와 LILO 모두 System 전원이 공급되면 가장 먼저 ROM-BIOS에서 시스템 제어권을 가지고 장착된 하드웨어에 대한 기본적인 점검과 인식을 합니다.
    • ROM-BIOS는 하드디스크의 첫 번째 부트 색터인 MBR(Master Boot Record)에 있는 Boot Loader에게 제어권을 넘깁니다.

GRUB

  1. 리눅스 부팅 시 처음 나오는 선택화면이 GRUB입니다.
  2. LILO의 단점을 보완한 것이빈다.
  3. 부트 정보를 사용자가 임의로 변경해 부팅할 수 있어 부트 정보가 올바르지 않더라도 부팅시 바로 수정해 부팅할 수 있습니다.
  4. 다른 운영체제와 멀티 부팅할 수 있습니다.
  5. 대화형 설정이므로 커널의 경로와 파일 이름만 알면 부팅할 수 있습니다.
  6. 메뉴 인터페이스 환경을 지원하며, 대화명 모드로 부트 정보를 설정할 수 있습니다.
  7. 파일 시스템과 커널 실행 포맷을 인식해 하드디스크상에서 커널의 물리적 위치를 기록하지 않아도 커널 위치와 커널 이미지 파일명만 알고 있으면 부팅이 가능합니다.
  8. CentOS 6의 경우 Grub Legacy를, CentOS 7에서는 GRUB 2버전을 사용합니다. 아래는 차이점입니다.
구분GRUB 1GRUB 2
설정 파일/boot/grub/menu.lst/boot/grub2/grub.ctg
파티션첫 번째 파티션은 0부터 시작첫 번째 파티션은 1부터 시작
root 파티션 지정 방법root (hd0.0)set root=(hd0.msdos1)
커널 이미지 설정 옵션kernel=옵션으로 커널 이미지 명시linux=옵션으로 커널 이미지 명시
작업모드‘c’‘e’

GRUB 1에서 설정 파일의 설명

설정설명
root(hd0.0)root 파티션의 위치를 지정, (hd0.0) primary master의 첫 번째 파티션을 의미
kernel/boot/vmlinuz부팅하면서 메모리에 위치하는 리눅스 커널에 전달할 인수를 지정하는 옵션, /boot 파티션을 별도로 사용하고 있으면 커널의 위치는 kernel/boot/vm
initrd/boot/initrd이미지 파일의 경로를 지정하는 옵션

GRUB 2에서 설정 파일의 설명

설정설명
GRUB_TIMEOUT자동 부팅 시간 설정(초 단위)
GRUB_DISTRIBUTOR부팅 화면의 각 엔트리 앞에 명시되는 이름 지정
GRUB_DEFAULTGRUB 2의 기본 부트 엔트리 지정 시 사용
GRUB_DISABLE_SUBMENU서브 메뉴 사용 여부 설정
GRUB_TERMINAL_OUTPUTGRUB 표시 방법을 명시 (console: 콘솔창, gfxterm: 그래픽 모드)
GRUB_CMDLINE_LINUX부팅 시 커널에 전달할 파라미터 지정
GRUB_DISABLE_RECOVERYRecovery mode 화면 명시 유무 표시

런레벨

  1. 부팅시 작동하는 서비스들로 런레벨에 따라 작동하는 서비스를 조정할 수 있습니다.
    • 리눅스 부팅 마지막 단계에서 모든 프로세스의 부모 프로세스인 init이 생성됩니다.
    • 프로세스 init이 참조하는 것이 런레벨로 0~6까지 총 7가지입니다.
  2. 현재 실행되는 런레벨을 확인하는 명령어는 runlevel입니다.
  3. 아래는 런레벨과 그 기능입니다.
런레벨기능
0시스템 종료 상태입니다. init 0을 입력하면 시스템이 종료되는 것이 이 이유입니다
1단일 사용자 모드(root만 로그인 할 수 있는 모드). 네트워크, 서버, 파일 공유 서비스를 제공하지 않습니다. root 패스워드 분실, 파일 시스템 점검 및 복구, 시스템 점검을 할 때 접근합니다.
2네트워크가 없는 다중 사용자 모드입니다
3텍스트 모드에 의한 다중 사용자 모드
4미사용
5그래픽 모드에 의한 다중 사용자 모드
6시스템 재시작상태로 init 6을 입력하면 재시작되는 것이 이 이유입니다

로그인과 로그아웃

로그인

  1. 로그인 과정은 다음과 같습니다.
    • 입력한 패스워드와 파일 /etc/passwd 필드를 비교합니다.
    • 셸 설정 파일을 실행합니다. 셸 설정 파일은 다음과 같은 일을 수행합니다.
      • 검색 경로 설정
      • 터미널 종류 설정 및 다양한 터미널 설정
      • 환경변수 설정
      • 로그인 시 실행 명령어 실행
      • 로그인 메시지 출력
  2. 로그인 셸을 실행합니다.
    • 로그인 셸은 파일 /etc/passwd의 마지막 필드에 정의되어 있습니다.
    • 로그인 셸에 따라 프롬프트가 다릅니다.
  • 아래는 파일의 특징과 셸 종류를 간단히 작성한 파일입니다.
파일특징상태
/etc/issue콘솔 접속 시 보여줄 메시지 파일로그인 전
/etc/issue.net원격지에서 접속 시 보여줄 메시지 파일로그인 전
/etc/motd로컬접속, 원격접속 모두에 해당하며 로그인 성공 후 보여줄 메시지 파일로그인 후
셸 종류저장 위치프롬프트
sh본셸, /bin/sh에 위치$
cshC셸, /bin/csh에 위치%
ksh콘셸, /bin/ksh에 위치$
bash배쉬셸, /bin/bash에 위치$
  • 제가 다운받은 CentOS7.9.2009에 sh가 링크되있는 것을 확인해보면 본셸이 아닌 배쉬셸에 링크되어 있는 것을 확인할 수 있습니다. 아래 사진을 참조해 주세요.

셸 확인

로그아웃

  1. 로그아웃은 명령어 logout, exit 또는 조합키 Ctrl + D 를 사용합니다.
  2. 관리자는 일정 시간 동안 작업을 수행하지 않느 모든 사용자들을 강제로 로그아웃할 수 있습니다.
    • 강제 로그아웃은 /etc/profile에 TMOUT 변수에 값을 지정해 해당 작업을 수행합니다.

참고 자료

  1. 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴