오소소 week5

Ethan·2025년 9월 30일

Linux File System - 시험 정리 노트[1]

1. Partition: MBR vs GPT

MBR (Master Boot Record)

  • 디스크의 첫 번째 섹터 (512 bytes)에 부트 코드와 파티션 테이블 저장
  • 최대 4개의 Primary Partition 또는 3개의 Primary + 1개의 Extended Partition 지원
  • Extended Partition은 여러 Logical Partition을 담는 컨테이너 역할
  • 디스크 크기 제한: 최대 2TB

GPT (GUID Partition Table)

  • 기본적으로 최대 128개의 파티션 지원 (Extended/Logical 구분 불필요)
  • 파티션 테이블의 여러 복사본 보관 및 CRC 오류 검출로 높은 신뢰성
  • 2TB 이상의 대용량 디스크 지원
  • 두군데 저장

2. Device Names

Old (SATA, MBR 방식)

  • 디스크: /dev/sda, /dev/sdb
  • 파티션: /dev/sda1, /dev/sda2

Modern (NVMe, GPT 방식)

  • 디스크: /dev/nvme0n1
  • 파티션: /dev/nvme0n1p1, /dev/nvme0n1p128

NVMe 의미

  • NVM (Non-Volatile Memory): 전원이 꺼져도 데이터 유지되는 메모리 (SSD)
  • Express: PCI Express (PCIe) 버스를 통해 연결
  • nvme0 = 컨트롤러, n1 = namespace, p1 = partition

3. LVM (Logical Volume Management)

LVM이란?

  • 디스크 스토리지를 유연하고 동적으로 관리하는 시스템
  • 파티션을 직접 나누지 않고 추상화 계층을 추가하여 크기 조정, 결합, 관리가 용이

핵심 구성 요소

  • PV (Physical Volume): LVM에서 사용하도록 준비된 물리 디스크 또는 파티션 (예: /dev/sda1, /dev/nvme0n1p2)
  • VG (Volume Group): 하나 이상의 PV를 결합하여 생성한 스토리지 풀 (사용 가능한 디스크 공간의 큰 컨테이너)
  • LV (Logical Volume): VG에서 할당된 가상 파티션, 파일시스템(ext4, xfs 등)이 LV 위에 생성되고 마운트됨

4. File System

정의

  • 스토리지 장치에 데이터가 저장되고 검색되는 방식을 조직화하고 관리

파일시스템 종류와 특징

File System주요 특징최대 파일 크기주요 사용처
ext3구형 시스템, 안정적이지만 제한적~2 TB레거시 Linux 시스템, 하위 호환성
ext4ext3 개선, 빠르고 널리 사용됨~16 TB일반 Linux (데스크탑, 서버)
XFS대용량 파일 처리 우수, 확장성 높음~8 EB엔터프라이즈 서버, 클라우드 (Amazon Linux, RHEL)
  • 윈도우즈에서는 ntfs

5. Filesystem Hierarchy

Linux에서 파일은 트리 구조로 조직되며, 루트 디렉토리 "/"가 최상위에 위치

주요 디렉토리

디렉토리설명예시
/루트 디렉토리, 파일시스템의 시작점
/home일반 사용자의 홈 디렉토리/home/ec2-user
/rootroot (관리자)의 홈 디렉토리root만 접근 가능
/etc시스템 설정 파일/etc/passwd, /etc/fstab
/var가변 데이터 (로그, 캐시, 메일, 데이터베이스)/var/log/messages
/usr사용자 프로그램, 라이브러리, 실행 파일/usr/bin, /usr/lib
/bin필수 사용자 명령어 (→ /usr/bin)ls, cp, mv
/sbin시스템 관리자 명령어 (→ /usr/sbin)mount, shutdown
/dev장치 파일 (디스크, 터미널, USB)/dev/nvme0n1
/proc가상 FS: 프로세스 및 커널 정보/proc/cpuinfo
/sys가상 FS: 장치 및 커널 인터페이스/sys/class/net/eth0
/run런타임 데이터 (PID, 소켓, tmpfs)/run/systemd
/tmp임시 파일 (재부팅 시 삭제)
/mnt임시 마운트 포인트수동 마운트
/media이동식 미디어 자동 마운트/media/usb
/opt선택적/추가 소프트웨어/opt/google/chrome
/srv서비스용 데이터 (웹, FTP)/srv/www

6. Mounting과 Unmounting

Mounting이란?

  • Linux에서 파일시스템은 접근 가능하려면 마운트되어야 함
  • 마운트는 파일시스템을 디렉토리 계층의 마운트 포인트에 연결
  • Windows의 드라이브 문자(C:)와 달리 모든 것이 단일 루트 / 아래에 위치

Mount 명령어

mount -t <fstype> -o <options> <device> <mount_point>

옵션

  • -t: 파일시스템 타입 (ext4, xfs, vfat 등)
  • -o: 마운트 옵션 (ro, rw, nosuid 등)

마운트 확인 명령어

  • mount
  • findmnt
  • lsblk

USB 마운트 예제

lsblk                                # 장치 확인
sudo mkdir /mnt/usb                  # 마운트 포인트 생성
sudo mount /dev/nvme0n1p1 /mnt/usb   # 마운트
ls /mnt/usb                          # 파일 접근
sudo umount /mnt/usb                 # 언마운트

주의: 데이터 손실 방지를 위해 제거 전 항상 언마운트 필요

자동 마운트: /etc/fstab

  • 부팅 시 자동으로 연결되는 디스크의 영구 마운트에 사용
  • 예시 항목: UUID=xxxx-xxxx /mnt/data xfs defaults 0 0

7. 디스크 사용 절차

(순서 외우기)

Step 1: 파티션 생성

  • MBR 방식: fdisk 사용
  • GPT 방식: parted 또는 gdisk 권장
parted /dev/nvme0n1 mkpart primary 1MiB 20GiB

/dev/nvme0n1 디스크의 1MiB 지점부터 20GiB 지점까지 약 20GB 크기의 새로운 Primary 파티션 생성

Step 2: 파티션 포맷 (파일시스템 생성)

  • 파티션에 파일시스템 설치
mkfs.xfs /dev/nvme0n1p1    # RHEL/Amazon Linux 기본
mkfs.ext4 /dev/nvme0n1p1   # Ubuntu 기본

Step 3: 파티션 마운트

  • 파일시스템을 디렉토리 계층의 마운트 포인트에 연결
mount /dev/nvme0n1p1 /mnt/data
  • 재부팅 후에도 유지하려면 /etc/fstab에 추가
  • 마운트 확인: lsblk 또는 findmnt 사용

LVM 사용 시 (선택적)

  • 파티션을 직접 사용하지 않고 Physical Volume (PV)로 변환
  • 여러 PV를 Volume Group (VG)으로 결합
  • VG를 Logical Volume (LV)로 분할
profile
코딩하는 알파카

0개의 댓글