파일시스템이란,
파일과 디렉토리를 관리하는 체계로 , 각각의 디스크(하드디스크)는 사용자가 지정하는 파일시스템을 갖게 된다.
하드디스크에 데이터를 저장하기 위해서는 하드디스크의 특정주소 블럭에 넣어주어야 하는데 파일시스템이 없다면
파일이 저장된 모든 주소값을 전부 외워야하지만, 파일시스템이 있기 때문에 , 디렉토리 아래 파일을 쉽게 찾을 수 있는
구조로 데이터를 저장할 수 있다.
*기본적인 디스크기반 파일 시스템
ext1 : inode 수정 및 데이터 수정 시간 등을 지원하지 않음. 링크드 리스트 자료 구조에 의해 파일 시스템을 구성.
(링크드 리스트의 단점을 그대로 계승)
ext2 : ext3 의 도입 전까지 리눅스 표준. 부팅가능한 USB 플래시 드라이브, 기타 SSD 장치에는 여전히 사용
ext3 : 저널링 기능(=로그기능)을 통해 만약 데이터가 유실될 시, 저널 기록을 통해 복구. inode의 갯수를 동적으로
조절하거나, 블록의 크기를 다양하게 하는 기능이 부족함.
ext4 : ext3보다 더 많은 저장 볼륨 제공, 온라인 조각 모음 기능 지원 ( 대표적으로 많이 사용함 )
XFS : 현재 대부분 리눅스 배포판에서 지원하며, xfsprogs 패키지를 설치하여 사용 가능. 64비트 파일 시스템으로
ext4보다 16배 정도 큰 최대 볼륨 지원
*기타 디스크 기반 파일 시스템
다른 운영체제 시스템 (유닉스, 윈도우 등) 과 호환할 수 있도록 만들어진 파일 시스템
CD-ROM, DVD 같은 외부 저장 장치에 대한 파일 시스템 등
*특수 용도의 가상 파일 시스템
메모리에서 생성되어 사용되는 가상 파일 시스템
용도에 따라, 생성 및 삭제를 반복
tmpfs : 임시 파일을 메모리에 잠시 저장하기 위한 파일 시스템 (ex : /run 디렉토리)
proc : proc 파일시스템. /proc 디렉토리를 사용한다.
ramfs : 램디스크를 지원하는 파일 시스템
rootfs : root files system. / 디렉토리를 의미한다.
## 마운트 ( mount )
파일시스템을 디렉토리에 접근시킴
하드 디스크나 CD-ROM, USB등 외부 저장 장치의
파일시스템으로 정리된 데이터를 사용한다.
** 우리가 사용하는 우분투는 부팅시 하드디스크등의 저장장치를 자동으로 마운트하여 사용할 수 있도록 한다.
자동 마운트 되는 목록의 확인은
/etc/fstab 에서 확인 가능하다. ( vim /etc/fstab )
하디디스크나 기타 저장장치를 마운트하여 사용하는 명령어는 간단하나,
마운트 하기전에 해야할 과정이 있다. 이 과정들을 수행하지 않으면, 마운트 또한 할 수 없다.
한번 가상하드디스크를 만들어 , 마운트 과정까지 해보겠다.
먼저 1GB 의 하드디스크를 생성하였고 , 명령어를 통하여 추가가 되어 있는지
확인한다.
> sudo fdisk -l
이번에 새롭게 생성한 하드디스크는 /dev/sdd 이다.
화면 위를 보면 기존에 있던 /dev/sdc 는 디스크란 항목 아래 디바이스라는 항목이 있는 반면에
새로운 sdd 는 디스크 항목만 있는 것을 볼 수 있다.
여기서 바로 마운트를 해보면! ( 마운트는 디렉토리에 접근 시키니 디렉토리 경로를 사용한다. )
> mount 장치경로 마운트할경로
( 관리자 권한을 계속 요하기 때문에 , root 계정으로 바꿔 실행하였다. )
위와 같이 마운트가 되지 않는다.
앞서 말한것 처럼 마운트 전의 과정이 필요하다.
그 과정으로는
디스크의 공간을 물리적으로 나누는 파티션 작업,
그리고 나눈 공간에 대해 각각 파일시스템을 설정해야한다.
파티션작업은, 하나의 디스크공간을 하나로만 쓸 수 있고,
그 공간을 다수의 공간으로 나눠 따로따로 공간을 할당해 줄 수 있다.
( 디스크에는 최소 1개 이상의 파티션을 설정(Primary partition은 총 4개까지
4개 이상의 파티션으로 나누고 싶다면, Extended partition을 배정 )
먼저 파티션작업을 해보겠다.
> fdisk 장치이름 ( root 계정이기때문에 sudo는 뺀다. )
실행을 하면 커맨드 입력란이 나오는데 m 을 눌러 도움말을 볼수 있다.
여기서 나는 새로운 파티션을 작업할 것이기에 n으로 들어가서 작업한다.
그리고 하나의 파티션만 설정하기때문에 , primary 를,
용량은 2048 부터 끝까지 설정하였다.
용량이 1부터 아닌 이유는 !
파티션마다 우리가 건드릴 수 없는 슈퍼블럭이라는 것이 생긴다.
이것의 공간으로, 잡히는 부분이 위에서는 2048까지라는 것이다.
이 이후에 커맨드에 저장 및 종료를 한다.
fdisk 의 화면이다. 처음과는 달리 디바이스 항목이 생겼고, sdd가 확인된다.
( 나는 파티션을 하나로 하였기 때문에 , sdd1로 표기되지만, 2개, 3개 로 나누면 sdd1,sdd2,sdd3 파티션 수 만큼
표시된다. )
이후에 각 파티션에 파일시스템을 설정한다.
>mkfs -t ext4 /dev/sdb1
하나의 파티션이기때문에 파일시스템 설정은 한번이면 된다.
이 과정이 다 끝나면 이제 원하는 디렉토리에 마운트를 한다
마운트를 실행하면 위와 같이 lost+found 디렉토리가 생긴다.
마운트가 잘 되었는지 다시 한번 확인해본다.
> df -h
위와같이 잘 마운트 된 것을 볼 수 있다.
만약 마운트를 해제하고 싶다면
> umount /mnt/mntpoint3_1 로 해제가 가능하다.
그리고 이 마운트는 , 시스템 재부팅이 되면 마운트가 해제되는데
시스템재부팅시에도 계속 기존 메인 하드디스크처럼 자동으로 마운트하게 해주려면 또 다른 설정이 필요하다.
'IT 프로그래밍 관련 > 리눅스 시작하기' 카테고리의 다른 글
Ubuntu 사용자와 그룹관리 (0) | 2021.04.05 |
---|---|
Ubuntu 자동마운트 (0) | 2021.04.05 |
Ubuntu C언어로 프로그래밍하기 ( 컴파일 ) (0) | 2021.04.01 |
Ubuntu 쉘 스크립트 휴지통만들기!(임시) (0) | 2021.03.31 |
Ubuntu 쉘 스크립트 (생성 , 연산, if-else, case-esac) (0) | 2021.03.31 |
댓글