이번에 기록하는 건 fnOS 가상 머신에 ImmortalWrt를 설치한 과정이지, 실제 공유기에 펌웨어를 올린 게 아닙니다. 둘은 이미지 선택, 부팅 방식, 네트워크 카드 설정이 모두 달라서 가상 머신 절차를 그대로 집 공유기에 적용하면 안 됩니다.
펌웨어는 어떻게 고를까
ImmortalWrt 다운로드 사이트나 펌웨어 선택기에서 장치와 대상 플랫폼을 확인하세요. 이 글의 상황은 x86-64 가상 머신이고, UEFI로 부팅한다면 그에 맞는 combined-efi 디스크 이미지를 골라야 합니다. EXT4와 SquashFS도 실제 필요에 따라 선택하세요.
실제 공유기의 factory, sysupgrade 이미지는 각자 지원하는 장치 범위가 따로 있습니다. 파일 이름에 OpenWrt가 들어 있다고 해서 아무 장치에나 올릴 수 있는 건 아닙니다.

설명 이미지: x86 가상 머신 이미지는 실제 공유기 펌웨어와 다릅니다
가상 머신 만들기
맞는 가상 머신 아키텍처와 펌웨어 부팅 방식을 준비하고, 압축을 푼 디스크 이미지를 가져오거나 시스템 디스크로 사용하세요. 우선 운영 중인 LAN에는 연결하지 말고, 네트워크 카드를 격리된 테스트 네트워크에 물리세요. 기본 DHCP, IPv6 RA, 중복 게이트웨이가 기존 네트워크에 영향을 줄 수 있습니다.

fnOS 화면: ImmortalWrt 가상 머신 만들기
fnOS 가상 머신 생성 화면입니다. 조작 진입점을 보여줄 뿐, 새 버전 화면의 모든 옵션이 똑같다는 뜻은 아닙니다. CPU, 메모리, 디스크, 네트워크 카드는 현재 호스트 자원에 맞게 설정하세요.
먼저 콘솔로 부팅해서 시스템이 실제로 인식한 네트워크 카드와 네트워크 설정을 확인하세요:
ip link
uci show network
uci show dhcp
/etc/config/network를 통째로 덮어쓰지 말고, 시스템에 eth0부터 eth3까지 네 개의 네트워크 카드가 반드시 있다고 가정하지도 마세요. 이런 방식은 관리 네트워크를 끊어먹기 십상입니다.
LAN 주소를 바꿀 때는 필요한 부분만
먼저 현재 설정에 network.lan이 실제로 있는지 확인한 다음, UCI로 주소를 수정하세요. 아래 주소는 예시일 뿐이니 실제 네트워크에서 비어 있는 주소로 바꾸고, 게이트웨이 계획도 일관되게 유지해야 합니다:
cp /etc/config/network /etc/config/network.before-lan-change
uci set network.lan.ipaddr='192.168.10.2'
uci set network.lan.netmask='255.255.255.0'
uci commit network
/etc/init.d/network restart
네트워크를 재시작하면 기존 관리 연결이 끊기므로 콘솔은 계속 열어 두세요. 관리용 컴퓨터도 새 대역에 접근할 수 있어야 합니다. 페이지를 열어보겠다고 WAN, 브리지 멤버, VLAN을 덤으로 바꾸지 마세요.
이미 메인 라우터가 있는 네트워크에 서브 라우터로 붙일 거라면, 먼저 격리 환경에서 LAN의 DHCP와 IPv6 광고 정책을 확인하세요. 두 장치가 계획 없이 같은 LAN에 동시에 주소를 뿌리게 해서는 안 됩니다. 메인 라우터로 쓸 거라면 WAN, LAN의 가상 네트워크 카드와 호스트 브리지를 먼저 구분한 뒤 케이블을 연결해 테스트하세요.
iStore 설치
iStore 공식 프로젝트에 현재 아키텍처와 의존성 범위가 설명되어 있습니다. 먼저 시스템이 apk를 쓰는지 opkg를 쓰는지 확인하고, 서로 다른 버전의 소프트웨어 소스를 섞지 마세요.
공식 설치 절차에 따라 해당 패키지 인덱스를 업데이트한 다음, 설치 프로그램을 내려받아 내용을 확인하고 실행하세요:
cd /tmp
wget https://github.com/linkease/openwrt-app-actions/raw/main/applications/luci-app-systools/root/usr/share/systools/istore-reinstall.run
less istore-reinstall.run
chmod 755 istore-reinstall.run
./istore-reinstall.run
시스템에 less가 없으면 쓸 수 있는 텍스트 뷰어로 확인하세요. 설치 중 오류가 나면 아키텍처, 소프트웨어 소스, 의존성을 먼저 살피고, 다른 펌웨어에서 온 패키지를 그대로 덮어 설치하지 마세요.
예전에 PassWall, 로드 밸런싱 플러그인을 설치할 때 "되는 것 같지 않은" 상황을 겪은 적이 있고, 그때는 수동으로 덮어 설치를 시도했습니다. 그건 당시 그 펌웨어에서 있었던 일이고, 지금 모든 버전에 같은 문제가 있다는 뜻도 아니며, 덮어 설치를 범용 해결책으로 삼아서도 안 됩니다.
참고: ImmortalWrt, 펌웨어 다운로드, iStore. 새 버전 절차는 문서를 대조해 확인했으며, 여러분의 fnOS에서 가상 머신을 다시 만들지는 않았습니다.