전공/리눅스시스템관리

[Linux] 리눅스 파일시스템과 디스크관리

Campus Coder 2023. 6. 12. 02:20
728x90
반응형

리눅스 파일 시스템 종류

리눅스에서 지원하는 다양한 파일 시스템

파일 시스템 기능
msdos MS-DOS 파티션을 사용하기 위한 파일 시스템
iso9660 CD-ROM, DVD 표준 파일 시스템이며 읽기 전용으로 사용
nfs Network File System으로 원격 서버의 디스크를 연결할 때 사용
ufs Unix File System으로 유닉스의 표준 파일 시스템
vfat 윈도 95, 98, NT를 지원하기 위한 파일 시스템
hpfs HPFS를 지원하기 위한 파일 시스템
ntfs 윈도의 NTFS를 지원하기 위한 파일 시스템
sysv 유닉스 시스템V를 지원하기 위한 파일 시스템
hfs 맥 컴퓨터의 hfs 파일 시스템을 지원하기 위한 파일 시스템

 

특수 용도의 가상 파일 시스템

파일 시스템 기능
swap - 스왑 영역을 관리하기 위한 파일 시스템
tmpfs - Temporayry File System으로 메모리에 임시 파일을 저장하기 위한 파일 시스템이며, 시스템이 재시작할 때마다 기존 내용 없어짐
- 예) /tmp 디렉터리
proc - proc 파일 시스템으로 /proc 디렉터리
- 커널의 현재 상태를 나타내는 파일을 가지고 있음
ramfs - 램디스크를 지원하는 파일 시스템
rootfs - Root File Ststem으로 / 디렉터리
- 시스템 초기화 및 관리에 필요한 내용 관리

 

현재 시스템이 지원하는 파일 시스템 확인

- /porc/fileysytems 파일에 현재 시스템이 지원하는 파일 시스템의 종류 저장
 
 

리눅스 파일 시스템 구조

ext4파일 시스템의 구조

  • 저장 장치를 논리적인 블록의 집합(블록 그룹)으로 구분
  • 일반적으로 블록은 4KB 크기이고 조정 가능
  • 블록 그룹 개수 = 장치 크기 /블록 그룹의 크기

 

블록 그룹 유형

  • 블록 그룹 0: 파일 시스템의 첫 번째 블록 그룹으로 특별하게 그룹 0 패딩과 슈퍼블록 디스크립터로 구성
  • 블록 그룹 a: 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹으로 그룹 0 패딩이 없으나 슈퍼블록과 그룹 디스크립터의 복사본을 가지고 있음
  • 블록 그룹 b: 파일 시스템에서 첫 번째 블록 그룹이 아닌 블록 그룹으로 바로 데이터 블록 비트맵으로 시작

그룹 0 패딩
- 블록 그룹 0의 첫 1024B는 특별한 목석으로 사용 -> x86 부트 섹터와 부가 정보를 저장
슈퍼블록
- 파일 시스템의 다양한 정보 저장, 복구용 백업 슈퍼블록 있음
그룹 디스크립터와 GDT 예약 블록
- 블록 그룹 0에서 슈퍼블록의 다음에 위치하며 다음 정보 저장
데이터 블록 비트맵과 inode 비트맵

inode 구조

 
 

파일 시스템 마운트

마운트(mount)

- 파일 시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결하는 것
- 파일 시스템이 디렉터리 계층 구조와 연결되지 않으면 사용자가 해당 파일 시스템에 접근할 수 없음

마운트 포인트

- 디렉터리 계층 구조에서 파일 시스템이 연결되는 디렉터리

파일 시스템 마운트 설정 파일: /etc/fstab

파일 시스템의 마운트 설정 정보
부팅 시 이 파일을 읽고 파일 시스템 마운트
 
/etc/fstab 파일 예

UUID=265c8913-ee1e-4034-885f-207969b0a23b /       ext4    errors=remount-ro   0     1
  • 장치명: UUID=265c8913-ee1e-4034-885f-207969b0a23b
  • 마운트 포인트: /
  • 옵션: errors=remount-ro
  • 덤프 관련 설정: 0
  • 파일 점검 옵션: 1

 

마운트 관련 명령

mount

