Study

[리눅스마스터 1급] 일반 운영 관리 [1]

wwns 2025. 2. 7. 15:19
반응형

✅ parted vs fdisk: 디스크 파티셔닝 도구 비교

parted와 fdisk는 둘 다 리눅스에서 디스크 파티셔닝을 위한 명령어 도구.

두 도구의 주요 차이점은 파티션 테이블 형식, 기능, 사용 용도 등에서 차이를 보임

1️⃣ parted

📌 특징

  • 디스크 파티셔닝 도구로, 고급 기능을 제공
  • GPT (GUID Partition Table)MBR (Master Boot Record) 파티션 테이블을 모두 지원
  • 인터랙티브 모드와 스크립트 모드에서 모두 사용 가능
  • 디스크 크기 자동 계산, 파티션 크기 조정 등 동적 기능 제공
  • 파티션 크기 변경파티션 이동 등 고급 기능 지원

📌 장점

GPT 지원: GPT는 2TB 이상의 큰 디스크와 4개 이상의 파티션을 지원
동적 파티셔닝: 파티션 크기 변경, 이동, 삭제 등이 가능
스크립트 가능: parted는 CLI에서 명령어를 스크립트로 작성하여 자동화할 수 있음
보다 유연한 파티셔닝 작업: 파티션을 손쉽게 변경할 수 있음

📌 단점

사용법이 복잡할 수 있음: 고급 기능이 많아서 초보자에게는 다소 어렵게 느껴질 수 있음
MBR에 대한 제한: GPT가 기본이라 MBR에 비해 호환성에 제약이 있을 수 있음

📌 사용 예시

parted /dev/sda
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 100GB

2️⃣ fdisk

📌 특징

  • 오래된 디스크 파티셔닝 도구로, MBR(Master Boot Record) 파티션 테이블만 지원
  • 단순한 CLI 인터페이스로 사용이 용이하고, 초보자에게 적합
  • 1TB 이하 디스크에서 사용이 권장됨 (GPT는 지원하지 않음)
  • 기본적인 파티셔닝 기능만 제공 (파티션 생성, 삭제, 크기 변경 등)

📌 장점

사용이 간단하고 직관적
MBR 파티션 테이블에서 작업할 때 가장 많이 사용됨
구형 시스템과의 호환성이 좋음

📌 단점

GPT를 지원하지 않음: 2TB 이상의 디스크에서 제한적
고급 파티셔닝 기능 부족: 파티션 크기 변경, 이동 등은 복잡하거나 불가능

📌 사용 예시

fdisk /dev/sda
Command (m for help): n   # 새 파티션 만들기
Command (m for help): w   # 변경 사항 저장

3️⃣ parted vs fdisk 비교 표

 

특성 parted fdisk
파티션 테이블 MBR, GPT 지원 MBR만 지원
디스크 크기 지원 2TB 이상 지원 (GPT 사용 시) 2TB 이하 디스크에 적합
주요 기능 고급 파티셔닝 기능 (파티션 크기 변경, 이동 등) 기본적인 파티셔닝 기능 (파티션 생성, 삭제 등)
사용법 고급, 스크립트 가능 간단하고 직관적
호환성 최신 시스템에서 사용, GPT 지원 구형 시스템과 호환성 좋음, GPT는 지원하지 않음
복잡도 상대적으로 복잡한 사용법 매우 직관적, 초보자에게 적합

4️⃣ 언제 어떤 도구를 사용해야 할까?

  • parted:
    GPT 파티션을 사용하거나, 2TB 이상의 디스크를 다루는 경우에 적합
    → **고급 파티셔닝 작업(크기 조정, 이동 등)**이 필요한 경우에 유용
    → 최신 시스템이나 고급 기능을 원하는 사용자가 선택
  • fdisk:
    MBR 파티션 테이블을 사용하고, 2TB 이하의 디스크에서 파티셔닝을 해야 할 때 적합
    → 간단하고 직관적인 인터페이스로 빠르게 파티션을 만들거나 수정할 수 있음

✅ BSD와 System V: 유닉스 계열 운영체제

1️⃣ BSD (Berkeley Software Distribution)

📌 개요

  • 1977년, 미국 **UC 버클리(University of California, Berkeley)**에서 개발한 유닉스 계열 OS
  • AT&T Unix Version 6을 기반으로 확장됨
  • 라이선스: BSD 라이선스 (자유 소프트웨어에 가까움)
  • 주로 대학과 연구 기관에서 사용되었고, 네트워킹 관련 기능이 강함

