320x100
320x100

파일 시스템

: 운영체제가 디스크에 데이터를 저장하고 읽기 위해 구성하는 디스크 관리 체계

: 확장자 사용 유무, 확장자의 파일명의 길이, 파티션의 개수, 크기, 파일복구 등을 관할 하는 시스템

 

- 포맷

: 파일을 저장하기 위해 디스크를 일정한 크기로 분할하고 주소를 설정하는 작업

: 포맷을 통해 파일 시스템을 지정하여 파일 저장에 대한 규칙 등을 적용할 수 있음

 

- 기능

: 파일의 생성, 수정, 삭제

: 파일 및 디렉터리의 구조 구성

: 다른 사용자와의 파일 공유를 위한 설정

: 파일 공유를 위한 접근 제어 방법 등 제공

: 데이터 백업 및 복원

: 장치에 대한 액세스 및 제어

: 데이터에 대한 암호화 및 복호화

: 사용자가 접근하기 쉬운 인터페이스 제공

 

 

 

 

 

리눅스의 파일 시스템

- ext2

- ext3

- ext4

- nfs

- ReiserFS

- XFS

- JFS

- VFat

- NFS

- smbfs

- CIFS

 

 

 

 

 

ext2

: ext의 차기 버전으로 확장성에 염두하고 설계한 파일 시스템

: 블록단위를 1k로 설정할 경우 16GB의 단일 파일 생성이 가능하고 4TB의 파일 시스템을 구성할 수 있음

: 실제로는 응용프로그램과의 호환성 문제로 2GB의 단일 파일 생성까지만 지원

 

 

 

 

 

ext3

: 리눅스 커널 2.4.15 버전부터 포함된 ext2의 확장판

: 블록단위를 4k로 설정 했을 경우 2TB의 단일 파일 생성, 16TB의 파일 시스템 구성 가능

: 리눅스의 대표적인 저널링 파일 시스템

: ACL을 통한 접근 제어 지원

 

- 저널링

  : 데이터를 저장하기 전에 저널영역에 데이터의 변경 이력을 저장한 뒤 데이터를 저장하는 기법

  : 갑작스러운 오류에 대한 복구 가능

 

- ACL (Access Control List)

: 파일이나 디렉터리에 대한 접근 권한을 제어하는 시스템

 

 

 

 

 

ext4

: 리눅스 커널 2.6.28 부터 정식으로 채택된 ext3의 확장판으로, ext2와 ext3에 대한 호환성을 가짐

: 64비트 기억공간 제한을 없에고 최대 16TB의 단일 파일 생성, 1EB의 파일 시스템 구성 가능

: 대형 파일 시스템을 위한 기능 대폭 강화

 

 

 

 

 

XFS

: 리눅스 커널 2.4.25에서 포함된 저널링 파일 시스템

: 최대 8EB의 단일 파일 생성, 16EB의 파일 시스템 구성 가능

: RHEL7의 기본 파일 시스템으로 제공되고 있음

 

 

 

 

 

JFS

: GPL로 공개된 IBM의 독자적인 저널링 파일 시스템 

 

 

 

 

 

VFAT

: MS의 FAT-32와의 호환을 위해 개발된 파일 시스템

 

 

 

 

 

NFS

: 네트워크 상에서 파일을 공우하기 위한 파일 시스템

 

 

 

 

 

smbfs

: 네트워크 파일 공유를 위한 프로토콜인 SMB를 구현한 파일 시스템

: 현재는 CIFS로 확장됨

 

 

 

 

 

CIFS

: 파일 공유를 위한 SAMBA 서버에 사용되는 파일 시스템

 

 

 

 

 

리눅스 파일 시스템 관리 명령어

- mount

- umount

- fdisk

- mkfs

- mke2fs

- fsck

- e2fsck

- df

- du

- dd

- stat

- blkid

 

 

 

 

 

mount

: 새로운 보조 기억장치나 다른 파일 시스템으로 구성된 디스크를 시스템과 연결

: 디렉터리 개념으로 시스템에 마운트(탑재)시킴

: 마운트 된 디스크의 목록 확인

 

- 형식

 : mount [option] [device] [directory]

