시스템 관리 · 4 min read · Dec 05, 2025

Debian Lenny (Debian 5.0)에서 Squeeze (Debian 6.0)로 Xen VPS에서 업그레이드하는 방법

Debian Lenny (Debian 5.0)에서 Squeeze (Debian 6.0)로 Xen VPS에서 업그레이드하는 방법

이 튜토리얼은 Xen 기반 가상 사설 서버(VPS)에서 Debian Lenny (Debian 5.0) 설치를 Squeeze (Debian 6.0)로 업그레이드하는 방법을 보여줍니다. 여기에는 커널 업데이트, 의존성 기반 부팅 시퀀스 및 UUID로의 변환이 포함됩니다.

일반적인 Debian 방식으로 apt-get dist-upgrade를 사용하면 부팅할 수 없는 시스템이 될 가능성이 높습니다. 이는 주로 grub 업데이트가 실패하기 때문입니다.

제한 사항: grub을 업데이트할 수 없습니다. 대신 이전 grub 버전을 유지해야 합니다. 이 튜토리얼은 이를 달성하는 방법을 보여줍니다. 이 문제에 대한 해결책을 찾은 분은 댓글을 남겨주세요. 그러나 언제든지 댓글과 비판은 환영합니다!

면책 조항: 이 방법의 모든 단계가 신중하게 테스트되었지만, 작동할 것이라는 보장을 하지 않습니다! 자신의 책임하에 진행하세요. 프로덕션 환경에서 시도하지 마세요. 단계를 되돌릴 수 있는 직렬 콘솔에 접근할 수 없다면 시도하지 마세요. 데이터를 백업하거나 미리 스냅샷을 만들어 두세요! 부팅할 수 없는 시스템이 될 수 있습니다!

0 선택적 단계

다음 단계는 Squeeze로 업그레이드하는 데 필요하지 않지만, 일부 사용자에게 유용할 수 있습니다.

0.1 스왑 파일 추가 (선택 사항)

저와 같이 RAM과 스왑 공간이 매우 적은 VPS를 운영하는 경우 (<512 MB) 스왑 공간을 확장하는 것이 좋거나 필요할 수 있습니다.

다음 명령은 루트 디렉토리에 swapfile이라는 이름의 2GB 스왑 파일을 생성하고, 포맷하고 활성화합니다:

dd if=/dev/zero of=/swapfile bs=1024 count=2097152 && mkswap /swapfile && swapon /swapfile

부팅 시 스왑 파일을 자동으로 활성화하기 위해 /etc/fstab에 다음 줄을 추가합니다:

echo “/swapfile none swap sw 0 0” >> /etc/fstab

0.2 셸 프롬프트 색상 지정 (선택 사항)

이 명령은 /root/.bashrc에 항목을 추가하여 다음 로그인 후 root@host: /etc #와 같은 색상 프롬프트를 제공합니다:

echo "PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >>/root/.bashrc

1 Debian Squeeze (Debian 6.0)로 시스템 업그레이드

모든 단계를 주의 깊게 따르시기 바랍니다. 이 방법을 끝까지 완료할 때까지 다른 작업을 하지 마세요. 특히, 완료할 때까지 재부팅하지 마세요!

1.1 sources.list 업데이트

/etc/apt/sources.list에 다음 항목을 사용하세요:

vi /etc/apt/sources.list

us를 가까운 미러로 대체해야 합니다. 이 줄 이후에 필요에 따라 추가 소스를 포함할 수 있습니다.

#squeeze
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free
# squeeze release replacement mirrors for volatile sources
deb     http://mirrors.kernel.org/debian squeeze-updates main contrib
deb-src http://mirrors.kernel.org/debian squeeze-updates main contrib
#security-squeeze
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

다음 명령을 실행하세요:

apt-get update

1.2 로케일 설치 / 업데이트 / 구성

이 단계는 설치 중에 “로케일을 설정할 수 없음”과 같은 성가신 오류 메시지를 없애기 위해 미리 수행합니다. $LC_* 및 $LANG가 올바른지 확인하세요:

apt-get install locales

GNU libc 라이브러리 업그레이드를 위해 재시작할 서비스:
[…]
<확인>

dpkg-reconfigure locales

사용자에게 적합한 로케일을 선택하세요. 이 예에서는 en_DK.UTF-8입니다:

생성할 로케일:
[…]
[*] en_DK.UTF-8
[…]

기본 로케일 설정:

시스템 환경의 기본 로케일:
en_DK.UTF-8

1.3 grub 자동 업그레이드 방지

