이전 포스팅에서 디스크를 사용하기위해 아래 단계를 거쳐야 한다고 언급했다. 이번 포스팅에서는 파티셔닝 단계부터 마운트까지 진행할 것이다.
- 물리적으로 디스크 추가
- 디스크 인식
- 파티셔닝
- 파일시스템 초기화(포맷)
- 마운트 : 파일 시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결
파티셔닝(~이어서)
MBR방식 / fdisk사용
- ls -l /dev/sd* : 정규표현식과 ls를 이용해 dev디렉터리에서 원하는 장치파일을 찾을 수 있다.

fdisk -l을 이용해 디스크 정보를 알 수 있다.
-> 파티셔닝 된 sda와 파티셔닝 되지않은 sdb를 볼 수 있다.

-
fdisk /dev/sdb로 원하는 디스크에 들어가서 원하는 옵션을 눌러서 파티션을 만든다.
-
1번~3번까지는 primary 파티션으로 생성하고 4번은 extended 파티션으로 생성한다
-> primay 파티션은 최대 4개까지 밖에 못 만듬으로 그 이상이 필요하다면 extended 파티션을 만들어 logical 파티션으로 쪼개서 사용한다

-
extended 파티션이 다시 4개의 logical 파티션으로 쪼개진 모습이다
-
w를 입력해 저장후 종료하고 -> partprobe /dev/sdb로 sync를 맞추어준다
GPT방식 / gdisk사용
- 디스크의 용량이 2TB가 넘는다면 GPT방식을 사용해야 한다
- gdisk /dev/sdb입력 후 원하는 옵션 입력
- 섹터에 용량을 입력할 때 gdisk는 '-'도 지원한다
-> -2G는 뒤에서 부터 2기가라는 뜻이다.
- 나머지는 사용법이 fdisk와 거의 유사하다
- GPT는 128G까지 지원해주기 때문에 MBR방식보다 파티션을 훨씬 더 많이 만들 수 있다.
파일시스템 초기화(구성)
- 파일은 inode로 관리된다.
- 디렉터리는 단순히 파일의 목록을 가지고 있는 파일일 뿐이다.
- 특수 파일을 통해 장치에 접근할 수 있다.
ext4
-
저장 장치를 논리적인 블록으로 구분해서 효율적으로 저장한다 / 윈도우는 블록이 아닌 클러스터라고 부른다
-
블록의 크기는 4KB이다.
-
inode를 이용해서 파일의 메타정보와 데이터를 분리해서 저장

-
슈퍼블록 : 파일시스템 전체에 대한 주요 정보를 저장 , 매우 중요
-> 블록 그룹 a에 백업해 놓는다.
-
그룹 디스크립터 : 블록 그룹에 대한 정보를 가지고 있다
-> 블록 그룹 a에 백업해 놓는다.
-
데이터 블록 비트맵 / inode 비트맵
-> 데이터 블록 / inode 테이블에 지정된 블록들 중 사용 중인 블록과 사용하지 않는 블록을 체크하기 위해 사용
= 1bit (0과 1로 구분)
-
inode 테이블 : 파일에 대한 정보를 가지고 있는 inode가 모여 있다
-
데이터 블록 : 실제 데이터가 들어있는 블록
mkfs
- 리눅스 파일 시스템을 만든다 / 초기화(포맷)
- 형식 : mkfs [옵션][장치명]
- -t 옵션 : 파일 시스템의 종류를 지정
ex) mkfs -t ext4 /dev/sdb1 , mkfs -t xfs /dev/sdb1
= mkfs.xfs /dev/sdb1

📘 디스크 정보보기 : lsblk , blkid , lsblk -f , fdisk -l, df -Th
마운트
- 파일 시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결하는 것
마운트 포인트 : 디렉터리 계층 구조에서 파일 시스템이 연결되는 디렉터리를 마운트 포인트
파일 시스템 마운트 설정 파일 : 리눅스에서 시스템이 부팅될 때 자동으로 파일 시스템이 마운트되게 하려면 /etc/fstab파일에 설정
mount
- 파일 시스템을 마운트한다.
- 형식 : mount [옵션][장치명 or 마운트 포인트]