기능 - 파일 시스템을 마운트 함
형식 - mount [옵션] [장치명 마운트 포인트]
옵션 - -t: 파일 시스템 종류: 파일 시스템 종류를 지정
마운트 명령만 사용하는 경우: 현재 마운트 되어 있는 정보 출력(/ect/mtab 파일 내용과 동일)

umount

기능 - 파일 시스템을 언마운트 함
형식 - umount [옵션] [장치명 마운트 포인트]
옵션 - -t: 파일 시스템 종류: 파일 시스템 종류를 지정
 
 

디스크 추가 설치

디스크 장치의 이름과 파티션 표시하기

/dev/sd로 시작하는 이름을 사용
/dev/sda - 첫 번째 디스크
/dev/sdb - 두 번째 디스크
 

fdisk

기능 - 디스크의 파티션 생성, 삭제, 보기 등 파티션을 관리
형식 - fdisk [옵션] [장치명]
옵션 - -l : 파티션 테이블을 출력
 

파일 시스템 생성 명령

mkfs

기능 - 리눅스 파일 시스템을 생성
형식 - mkfs [옵션] [장치명]
옵션 - -t 종류: 파일 시스템의 종류 지정(기본값은 ext2)

mke2fs

기능 - 리눅스 개정판 확장 파일 시스템(ext2, ext3, ext4)을 만듦
형식 - mke2fs [옵션] [장치명]
옵션 - -t 종류: 파일 시스템의 종류 지정(기본값은 ext2)
 

LVM

여러 디스크를 하나의 디스크로 사용하는 방법
 
 

디스크 관리

df

기능 - 디스크의 남은 공간에 대한 정보를 출력
형식 - df [옵션] [파일 시스템]
옵션
-h: 디스크 사용량을 알기 쉬운 단위(GB, MB, KB 등)로 출력
-T: 파일 시스템의 종류 출력
df 명령만 사용하는 경우 - 파일 시스템의 장치명, 전체 용량, 사용량 등등 출력

df
df -h

du

기능 - 디스크의 사용 공간에 대한 정보 출력
형식 - du [옵션] [디렉터리]
옵션
-s: 특정 디렉터리의 전체 사용량 출력
-h: 디스크 사용량을 알기 쉬운 단위(GB, MB, KB 등)로 출력
du 명령만 사용하는 경우 - 현재 디렉터리의 디스크 사용량 출력

du
du -s -user1

fsck

기능 - 리눅스의 파일 시스템을 점검
형식 - fsck [옵션] [장치명]
옵션 - -f: 강제로 점검

fsck /dev/sdb1
fsck -f /dev/sdb1

e2fsck

기능 - 리눅스의 확장 파일 시스템(ext2, ext3, ext4)을 점검
형식 - e2fsck [옵션] [장치명]
옵션 - -f: 강제로 점검

e2fsck /dev/sdb1
e2fsck -f /dev/sdb1

badblocks

기능 - 장치의 배드 블록 검색
형식 - badblocks [옵션] [장치명]
옵션
-v: 검색 결과를 자세하게 출력
-o 출력 파일: 검색한 배드 블록 목록을 지정한 출력 파일에 저장

badblocks -v /dev/sdb1
badblocks -v -o bad.out /dev/sdb1

dumpe2fs

기능 - 파일 시스템의 정보를 출력
형식 - dumpe2fs [장치명]

dumpe2fs /dev/sdd1

dd

기능 - 지정한 블록 크기만큼 파일을 복사
형식 - dd [if=파일] [of=파일] [bs=바이트 수] [count=블록 수]
- if=파일: 표준 입력 대신 지정한 파일에서 읽어옴
- of=파일: 표준 출력 대신 지정한 파일로 복사
- bs=바이트 수: 한 번에 읽어오고 기록할 바이트 수
- count=블록 수: 블록 수만큼만 복사

dd if=/dev/zero of=/dev/sdd1 bs=4096 count=20

 

파일 시스템 복구하기

  1. 파일 시스템의 기본 슈퍼블록을 dd 명령으로 삭제: 파일 시스템의 앞부분 20블록을 0 값으로 채우기
  2. /dev/sdd1 파일 시스템을 마운트하면 오류 메시지가 출력
  3. dumpe2fs로 확인한 백업 슈퍼블록을 이용하여 /dev/sdd1 파일 시스템을 복구
728x90
반응형