> device는 리눅스 시스템에 보이는 /dev/sda 같은 것

> directory를 지정하여 마운트할 위치 지정

 

- 주요 옵션

: -a

 > /etc/fstab에 명시된 파일 시스템을 마운트.

: -t <file system>

 > 파일 시스템의 유형을 지정. 옵션 없이 실행하면 /etc/fstab 파일을 참조

: -o <additional>

 > 마운트 시 추가적인 설정 적용. 콤마를 통해 구분

 

- 주요 파일 시스템

: msdos (FAT-16에 대한 마운팅)

: vfat

: ntfs

: ext2

: ext3

: ext4

: xfs

: iso9660 (CD-ROM 혹은 DVD를 마운트)

: smbfs 

: cifs

: nfs

: udf (DVD 마운트)

 

- -o 옵션의 주요 항목

: ro

 > 읽기전용으로 마운트

: rw

 > 읽기/쓰기 모드로 마운트 (기본값)

: remount

 > 파티션 정보가 바뀌었을 때 다시 마운트 수행할 때 사용

: loop

 > loop 디바이스 마운트. iso를 마운트해서 사용할 때 사용

: noatime

 > 파일이 변경되기 전까지 Access time이 변경되지 않음. 시스템 작업 시간을 줄이기 위해 사용

: username=<user name>

 > 사용자 계정 등록

: password=<password>

 > 비밀번호 등록

: acl

 > ext3 시스템에서 지원하는 ACL을 설정

 

- 주요 디바이스 파일명

: FDD

 > /dev/fd0

: CD-ROM, DVD

 > /dev/cdrom, /dev/dvd, /dev/sr0

: IDE HDD

 > /dev/hda

: USB, SCSI HDD, SATA HDD

 > /dev/sda

 

 

 

 

 

umount

: 마운트된 파일 시스템을 해제. 데이터의 손실을 막기 위해서는 장치 해제 시 반드시 실행

 

- 형식

: umount [option] <device>

: umount [option] <directory>

> device는 리눅스 시스템에 보이는 /dev/sda 같은 것

 

- 주요 옵션

: -a

 > /etc/mtab에 명시된 파일 시스템 언마운트

: -t <file system>

 > 언마운트 할 파일 시스템 지정

 

 

 

 

 

fdisk

: 디스크의 파티션을 확인하고 추가 및 삭제

: 명령 실행 후 반드시 재부팅 필요

 

- 형식

: fdisk [option] [device]

 

- 주요 옵션

: -l [device]

 > 지정한 장치의 파티션 테이블 정보 출력

 > 장치파일명 미기재 시 /proc/partitions의 정보를 기반으로 파티션 테이블 정보 출력

: -s <partition>

 > 특정 파티션을 블록 단위로 출력 (4096kb)

: -v

 > fdisk의 명령 버전

 

- fdisk 실행 후 사용하는 주요 명령

: p

 > 현재 디스크의 정보를 출력

: d

 > 파티션 삭제

: n

 > 파티션 추가

: t

 > 파티션 속성 변경 (swap: 82 / Linux: 83 / Linux LVM: 8e / Raid: fd)

: w

 > 변경된 파티션 정보 저장 후 종료

: q

 > 저장하지 않고 종료

 

 

 

 

 

mkfs

: 디스크에 새로운 파일 시스템 생성. 기본값은 ext2

: mkfs.ext2 등으로도 사용 가능

 

- 형식

: mkfs [option] <device>

 

- 주요 옵션

 : -t <filesystem>

 > 생성할 파일 시스템 유형 지정

: -c

 > 배드 블록을 체크한 뒤 파일 시스템 생성

: -v

 > 결과 상세히 출력

 

 

 

 

 

mke2fs

: ext2, ext3, ext4 파일 시스템을 생성하는 명령

: 최근 리눅스 배포판에서 mkfs 명령에 alias된 명령어. 기본값은 ext2

 

- 형식

: mke2fs [option] <device>

 

- 주요 옵션

: -j

 > 저널링 파일 시스템인 ext3로 생성

: -t <filesystem>

 > 파일 시스템 유형 지정

: -b <block size>

 > 블록 사이즈 지정 (1024, 2048, 4096)

