리눅스 :: 파일시스템

2025. 9. 7. 20:33백엔드/리눅스

-    일반 파일

d    디렉터리 파일

b   블록 단위로 읽고 쓰는 블록 장치(하드디스크, 플로피디스크, CD/DVD 등) 특수 파일.

c    문자 단위로 읽고 쓰는 문자 장치(마우스, 키보드, 프린터) 특수 파일

l     기호적 링크로 바로가기 아이콘 역할.

p    파이프

s    소켓

 

관련 명령어

umask 새로 생성되는 파일 또는 디렉터리의 기본 허가권 값 설정

파일 기본 권한(666) 디렉터리 기본 권한(777)

연산법: umask 값에 보수를 취한 다음 AND 연산 (기본권한 에서 umask 마이너스연산)

 

특수 권한

SetUID , SetGID

프로세스 실행 동안 root 권한 임시로 가져오는 기능 (전환)

↔ StickyBit 와 구분하여 알아둘 것. StickyBit는 보호 목적으로 제약을 두는 것이다.(생성O 삭제X)

 

 

설정하게되면 rwx 가 아니라 rws, rwS 등으로 바뀐다고보면 됨. 그런데, 실행 파일 여부에따라 s(실행가능), S(실행 불가) 로 갈림.

 

 

Sticky Bit

일반적으로 공용 디렉터리 사용시 Sticky Bit 설정

Sticky Bit 가 설정되어 있는 디렉터리 안의 내용은 root와 해당 파일의 소유자만이 변경이 가능하게 함으로써 공용 디렉터리라도 권한 제약을 두어 파일 보호 목적으로 만든 것

사용자 권한을 지정하기 어려운 프로그램들이 일시적으로 특정 디렉터리에 파일을 생성하고 삭제하는 방식으로 이용됨

특정 응용 프로그램이 다른 응용 프로그램에서 생성한 파일을 삭제하지 못하는 권한 설정을 함

일반적으로 Sticky Bit 로 설정되는 디렉터리는 /tmp 내부에 생성한다.

 

 

디스크 쿼터 명령어

cat fstab

# 재마운팅 실행 후 확인
mount -o remount /QUOTA
mount

# 마운트된 쿼터를 끄고 생성된 쿼터 파일 삭제
cd /QUOTA
quotaoff -augp   # 디스크 쿼터 기능 해제
quotacheck -augmn   # 파일 시스템의 쿼터 관련 점검
rm -rf aquota.*   # 생성된 쿼터 파일 삭제

# 쿼터 데이터베이스 생성
touch aquota.user aquota.group  # 디스크 쿼터 파일 생성
chmod 600 aquota.*   # 권한 설정
quotacheck -augmn    # 쿼터 관련 점검 
quotaon -avug   # 쿼터 서비스 개시
ls -l

# 사용자별 쿼터 지정
edquota -u 사용자명

 

 

 

파일시스템 구조

Disk > Partitions > Block Groups > Super Block, Inode, … ,Data Block

