물리적 디스크
- 디스크 용량 = 전체 실린더 수 x 트랙 수 x 섹터 수 x 섹터당 바이트 수(512)
디스크와 파티션
- 하드디스크의 파티션: 디스크를 논리적 파티션으로 구분하며 파티션 별로 파일목록 부분과 파일 데이터 부분으로 구성
파티션의 구성
- 부트블록: 부팅을 위한 프로그램 저장, 모든 파티션의 첫 블록
- 슈퍼블록: 파일 시스템에 관련된 주요 내용들
그 외 파일 목록 부분, 파일 데이터 부분
파일과 파일 시스템
파일: 연속된 하나의 저장 공간으로 바이트 단위로 기록
파일 시스템: 파일을 기록하고 관리하는 방식. 배치 및 생성/삭제/읽기/쓰기 등의 작업 처리를 포함. 파티션 별로 특정 파일 시스템 적용
1. 리눅스 파일 시스템의 종류
- ext(ext1): 1992년 4월 발표
- ext2: 1993년 1월 발표
- ext3: 2001년 11월 공개, 저널링 기능(되돌리기) 도입
- ext4: 2008년 12월 발표, 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로 시작
- SCSI나 SATA 컨트롤러에 장착된 디스크는 /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: 백업 슈퍼블록을 이용해 파일 시스템 복구
'대학교 2학년 1학기 > 리눅스 프로그래밍' 카테고리의 다른 글
쉘 스크립트 프로그래밍 (2) (0) | 2022.05.19 |
---|---|
쉘 스크립트 프로그래밍 (1) (0) | 2022.05.19 |
프로세스 관리하기 (0) | 2022.05.01 |
파일 접근 권한 관리하기 (0) | 2022.04.04 |
셸 사용하기 (0) | 2022.04.04 |