리눅스 파일 시스템 종류
리눅스에서 지원하는 다양한 파일 시스템
파일 시스템 | 기능 |
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 비트맵
파일 시스템 마운트
마운트(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
파일 시스템 복구하기
- 파일 시스템의 기본 슈퍼블록을 dd 명령으로 삭제: 파일 시스템의 앞부분 20블록을 0 값으로 채우기
-
/dev/sdd1 파일 시스템을 마운트하면 오류 메시지가 출력
-
dumpe2fs로 확인한 백업 슈퍼블록을 이용하여 /dev/sdd1 파일 시스템을 복구
'전공 > 리눅스시스템관리' 카테고리의 다른 글
[Linux] 리눅스 소프트웨어 관리 (0) | 2023.06.12 |
---|---|
[Linux] 리눅스 부팅 프로세스 (0) | 2023.06.12 |
[Linux] 리눅스 프로세스 관리 (0) | 2023.04.20 |
[Linux] 리눅스 파일과 접근 권한 (0) | 2023.04.19 |
[Linux] 리눅스 프롬프트 설정, 환경 설정 파일 (0) | 2023.04.19 |