Linux 디스크 파티셔닝

ohyujeong·2023년 12월 11일
0

linux

목록 보기
2/9

파티셔닝 (Partitioning)

하드디스크나 USB드라이브같은 스토리지 장치들은 사용되기 전 어떤 방식으로든 구조화되어야 하고 디스크를 파티셔닝함으로써 이를 수행한다. 파티셔닝은 디스크를 사용자가 별도로 작업할 수 있는 하나 이상의 논리적 영역으로 나누는 프로세스이다.

파티션이 생성되면 디스크는 파티션 테이블에 파티션의 위치와 크기에 대한 정보를 저장한다. 파티션 테이블을 사용하면 각 파티션이 운영체제에 논리 디스크로 표시될 수 있으며 (C: 드라이브나 D: 드라이브 같이 표시되는 것처럼) 사용자는 이 파티션들을 별도로 관리할 수 있다.

아래와 같은 목적을 가진다.

  • 하드 디스크 업그레이드
  • 효율적인 디스크 관리
  • 백업 및 보안 보장
  • 동일한 시스템으로 다양한 파일시스템 작업

UTM (Universal Turing Machine) 가상머신 사용

실습을 위해 UTM이라는 가상머신을 사용했다.
(다른 VM이 유료라 사용하지 않았는데 다시 찾아보니 VMware는 무료였다)
https://mac.getutm.app/ 를 참고해서 설치했다.

UTM 설정에서 하드드라이브 추가

기존 하드드라이브에서 파티션 조정을 하여 파티셔닝을 할 수도 있지만 이번에는 하드드라이브를 추가하여 시도해보았다.
하드드라이브를 추가할 VM의 Edit 메뉴를 클릭한다.

드라이브 섹션에서 추가버튼을 눌러 디스크 유형과 크기를 지정하고 추가한다. 기존 드라이브가 VirtIO를 사용하고 있어 같은것으로 지정해주었다.

생성한 하드드라이브 확인

파티셔닝 관련 커맨드 사용을 위해서는 root 권한이 필요한 경우가 많아 root 쉘로 전환하여 진행했다.
lsblk

# root 쉘로 전환
sudo su

# 사용가능한 하드드라이브 확인
lsblk -e7

현재 vda , vdb 가 있고 vdb 가 UTM 설정에서 추가한 드라이브이다. 이러한 명칭은 디스크 타입에 따라 다를 수 있다.

드라이브에 파티션 생성 및 포맷

파티션이란?

드라이브를 논리적으로 나눈 부분으로 각 파티션은 독립적인 파일 시스템을 가질 수 있다. 이를 통해 하나의 드라이브를 여러 용도로 분리하여 사용할 수 있다.

https://www.baeldung.com/linux/partitioning-disks 링크의 자료를 참고하여 파티셔닝을 하였다. 파티셔닝을 용도에 맞게 설정하는 부분에 대해서는 좀 더 알아봐야할 것 같고 일단은 작성자의 구성대로 파티셔닝을 따라해봤다.

파티션 도구 사용

vdb 드라이브 사용을 위해서는 파티션을 생성하고 포맷해야 한다. 파티션 도구인 parted, fdisk 도구를 사용하여 수행할 수 있다. 나는 그 중 parted를 사용해보았다.

# parted 도구 실행
parted
-> (parted) 로 표시되면서 parted 프롬프트에 진입했음을 알림

# 드라이브 지정
(parted) select /dev/vdb

위와 같이 parted 프롬프트에 진입하여 도구를 사용할 수도 있고 다음과 같이 parted 명령어로 사용할 수도 있다.

# 드라이브 지정과 동시에 parted 실행
parted /dev/vdb 

# -s 플래그로 parted 프롬프트 없이 실행
parted -s /dev/vdb [command]
# 예시
parted -s /dev/vdb print
parted -s /dev/vdb mklabel gpt

파티션 생성

mklabel : 파티션 생성에 앞서 파티션 테이블 타입을 설정해야 한다. 아래와 같인 유형들이 있다.

  • bsd
  • loop (raw disk access)
  • gpt
  • mac
  • msdos
  • pc98
  • sun
    일반적으로 msdos(MBR)과 gpt를 사용한다. 다음과 같이 사용할 수 있다.