: -R <raid option>

 > RAID 설정. argument=value 형식으로 지정

: -T <usage type>

 > i-node의 크기 설정. news (4kb) / largefile (1mb) / largefile4 (4mb)

 

 

 

 

 

fsck

: 파일 시스템을 검사하고 복구

: fsck.ext2 같은 형식으로도 사용 가능

 

- 형식

: fsck [option] <device>

 

- 주요 옵션

: -a

 > 명령 수행에 대한 확인 질문 없이 무조건 수행

: -r

 > 명령 수행에 대해 단계별로 질문 후 수행

: -A

 > /etc/fstab에 정의 되어 있는 모든 파일 시스템을 체크

: -P

 > -A 옵션과 함께 사용하여 루트 파일 시스템을 다른 파일 시스템과 병렬로 함께 체크

: -R

 > -A 옵션과 함께 사용하여 루트 파일 시스템에 대해서는 체크하지 않음

: -N

 > 실행하지 않고 실행될 사항들을 출력

: -T

 > 검사할 때 제목을 보여주지 않음

: -s

 > 동작을 시리얼화 하여 대화형 모드로 실행

: -V

 > 실행되는 명령들을 자세히 출력

: -v

 > 버전 정보 출력

: -t <file system>

 > 점검할 파일 시스템 유형 지정. -A 옵션이 있는 경우 /etc/fstab에서 파일 시스템 유형이 맞는 것만 검사

 > file system 앞에 no를 붙이면 해당 파일 시스템을 제외한 모든 시스템을 점검

 

 

 

 

 

e2fsck

: ext2, ext3, ext4를 검사. fsck 명령에 alias된 명령어

 

- 형식

: e2fsck [option] <device>

 

- 주요 옵션

: -n

 > 질문에 대해 모두 no로 처리

: -y

 > 질문에 대해 보드 yes로 처리

: -c

 > 배드 블록 체크

: -f

 > 깨끗한 파일까지 전부 강제로 검사

 

 

 

 

 

df

: 현재 마운트된 디스크들의 사용량, 크기, 가용량 등에 대한 정보 출력

 

- 형식

: df [option]

 

- 주요 옵션

: -h (--human-readable)

 > 용량 단위를 보기 좋은 단위로 출력

: -k

 > 킬로 바이트 단위로 출력 (기본값)

: -m (--print-type)

 > 메가 바이트 단위로 출력

: -T

 > 각 파티션에 대한 파일 시스템 유형 출력

: -i

 > i-node 사용량 출력

 

 

 

 

 

du

: 파일이나 디렉터리들이 디스크에서 차지하고 있는 크기 출력

 

- 형식

: du [option] [files]

 

- 주요 옵션

: -h

 > 용량 단위를 보기 좋은 단위로 출력

: -b

 > 바이트 단위로 출력

: -k

 > 킬로 바이트 단위로 출력 

: -m

 > 메가 바이트 단위로 출력

: -a

 > 현재 디렉터리에 존재하는 모든 파일에 대한 각각의 크기 출력

: -s (--summarize)

 > 파일들의 전체 크기 출력

 

 

 

 

 

dd

: Data dumper의 약자로, 파일의 데이터 포맷을 변경

: 현재 디스크의 형상을 이미지 형태로 백업할 때 주로 사용

: 텍스트 파일의 문자들을 대/소문자로 변경할 때도 사용

: 부팅 또는 설치 디스크를 만들때 사용

: 디스크나 파티션 단위로 백업할 때 사용

: 스왑 파일을 만들 때 사용

: 디스크를 초기화 시킬때 사용

 

- 형식

: dd if=<input file> [input option] of=<output file> [output option]

 

- 주요 옵션

: conv=

 > input file에서 변환하는 데이터 유형. input option

: bs=

 > ouput file의 블록 사이즈 설정. ouput option

: count=

 > ouput file의 변환 되는 블록 수. ouput option

: skip=

 > input file의 시작 블록 번호 지정. ouput option

 

 

 

 

 

stat

: 파일 또는 파일 시스템의 정보를 출력

 

- 형식

: stat [options] <file>

 

- 주요 옵션

