[파일시스템] 리눅스 파일시스템 Linux file system 개념 정리
▶ 리눅스 파일 시스템 개요
- 파일
- 데이터의 집합
- 정규 파일 (regular file) : 텍스트 파일, 바이너리 파일
- 디렉터리
- 특수파일 : 장치(device) 파일, 파이프 파일 등
# ls -l
- 파일 목록의 첫 번째 글자가 파일의 유형을 보여준다.
- - : 정규 파일
- d : 디렉터리
- c, b, p : 특수 파일( character device, block device, pipe)
- ㅣ : 링크

-rw------- : 파일의 유형 및 허가권
1 : 파일의 링크 수
root : 파일의 소유자
root : 파일의 그룹
1423 : 파일의 크기
Sep 6 04:15 파일의 변경 날짜
▶ 파일의 소유권
파일 사용자의 세 가지 유형, 각 유형에 따라 사용권한을 다르게 할 수 있음, 파일의 소유권은 슈퍼 사용자 또는 소유자가 변경 가능하다 (chown), 파일의 소유자는 파일에 대한 다른 사람의 허가(permisison)권을 변경할 수 있다. chmod 명령어
- 파일의 소유자 u
- 파일의 그룹에 속하는 사용자 g
- 그 외 사용자 others o
▶ 파일의 허가권
chmod 명령어 -> 파일의 허가권을 변경하는 명령어
▶ 파일의 소유권
chown 명령어 -> 파일의 소유자와 그룹을 변경하는 명령어
chown ensung test.txt
chown ensung:dba test.txt
chgrp 명령어
- 파일의 그룹을 변경하는 명령어
- chgrp dba test 1.txt
▶ ln 명령어
ln 명령어는 하드 링크, 심볼릭 링크를 생성하게 하는 명령어
하나의 파일에 여러 파일 이름을 가지게 한다.
ln hard link
ln test 1.txt test2.txt test1.txt가 가르키는 파일을 test2.txt가 가르키게 만든다.
ln soft link
ln -s test1.txt test2.txt
test2.txt가 test 1.txt를 가리키게 만듭니다. test 1.txt가 없어지면 test2.txt는 이름만 있고 실체는 없게 됩니다.
▶ 디렉터리
- 디렉터리도 파일의 일종이라 소유자, 그룹, 허가권을 가집니다.
- 디렉터리파일은 일련의 디렉토리 entry로 구성됩니다. 각 항은 디렉터리에 있는 파일 이름, 또는 서브 디렉터리 이름
- 디렉터리의 허가권의 의미
- 읽기 허가 : 디렉토리 파일이나 서브 디렉토리 이름을 리스트 할 수 있습니다.
- 쓰기 허가 : 디렉토리 내에 새로운 파일을 생성하거나 삭제할 수 있습니다.
- 수행 허가 : cd명령으로 디렉터리에 들어갈 수 있습니다.
▶ 장치 파일
- 주변장치 (디스크, 프린터, 테이프)를 파일 시스템 내의 파일 이름으로 접근함
/dev 디렉터리에 존재, 장치 파일에 대한 읽기, 쓰기는 주변 장치 간에 데이터를 이동하게 함
- /dev/tty00 : 단말기
- /dev/lp : 프린터
- /dev/rmt0 : 테이프
- /dev/hd0a : 하드디스크 분할
▶ 장치 파일의 종류
1. 블록 장치
- 시스템과 장치 간의 데이터 이동이 블록단위로 수행됨
- 디스크, 테이프 등
- 임의 접근 가능
2. 문자 장치
- 데이터 이동이 임의 길이의 문자열로 수행됨
- 터미널, 프린터 등
- 임의 접근이 가능 또는 불가능
▶ 장치 파일의 major number와 minor number
- major number : 장치의 유형
- minor number : 장치의 유닛 (같은 유형의 장치를 구분)
$ ls-l /dev/tty3
crw-w-w-- i ben otehr 8,3
c: 문자 장치 파일 8 major number 3 minor number
▶ 파티션의 개념
파티션: partition -> 디스크 공간의 분할
- 파티션 하는 이유
- 디스크 공간을 나누고 각 공간 사용이 다른 공간을 간섭하지 않도록 함
- 다른 os 설치하기 위해 각 os를 다른 파티션에 설치함
- 보호 (protection) /dev/hda /dev/hda1, /dev/hda2, /dev/hda3
▶ 파티션
/ | 루트 파티션, 단일 사용자 모드로 수행하기 위해 필요한 핵심 시스템 파일이 저장됨, 핵심 기능들이 보호되도록 다른 시스템과 분리해놓는다. |
/boot | 리눅스 커널 이미지, 맵 파일 등을 저장함 |
/usr | 사용자 도구, X 윈도 들의 시스템 소프트웨어들을 저장함. |
/var | Spool 디렉토리 메일 프린트등와 로그 파일을 저장함. 부주의하여 매우 큰 파일이 생길 수 있으므로 별도의 파티션으로 분리함 |
/tmp | 사용자 응용 프로그램에서 임시 파일을 저장하는곳으로 부주의하여 매우 큰 임시 파일이 생길 수 있으므로 별도의 파티션으로 분리함 |
/home | 사용자의 홈 디렉토리를 위한 파티션 |
swap | 스왑 파티션, 가상 메모리를 저장함, 보통 RAM 크기의 2배 |
▶ 파티션 만들기
- fdisk 명령어는 파티션 테이블을 관리하는 명령어로, 리눅스 디스크 파티션을 생성, 수정, 삭제할 수 있는 있는 일종의 유틸리티
# fdisk
▶ 파티션 보기
# df
# cat/etc/fstab
▶ 마운트 (mount)
- 루트 디렉터리 밑의 한 서브 디렉터리에 파티션을 붙이는 것
▶ 언마운트 : 마운트된 파티션을 언마운드
$ unmount /usr
* 파티션이 사용 중이면 원마운트 할 수 없으므로 강제로 실행할 때는 -f 옵션을 사용한다.
$ unmount -f /usr
▶fsck file system check
- 파일 시스템의 손상을 진단하고 복구하는 프로그램 ext2 파일 시스템의 검사는 e2fsck 프로그램을 사용한다.
- 부트 할 때 온전하게 언마운트 되지 않은 파티션을 발견하면 자동으로 검사한다.