상세 컨텐츠

본문 제목

disk partitioning

리눅스(Linux)

by 주스로그 2024. 9. 25. 10:44

본문

728x90
반응형

이전 글에 이어 파티셔닝 하는 방법에 대해 알아보자

2024.09.24 - [개념] - DISK vmdk

 

DISK vmdk

디스크 vmdk(=프로비저닝)을 알기 위해서는 먼저 디스크가 무엇인지 알아야한다.disk 란 ? 컴퓨터용 저장 장치sector 란 ?디스크의 최소 단위head 란 ?플래터의 특정 위치 추정을 가능하게 함cylinder 란

zuchnology.tistory.com

  1. 디스크 생성
  2. 파티셔닝
  3. 파일 시스템
  4. 마운트

1) 디스크 생성

가상머신의 디스크 파일 :: 물리적인 디스크를 추가(add hard disk)

하드 디스크는 보통 물리적으로 /dev/sda, /dev/sdb, /dev/sdc .. 등의 형식으로 이루어져있다.

 

2) 파티셔닝, fdisk

- 파티셔닝 기준은 섹터

더보기

리눅스 설치 시 반드시 필요한 파티션이 있다.

-최상위 파티션

-swap 파티션

- partition table은 파티션 정보를 보관하는 곳으로, 파티셔닝 방법에 따라 두 가지의 종류가 있다.

 

1) MBR 

MBR table을 사용한 파티셔닝

- MBR은 주, 확장 파티션 테이블이다

- 기록하는 공간이 4개로 분할되어 주+확장 파티션을 최대 네개까지 만들 수 있다

- 각각의 공간 안에 파티션의 시작/종료 섹터 주소를 기록한다

 

2) GTP table 

GTP table을 사용한 파티셔닝

- 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...

등의 형식이 된다

3) 파일 시스템, mkfs

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)

4) 마운트, mount

데이터 입출력이 가능한 상태인(=파일 시스템 부여된) 디스크를

사용자가 디렉터리 구조에서 엑세스(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': 읽기전용 파일 시스템

 

-- 디스크 관련 고유 식별자 확인 
[root@localhost ~]# blkid
/dev/mapper/rl-root: UUID="9000a25a-c7bc-4348-a482-754a549c7af2" TYPE="xfs"
/dev/nvme0n1p2: UUID="FFmKnl-lE5C-dd4h-fHYN-WT8U-jTm0-bNtcSh" TYPE="LVM2_member" PARTUUID="d2dfeb2e-02"
/dev/mapper/rl-swap: UUID="31a64ce4-c8c7-47f5-9d0a-5403d91f597a" TYPE="swap"
/dev/nvme0n1p1: UUID="844c7410-a2cd-4e2f-9cbd-f43db518f42f" TYPE="xfs" PARTUUID="d2dfeb2e-01"
/dev/sr0: UUID="2023-05-12-00-24-36-00" LABEL="Rocky-9-2-x86_64-dvd" TYPE="iso9660" PTUUID="6717dd09" PTTYPE="dos"
/dev/sda2: UUID="7ca3ec21-80a1-4d9c-89b2-86e43eb84698" TYPE="ext4" PARTUUID="ebc78f9f-02"
/dev/sda1: UUID="779ff91a-97f3-4bd7-b4a9-ae6e5586b08b" TYPE="ext4" PARTUUID="ebc78f9f-01"
/dev/sda5: PARTUUID="ebc78f9f-05"
/dev/sda3: PARTUUID="ebc78f9f-03"
/dev/sda6: PARTUUID="ebc78f9f-06"

장치명 대신 UUID 를 입력(장치명 입력해도 됨!)
UUID="779ff91a-97f3-4bd7-b4a9-ae6e5586b08b

 

-- fstab적용 /dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=844c7410-a2cd-4e2f-9cbd-f43db518f42f /boot                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0
UUID=779ff91a-97f3-4bd7-b4a9-ae6e5586b08b       /m1     ext4    defaults        0 0

 

--reboot--df -h | grep m1

/dev/sda1 182M 14K 168M 1% /m1

 

728x90
반응형

관련글 더보기