: -f (--file-system)

 > 해당 파일이 속한 파일 시스템 출력

: -L (--dereference)

 > 심볼릭 파일에 대해 원본 파일 정보 출력

: --print=<type>

 > 출력할 형식 지정. 파일이름 (%n) / 소유자 이름 (%U) / 소유자 그룹 (%G) / SeLinux 정보 (%C) / 마지막 변경 시간 (%z)

 

 

 

 

 

blkid

: 블록 장치의 속성 정보 출력. UUID와 LABEL 등을 알 수 있음

 

- 형식

: blkid [option] [device]

 

- 주요 옵션

: -L

> 라벨 명으로 블록 장치 탐색 시 사용

: -U

 > UUID 명으로 블록 장치를 찾을 때 사용

 

 

 

 

 

리눅스 파일 시스템 관련 파일

- /etc/fstab

- /etc/mtab

 

 

 

 

 

/etc/fstab

: 부팅 시 마운트할 파티션 정보가 수록된 파일

: 파티션 정보를 변경했거나 디스크를 추가한 경우 이 파일에 등록해야 부팅 시 자동으로 마운트 됨

 

- 기본구조

UUID/LABEL   mount point    filesystem    mount option    dump cycle    fsck ordered

 

- 항목별 설명

: UUID/LABEL

 > 디스크의 고유명 혹은 표기명. 네트워크로 연결된 경우 호스트명:디렉터리 형식으로 표기

: mount point 

 > 마운트될 디렉터리 위치

: filesystem

 > 마운트 시 파일 시스템

: mount option

 > 마운트 될때의 옵션

: dump cycle

 > dump 명령으로 백업 시의 덤프 사용주기. 하루 단위로 설정

: fsck orderd

 > 부팅 시 파일 시스템을 점검하는 fsck의 순서. 루트 파일 시스템을 1로 설정

 > 0으로 설정 시 점검하지 않음

 

- mount option의 주요 옵션

: defaults

 > rw / suid / dev / exec / auto / nouser / async

: auto

 > 부팅 시 미디어 존재 시 자동으로 -a 옵션으로 마운트

: noauto

 > 부팅 시 자동 마운트 하지 않음. -a를 제외한 옵션으로 마운트만 가능

: user

 > 로컬에서 일반 사용자가 마운트 가능

: owner

 > 장치 소유자가 마운트 권한 부여

: nofail

 > 해당 장치 파일이 존재하지 않아도 에러로 처리하지 않음

: uqouta / usrquota

 > 사용자에 대한 디스크 쿼터 사용

: gquota / grpquota

 > 그룹에 대한 디스크 쿼터 사용

: noquota

 > 사용자에 대해 디스크 쿼터 사용 안함

: nosuid

 > SUID나 SGID 설정안함

: nodev

 > 파티션에서 문자나 특별한 장치 허용 안함

: noexec

 > 파티션에서 실행 파일 실행 안됨

: suid

 > SUID나 SGID 사용 허가

: ro

 > 읽기 전용으로 마운트

: rw

 > 읽기 쓰기로 마운트

: async

 > 파일을 비동기적으로 관리

: acl

 > ACL 사용

 

 

 

 

 

/etc/mtab

: 현재 시스템에 마운트 되어있는 파일 시스템 정보 기재

: blkid 명령어에서 참조

 

 

 

 

 

 

 

Refference

 

리눅스마스터 1급 2차 실기 정복하기 | 정성재 - 교보문고

리눅스마스터 1급 2차 실기 정복하기 | 출제 경향을 반영하여 핵심 내용만 요약 정리 시험대비를 위한 최신 기출문제를 해설과 함께 수록본 교재는 독자들이 최근 출간 요구가 많았던 리눅스마

product.kyobobook.co.kr

 

300x250
728x90

'Certification > 리눅스마스터' 카테고리의 다른 글

리눅스 Disk Quota 설정  (0) 2022.10.10
리눅스 Disk Swap 설정  (0) 2022.10.10
리눅스 파일 권한 관리  (0) 2022.10.08
리눅스 시스템 정보 조회 및 관리  (0) 2022.10.08
리눅스 그룹 관리  (0) 2022.10.07