> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/user-guide/examples-and-labs/22-grow-boot-disk.md).

# 인스턴스 부팅 디스크 증설하기

이 문서는 전원을 끈 인스턴스의 `부팅 디스크 크기`를 늘려(증설) 게스트 OS가 늘어난 용량을 사용하도록 만드는 실습입니다. 증설은 플랫폼이 블록 디바이스를 확대한 뒤 게스트 OS가 파티션과 파일 시스템을 확장하는 순서로 진행됩니다. cloud-init(Linux)·Cloudbase-init(Windows) 같은 확장 도구가 포함된 이미지는 게스트 확장이 자동으로 이루어지고, 확장 도구가 없는 이미지는 수동 확장이 필요합니다.

## 사전 준비

* Cloud:iA 웹콘솔 접근 가능
* 프로젝트 계정(`project-owner`)으로 로그인 가능
* 증설할 인스턴스가 `종료됨` 상태 (부팅 디스크 증설은 전원을 끈 상태에서만 가능)
* 증설 전 인스턴스 스냅샷 또는 백업 확보 권장

## 개요

1. [부팅 디스크 크기 증설](#step-1)
2. [자동 확장 확인](#step-2)
3. [사용자(BYO) 이미지에 필요한 패키지](#step-3)
4. [Linux 수동 확장](#step-4)
5. [Windows 수동 확장](#step-5)

## 1단계: 부팅 디스크 크기 증설

**수행 계정/화면:** `프로젝트 계정` / `가상머신 > 인스턴스`

### 절차

1. 대상 인스턴스를 선택하고 `종료`합니다. 상태가 `종료됨`으로 전환될 때까지 기다립니다.
2. 인스턴스를 선택한 뒤 `편집`을 클릭합니다.
3. `디스크 크기 설정`을 펼친 뒤 `부팅 디스크 크기`를 현재 값보다 크게 입력합니다.
4. `저장`을 클릭한 뒤 인스턴스를 `실행`합니다. 플랫폼이 다음 실행 시점에 블록 디바이스 크기를 늘립니다.

### 입력 예시

| 항목             | 값       |
| -------------- | ------- |
| 변경 전 부팅 디스크 크기 | `20 GB` |
| 변경 후 부팅 디스크 크기 | `40 GB` |

### 확인

* 인스턴스 상세 `디스크` 탭에서 부팅 디스크 `크기`가 늘어난 값으로 표시됩니다.

> ⚠️ **주의:** 부팅 디스크 크기는 증설(확대)만 가능하며 축소는 지원하지 않습니다. 증설 전 스냅샷 또는 백업을 확보하세요.

## 2단계: 자동 확장 확인

**수행 계정/화면:** `프로젝트 계정` / `인스턴스 콘솔 또는 SSH`

확장 도구가 포함된 이미지로 만든 인스턴스는 재기동 시 게스트 OS의 파티션과 파일 시스템이 자동으로 확장됩니다(Linux는 cloud-init, Windows는 Cloudbase-init). 자동 확장 여부는 이미지 분류가 아니라 게스트에 이 도구가 포함됐는지로 결정되므로, 도구가 없는 이미지는 3단계 이후의 수동 확장이 필요합니다.

### 확인

* Linux: `df -h /` 에서 루트 파일 시스템 크기가 늘어났는지 확인합니다.
* Windows: `디스크 관리(diskmgmt.msc)` 에서 OS 볼륨 크기가 늘어났는지 확인합니다.
* 자동 확장은 기동 직후 백그라운드에서 수행될 수 있으니, 즉시 반영되지 않으면 잠시 뒤 다시 확인합니다.

## 3단계: 사용자(BYO) 이미지에 필요한 패키지

**수행 계정/화면:** `인스턴스 콘솔 또는 SSH` / `터미널`

직접 업로드한 이미지에 아래 도구를 미리 설치해 두면 기본 제공 이미지처럼 자동 확장을 사용할 수 있습니다. 없으면 4단계·5단계로 수동 확장합니다.

### Linux

| 용도               | 패키지                                                                      |
| ---------------- | ------------------------------------------------------------------------ |
| 부팅 시 자동 확장       | `cloud-init`                                                             |
| 파티션 확장(growpart) | RHEL/Rocky 계열 `cloud-utils-growpart` / Debian·Ubuntu `cloud-guest-utils` |
| GPT 파티션 확장       | `gdisk` 또는 최신 `util-linux`(sfdisk)                                       |
| 파일 시스템 확장        | ext4 `e2fsprogs`(resize2fs) / xfs `xfsprogs`(xfs\_growfs)                |

### Windows

| 용도         | 구성 요소                                   |
| ---------- | --------------------------------------- |
| 부팅 시 자동 확장 | `cloudbase-init` + `ExtendVolumes` 플러그인 |

## 4단계: Linux 수동 확장

**수행 계정/화면:** `인스턴스 콘솔 또는 SSH` / `터미널`

자동 확장이 동작하지 않은 경우 게스트에서 파티션과 파일 시스템을 직접 확장합니다. 아래는 부팅 디스크가 `/dev/sda`, 루트 파티션이 `/dev/sda4`인 예시이며, 실제 값은 `lsblk` 결과에 맞게 바꿔 입력합니다.

```bash
lsblk                          # 늘어난 크기 인식 확인
sudo growpart /dev/sda 4       # 파티션을 디스크 끝까지 확장
sudo resize2fs /dev/sda4       # 파일 시스템 확장 (ext4)
# xfs 는 sudo xfs_growfs / 를 사용
df -h /                        # 확인
```

루트가 LVM인 이미지에서는 `growpart` 뒤에 `pvresize` → `lvextend -l +100%FREE` → `resize2fs`/`xfs_growfs` 순서로 진행합니다(`lsblk` 의 `TYPE` 이 `lvm` 이면 LVM).

## 5단계: Windows 수동 확장

**수행 계정/화면:** `인스턴스 콘솔 또는 RDP` / `디스크 관리`

`diskmgmt.msc` 를 열어 OS 파티션(보통 `C:`)을 우클릭하고 `볼륨 확장`으로 최대 크기까지 확장합니다. `diskpart` 를 쓰면 `list volume` → `select volume N`(OS 볼륨) → `extend` 순서입니다.

`C:` 바로 뒤에 복구(Recovery) 파티션이 있으면 여유 공간이 `C:` 에 인접하지 않아 확장이 되지 않습니다. 이때는 복구 파티션을 재배치한 뒤 확장하며, 조작 전 스냅샷/백업을 확보합니다.