사진 출처: [https://recoverhdd.com/blog/the-ext-ext2-ext3-ext4-filesystem.html]

 

 

Super Block

해당 파일 시스템 관련 정보 저장

블록의 크기(1KB, ..) , 총 블록 또는 블록 그룹의 개수 , inode 의 개수

 

Group Descriptor Table

각 Block Group 을 관리하는 정보 저장

Block Bitmap 와 inode Bitmap 의 블록 번호

첫 번째 inode Table Block 의 블록 번호

 

Block BitMap

그룹 내 각 블록의 사용 상태를 나타냄

 

inode

파일에 대한 제어정보 및 데이터 블록 포인터 저장

파일의 이름을 제외한 해당 파일의 모든 정보를 저장

파일 이름에 부여되는 고유번호, 파일 형태, 크기, 위치, 파일의 소유자 등

모든 파일들과 디렉터리들은 각각 1개의 inode를 할당

inode bitmap: 이 블록에 속한 각 비트는 그룹 내에 있는 각 inode 의 사용상태를 나타냄

inode table: 각각의 inode 에 대한 정보를 나타내는 inode descriptor 로 구성

 

 

리눅스 전용 디스크 기반 파일시스템

ext3    저널링 지원, ACL를 통한 접근제어 지원

ext4    확장 멀티블록 할당, 파일접근속도 향상, 단편화를 줄이도록 설계, 파일 확장자가 따로 필요 없음(명시적 용도로 사용)

 

저널(로그) : 시스템 비정상 종료시 이를 이용해 빠르고 안정적인 복구 가능. 이 기능이 없으면 fsck 에 의해 관리되는 슈퍼블록, 비트맵, 아이노드 등을 모두 검사해야 하기 때문에 시간이 오래 걸린다.

# 저널링 기술이 적용된 파일시스템: ex3 ex4 XFS JFS ReiserFS

 

JFS

IBM 사의 독자적 저널링 파일 시스템

GPL로 공개

 

XFS

고성능 저널링 시스템

데이터 읽기/쓰기 트랜잭션으로 성능 저하 최소화

높은 확장성과 처리량 가짐

 

 

네트워크 파일 시스템

SMB

삼바(SAMBA) 파일시스템을 마운트 지정 : 리눅스, 유닉스 OS, 윈도우 OS 와의 자료및 하드웨어 공유

 

CIFS (Common Internet File System)

SMB를 확장한 파일시스템, 라우터를 뛰어넘어 연결할 수 있는 프로토콜

 

NFS (Network File System)

썬마이크로시스템 (SUN) 이 개발한 네트워크 공유 프로토콜

파일 공유 및 파일 서버로 사용됨

하드웨어, 운영체제, 네트워크 구조가 달라도 공유 가능

NFS 서버의 특정 디렉터리를 마운트하여 사용 가능

 

기타 지원 가능한 파일 시스템

FAT

클러스터 단위로 할당, 클러스터 크기는 볼륨 크기에 따라 결정됨

읽기전용, 숨김, 시스템 및 보관 파일 특성만 지원

삼바 시스템을 마운트 지정

 

VFAT (Virtual FAT)

FAT보다 제한이 적음, 공백이나 여러 개의 구두점도 포함

 

FAT32

다중 부팅 구성, 32Bit보다 큰 파티션을 만들 수 없고, 파티션에 4GB를 초과하는 파일을 저장할 수 없음

 

NTFS

윈도우에서 사용

 

ISO 9660

CD-ROM 의 표준 파일 시스템 표준

 

UDF (Universal Disk Format)

OSTA (Optical Storage Technology Association) 에 의해 개발

광학 매체용 파일 시스템 표준

ISO 9660 파일 시스템을 대체하기 위한 것으로 대부분 DVD에서 사용

DVD 멀티미디어 디스크들은 MPEG 오디오 및 비디오 스트림을 담기 위해 사용

 

HPFS

OS/2 운영체제를 위해 만들어진 파일 시스템

마이크로소프트와 IBM 공동 개발

 

 

명령어

mount [옵션] 디바이스명 [디렉터리명]

-a /etc/fstab 에 정의된 모든 시스템 마운트 (부팅 시)

-n /etc/mtab 에 정보를 저장하지 않고 마운트

-f 테스트만 진행

-t 파일시스템 vfat(FAT32) smbfs(삼바) nfs(네트워크 파일 시스템인 공유된 영역 마운트)

-o 추가설정 ro/rw loop(loop 디바이스 또는 CD-ROM 이미지 ISO 마운트) sync(입출력 동기화) remount user noatime(파일이 변경되기 전까지 access time 이 변경되지 않음)

 

 

 

 

 

'백엔드 > 리눅스' 카테고리의 다른 글

리눅스 :: 주변 장치 명령어  (0) 2025.09.08
리눅스 :: 주변 장치 연결 및 설정  (0) 2025.09.08
리눅스 :: 셸과 환경변수  (0) 2025.09.07
리눅스 :: 에디터  (0) 2025.08.19
리눅스 :: Cron  (2) 2025.08.08