다음 명령은 apt가 grub, grub-common 및 grub-pc(설치된 경우)를 업그레이드하지 않도록 구성합니다:

echo "grub hold" | dpkg --set-selections && echo "grub-common hold" | dpkg --set-selections && echo "grub-pc hold" | dpkg --set-selections

1.4 dist-upgrade 실행

이제 실제 업그레이드를 다운로드하고 설치할 준비가 되었습니다. 마지막 업데이트에 따라 다운로드하고 설치할 항목이 많을 수 있습니다. 설치 중에 여러 중요한 질문이 있을 것이니 모든 내용을 주의 깊게 읽으세요. 다음 명령을 실행하세요:

apt-get dist-upgrade

1.3 단계에서 모든 것이 제대로 작동하는지 확인하기 위해 다음 줄을 확인하세요:

업그레이드 계산 중… 완료
다음 패키지가 제거됩니다:
[…]
다음 새 패키지가 설치됩니다:
[…]
다음 패키지가 보류 중입니다:
grub grub-common
다음 패키지가 업그레이드됩니다:
[…]
계속하시겠습니까 [Y/n]? Y

dash를 사용할지 여부는 상관없습니다. 업그레이드 프로세스에 영향을 미치지 않습니다:

기본 시스템 셸로 dash를 사용하시겠습니까 (/bin/sh)?
<예>

PAM 라이브러리 업그레이드를 위해 재시작할 서비스:
[…]
<확인>

의존성 기반 부팅 시퀀스로 마이그레이션:

레거시 부팅 시퀀스를 의존성 기반 시퀀스로 마이그레이션하시겠습니까?
<예>

장치 이름 대신 UUID 사용:

시스템 구성에서 디스크 장치 ID를 업데이트하시겠습니까?
<예>

디스크 장치 ID에 대한 구성 변경 사항을 적용하시겠습니까?
<예>

1.5 /etc/fstab 편집

vi /etc/fstab

/etc/fstab에서 /dev/pts 및 /dev/shm의 주석을 제거하세요. 그렇지 않으면 시스템이 부팅되지 않습니다:

[...]
# none             /dev/pts      devpts   gid=5,mode=620 0 0
# none             /dev/shm      tmpfs    defaults       0 0
[...]  

1.6 grub 구성

마지막으로 grub을 장치 이름 대신 UUID를 사용하도록 구성해야 합니다.

cat /etc/fstab

루트 파티션의 UUID를 찾아 복사하세요. 중요: 이 예제의 UUID가 아니라 당신의 fstab에서 UUID를 복사하세요:

[...]
# /dev/sda1        /             ext3     defaults       1 1
UUID=your-uuid-here        /             ext3     defaults       1 1
[...]  

현재 menu.lst를 백업하세요:

mv /boot/grub/menu.lst /boot/grub/menu.lst.backup

menu.lst를 재구성하세요:

update-grub

/boot/grub/menu.lst를 편집하세요:

vi /boot/grub/menu.lst

모든 root=/dev/…의 발생을 UUID=…로 바꾸세요. 이전에 당신의 /etc/fstab에서 복사한 UUID 문자열을 사용하세요:

[...]
## ## 기본 옵션 종료 ##
title        Debian GNU/Linux, kernel 2.6.32-5-xen-amd64
root        (hd0)
kernel        /boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro 
initrd        /boot/initrd.img-2.6.32-5-xen-amd64
title        Debian GNU/Linux, kernel 2.6.32-5-xen-amd64 (single-user mode)
root        (hd0)
kernel        /boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro single
initrd        /boot/initrd.img-2.6.32-5-xen-amd64
[...]  

UUID=라는 단어와 숫자를 포함하는지 다시 확인하세요. UUID 자체만 포함하지 마세요!

1.7 정리 (선택 사항)

더 이상 필요하지 않은 자동으로 설치된 패키지를 제거할 수 있습니다. 더 이상 필요하지 않다고 확신하는 경우:

apt-get autoremove

2 새 시스템으로 재부팅

위의 모든 단계를 주의 깊게 따랐고 오류 메시지가 없었다면 이제 새 시스템으로 재부팅할 시간입니다. 다시 한 번: 시스템이 부팅될 것이라는 보장을 하지 않지만, 행운을 빕니다! ;-) 모든 것이 실패하면 VPS의 직렬 콘솔 에뮬레이션에 접근하여 단계를 되돌리거나 백업 또는 스냅샷을 복원해야 합니다!

reboot

Debian 6.0 Squeeze를 즐기세요! 댓글과 비판은 환영합니다!

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.