📌 주요 특징

네트워킹 기능 강력: TCP/IP 스택이 처음으로 BSD에서 구현됨 → 인터넷 기반 기술에 중요한 역할
BSD 소켓 API 제공: 네트워크 프로그래밍에서 널리 사용됨
BSD 라이선스 적용: 코드 사용이 자유로워 오픈소스 OS에 많이 활용됨
포트 시스템: 소프트웨어 패키지 관리 방식이 유연함 (예: FreeBSD Ports)

📌 대표적인 BSD 계열 운영체제

  • FreeBSD (서버 및 네트워킹 용도로 많이 사용)
  • OpenBSD (보안 중심)
  • NetBSD (다양한 하드웨어 지원)
  • macOS (BSD 기반의 Darwin 커널 사용)

2️⃣ System V (AT&T Unix)

📌 개요

  • AT&T Bell Labs에서 개발한 유닉스 계열 OS
  • 1983년 AT&T Unix System V Release 1 발표
  • 기업 환경에 적합한 설계를 중점적으로 개발
  • 상업적 라이선스로 배포되었으며, 여러 벤더들이 이를 기반으로 자체 유닉스 시스템을 개발

📌 주요 특징

System V init 시스템: 전통적인 서비스 관리 방식 (/etc/inittab 사용)
SVR4에서 표준화: 다양한 유닉스 시스템 간의 공통 기능 정의
기업 환경에 적합: 대형 메인프레임과 서버에서 주로 사용됨
AT&T 라이선스: BSD보다 자유도가 낮고 상업적으로 활용됨

📌 대표적인 System V 계열 운영체제

  • Solaris (Sun Microsystems, 후에 Oracle 소유)
  • AIX (IBM)
  • HP-UX (Hewlett-Packard)
  • UnixWare, SCO Unix

📌 현재 리눅스는 BSD와 System V의 특징을 모두 포함하는 형태로 발전했으며, System V의 일부 개념 (init, runlevel)은 현대 리눅스에서 systemd로 대체되었습니다.

🚀 BSD는 자유 소프트웨어와 네트워킹, System V는 상용 유닉스 환경에서 중요한 역할을 했다고 볼 수 있습니다.


🔹 /etc/fstab 필드 구조

<파일 시스템>  <마운트 위치>  <파일 시스템 유형>  <마운트 옵션>  <덤프 옵션>  <fsck 옵션>

✅ 1. 파일 시스템 (Device)

  • 마운트할 디스크 또는 네트워크 경로를 지정합니다.
  • 일반적으로 다음과 같은 형태로 나타납니다.
    • 디스크 장치 파일: /dev/sda1, /dev/nvme0n1p1
    • UUID (권장됨): UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    • LABEL: LABEL=mydisk
    • 네트워크 파일 시스템: //server/share
    • 특수 마운트 타입: tmpfs, none

✅ 2. 마운트 위치 (Mount Point)

  • 해당 파일 시스템을 마운트할 경로를 지정합니다.
    • 예시: /, /home, /var, /mnt/data

✅ 3. 파일 시스템 유형 (Filesystem Type)

  • 파일 시스템의 종류를 지정합니다.
    • 주요 파일 시스템 유형:
      • ext4, xfs, btrfs (일반적인 리눅스 파일 시스템)
      • vfat, ntfs (Windows 파일 시스템)
      • iso9660 (CD/DVD 파일 시스템)
      • nfs, cifs (네트워크 파일 시스템)
      • tmpfs (메모리 기반 가상 파일 시스템)

✅ 4. 마운트 옵션 (Mount Options)

  • 마운트 시 적용할 옵션을 설정합니다.
  • 주요 옵션:
    • 읽기/쓰기 모드: defaults (rw, suid, dev, exec, auto, nouser, async 포함)
    • 읽기 전용: ro
    • 쓰기 가능: rw
    • 비동기 모드: async
    • 사용자 마운트 허용: user, nouser
    • 실행 파일 실행 여부: exec, noexec
    • 디바이스 파일 허용 여부: dev, nodev
    • SUID/SGID 허용 여부: suid, nosuid
    • 자동 마운트 여부: auto, noauto

