OpenWrt sysupgrade에서 Keep settings를 선택해도 될까?
LuCI의 Keep settings and retain the current configuration은 sysupgrade 백업에 담긴 설정 파일을 새 firmware에 복원하는 선택입니다. /etc/config 같은 설정은 보존될 수 있지만, 수동 설치한 package binary는 새 image에 포함되지 않으면 다시 설치해야 합니다. 모든 custom file이나 이전 firmware 전체를 보존하는 기능은 아닙니다.
더 중요한 경계는 설정 호환성입니다. target architecture 전환, partition layout 변경, switch 또는 network 모델 변경처럼 release note가 clean configuration을 요구하는 경우 이전 설정을 복원하면 새 firmware의 기본값을 덮을 수 있습니다. 경고를 확인하지 않고 backup이 있다는 이유만으로 Keep settings를 켜면 부팅 후 network 접근을 잃을 수 있습니다.
flash 전에 고정할 장치와 image 정보
| 항목 | 남길 값 | 판단에 쓰는 방법 |
|---|---|---|
| board identity | model, board_name, target | 다른 device image 선택을 막습니다. |
| 현재 release | version, revision, architecture | upgrade 경로와 release note를 고정합니다. |
| image | 파일명, checksum, validation | 전송 손상과 잘못된 형식을 배제합니다. |
| 보존 목록 | sysupgrade -l 결과 | backup에 들어갈 파일을 사전에 검토합니다. |
| package 목록 | 사용자 설치 package | upgrade 뒤 재설치 계획을 만듭니다. |
ubus call system board
cat /etc/openwrt_release
sysupgrade -l > /tmp/sysupgrade-files.txt
if command -v apk >/dev/null; then apk info > /tmp/packages-before-upgrade.txt; else opkg list-installed > /tmp/packages-before-upgrade.txt; fi
이 파일들은 router 안에만 두지 말고 관리 PC로 복사합니다. upgrade 실패로 overlay에 접근하지 못하면 같은 device의 /tmp backup은 복구 자료가 되지 못합니다.
backup을 만들고 내용까지 확인한다
sysupgrade -b /tmp/backup-before-upgrade.tar.gz
tar -tzf /tmp/backup-before-upgrade.tar.gz | sort > /tmp/backup-contents.txt
sha256sum /tmp/backup-before-upgrade.tar.gz
ls -lh /tmp/backup-before-upgrade.tar.gz /tmp/backup-contents.txt
backup archive가 생성됐다는 메시지만 믿지 말고 목록에 필요한 custom file이 있는지 확인합니다. /etc/sysupgrade.conf나 package의 conffile 등록 범위 밖에 있는 script, certificate, key는 별도 보존이 필요할 수 있습니다. 비밀 key가 포함된 backup은 암호화된 저장소로 옮깁니다.
image와 upgrade 경로를 검증한다
대부분의 이미 설치된 장치에는 이름이 -sysupgrade.bin으로 끝나는 image를 사용하며 factory image와 혼동하면 안 됩니다. 실제 파일을 download한 뒤 checksum을 공식 download directory와 비교하고, device에서 image test를 수행합니다.
sha256sum /tmp/openwrt-device-sysupgrade.bin
sysupgrade -T /tmp/openwrt-device-sysupgrade.bin
sysupgrade -T 통과는 설정 호환성을 모두 증명하지 않습니다. device-specific release note, target migration 안내, sysupgrade warning을 별도로 읽습니다. test가 실패하면 force option으로 건너뛰지 않고 image와 board 선택을 다시 확인합니다.
Keep settings 여부를 결정하는 분기
- 같은 안정 release 계열의 일반 upgrade이고 별도 migration 경고가 없음: 보존 목록과 backup을 검토한 뒤 Keep settings를 사용할 수 있습니다.
- architecture, target, partition 또는 switch 구성이 바뀜: release 문서가 요구하는 clean install 또는 별도 migration 절차를 따릅니다. 이전 network 설정을 자동 복원하지 않습니다.
- 오래된 major release에서 여러 세대를 건너뜀: 중간 release 요구 사항과 package format 변화를 확인합니다. 한 번의 flash로 모든 config가 호환된다고 가정하지 않습니다.
- custom package가 많음: backup은 package binary를 보존하지 않습니다. 새 release feed에 package가 존재하고 kernel ABI와 맞는지 확인한 뒤 재설치 목록을 준비합니다.
- remote router이고 local recovery가 불가능함: 물리 접근, serial 또는 failsafe 복구 계획 없이 위험한 migration을 진행하지 않습니다.
upgrade 뒤 검증 순서
재부팅 뒤에는 firmware version, LAN 접근, WAN, DNS, firewall, 핵심 service 순서로 확인합니다. package를 한꺼번에 재설치하기 전에 base network가 정상인지 검증합니다. 이전 config를 복원했는데 interface 이름이 바뀌었다면 새 default와 비교하고 필요한 항목만 수동 이관합니다.
backup restore가 필요하면 새 firmware와 config format 호환성을 다시 확인합니다. archive 전체를 무조건 덮기보다 필수 파일을 분리해 복구하는 편이 안전한 migration도 있습니다.
롤백 자료의 한계
configuration backup은 이전 firmware image 자체가 아닙니다. rollback을 계획한다면 장치에 맞는 이전 sysupgrade image, checksum, package 목록, 복구 접속 방법을 함께 보관합니다. partition layout이 바뀐 device는 이전 image로 단순 downgrade하면 더 위험할 수 있으므로 device 문서를 우선합니다.
upgrade 성공 기록에는 사용 image checksum, Keep settings 여부, restore한 파일, 재설치 package와 검증 결과를 남깁니다. 다음 upgrade에서 같은 불확실성을 반복하지 않는 것이 backup 파일 하나보다 더 큰 운영 가치입니다.
같이 확인할 글
공식 문서 및 확인 기준
- OpenWrt release notes – release별 지원 upgrade 범위, device migration과 known issue 확인
- OpenWrt sysupgrade script – backup, image test와 CLI option의 실제 처리 기준
- OpenWrt sysupgrade.conf – 사용자가 보존 목록을 확장하는 공식 설정 파일
- OpenWrt common upgrade logic – backup archive와 platform upgrade 단계의 실제 구현
이 글에 남아 있던 이전 검증 기록
검증 수준: 공식 문서 대조
sysupgrade의 backup, image와 package 범위를 OpenWrt 공식 문서로 확인했습니다. 특정 router의 migration은 재현하지 않았으므로 device release note를 대체하지 않습니다.