1. Prerequisites
Proxmox VE 9.0 버전으로 업그레이드하기 전에 다음 사항을 반드시 충족해야 한다.
- 모든 노드에서 Proxmox VE 8.4의 최신 버전으로 업그레이드
- Proxmox Backup Server 4로 업그레이드
- 루트 마운트 포인트에 최소 5GB, 이상적으로는 10GB 이상의 여유 공간을 확보.
- Ceph Quincy 또는 Ceph Reef 클러스터를 Ceph 19.2 Squid로 미리 업그레이드
Ceph는 사용하지 않으므로 넘어간다.
가. VM, Container

PBS를 사용하므로 본격적으로 업데이트하기 전에 한 번만 백업을 실행한다.
PBS를 사용하지 않는 경우 vzdump를 사용해서 데이터를 백업할 수 있다.
백업을 마치면 모든 VM과 container를 종료한다.
나. Proxmox VE 8.4.X
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | tee /etc/apt/sources.list.d/pve-no-subscription.list
Code language: PHP (php)
개인들이 일반적으로 많이 사용하는 pbs-no-subscription을 먼저 추가한다.
sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/ceph.list
Code language: PHP (php)
혹시 기존에 /etc/apt/sources.list.d/ 아래에 존재하는 모든 파일에 pve-enterprise 저장소가 남아 있다면 주석 처리(또는 삭제)한다.
apt update && apt dist-upgrade
Debian Bookworm 저장소가 설정된 상태에서 아래 명령어로 업그레이드한다.

일단 Yes을 선택해 기존 설정을 덮어쓰라고 하고 업데이트가 마무리된 후 보안상 위험한 PasswordAuthentication과 PermitRootLogin 옵션만 껐다.
pveversion -v
8.4.14 또는 더 높은 버전이 출력되면 된다.
reboot
한번 리부팅한다.
다. 디스크 공간 확인
df -h /
루트 마운트 포인트에 최소 10GB의 여유 공간이 있는지 확인한다.
2. PVE 설정 백업
가. PVE 세팅
/etc/pve, /etc/passwd, /etc/network/interfaces, /etc/resolv.conf, /etc/apt/sources.list를 백업한다.
만약 위에서 나열한 것들을 제외하고도 수정한 파일이 있다면 백업해 두자.
보안상의 이유로 root 계정의 ssh 사용을 막아뒀다.
때문에 다른 계정을 이용한다.
# PVE SHELL
mkdir ~/pve_setting_backup
sudo cp -r /etc/pve ~/pve_setting_backup/
sudo cp /etc/passwd ~/pve_setting_backup/
sudo cp /etc/network/interfaces ~/pve_setting_backup/
sudo cp /etc/resolv.conf ~/pve_setting_backup/
sudo cp /etc/apt/sources.list ~/pve_setting_backup/
sudo chown -R tiredi:tiredi ~/pve_setting_backup
Code language: PHP (php)
해당 계정은 파일에 대한 권한이 부족하기 때문에 다운로드 전에 미리 복사한다.
# down
# server to local download file
scp -P <port 번호> <username>@<ip>:<path> <local file path>
# server to local download directory
scp -r -P <port 번호> <username>@<ip>:<path> <local file path>
Code language: HTML, XML (xml)
SCP를 활용해서 PVE의 주요 설정파일들을 다운로드한다.
# CLIENT SHELL
# PVE_Settings 디렉터리 생성
mkdir ~/Desktop/PVE_Settings
# /etc/pve 디렉토리 전체 다운로드
scp -r -P 22 tiredi@<pve-ip>:~/pve_setting_backup/pve ~/Desktop/PVE_Settings/
# /etc/passwd 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/passwd ~/Desktop/PVE_Settings/
# /etc/network/interfaces 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/interfaces ~/Desktop/PVE_Settings/
# /etc/resolv.conf 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/resolv.conf ~/Desktop/PVE_Settings/
# /etc/app/sources.list 파일 다운로드
scp -P 22 tiredi@<pve-ip>:~/pve_setting_backup/sources.list ~/Desktop/PVE_Settings/
Code language: PHP (php)
다운로드한 파일은 혹시 모를 상황을 대비해서 보관해 두면 된다.
# PVE SHELL
rm -rf ~/pve_setting_backup/
Code language: PHP (php)
다운로드가 끝나고 불필요한 파일은 삭제한다.
3. PVE 9.0 업데이트
가. 체크리스트
pve8to9 --full
WARNINGS과 FAILURES가 없으면 된다.
나. 주의사항
/etc/issue
: 기본값인 “No” (keep your currently-installed version)를 선택/etc/lvm/lvm.conf
: 확신이 없다면, “Yes” (install the package maintainer’s version)를 선택하는 것이 좋다./etc/ssh/sshd_config
: 일단 Yes을 선택해 기존 설정을 덮어쓰라고 하고 업데이트가 마무리된 후 보안상 위험한PasswordAuthentication과 ****PermitRootLogin옵션만 껐다./etc/default/grub
: 확신이 없다면 “No” (keep your currently-installed version)를 선택하십시오./etc/chrony/chrony.conf
: 직접 수정하지 않았고 확신이 없다면, “Yes” (install the package maintainer’s version)를 선택하십시오. 만약 로컬 변경 사항이 있다면 공식문서를 참고.
다. APT 저장소 업데이트
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-no-subscription.list
Code language: PHP (php)
/etc/apt/sources.list와 /etc/apt/sources.list.d/ 아래 모든 파일에 대하여 bookworm을 trixie로 변경하자.
복잡하면 그냥 sources.list와 sources.list.d 아래 모든 파일을 지우면 된다.~~어차피 9.0부터는 .source로 확장자가 변한다.
아…. 지우면 안 된다. 바꾸기만 하자.
cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
Code language: JavaScript (javascript)
trixie 버전의 리포지터리를 추가한다.
apt update && apt upgrade -y
apt autoremove
proxmox 9에서 더 이상 사용되지 않는 패키지 삭제.
reboot
라. 시스템 업그레이드
apt update && apt dist-upgrade
pveversion -v
정상적으로 업그레이드 됐는지 확인한다.
reboot
재부팅.
4. 업데이트 후

모든 VM과 컨테이너가 정상적으로 동작하는지 확인한다.
또 백업도 문제없이 잘 되는지 확인한다.
보안을 강화하기 위해서 /etc/ssh/sshd_config를 수정한다.
보안상 위험한 PasswordAuthentication과 PermitRootLogin 옵션을 비활성화한다.