Ubuntu에서 SSD 4개 중 3개를 LVM으로 묶어 /home 디렉토리에 마운트하는 과정을 소개합니다. 파티션 설정부터 LVM 구성, 파일 시스템 생성, /home 마이그레이션 및 fstab 자동 마운트 설정까지 자세히 설명합니다.
Ubuntu에서 LVM으로 Disk 확장하기: /home 마운트
목차
1. 시스템 디스크 구성 확인하기
lsblk 명령어를 통해 디스크 상태를 확인합니다.
Ubuntu가 설치된 SSD(sda)를 제외한 sdb, sdc, sdd는 LVM 구성에 사용할 예정입니다.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 931.5G 0 part /
sdb 8:16 0 931.5G 0 disk
sdc 8:32 0 931.5G 0 disk
sdd 8:48 0 931.5G 0 disk
2. LVM 패키지 설치
LVM 관련 명령어를 사용하기 위해 lvm2 패키지를 설치합니다.
sudo apt update
sudo apt install lvm2
3. 디스크 파티션 및 LVM 플래그 설정
디스크를 단순히 포맷하거나 파티션을 삭제하더라도,
LVM에서는 물리 볼륨(PV), 볼륨 그룹(VG), 논리 볼륨(LV) 정보가 디스크 메타데이터에 별도로 남아 있을 수 있습니다.
이 상태에서 새로 LVM을 구성하면 충돌이 발생하거나, 이전 설정이 남아 있어 예상치 못한 오류가 발생할 수 있습니다.
따라서 다음과 같은 명령어로 기존 LVM 구성을 완전히 제거한 후 디스크를 초기화하는 것이 안전합니다.
특정 디스크에 LVM 정보가 남아 있는지 직접 확인하는 방법
sudo file -s /dev/sdb1
============================
LVM 경우 출력 예시
/dev/sdb1: LVM2 PV (Linux Logical Volume Manager), UUID: ...
ext 일 경우 출력 예시
/dev/sdb1: Linux rev 1.0 ext4 filesystem data ...
#논리 볼륨 삭제
sudo lvremove home_vg
#볼륨 그룹 삭제
sudo vgremove home_vg
#물리 볼륨 초기화
sudo pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1
parted 명령어를 사용해 각 디스크에 GPT 파티션 테이블을 생성하고, 전체를 하나의 LVM 파티션으로 설정합니다.
# sdb
sudo parted -s /dev/sdb mklabel gpt
sudo parted -s /dev/sdb mkpart primary 0% 100%
sudo parted -s /dev/sdb set 1 lvm on
# sdc
sudo parted -s /dev/sdc mklabel gpt
sudo parted -s /dev/sdc mkpart primary 0% 100%
sudo parted -s /dev/sdc set 1 lvm on
# sdd
sudo parted -s /dev/sdd mklabel gpt
sudo parted -s /dev/sdd mkpart primary 0% 100%
sudo parted -s /dev/sdd set 1 lvm on
sudo parted를 이용해 디스크를 LVM 용도로 준비하는 각 명령어의 상세 설명입니다
- parted: 디스크 파티션을 관리하는 명령어
- mklabel gpt: GPT(GUID Partition Table) 형식으로 파티션 테이블 생성 (MBR보다 최신이며 LVM, 대용량 디스크에 적합)
- mkpart: 새 파티션 생성
- primary: 파티션 유형 (GPT에서는 의미가 크지 않지만 유지됨)
- 0% 100%: 디스크의 시작부터 끝까지 전체를 하나의 파티션으로 사용
- set 1 lvm on: 1번 파티션에 LVM용 플래그를 설정
- lvm on: 해당 파티션이 LVM(Logical Volume Manager) 용도로 사용됨을 명시
4. LVM 볼륨 그룹 및 논리 그룹 생성
물리 볼륨 생성:
sudo pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
===========================================
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdd1" successfully created.
볼륨 그룹 생성:
sudo vgcreate home_vg /dev/sdb1 /dev/sdc1 /dev/sdd1
===================================================
Volume group "home_vg" successfully created
논리 볼륨 생성:
sudo lvcreate -l 100%FREE -n home_lv home_vg
============================================
Logical volume "home_lv" created.
디스크 구성 확인:
lsblk
=======================================================
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 931.5G 0 part /
sdb 8:16 0 931.5G 0 disk
└─sdb1 8:17 0 931.5G 0 part
└─home_vg-home_lv 252:0 0 2.7T 0 lvm
sdc 8:32 0 931.5G 0 disk
└─sdc1 8:33 0 931.5G 0 part
└─home_vg-home_lv 252:0 0 2.7T 0 lvm
sdd 8:48 0 931.5G 0 disk
└─sdd1 8:49 0 931.5G 0 part
└─home_vg-home_lv 252:0 0 2.7T 0 lvm
5. 파일 시스템 생성 및 마운트
ext4 파일 시스템을 생성하고, /home에 마운트할 준비를 합니다.
sudo mkfs.ext4 /dev/home_vg/home_lv
====================================
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 732567552 4k blocks and 183148544 inodes
Filesystem UUID: 1*****************************f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
6. 기존 /home 데이터 백업 및 마이그레이션
기존 /home 데이터를 안전하게 백업 후 새 파티션으로 마이그레이션합니다.
# 백업 디렉토리 생성
sudo mkdir /home_backup
sudo rsync -avh /home/ /home_backup/
# 기존 /home 디렉토리 이름 변경
sudo mv /home /home.old
# 새 마운트 지점 생성 및 마운트
sudo mkdir /home
sudo mount /dev/home_vg/home_lv /home
7. 부팅시 자동 마운트 설정(fstab등록)
UUID를 사용해 자동 마운트를 설정합니다.
sudo blkid /dev/home_vg/home_lv
==================================
/dev/home_vg/home_lv: UUID="10*****-6****-4***-8***9-9******a" BLOCK_SIZE="4096" TYPE="ext4"
/etc/fstab 파일에 아래 내용을 추가합니다.
UUID=10*****-6****-4***-8***9-9******a /home ext4 defaults 0 2
정상적으로 /home이 마운트되었는지 확인합니다.
df
================================
파일 시스템 1K-블록 사용 가용 사용% 마운트위치
tmpfs 13185796 3076 13182720 1% /run
/dev/sda2 960300048 16075472 895370256 2% /
tmpfs 65928968 0 65928968 0% /dev/shm
tmpfs 5120 20 5100 1% /run/lock
tmpfs 13185792 148 13185644 1% /run/user/1000
/dev/mapper/home_vg-home_lv 2883134640 129072 2736475676 1% /home
관련 글 링크
2. Ubuntu 24.04 노트북 설치(USB 부팅)
https://manpages.ubuntu.com/manpages/noble/en/man8/lvm.8.html
Ubuntu Manpage: lvm — LVM2 tools
Powered by the Ubuntu Manpage Repository, file bugs in Launchpad © 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.
manpages.ubuntu.com
How to manage logical volumes
The Ubuntu Server installer has the ability to set up and install to LVM partitions, and this is the supported way of doing so. If you would like to know more about any of the topics in this page, ...
documentation.ubuntu.com
'1.시스템&인프라 > Ubuntu' 카테고리의 다른 글
| 18. Ubuntu apt update 오류 해결 – Hash Sum mismatch 문제 (0) | 2025.06.10 |
|---|---|
| 17. Ubuntu에서 OS/CPU/GPU/메모리/디스크 정보 확인 (0) | 2025.05.02 |
| 16. Ubuntu에 원격 데스크탑(RDP) 설정하고 접속하는 방법: xrdp (0) | 2025.04.30 |
| 14. Ubuntu에서 zip/unzip 설치 및 사용법 정리 (0) | 2025.04.08 |
| 13. SSH 공개키 인증 설정하기: 비밀번호 로그인 차단 (0) | 2025.03.30 |