본문 바로가기

대학교 2학년 1학기/리눅스 프로그래밍

파일 시스템과 디스크 관리하기

728x90

물리적 디스크

- 디스크 용량 = 전체 실린더 수 x 트랙 수 x 섹터 수 x 섹터당 바이트 수(512)

디스크와 파티션

- 하드디스크의 파티션: 디스크를 논리적 파티션으로 구분하며 파티션 별로 파일목록 부분파일 데이터 부분으로 구성

파티션의 구성

- 부트블록: 부팅을 위한 프로그램 저장, 모든 파티션의 첫 블록

- 슈퍼블록: 파일 시스템에 관련된 주요 내용들

그 외 파일 목록 부분, 파일 데이터 부분

파일과 파일 시스템

파일: 연속된 하나의 저장 공간으로 바이트 단위로 기록

파일 시스템: 파일을 기록하고 관리하는 방식. 배치 및 생성/삭제/읽기/쓰기 등의 작업 처리를 포함. 파티션 별로 특정 파일 시스템 적용

 

1. 리눅스 파일 시스템의 종류

- ext(ext1): 19924월 발표

- ext2: 19931월 발표

- ext3: 200111월 공개, 저널링 기능(되돌리기) 도입

- ext4: 200812월 발표, 1EB이상의 볼륨(파티션)16TB 이상의 파일을 지원

리눅스에서 지원하는 다른 디스크 기반 파일 시스템

- ufs(유닉스 표준 파일 시스템), vfat(윈도 95, 98, NT), ntfs(윈도 NTFS를 지원), hfs(맥 컴퓨터 지원)

특수 용도의 가상 파일 시스템 (디스크가 아니라 메모리에 생성)

- swap: 스왑 영역을 관리하기 위한 스왑 파일 시스템

- proc: proc 파일 시스템으로 /proc 디렉터리, 커널의 현재 상태를 나타내는 파일을 가지고 있음

- rootfs: / 디렉터리, 시스템 초기화 및 관리에 필요한 내용을 관리

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

- /proc/filesystems: 현재 커널이 지원하는 파일 시스템의 종류를 알려줌.

 

2. 리눅스 파일 시스템의 구조

리눅스의 모든 파일 시스템의 기본 개념

- 파일은 inode로 관리

- 디렉터리는 단순히 파일의 목록을 가지고 있는 파일

- 특수 파일을 통해 장치에 접근할 수 있음.

 

3. 파일 시스템 마운트

마운트: 파일 시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결하는 것

- 마운트 포인터: 디렉터리 계층 구조에서 파일 시스템이 연결되는 디렉터리

- 부팅될 때 자동으로 파일 시스템이 마운트 되게 하려면 /etc/fstab 파일에 설정

- /etc/fstab 파일의 구조: 장치명, 마운트 포인트, 파일 시스템의 종류, 옵션, 덤프 관련 설정, 파일 점검 옵션

mount: 파일 시스템을 마운트한다.

- 형식: mount [옵션] [장치명 또는 마운트 포인트]

(옵션이나 인자를 지정하지 않고 mount 명령을 사용하면 현재 마운트 되어 있는 정보를 출력,

mount 명령으로 출력되는 정보는 /etc/mtab 파일의 내용과 동일)

umount: 파일 시스템을 언마운트한다.

- 형식: umount [옵션] [장치명 또는 마운트 포인트]

mount 명령으로 장치를 연결하는 방법

- mount /dev/sdb1 /mnt -> 리눅스용 USBUSB 메모리의 경우

장치 연결 해제하기

- sudo umount /mnt

만약, ‘busy’라는 메시지가 출력되면 해당 디렉터리를 누군가 사용하고 있어서 마운트를 해제할 수 없다는 뜻으로 /mnt 디렉터리에서 이동하여 umount 명령을 실행하면 정상적으로 마운트 해제

 

4. 디스크 추가 설치

디스크 추가 단계

- 새 디스크 장착 -> 디스크 파티션 나누기 -> 파티션에 파일 시스템 생성 -> 디스크 마운트

디스크 장치의 이름

- 리눅스에서 IDE 컨트롤러에 연결된 디스크는 /dev/hd로 시작

- SCSISATA 컨트롤러에 장착된 디스크는 /dev/sd로 시작하는 이름을 주로 사용

- 최근에는 구분 없이 모두 /dev/sd로 시작하는 이름을 주로 사용

fdisk: 디스크와 파티션 생성, 삭제, 보기 등 파티션을 관리

- 형식: fdisk [옵션] [장치명]

mkfs: 리눅스 파일 시스템을 만든다.

- 형식: mkfs [옵션] [장치명]

mke2fs: 리눅스 개정판 확장 파일 시스템을 만든다.

- 형식: mke2fs [옵션] [장치명]

 

5. 디스크 관리

df: 디스크의 남은 공간에 대한 정보를 출력

- 형식: df [옵션] [파일 시스템]

du: 디렉터리나 사용자별 디스크 사용량 확인

- 형식: du [옵션] [디렉터리]

fsck: 파일 시스템 점검

- 형식: fsck [옵션] [장치명]

e2fsck: 리눅스 확장 파일 시스템 점검

- 형식: e2fsck [옵션] [장치명]

badblocks: 장치의 배드 블록을 검색

- 형식: badblocks [옵션] [장치명]

dumpe2fs: 파일 시스템의 정보를 출력

- 형식: dumpe2fs [장치명]

(슈퍼블록에 관한 정보만 추출: sudo dumpe2fs /dev/sdd1 | grep superblock)

dd: 백업 슈퍼블록을 이용해 파일 시스템 복구

728x90