이전 글에 이어 파티셔닝 하는 방법에 대해 알아보자
DISK vmdk
디스크 vmdk(=프로비저닝)을 알기 위해서는 먼저 디스크가 무엇인지 알아야한다.disk 란 ? 컴퓨터용 저장 장치sector 란 ?디스크의 최소 단위head 란 ?플래터의 특정 위치 추정을 가능하게 함cylinder 란
zuchnology.tistory.com
가상머신의 디스크 파일 :: 물리적인 디스크를 추가(add hard disk)
하드 디스크는 보통 물리적으로 /dev/sda, /dev/sdb, /dev/sdc .. 등의 형식으로 이루어져있다.
- 파티셔닝 기준은 섹터
리눅스 설치 시 반드시 필요한 파티션이 있다.
-최상위 파티션
-swap 파티션
- partition table은 파티션 정보를 보관하는 곳으로, 파티셔닝 방법에 따라 두 가지의 종류가 있다.
- MBR은 주, 확장 파티션 테이블이다
- 기록하는 공간이 4개로 분할되어 주+확장 파티션을 최대 네개까지 만들 수 있다
- 각각의 공간 안에 파티션의 시작/종료 섹터 주소를 기록한다
- GTP table은 MBR보다 파티션 테이블 크기 자체가 크다(확장 파티션을 만들 필요가 없기 때문)
- 때문에 쓸 수 있는 용량 자체는 MBR보다 줄어든다
- 모든 파티션이 주 파티션으로 만들어진다
파티셔닝 과정을 가볍게 정리하자면
-- 디스크 목록 확인
[root@localhost ~]# fdisk -l
Disk /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd2dfeb2e
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 83886079 81786880 39G 8e Linux LVM
Disk /dev/sda: 1 GiB, 1073741824 bytes, 2097152 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
~
--파티셔닝(4개의 파티션 만들기 : 주 | 주 | 주 | 확 | 논 | 논)
[root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xebc78f9f.
Command (m for help):
n > p(주) > 1(파티션 번호) > enter(기본값) > +200M(크기) > w(저장) > fdisk -l /dev/sda(결과확인)
n > p > 2 > enter(기본값) > +200M > w > fdisk -l /dev/sda
n > p > 3 > enter(기본값) > +200M > w > fdisk -l /dev/sda
n > e(확장) > 4 > enter(기본값) > enter(끝까지다사용) > w > fdisk -l /dev/sda
n > enter(기본값) > +100M > p(확인) >
n > enter(기본값) > +100M > p > w(입력저장)
-- 디스크 확인하기
# fdisk -l /dev/sda
~
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 411647 409600 200M 83 Linux
/dev/sda2 411648 821247 409600 200M 83 Linux
/dev/sda3 821248 1230847 409600 200M 83 Linux
/dev/sda4 1230848 2097151 866304 423M 5 Extended
/dev/sda5 1232896 1437695 204800 100M 83 Linux
/dev/sda6 1439744 1644543 204800 100M 83 Linux
물리적인 하드디스크가 논리적으로 파티셔닝 되기 때문에
디스크 파티션으로 나누어지면
물리적 디스크 /dev/sda는 /dev/sda1, /dev/sda2...
물리적 디스크 /dev/sdb는 /dev/sdb1, /dev/sdb2, /dev/sdb3...
물리적 디스크 /dev/sdc는 /dev/sdc1, /dev/sdc2, /dev/sdc3...
등의 형식이 된다
OS가 DISK에 파일을 read/write 하기 위한 자료구조
쉽게 말하면 해당 공간을 사용해주기 위해 용도를 지정하는 과정이다.
block 이란 ?
sector를 논리적으로 묶어 주소를 별도로 부여하는 것
파일 시스템은 지정된 섹터의 개수대로 블럭을 만들고, 그 블럭을 인식할 수 있도록 하는 것으로,
- 파일 시스템(2단계)까지만 부여했을 때에는 몇 개의 블럭을 사용할 지 알지 못함 <- i-node가 없는 상태
- 블럭으로 만들어져야 i-node 부여가 가능함
- i-node는 섹터 인식이 안됨 :: 블럭만 인식 가능
i-node란?
세 가지 블록 정보로 운영됨
1 super block : 파일 시스템 전체 정보, df 명령어로 확인
# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 886840 0 886840 0% /dev/shm
tmpfs 354736 5700 349036 2% /run
/dev/mapper/rl-root 38749712 5271004 33478708 14% /
/dev/nvme0n1p1 1038336 447868 590468 44% /boot
tmpfs 177368 52 177316 1% /run/user/42
tmpfs 177368 36 177332 1% /run/user/0
2 inode block : 각 파일 별 상세 정보
- 파일 모드(퍼미션)
- 링크 수
- 소유자명
- 그룹명
- 파일 크기
- 파일 주소
- 마지막 접근 정보
- 마지막 수정 정보
- 아이노드 수정 정보
3 data block : 실제 데이터가 저장되는 block
파일 시스템 부여 과정을 가볍게 설명하자면
mkfs -t 파일시스템종류 파티션명(번호)
[root@localhost ~]# mkfs -t ext4 /dev/sda2
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: 7ca3ec21-80a1-4d9c-89b2-86e43eb84698
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
+
파일 시스템 종류
- NTFS(New Technology File System)
- FAT32(File Allocation Table)
- EXT4(Fourth Extended File System)
- UFS(Unix FIle System)
데이터 입출력이 가능한 상태인(=파일 시스템 부여된) 디스크를
사용자가 디렉터리 구조에서 엑세스(access) 할 수 있도록하는 상태
(=운영체제가 물리적 장치를 이용할 수 있게 만드는 것)
말 그대로 특정 디렉터리를 지정해주어야만 파티셔닝한 디스크 공간을 사용할 수 있는 것이다.
마운트 포인트란?
- 마운트 할 디렉터리
- reboot하면 사라진다 <- 시스템 시작시 마운트를 유지 할 수 있어야함
/etc/fstab이란?
시스템 시작 시 마운트, 퍼미션, 복구 관련 옵션을 지정
마운트 과정을 가볍게 설명하자면
-- df -h
[root@localhost ~]# mount /dev/sda1 /m1
[root@localhost ~]# df -h | grep m1
/dev/sda1 182M 14K 168M 1% /m1
-- 재시작 하면 마운트 해제
# reboot
# df -h | grep m1
-- 읽기 전용 마운트 가능
[root@localhost ~]# mount -o ro /dev/sda1 /m1
[root@localhost ~]# touch /m1/1.txt
touch: cannot touch '/m1/1.txt': 읽기전용 파일 시스템
-- 디스크 관련 고유 식별자 확인
-- fstab적용 /dev/mapper/rl-root / xfs defaults 0 0
--reboot--df -h | grep m1
/dev/sda1 182M 14K 168M 1% /m1
vi editor : 단축키 (1) | 2024.09.30 |
---|---|
Shell Script_function : 계정 일괄 생성/삭제 프로그램 (0) | 2024.03.21 |
Shell Script : 계정 일괄 생성/삭제 프로그램 (0) | 2024.03.21 |
Shell Script : 파일 복사하기 (0) | 2024.03.20 |
iptables mangle : ttl_set (0) | 2024.03.05 |