✅ 5. 덤프 옵션 (Dump)

  • 백업 유틸리티 dump가 파일 시스템을 덤프(백업)할지를 지정합니다.
  • 일반적으로 0 (백업 안 함) 또는 1 (백업함) 사용.

✅ 6. fsck 옵션 (Filesystem Check Order)

  • fsck 실행 시 검사 순서를 지정합니다.
    • 0: 검사 안 함
    • 1: 루트 파일 시스템 (최우선 검사)
    • 2: 루트 외의 파일 시스템 (병렬 검사 가능)

🔹 /etc/fstab에서 쿼터(Quota) 설정

파일 시스템 쿼터(Quota)는 사용자 또는 그룹이 사용할 수 있는 디스크 공간 및 inode 수를 제한하는 기능입니다.
이를 /etc/fstab에 적용하면 시스템 부팅 시 자동으로 쿼터가 활성화

 

✅ 1. /etc/fstab에서 쿼터 옵션 추가

/etc/fstab에 usrquota, grpquota 옵션을 추가하여 특정 파일 시스템에 쿼터를 활성화할 수 있습니다.

UUID=a1b2c3d4-e5f6-7890-1234-56789abcdef0  /home  ext4  defaults,usrquota,grpquota  1 2

📌 해석

  • /home 파티션에 ext4 파일 시스템 사용
  • usrquota → 사용자 쿼터 활성화
  • grpquota → 그룹 쿼터 활성화
  • defaults → 기본 마운트 옵션 유지

✅ 2. 쿼터 설정 방법

1️⃣ 쿼터 데이터베이스 파일 생성

쿼터 활성화 후 초기화 파일을 생성합니다.

mount -o remount /home  # /home을 다시 마운트하여 변경 적용
quotacheck -cum /home    # 사용자 쿼터 스캔 및 생성
quotacheck -cgm /home    # 그룹 쿼터 스캔 및 생성
  • -c : 초기화
  • -u : 사용자(User) 쿼터
  • -g : 그룹(Group) 쿼터
  • -m : 마운트된 상태에서도 실행 가능

2️⃣ 쿼터 활성화

quotaon -v /home
📌 적용 확인
quota -u 사용자이름
quota -g 그룹이름

3️⃣ 사용자/그룹별 쿼터 설정

edquota -u 사용자이름
edquota -g 그룹이름
#결과
Disk quotas for user testuser (uid 1001):
  Filesystem   blocks   soft   hard   inodes   soft   hard
  /dev/sdb1    50000    60000  70000  10000    12000  15000
  • soft: 경고 임계값
  • hard: 초과 불가능한 최대 제한

4️⃣ 재부팅 후 자동 적용 확인

시스템 재부팅 후 설정이 유지되는지 확인:

 
mount | grep quota

#출력 예시:
/dev/sdb1 on /home type ext4 (rw,usrquota,grpquota)

🔹 touch 명령어로 파일 타임스탬프 변경하기

touch 명령어를 사용하면 파일의 **액세스 시간(Access Time, atime)**과 **수정 시간(Modification Time, mtime)**을 변경할 수 있습니다.
또한, -t 또는 -d 옵션을 사용하여 원하는 시간으로 조정할 수 있습니다.

✅ 1. 기본 사용법

touch filename

📌 효과

  • 파일이 존재하면 액세스 시간(atime)과 수정 시간(mtime)을 현재 시간으로 변경
  • 파일이 없으면 새로운 파일을 생성

✅ 2. 특정 시간으로 변경

1️⃣ -t 옵션 사용 (YYYYMMDDhhmm)

touch -t 202402071530 filename

📌 해석

  • 2024년 02월 07일 15시 30분으로 atime 및 mtime 설정

2️⃣ -d 옵션 사용 (자연어 형태)

 
touch -d "2024-02-07 15:30:00" filename

##또는 상대적인 시간 설정:
touch -d "2 days ago" filename  # 2일 전으로 설정
touch -d "next Monday" filename  # 다음 월요일로 설정

3️⃣ 액세스 시간(atime)과 수정 시간(mtime) 개별 설정

touch -a -t 202402071530 filename  # atime만 변경
touch -m -t 202402071530 filename  # mtime만 변경

✅ 3. 다른 파일의 타임스탬프 복사

touch -r source_file target_file

📌 효과

  • source_file의 타임스탬프를 target_file에 복사

✅ 4. 확인 방법

ls -l filename  # mtime 확인
stat filename   # atime, mtime, ctime 확인

 

반응형