파일시스템은 파일들이 디스크 상에서 구성되는 방식이다. 파일시스템은 컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록 유지, 관리한다.
ext2/3/4
을 사용한다.Ext(Extended File System)
출처 : https://recoverhdd.com/blog/the-ext-ext2-ext3-ext4-filesystem.html
마운트는 외부 장치의 파일 시스템을 나의 시스템의 파일시스템과 연결하는 것을 말한다. 사용자가 지정한 마운트 지점에 외부장치의 파일 시스템을 마운트하는 방법으로 외부 장치의 디렉토리와 파일에 접근할 수 있다.
mount
명령어를 통해 마운트 정보를 조회할 수 있다.
# 현재 마운트된 모든 파일 시스템을 조회한다.
mount
위와 같이 현재 마운트된 모든 파일 시스템이 특정 형식을 따라 출력된다.
출력된 마운트 정보
/dev/vda2 on /boot type ext4 (rw. relatime) --- 1 -------- 2 ------- 3 -------- 4 -----
- 마운트된 장치의 이름
- 마운트된 장치의 마운트 디렉토리
- 파일 시스템 유형
- 마운트 옵션 (읽기/쓰기 모드, 디렉토리/파일 접근시간 업데이트 방식)
외부장치를 마운트 시 아래 형식으로 mount
명령어를 사용한다.
mount [option] [외부장치 경로] [마운트 포인트 경로]
option
-t
: 특정 파일 시스템 유형을 지정할 수 있다.# ext4 파일시스템 유형 명시 mount -t ext4 /dev/sdb1 /mnt/mydrive
-o
: 해당 옵션에 뒤따라 다른 옵션을 추가하여 추가적인 마운트 옵션을 지정한다.# 읽기 전용 mount -o ro /dev/sdb1 /mnt/mydrive
아래와 같은 과정을 거쳐 마운트가 이루어진다.
/dev
에 장치 폴더 /dev/sdb1
생성 /mnt
에 마운트 포인트인 /mnt/mydrive
생성/mnt/sdb1
에 아래 명령어를 사용하여 장치를 마운트mount -t ext4 /dev/sdb1 /mnt/mydrive
파일 경로는 파일이나 디렉토리의 위치를 나타내는 데 사용되는 표기법이다. 절대경로(Absolute path)와 상대경로(Relative path) 두 가지 유형으로 나뉜다.
/home/docs
디렉토리에 my_text.txt
라는 파일이 저장되어있을 때의 각 유형별 경로를 알아보자.
절대경로는 root('/'
) 경로부터 시작하는/home/docs/my_text.txt
의 경로를 가진다.
상대경로는 사용자가 위치한 현재 디렉토리를 기준으로 하여 결정된다. (pwd
명령어를 입력하여 확인) 따라서 현재 /home
경로에서 작업중이라면 docs/my_text.txt
의 경로를 가진다.
링크는 디렉토리나 파일을 가리키는 포인터라고 생각하면 된다. 소프트 링크(Soft link)와 하드 링크(Hard link) 2가지 유형의 링크가 있다.
파일명 -> 링크
로 되어있는 부분이 소프트 링크이다. inode
를 사용하여 원본 파일의 inode
나 데이터와 직접적 연결을 갖지 않는다.inode
를 참조한다.inode
index-node의 줄임말로 Linux에서 소유권, 액세스모드, 파일유형, 파일크기, 데이터 블록 위치 등 파일에 대한 메타데이터를 저장하는 데이터 구조이다. 정수로 식별되며 각 파일은 고유한 inode를 가지고, 파일이 생성될 때 파일에 할당된다.
파일 시스템은 파일이름과 inode 번호를 연결하여 파일을 관리한다.
아래는 이를 잘 설명해주는 그림이다.출처 : https://it-serial.tistory.com/44
아래 명령어를 통해 링크를 생성할 수 있다.
# 소프트 링크 생성
ln -s [원본 파일 이름] [링크 이름]
# 하드 링크 생성
ln [원본 파일 이름] [링크 이름]
모든 디렉토리와 파일에는 권한이 부여되어 있고, 이 권한은 디렉토리와 파일에 읽기/쓰기/실행할 수 있는 사용자를 결정한다. 권한은 아래와 같은 파일을 사용하려는 소유자 유형과 파일의 액세스 모드에 따라 9가지의 조합이 가능하다.
r
: 읽기 (Read)w
: 쓰기 (Write)x
: 실행하기 (Execute)이 9가지의 조합은 9개의 연속된 문자로 식별할 수 있다.
1-3번째 글자까지는 사용자, 4-6까지는 그룹, 7-9까지는 그 외의 파일에 대한 액세스 모드를 표현한다.
예를 들어 rwxr-xr-x
(-
는 해당 자리의 액세스 모드 권한이 없다는 뜻이다.) 라고 되어 있다면
라고 알 수 있다.
아래 명령어로 파일에 설정된 권한과 메타데이터를 조회할 수 있다.
# -l(long format) 옵션 사용하여 리스팅
ls -l
목록에서 맨 마지막 항목을 왼쪽부터 차례대로 설명하자면 아래와 같다.
d
- 디렉토리rwxrwxrwx
- 사용자/그룹/그 외 모두 읽기/쓰기/실행이 가능19
root
root
4096
- byte단위로 표시한다.Dec 11 12:16
tmp
파일이름의 형식이 파일이름 -> 링크
로 되어있는 경우 소프트 링크를 나타낸다.
리눅스 파일시스템
https://lilo.tistory.com/17
https://it-serial.tistory.com/19
https://aryan-singhal-29418.medium.com/an-outline-of-linux-file-system-3f3db6ea8eb1
Ext
https://recoverhdd.com/blog/the-ext-ext2-ext3-ext4-filesystem.html
리눅스 파일 권한
https://www.redhat.com/sysadmin/linux-file-permissions-explained
inode
https://i5i5.tistory.com/341
https://it-serial.tistory.com/44