리눅스 파일 시스템의 종류
<리눅스 고유의 디스크 기반 파일 시스템>
ext : 초기 미닉스 파일 시스템을 대처해여 개발된 최초의 리눅스 고유 디스크 기반 파일 시스템
ext2, ext3, ext4 : ext 파일 시스템의 문제점을 바완하여 개선된 파일 시스템
XFS : 실리콘그래픽스가 개발한 고성능 파일 시스템
<리눅스에서 지원하는 기타 파일 시스템>
msdos, ios9660, nfs, ufs, vfat, hpfs, ntfs, sysv, hfs
<특수 용도의 가상 파일 시스템>
swqp, tmpfs, proc, ramfs, rootfs
<현재 시스템이 지원하는 파일 시스템의 종류>
/proc/filesystems 파일에서 확인할 수 있다.
리눅스 파일 시스템의 구조
<리눅스 파일 시스템 공통의 개념>
파일은 inode로 관리된다.
디렉터리는 단순히 파일의 목록을 가지고 있는 파일이다.
특수 파일을 통해 장치에 접근할 수 있다.
<블록 그룹>
블록 그룹 0 : 파일 시스템의 첫 번째 블록 그룹. 그룹 0 패딩, 슈퍼블록, 그룹 디스크립터를 소유
블록 그룹 a : 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹. 그룹 0 패딩이 없고 슈퍼 블록, 그룹 디스크립터의 복사본을 소유
블록 그룹 b : 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹. 그룹 0 패딩, 슈퍼 블록, 그룹 디스크립터가 없고 바로 데이터 블록 비트맵으로 시작
<파일 시스템 구성 요소>
그룹 0 패딩 : 블록 그룹 0의 첫 1024B는 x86 부트 섹터와 부가 정보를 저장하는 특별한 용도로 사용한다.
슈퍼블록 : 파일 시스템 관련 정보 저장한다.(전체 inode 개수, 전체 블록의 개수, 할당되지 않은 블록과 inode의 개수, 첫 번째 데이터 블록의 주소, 블록의 크기, 마운트 시간 등) 슈퍼블록에 문제가 생기면 전체 파일 시스템을 사용할 수 없다. 따라서 슈퍼블록을 다른 블록 그룹에 복사해놓고 블록 그룹 0의 슈퍼블록을 읽을 수 없는 경우 복사본을 사용해 복구한다.
그룹 디스크립터 : 블록 그룹 0에 있는 것으로 슈퍼블록의 다음에 위치한다. (블록 비트맵의 주소, inode 비트맵의 주소, inode 테이블의 주소, 할당되지 않은 블록의 개수, 할당되지 않은 inodedml 개수, 디렉터리의 개수, 블록 비트맵 / inode 비트맵 체크섬
GDT 예약 블록 : 그룹 디스크립터 확장을 위한 예비 공간이다.
데이터 블록 비트맵 : 블록 그룹에 포함된 데이터 블록의 사용 여부를 확인하는 데 쓰인다. 비트맵에서 각 데이터 블록과 inode 테이블 항목은 1bit로 표현한다.
inode 비트맵 : inode 비트맵은 inode 테이블의 항목(inode)이 사용 중인지를 표시한다.
inode 테이블 : inode들을 모아놓은 테이블
데이터 블록 : 실제 데이터가 저장된다. 일반 파일은 데이터 블록에 파일 내용을 저장하고, 디렉터리는 데이터 블록에 해당 디렉터리에 있는 파일이나 서브 디렉터리의 정보(이름, inode)를 저장한다.
파일 시스템 마운트
마운트 : 파일 시스템과 디렉터리 계층 구조의 특정 디렉터리를 연결하는 것을 의미한다.
마운트 포인트 : 디렉터리 계층 구조에서 파일 시스템이 연결되는 디렉터리를 말한다.
마운트 설정 파일 : /etc/ftab 파일에 설정되어 있으며 장치명, 마운트 포인트, 파일 시스템의 종류, 옵션, 덤프 관련 설정, 파일 점검 옵션으로 구성되어 있다.
마운트 관련 명령 : mount, umount
mount [옵션] [장치명 [마운트포인트]]
umount [옵션] 장치명 또는 마운트포인트
디스크 추가
디스크 파티션 명령 : fdisk
파일 시스템 생성 명령 : mkfs, mke2fs
디스크 마운트 명령 : mount [-t FileSystemType] source destination
LVM
여러 개의 디스크를 하나의 파일 시스템처럼 사용할 수 있게 해주는 관리 도구
PV(physical volume) : 실제 하드디스크의 파티션을 의미한다.(/dev/sda1, /dev/sda2 등)
VG(volume group) : 여러 개의 PV를 그룹으로 묶은 것이다. /dev/sda1, /dev/sda2가 GRP1이라는 그룹을 만들 때 GRP1을 VG라고 한다.
LV(logical volume) : VG를 다시 적절한 크기의 파티션으로 나눌 때 각 파티션을 LV라고 한다.
PE(phygical extent) : PV가 가진 일정한 블록을 말한다.
LE(logical extent) : LE가 가진 일정한 블록을 말한다.
관련 명령 : pvcreate, pvscan, vgcreate, vgchange, vgremove, vgdisplay, vgextend, lvcreate, lvremove, lvscan, lvextent
<LVM 생성 과정>
기존 파일 시스템의 종류 변경(83->8e) -> PV 생성 -> VG 생성 -> VG 활성화 -> LV 생성 -> LV에 파일 시스템 생성 -> LV 마운트
디스크 관리
디스크 사용량 확인 : df, du
파일 시스템 검사 및 복구 : fsck, e2fsck
e2fsck 명령을 사용할 땐 해당 파일 시스템의 마운트를 해제해야 한다.
배드 블록 검사 : badblocks
백업 슈퍼블록을 이용한 파일 시스템 복구 : 백업 슈퍼블록의 위치 파악(dumpe2fs) -> 파일 시스템 복구(e2fsck -b 백업슈퍼블록위치 -y 장치명)
'development > Linux' 카테고리의 다른 글
[우분투 리눅스] 소프트웨어 관리 (0) | 2022.08.06 |
---|---|
[우분투 리눅스] 리눅스의 부팅과 종료 (0) | 2022.07.31 |
[우분투 리눅스] 프로세스 관리하기 (0) | 2022.07.23 |
[우분투 리눅스] 파일 접근 권한 관리하기 (0) | 2022.07.20 |
[우분투 리눅스] 셸 기초 사용법 (0) | 2022.07.19 |