[리눅스마스터 1급] 일반 운영 관리 [1]
✅ 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 확인