Optional migration from Turris OS 3.x for advanced users

I’ve completed the upgrade following the migration docs at https://docs.turris.cz/geek/tos3_migration/ - I upgraded from 3.11.17 to 5.0.2, which and encountered a few issues:

  1. tos3to4: the postrm process for tos3to4 errored like so:

    INFO:Running postrm of tos3to4
    /usr/lib/opkg/info//tos3to4.postrm: line 1: luci-app-squid: not found
    /usr/lib/opkg/info//tos3to4.postrm: line 20: syntax error: unexpected "}"
    INFO:Running postrm of cznic-repo-keys-test
    INFO:Cleaning up control files
    ERROR:Failed operations:
    tos3to4/postrm: /usr/lib/opkg/info//tos3to4.postrm: line 1: luci-app-squid: not found
    /usr/lib/opkg/info//tos3to4.postrm: line 20: syntax error: unexpected "}"
    

    Thankfully, this postrm is only sending the upgrade success notification and nothing else happens - phew. I’ve submitted an issue report and patch at https://gitlab.labs.nic.cz/turris/turris-os-packages/issues/617

  2. LXC containers failed to load after migration. The issue is because they had static IP addresses assigned and the LXC migration script failed to take this into account:

    turris# lxc-ls -l DEBUG
    lxc-ls: parse.c: lxc_file_for_each_line_mmap: 142 Failed to parse config file "/srv/lxc/con/config" at line "lxc.net.0.ipv4.ipv4 = 192.168.1.2"
    Failed to load config for con
    

    The issue was that lines like lxc.net.0.ipv4.ipv4 should actually be lxc.net.0.ipv4.address (and same for ipv6 lines). I’ve created an issue and patch at https://gitlab.labs.nic.cz/turris/turris-os-packages/issues/618

  3. Wireguard interface was broken was an error DEVICE_CLAIM_FAILED displayed in the LuCI UI. I fixed the issue by removing the following line from /etc/config/network:

        option ifname 'wg0'
    

    and restarting the interface. New wg interfaces don’t add this line but my other interfaces seem to have it just fine. I don’t know what the issue here was.

  4. DDNS: luci-app-ddns, ddns-scripts and luci-i18n-ddns-en were removed during the upgrade; I don’t know why this was so I had to thus install luci-app-ddns again after the upgrade, which installed the other packages back as dependencies. Running opkg install luci-app-ddns required me to approve the install from Foris and then after I did the result was an error notification:

    ##### Error notifications #####
    Updater failed: Failed operations:
    
    ddns-scripts/preinst:  [31;1mDIE [0m:Failed to exec /usr/lib/opkg/info//ddns-scripts.preinst: Exec format error
    
    ##### Update notifications #####
     • Installed version 2.7.8-13.0 of package ddns-scripts
     • Installed version 2.4.9-7.2 of package luci-i18n-ddns-en
    

    ddns-scripts seemingly installed fine though; the preinst script only stops/stopped the ddns service in specific circumstances; no issue since it wasn’t installed then. At this point, I had to restore my /etc/config/ddns file from my old installation, re-set the ddns service to autostart again and reconfigure ddns to use a different network interface as the numbering (eg eth0 to eth1). However, after all that, it’s working.

  5. Docs It’d be helpful if the docs explained I’d end up on HBK after starting from stable; and how to switch to back to HBS. I’ve read all the comments in this thread and the 5.0 thread so I knew to expect this, but if the docs mentioned it that’d be better. I’ve created an issue and patch at https://gitlab.labs.nic.cz/turris/user-docs/issues/67

The last issue I haven’t sorted yet is an old one of mine which has cropped up again, being able to configure /etc/resolv.conf to use a custom DNS. I asked this question a long while ago Set persistent "nameserver" entries in /etc/resolv.conf and still had that config set up in 3.x. The config is still there now in 5.x but it’s not working; /etc/resolv.conf is defaulting to using localhost as the resolver. Thoughts on a fix for that?

3 Likes