Upgrade Ubuntu: 20.04 > 22.04 > 24.04

Ubuntu 20.04 를 Ubuntu 22.04 로 업그레이드할 때는 수월했지만, Ubuntu 22.04 를 Ubuntu 24.04 로 업그레이드할 때는 어려움을 겪었다. 업그레이드한 버전에서 자기한테 중요한 프로그램이 지원되는지 미리 확인한 후에 업그레이드를 진행하면 좋을 듯하다.

백업

일단 우분투가 사용하는 공간 전체를 외장 디스크에 백업하였다:

sudo rsync –exclude={/media/*,/mnt/tmpfs/*,/proc/*,/run/*,/sys/*,/tmp/*} -a –delete / /media/path/to/your/destination/

20.04 > 22.04

업그레이드하기

내가 우분투를 처음 접한 게 20.04 였다. 그때는 USB 외장 장치를 이용했었다. USB 메모리, 또는 외장 디스크였던 것 같다. 배포판 업그레이드 하는 건 이번이 처음이다. 이런 게 있는지도 이번에 알았다.

이 과정은 큰 어려움 없이 쉽게 성공하였다. 그래도 처음에 여러가지 질문에 답변을 해야 한다. 지나고 보니까 잠자기 두어 시간 전에 시작했으면 더 좋았겠다.

주로 아래의 참고 글 1을 따라 했다. 우선 보류된 패키지가 있는지 확인하였다:

sudo apt-mark showhold

보류된 패키지가 없어서 다음으로 넘어갔다. 현재의 20.04 시스템을 최신으로 업데이트하고 불필요한 패키지를 없앴다:

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt --purge autoremove

이제 다음 명령을 내려서 본격적으로 22.04 로의 업그레이드를 시작하였다:

sudo do-release-upgrade

그런데 바로 멈췄다:

Checking for a new Ubuntu release
In /etc/update-manager/release-upgrades Prompt
is set to never so upgrading is not possible.
Prompt=never

그래서 /etc/update-manager/release-upgrades 파일을 열어보았다:

sudo vi /etc/update-manager/release-upgrades

파일 안에 설명이 잘 나와 있다. 결국 파일의 내용을 다음과 같이 고쳤다:

Prompt=lts

다시 업그레이드를 시작했다:

sudo do-release-upgrade

처음에는 중간중간 멈추면서 답변을 요구한다. 보통 기존 설정 파일을 유지할 거냐, 거기에 덮어 쓸 거냐? 등을 물어본다. 가령, /etc/systemd/logind.conf 파일을 내가 고쳤다고 하면서 덮어쓸지 물어본다. 일단 덮어썼다(나중에 보니까 노트북 뚜껑 닫을 때 suspend 되어 버린다. 그래서 다시 HandleLidSwitch=ignore 로 바꿔줘야 했다).

특정 프로그램을 닫으라고도 한다. 마지막으로 smb.conf 파일을 덮어쓸지 물어본다.

A new version (/run/samba/upgrades/smb.conf) of configuration file /etc/samba/smb.conf is available, but the version   │ 
│ installed currently has been locally modified.
...

한참 동안 더이상 묻지 않아서 잠자리에 들었다. 자고 일어나니까 오류없이 잘 진행되었고, 다음 메시지가 나와 있었다.

323 packages are going to be removed. 

Removing the packages can take several hours.

Continue [yN] Details [d]

y 를 입력하고 엔터키를 쳤다. 또 좀 지나니까 다음의 메시지가 나왔다:

To finish the upgrade, a restart is required. 
If you select 'y' the system will be restarted.

Continue [yN]

y 를 눌러서 리부팅하였다. 리부팅한 후 다음 명령을 내려서 잘 됐나 확인했다:

lsb_release -a

22.04 잠깐 살펴보기

이 버전을 딱 하루 사용했다. 카카오톡 PC 버전은 여전히 잘 작동했다. 그런데 XE 가 작동하지 않았다. 찾아보니까 PHP 8 에서 XE 가 작동하지 않는다고 한다. 여기서 손을 쓸까 하다가 24.04 에서 고치기로 했다(결국 24.04 에서 WordPress 로 이전하고 말았다).

22.04 > 24.04

이 과정에서는 어려움을 겪었다. 중간에 포기할 생각이었는데 엉겁결에 성공했다. 빨리 업그레이드하는 게 꼭 좋은 건 아닌 것 같다. 다음 업그레이드를 언제할지는 모르겠지만 출시되고 1년은 넘어서 시도하려고 한다. 이번에는 어차피 했으니까 그 과정을 적어본다.

원래 현 시스템을 업데이트하고 업그레이드를 해야 한다. 그런데 22.04 로 올라온지 하루밖에 되지 않아서 그 과정에 모든 패키지가 최신으로 설치되었다. 그래서 바로 다음 명령을 내렸다:

sudo do-release-upgrade
...
= Welcome to Ubuntu 24.04 LTS 'Noble Numbat' =
...
Continue [yN]

y 를 눌러서 시작하였다. 얼마 안 가서 벌써 오류가 생겼다:

E:Failed to fetch 
http://security.ubuntu.com/ubuntu/dists/noble-security/universe/binary-i386/by-hash/SHA256/fb34894eb7637cf2859fcefadb88283f9568a92409092b5a137c490fe1f57091
Hash Sum mismatch
Hashes of expected file:
- Filesize:355196 [weak]

이것저것 시도해도 계속 여기서 막혔다.

결국 Software & Updates 를 띄워서 미러 서버를 바꿨다:

https://mirror.kakao.com/ubuntu

그러고 나서 /etc/apt/sources.list 파일을 열어 보니까 저 정보가 들어간 게 보였다. 그 이후 잘 진행되었다(원래 미러 서버는 https://kr.archive.ubuntu.com/ubuntu/ 로 설정돼 있었다. 그곳의 어떤 파일이 오염된 것 같다).

한참 잘 진행되다가 중간쯤에 멈췄다.

Errors were encountered while processing:
/tmp/apt-dpkg-install-gwiYdA/0-libc6-amd64_2.39-0ubuntu8.3_i386.deb
Exception during pm.DoInstall(): E:Sub-process /usr/bin/dpkg returned an error code (1)

Could not install the upgrades

Upgrade incomplete

The upgrade has partially completed but there were errors during the
upgrade process.

진행률을 보니까 거의 중간에서 멈춘 셈이었다. 그 순간 마음이 혼란해졌다. 계속 전진해야 하나? 아니면 후퇴해야 하나? 일단 후퇴하기로 하고 시스템을 복구하기로 했다.

나중에 안 사실이지만, 지나고 보니까 이 단계에서 현 상태가 어떤 버전인지 다음과 같이 확인하면 좋았겠다:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

당시에 나는 그런 생각을 하지 못했다. 이 명령을 실행해 보지도 않고 아직 어련히 22.04 라고 생각했다. 그래서 이거라도 복구해야겠다고 생각하고 다음을 실행했다:

sudo apt update
sudo apt --fix-broken install
sudo apt upgrade -y

그후 ChatGPT 한테 어떻게 하면 22.04 가 완벽하게 복구될지 알려달라고 했다. 다음 일련의 명령을 권했다:

sudo apt autoremove
sudo apt autoclean
sudo dpkg --configure -a
sudo apt install -f
sudo apt dist-upgrade

위의 명령을 차례대로 실행하였다. 마지막 명령이 실행되자 아래의 메시지가 나왔다. 무려 1500개가 넘는 패키지가 업그레이드되거나 새로 설치된다고 한다. 세상에나!

979 upgraded, 571 newly installed, 258 to remove and 6 not upgraded.
84 standard LTS security updates
Need to get 16.8 MB/1,861 MB of archives.
After this operation, 434 MB disk space will be freed.
Do you want to continue? [Y/n]

엔터를 치자 한 70분 동안 설치가 진행되었다. 그후에 다음 명령을 내렸다. 위의 설치 과정이 진행된지 얼마되지 않아서 바탕화면 배경 그림이 바뀌는 걸 이미 봐서 혹시나 했다. 역시나 내 우분투가 24.04 가 되어 있었다. 22.04 를 복구하려고 했는데 실상은 24.04 가 복구된 셈이다.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

아무튼 모로 가도 서울만 가면 된다고 엉겹결에 Ubuntu 24.04 로 업그레이드 하는 데 성공했다.

카카오톡 PC 버전

22.04 에서 잘 실행되던 카카오톡이 24.04 에서는 먹통이었다. 윈도용 카카오톡을 써야 하는데 WineHQ 에 문제가 있었다. 삽질을 좀 하다가 되는 방법을 찾았다: https://hhtt.kr/103432

참고 글

  1. https://jjeongil.tistory.com/2105

Leave a Comment