LINUX/리눅스 쉘 스크립트 바이블 정리

[리눅스 바이블] 8. 파일시스템 관리하기

은재정 2022. 2. 26. 21:22

 

리눅스 파일시스템 살펴보기

기본적인 리눅스 파일시스템 이해하기

리눅스 OS와 함께 도입된 원래의 파일시스템은 확장 파일시스템(ext)로, 이 시스템은 물리적 장치를 다루기 위해서

가상 디렉토리를 사용하며 물리적 장치에 고정 길이의 블록을 이용해서 데이터를 저장하는 유닉스와 비슷한

파일시스템을 리눅스에 제공한다.

 

ext 파일시스템은 가상 디렉토리에 저장되어 있는 파일에 대한 정보를 추적하기 위하여 아이노드(Inode)라는

시스템을 사용한다. 아이노드 시스템은 각각의 물리적 장치마다 파일 정보를 저장하기 위해 아이노드 테이블이라는

것을 만드는데, 가상 디렉토리에 저장되는 각 파일은 아이노드 테이블에 항목을 가진다.

 

리눅스는 데이터 파일이 만들어질 때 파일시스템이 할당하는 고유한 번호(아이노드 번호)를 써서

아이노드 테이블의 각 아이노드를 참조한다.

 

ext2 파일시스템은 아이노드 테이블을 확장하고, 파일을 저장할 때 디스크 블록을 그룹으로 할당함으로써

파일이 데이터 블록에 저장되는 방식을 효율적으로 바꾸었다. 다만 아이노드 테이블이 손상되면 파일을 읽을 수 

없게 된다는 치명적인 문제점이 존재했다.

 

저널링 파일시스템 이해하기

저널링 파일시스템은 저장장치에 데이터를 직접 작성하고 아이노드 테이블을 업데이트 하는 대신, 

임시 파일(저널)에 파일의 변경된 내용을 기록한다. 데이터가 성공적으로 저장장치 및 아이노드 테이블에 기록되고 나면

저널 항목은 지워진다. 대표적으로 ext3 파일시스템, ext4 파일시스템 등이 존재한다.

 

파일시스템으로 작업하기

파티션 만들기

fdisk 유틸리티는 시스템에 설치되어 있는 저장장치에 파티션을 구성하기 위해 사용되는데,

fdisk 명령은 하드 드라이브에 파티션을 만드는 각 단계에 명령을 입력할 수 있는 대화형 프로그램이다.

해당 명령을 시작하려면 슈퍼유저 권한이 필요하다.

 

- p: 현재 파티션 테이블을 표시한다.

- n: 저장장치에 새 파티션을 만든다.

- w: 원하는 파티션을 만든 후 저장장치에 변경 사항을 저장한다.

 

파일시스템 만들기

파티션에 데이터를 저장하기 전에 리눅스가 이를 사용할 수 있도록 파일시스템으로 포맷해야한다.

# 파일시스템 유틸리티 있는지 확인
type mkfs.ext4
sudo mkfs.ext4 /dev/sdb1

 

파티션에 파일시스템을 만들고 나서 다음 단계는 새로운 파일시스템에 데이터를 저장할 수 있도록 가상 디렉토리의

마운트 지점에 마운트 하는 것이다.

ls /mnt
sudo mkdir /mnt/my_partition
ls -al /mnt/my_partition
ls -dF /mnt/my_partition
sudo mount -t ext4 /dev/sdb1 /mnt/my_partition
ls -al /mnt/my_partition

 

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

fsck 명령을 통해 가능하다. fsck options filesystem 형식으로 사용한다.