Ubuntu 26.04 VM 생성 (prompt clean)

mimic·2026년 9월 21일

Ubuntu 26.04 이미지 준비

저장소에 이미지 다운로드

노드 → images 경로 → wget 실행
wget https://cloud-images.ubuntu.com/releases/26.04/release/ubuntu-26.04-server-cloudimg-amd64.img -O ubuntu-26.04.img

👉 🌐Cloud Image 사이트 바로 이동

이미지 세팅

yaml 파일로 설정할 예정이므로 별도의 이미지 세팅 없이 곧바로 진행합니다.


yaml 파일 작성

노드 → snippets 경로 → ubuntu-2604-setting.yaml 작성
#cloud-config

# 1. SSH 비밀번호 로그인 허용
ssh_pwauth: true
disable_root: false

# 2. 부팅 시 패키지 설치 전 apt update 자동 실행
package_update: true

# 3. 설치할 패키지 목록
packages:
  - net-tools
  - qemu-guest-agent

# 4. 디스크 자동 확장 (vda, sda 상관없이 루트 파티션을 알아서 끝까지 확장함)
growpart:
  mode: auto
  devices: ['/']

# 5. 기타 실행할 명령어들 runcmd
runcmd:
  # root 계정 비밀번호 강제 설정 (chpasswd 명령어 사용)
  - echo 'root:$PASSWORD' | chpasswd

  # root 계정 SSH 접속 직접 허용 설정 강제 주입
  - echo "PermitRootLogin yes" > /etc/ssh/sshd_config.d/99-custom.conf
  - echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config.d/99-custom.conf

  # SSH 데몬 재시작하여 설정 즉시 반영
  - systemctl restart ssh

VM 생성

생성 명령어

qm create $VM_ID --name "$VM_NAME" --cores 4 --memory 8192 --net0 virtio,bridge=vmbr0
qm importdisk $VM_ID /images_경로/ubuntu-26.04.img local-lvm
qm set 210 --virtio0 local-lvm:vm-210-disk-0
qm set 210 --boot c --bootdisk virtio0
qm set 210 --ide2 local-lvm:cloudinit
qm set 210 --vga std
qm set 210 --agent enabled=1
qm set 210 --ipconfig0 ip=$IP/$Subnet,gw=$GW_IP
qm resize  210 virtio0 50G
qm set 210 --cicustom "user=$STORAGE_NAME:snippets/ubuntu-2604-setting.yaml"

하드웨어 규격

생성된 VM의 하드웨어 규격입니다. 디스플레이 항목이 std나 기본으로 설정되어 있어야 합니다.


systemd 258의 OSC 3008 시퀀스 도입

Ubuntu 26.04나 최신 Arch Linux 등 최신 배포판에 탑재된 systemd 258 버전부터는 터미널에 현재 실행 중인 세션이나 셸의 컨텍스트(사용자 계정, 현재 작업 디렉토리, 프로세스 ID 등)를 전달하는 새로운 기능이 추가되었습니다. 이 정보를 전달하기 위해 OSC(Operating System Command) 3008이라는 특수한 이스케이프 시퀀스(Escape Sequence) 규격을 사용합니다.

이 기능이 활성화되면 OS는 두 가지 경로로 화면에 해당 시퀀스를 쏘아 보냅니다.

  • 로그인 시점: pam_systemd가 세션 시작 정보를 담은 type=session 문자열을 출력합니다.
  • 명령어 실행 전·후: /etc/profile.d/80-systemd-osc-context.sh 스크립트가 셸 프롬프트 변수(PS0)를 조작하여, 사용자가 명령어를 칠 때마다 type=shell 정보가 담긴 문자열을 출력합니다.

디스플레이 항목이 호환되지 않는 경우

최신 터미널 에뮬레이터(예: Windows Terminal, iTerm2 등)는 이 \033]3008;... 형태의 시퀀스를 수신하면 화면에 텍스트로 띄우지 않고 백그라운드에서 상태 정보로만 조용히 처리(Consume)합니다.
하지만 Proxmox의 직렬 콘솔(Serial Console)이나 minicom 환경에서 사용하는 vt220 터미널 규격은 이 최신 시퀀스를 이해하지 못합니다. 결과적으로 터미널은 이를 '숨겨야 할 제어 문자'로 인식하지 못하고, 단순 텍스트로 오인하여 페이로드 전체를 화면에 그대로 토해내게 됩니다.

에러 화면

만일 반드시 디스플레이 항목을 반드시 시퀀스와 호환되지 않는 옵션으로 사용해야 한다면 아래와 같이 스크립트 실행권한을 제거하고 사용할 수 있습니다.

chmod -x /etc/profile.d/80-systemd-osc-context.sh


Bash Script

프로세스 구조 요약

스크립트 다운로드

Proxmox 9.2.X Ver에서 동작합니다.
👉 🔗pve_u2604_install.sh Download

profile
Raiju Hantu Goryo Obake

0개의 댓글