> 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/20-install-rocky-instance-from-iso.md).

# Rocky Linux ISO 업로드 후 VM 설치 및 부팅 전환

이 문서는 `Rocky Linux ISO`를 업로드해 인스턴스를 생성하고, 설치 완료 후 부팅 순서를 운영 디스크로 전환해 정상 로그인까지 확인하는 실습입니다.

## 사전 준비

* Cloud:iA 웹콘솔 접근 가능
* 프로젝트 계정(`project-owner`)으로 로그인 가능
* Rocky Linux ISO 파일 준비
* 인스턴스에서 사용할 VPC/서브넷/보안그룹 준비

## 개요

1. [Rocky ISO 업로드](#step-1)
2. [ISO 기반 VM 생성 및 실행](#step-2)
3. [콘솔 접속 후 Rocky OS 설치](#step-3)
4. [설치 완료 후 VM 종료 및 부팅 순서 변경](#step-4)
5. [설치된 OS로 재부팅 및 로그인 확인](#step-5)
6. [설치 중 네트워크 수동 설정이 필요한 경우](#step-6)

## 1단계: Rocky ISO 업로드

**수행 계정/화면:** `관리자 또는 권한 보유 계정` / `ISO 관리 화면`

### 절차

1. Cloud:iA 웹에서 `스토리지 > ISO`로 이동한 뒤 `생성`을 클릭합니다.
2. `스토리지 도메인`을 선택합니다.
3. `OS 타입`을 Rocky 계열로 선택합니다. (예: `rocky10`)
4. `ISO` 항목에서 Rocky Linux `.iso` 파일을 선택합니다.
5. 필수 항목이 모두 입력되어 `생성` 버튼이 활성화되면 `생성`을 클릭합니다.
6. ISO 목록에서 생성된 항목의 상태와 정보를 확인합니다.

### 입력 예시

| 항목       | 값                          |
| -------- | -------------------------- |
| 스토리지 도메인 | `LOCAL-SD`                 |
| OS 타입    | `rocky10`                  |
| ISO 파일   | `Rocky-9.5-x86_64-dvd.iso` |

### 확인

* ISO 목록에 Rocky ISO가 생성됩니다.
* `이름`, `OS 타입`, `스토리지 도메인`, `크기`가 입력값과 일치합니다.

> 주의
>
> ISO 생성 시 `CEPH` 타입 스토리지 도메인은 지원하지 않습니다.

## 2단계: ISO 기반 VM 생성 및 실행

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

### 절차

1. `생성`을 클릭합니다.
2. `기본 정보`에서 인스턴스 이름과 스펙을 입력합니다.
3. `설치 유형`에서 `ISO 파일`을 선택하고, 1단계에서 생성한 Rocky ISO를 선택합니다.
4. `부팅 디스크 크기`를 입력합니다.
5. `네트워크 인터페이스`를 `1개`만 설정합니다.
6. `NIC 1`에 대해 `서브넷`, `IP 주소(자동 또는 수동)`, `보안그룹`을 지정합니다.
7. `생성`을 클릭합니다.
8. 인스턴스 상태가 `종료됨`으로 전환되면 인스턴스를 선택해 `실행`합니다.

### 입력 예시

| 항목           | 값                           |
| ------------ | --------------------------- |
| 인스턴스 이름      | `example-rocky-iso-001`     |
| 인스턴스 타입      | `t2.medium`                 |
| 설치 유형        | `ISO 파일`                    |
| ISO 파일       | `Rocky-9.5-x86_64-dvd.iso`  |
| 부팅 디스크 크기    | `15 GB`                     |
| VPC          | `example-vpc`               |
| 네트워크 인터페이스 수 | `1`                         |
| NIC 1 서브넷    | `example-public-subnet-001` |
| NIC 1 IP 주소  | `자동 할당`                     |
| NIC 1 보안그룹   | `example-vpc-default-sg`    |

### 확인

* 생성 직후 인스턴스 상태가 `생성 중`으로 표시됩니다.
* 생성 완료 후 상태가 `종료됨`으로 전환됩니다.
* 인스턴스 상태가 `실행 중`으로 전환됩니다.
* 콘솔에서 Rocky 설치 화면으로 진입할 수 있습니다.

> 참고
>
> `ISO 파일` 설치 유형에서는 `사용자 계정`을 사용할 수 없고, `고급 설정`의 `보안 유형`·`오브젝트 스토리지`·`사용자 스크립트`도 사용할 수 없습니다. `부팅 펌웨어`, `확장 한도`, 추가 `블록`은 사용할 수 있습니다.

## 3단계: 콘솔 접속 후 Rocky OS 설치

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

### 절차

1. 대상 VM의 `콘솔`을 엽니다.
2. Rocky 설치 메뉴에서 `Install Rocky Linux`를 선택합니다.
3. 언어, 시간, 디스크 파티션, 사용자 정보를 설정합니다.
4. `root` 비밀번호 또는 설치 중 생성한 사용자 비밀번호를 설정합니다.
5. 설치를 완료하고 `Reboot System` 화면까지 진행합니다.

### 확인

* 설치 완료 화면에서 `Reboot System` 버튼이 표시됩니다.

## 4단계: 설치 완료 후 VM 종료 및 부팅 순서 변경

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

`Reboot System` 화면이 보여도 즉시 콘솔에서 재부팅하지 않고, Cloud:iA 웹에서 전원 상태를 정리한 뒤 부팅 순서를 변경합니다.

### 절차

1. Cloud:iA 웹에서 해당 VM을 `종료`합니다.
2. VM `상세` 화면으로 이동합니다.
3. `디스크 부팅 순서`에서 설치된 OS 디스크를 1순위로 변경합니다.
4. ISO(CD-ROM) 부팅 순서는 2순위로 내려 `DISK`가 먼저 부팅되도록 저장합니다.

### 확인

* `디스크` 탭의 부팅 순서 표에서 `타입 = DISK`가 `부팅 순서 = 1`로 표시됩니다.
* `타입 = CD-ROM`은 `부팅 순서 = 2`로 표시됩니다.
* 인스턴스 상태가 `종료됨`입니다.

## 5단계: 설치된 OS로 재부팅 및 로그인 확인

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

### 절차

1. Cloud:iA 웹에서 대상 VM을 `실행`합니다.
2. 콘솔 또는 접속 경로(SSH/포트포워딩/플로팅IP)로 접속합니다.
3. 설치 시 설정한 계정으로 로그인합니다.

### 로그인 예시

| 계정     | 비밀번호                  |
| ------ | --------------------- |
| `root` | `{설치 시 설정한 password}` |

### 확인

* ISO 설치 화면이 아닌, 설치된 Rocky OS 로그인 프롬프트가 표시됩니다.
* 설정한 비밀번호로 로그인이 정상 동작합니다.

## 6단계: 설치 중 네트워크 수동 설정이 필요한 경우

**수행 계정/화면:** `인스턴스 상세` / `Rocky 설치기 또는 설치된 OS`

설치 중 네트워크가 자동으로 올라오지 않으면 인스턴스 상세의 NIC 정보를 기준으로 수동 설정합니다.

### 절차

1. Cloud:iA `인스턴스 상세`에서 NIC의 `IP`, `서브넷(CIDR)`, `게이트웨이`, `DNS`를 확인합니다.
2. Rocky에서 해당 인터페이스(예: `ens3`)에 IP를 수동 설정합니다.
3. `Netmask`는 NIC IP가 속한 서브넷 CIDR을 기준으로 입력합니다.

### Netmask 예시

| 서브넷               | Netmask           |
| ----------------- | ----------------- |
| `10.0.1.0/24`     | `255.255.255.0`   |
| `10.0.0.0/16`     | `255.255.0.0`     |
| `192.168.10.0/25` | `255.255.255.128` |

### `nmcli` 설정 예시

```bash
nmcli con show
nmcli con mod "System ens3" ipv4.method manual \
  ipv4.addresses 10.0.1.10/24 \
  ipv4.gateway 10.0.1.1 \
  ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up "System ens3"
```

### 확인

* `ip a` 또는 `nmcli device show`에서 수동 설정한 IP가 적용됩니다.
* 게이트웨이 및 DNS가 정상 반영되어 외부/내부 통신이 가능합니다.
