파일시스템
리눅스에서는 하드디스크(HDD)를 추가하면 인식은 하지만 복잡한 별도의 처리과정을 거쳐야 그 저장공간을 사용할 수 있다.
윈도우는 추가만하면 자동으로 인식하고 바로 사용할 수 있도록 해준다.
File System
파일, 디렉토리를 효율적/구조적으로 관리하기 위한 트리 구조 시스템이다.
하드디스크나 씨디같은 물리적 저장공간을 저장장치로 활용한다. 네트워크를 이용해서 서버간 마운트로 하나의 파일 스토리지처럼 사용하기도 한다.(NFS)
리눅스가 지원하는 파일시스템은 윈도우보다 다양하고, 리눅스의 파일시스템은 커널에 포함되어 있으며 대부분의 기본 구성에 포함되어있다.
/lib/modules/[kernel_version]/kernel/fs
일반적인 과정은 사용자가 명령을 입력하면 쉘을 통해 커널에 전달되고, 커널은 이 명령을 하드웨어에 전달한다. 만약 올바른 명령이라면 하드웨어는 명령의 결과값을 다시 사용자에게 보낸다. (엄청나게 축약한 버전이므로 후에 CS에서 더 깊게 공부해야한다)
Partition
하나의 물리적 디스크를 여러개의 연속되는 논리적인 디스크로 분할하는 것이다.
파티션을 나누기 위해서는 물리적인 저장장치에 남아있는 연속된 공간이 필요하고, 서로 다른 물리적인 저장장치는 하나의 파티션으로는 구성할 수 없다.
단일파티션과 다중파티션의 차이는 MBR(#0) 의 유무이다.
- MBR : 하드디스크의 가장 첫부분으로 다중파티션이라면 메인이되는 파티션에 MBR이 존재한다.
- 모든 파티션은 Boot Sector 라는위치에 정보가 저장되어있고, MBR에 이 BootSector값을 저장해두고 포인터처럼 이용한다. 즉 MBR이 없는 파티션을 실행하면 자동으로 MBR이 있는 메인파티션으로 연결되어 실행된다.
- C 드라이브에 엑셀이 있고, D 드라이버에 map.xls 파일이 있으면 ?
- map.xls 파일을 바로 실행시켜도 C 드라이브에 MBR에서 D드라이버의 BootSector를 참조해 자동으로 엑셀을 열고 거기서 map파일을 여는것이다.
크게 두종류의 파티션이 있고, 거의 대부분의 파티션은 DOS에 해당된다
옵션 내용
DOS Partition Table | 현재 가장많은 OS가 채택했으며 0번 섹터중 Boot Code가 사용하고 남은 64 byte를 사용한다. 파티션은 16byte로 최대 4개까지 만들 수 있다. |
BSD Disk Label | 하나의 섹터 안에 파티션 정보를 포함한 디스크 정보를 저장한다. 1번 섹터의 148~403번까지 총 256byte를 사용하고 파이션은 16byte 이다. |
Apple Partition Map | BSD 계열의 기록방식을 채택했다. 0번섹터(MBR) 미사용, 1번 섹터 512byte 전체를 사용하며 파티션은 16byte에 최대 32개까지 만들 수 있다. |
Solaris Disk Label | Sun Sparc에서는 0번섹터에 Disk Label가 위치한다. 파티션은 444번부터 64byte에걸쳐 8개까지 만들 수 있다. |
fdisk
파일시스템을 생성한다
fdisk [옵션] [File System]
Mount
하드디스크와 파티션을 추가한 후에는 반드시 mount가 필요하다.
디스크와 같은 물리적인 장치를 특정위치나 디렉토리에 연결시키는 작업이다.
리눅스에서는 하드디스크가 아니라 파티션을 연결하는 개념이다.
- 수동마운트 : mount 명령어를 사용
- 자동마운트 : 부팅시 자동으로 마운트 (/etc/fstab 에서 확인할 수 있다)
- 언마운트 : unmount명령을 통해 마운트된 file system을 해제
이미지처럼 외부 디바이스는 드라이버를 통해 OS가 활용할 수 있다.
마운트 명령어
mount[Option][Device:Partition][Directory:MountPoint]
- 마운트 포인트는 사용자와 관련된 디렉토리를 사용하면 안된다. (사용되지않는 임의의 디렉토리로 써야함)
- 마운트 포인트는 Primary Partition, Logical Partition 만 가능하다
- #mount /dev/sda1 / d_drive
옵션 내용
-a | /etc/fstab에 명시된 파일시스템을 마운트 |
-f | 실제로 마운트하지 않고 마운트 가능한지만 확인 |
-t | 파일 시스템 타입을 선택 |
-r | 읽기만 가능하게 마운트 |
-w | 읽기, 쓰기 모드로 마운트 |
unmount 명령어
마운트 되어있는 파티션을 해제하는 명령어로 마운트 포인트가 아닌 다른위치에서만 가능하다.
unmount [Option][Device:Partition] or [Directory:MountPoint]
옵션 내용
-a | /etc/fstab에 기록된 모든 파일시스템을 언마운트 |
-f | 강제로 연결을 해제할때 사용 |
mount 확인
mount
명령어를 통해 마운트된 파티션의 정보를 확인할 수 있다.
df -h
마운트되어있는 파운트포인트와 자세한 내용까지 보두 볼 수 있다.
NFS(Network File System)
네트워크 파일시스템으로 공유된 영역을 마운트한다.
한마디로 준비된 하드디스크를 ip주소를 통해 해당 서버가 하드디스크를 사용할 수 있도록 연결하는것이다.
mount -t nfs [IP:/EXPORT DIR] [LOCAL DIR]
자동마운트
마운트는 시스템을 껏다키면 자동으로 모두 해재되므로, 자동마운트가 필요하다.
즉 /etc/fstab 파일에 설정해두면 부팅시 자동으로 마운트가 이뤄진다.
/etc/fstab (File System Table) 내용
필드 내용
fs_spec | 디스크이름, 디스크 UUID(H/W) |
fs_file | 마운트 포인트(S/W) |
fs_vfstype | 파일시스템 (ext4, nfs) |
fs_mntops | 마운트 옵션 (defaults, usrquota, grpquota, acl) |
fs_freq | 덤프(백업) 유무 (0,1,2) |
fs_passno | fsck 검사 순서(1,2) |
'Computer Science > 리눅스' 카테고리의 다른 글
[리눅스] 데이터 저장 (1) | 2022.09.23 |
---|---|
[리눅스] 프로세스 (0) | 2022.09.22 |
[리눅스] 허가권과 소유권 (0) | 2022.09.22 |
[리눅스] 사용자 계정관리 (1) | 2022.09.22 |
[리눅스] 기본 명령어 (0) | 2022.09.22 |