parted -s /dev/vdb mklabel gpt

MBR과 GPT

MBR은 오래된 표준으로써 기술적인 제약이 GPT에 비해 많이 있다.
최대 디스크 크기가 2TB까지만 가능하고 기본 파티션은 4개까지만 허용된다.
반면 GPT는 최대 128개의 파티션을 가질 수 있고 그 외 다양한 기술적 장점들이 있어 대부분의 최신 컴퓨터에는 GPT 디스크가 사전 구성되어 있다. 또한 하위 호환성을 위해 MBR 섹션을 지원한다.

mkpart : 선택한 디스크에 파티션을 생성할 때 아래 형식에 맞춰 해당 명령어를 사용한다. GPT 디스크에는 확장 파티션이 없어 모든 파티션을 primary 파티션으로 설정할 수 있다.

parted -s /dev/vdb mkpart [partition-type] [filesystem-type] [start] [end]

여기서 파일시스템 형식을 지정하는 것은 라벨링의 기능밖에는 하지 않는다. 실제 파일 시스템 생성을 위해서는 별도의 포맷 과정을 거쳐야 한다.

name : 파티션에 이름을 부여한다. 아래 형식에 맞춰 사용한다.

parted -s /dev/vdb name [partition-number] [your-partition-name]

이러한 명령어들을 사용하여 다음과 같이 파티셔닝을 진행했다.

# 파티션 테이블 타입 설정
parted -s /dev/vdb mklabel gpt

# 파티션 타입, 파일시스템 타입, start, end 인자 입력하여 파티션 생성
parted -s /dev/vdb mkpart primary fat32 0% 512MiB
parted -s /dev/vdb mkpart primary linux-swap 1048576s 3GiB
parted -s /dev/vdb mkpart primary ext4 3GiB 40%
parted -s /dev/vdb mkpart primary ext4 40% 60%
parted -s /dev/vdb mkpart primary ext4 60% 100%

# 용도에 맞춰 이름 부여하기
parted -s /dev/vdb name 1 EFI-Boot
parted -s /dev/vdb name 2 Swap
parted -s /dev/vdb name 3 root
parted -s /dev/vdb name 4 /opt
parted -s /dev/vdb name 5 /home

# 첫번째 파티션에 ESP 플래그를 부여함으로써 ESP를 식별할 수 있게 함
parted -s /dev/vdb set 1 esp on

파티션 생성 결과 확인

file system 항목값이 비어있음을 확인할 수 있다. 각 파티션에 맞는 파일 시스템을 포맷해야 한다.

파티션 포맷

생성한 파티션들에 지정했던 파일시스템 유형에 맞춰 파일 시스템을 포맷한다.

# 1 - EFI-boot
mkfs.fat -F 32 /dev/vdb1

# 2 - Swap
mkswap /dev/vdb2
swapon /dev/vdb2 (swap 활성화)

# 3 - root
mkfs.ext4 /dev/vdb3
# 4 - /opt
mkfs.ext4 /dev/vdb4
# 5 - /home
mkfs.ext4 /dev/vdb5

이렇게 파티션 포맷이 완료되었다. 하지만 아직 파일 시스템을 사용할 수는 없다. 사용을 위해서는 파일시스템을 마운트해야한다. 이어지는 포스트에서 설명하려고 한다.

gparted

gparted를 사용하여 UI로 파티셔닝 정보를 확인할 수 있었다.

아래 링크를 참고했다.
https://www.geeksforgeeks.org/disk-partitioning-in-ubuntu-using-gparted/


참고

https://www.geeksforgeeks.org/disk-partitioning-in-linux/

UTM 에서 하드드라이브 추가하기
https://www.youtube.com/watch?v=e3cJm9kzHu4

디스크 파티셔닝 튜토리얼
https://www.baeldung.com/linux/partitioning-disks
디스크 파티셔닝 튜토리얼(GUI)
https://averagelinuxuser.com/linux-partitioning-recommendations/
마운트 파일시스템
https://www.baeldung.com/linux/mount-unmount-filesystems

Copy file from VM to MAC
https://www.youtube.com/watch?v=yb9_h2LUVSY

profile
거친 돌이 다듬어져 조각이 되듯

0개의 댓글