- ex) 게스트 pc에서 장치 - 게스트 확장 CD이미지 삽입 클릭해서 CD삽입 -> 터미널에 lsblk -f로 sr0확인 -> umount sr0 (연습하기위해 자동 마운트 된거 해제) -> 셸에서 mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro입력
📗 -o rw 옵션 : 파일시스템을 읽기/쓰기 가능 상태로 마운트
- ex) mkdir -p /mnt/disk1 -> mount /dev/sdb1 /mnt/disk1
📗 mount : 현재 컴퓨터의 mount된 것들의 정보들을 볼 수 있다
= /etc/mtab에 mount정보를 담고있다
umount
- 파일 시스템을 언마운트한다.
- 형식 : umount [옵션][장치명 or 마운트 포인트]
- 옵션 -t 파일 시스템 종류 : 파일 시스템 종류를 지정한다.
- ex) umount /dev/sdb1 = umount /mnt/disk1
컴퓨터 부팅시 자동마운트 설정

- vi /etc/fstab 접속후
/dev/sdb1 /mnt/disk1 ext4 defaults 1 2
/dev/sdb2 /mnt/disk2 ext4 defaults 1 2
/dev/sdb3 /mnt/disk3 xfs defaults 1 2
/dev/sdb4 /mnt/disk4 xfs defaults 1 2 입력 후 저장
mount -a 입력후 lsblk -f와 df -Th입력해서 마운트된거 확인
-> 시스템 껏다켜도 부팅시 자동으로 파일시스템이 마운트된다
📘 호스트 pc : 가상머신을 실행시키는pc
📘 게스트 pc : 가상머신안에 여러 서버들
스왑 메모리
메모리
- 주기억장치
- 속도는 빠르지만 전원을 내리면 데이터가 사라지는 휘발성 기억장치
- RAM , 용량당 가격이 비싸다
디스크(스토리지)
- 보조기억장치
- 메모리에 비해 느리다
- 용량당 가격은 메모리보다 싸다
- 전원을 내려도 데이터가 유지되는 비휘발성 장치
리눅스의 가상 메모리 = 실제 물리 메모리 + SWAP
- SWAP은 SWAP파티션과 SWAP파일 두가지 방법으로 생성 가능
📒 SWAP영역은 보통 물리 메모리의 2배 이상으로 설정
📙 물리 메모리가 부족한 경우를 해결하기 위하여 가상 메모리 사용
페이징
- paged-in = 자주쓰는건 SWAP -> 메모리
- paged-out = 자주안쓰는건 메모리 -> SWAP
💡 메모리가 SWAP보다 빠르기 때문에
스압메모리 만들기
- fdisk /dev/sdb입력
- n입력해서 3개파티션 만든후 t입력 후 HEX CODE 82입력
-> 3개의 파티션 id를 swap으로 전환
swapon -s , free -h : swap정보 확인
수동으로 스왑 마운트 :
- mkswap /dev/sdb1 : 스왑 파티션으로 만듬
- swapon /dev/sdb1 : 스왑 메모리로 전환
-> swap메모리 1기가 늘어남 (부족할 시 늘려도 됨)
자동으로 스왑 마운트
- vi /etc/fstab 입력후
/dev/sdb2 swap swap defaults 0 0
/dev/sdb3 swap swap defaults 0 0 저장
- swapon -a : 설정된 스왑 마운트
추가정보
fsck
- 리눅스의 파일 시스템을 검사한다
- 형식 : fsck [옵션][장치명]

- ex) fsck /dev/sda/1
du
- 디스크의 사용 공간에 대한 정보를 출력한다
- 형식 : du [옵션][디렉터리]

- ex) du -h /root , du -s -h /root