No networking after upgrade Leap 15.3 to Leap 16.0

First of all, I read a lot and spent a whole day trying different stuff, but I reached the point where I need “professional help”.
I tried upgrading my 15.3 installation to 16.0 with sudo opensuse-migration-tool because I was impatient and dumb. The upgrade did work, but after rebooting, I had no networking anymore.

The state is as follows:

  • Interfaces (Ethernet, WiFi) do show up and kernel drivers exist and get loaded.
  • NetworkManager service does not exist.
  • I think the old network manager kinda still exists but doesn’t work anymore.
  • This is a pure CLI server box with a screen and keyboard attached, no GUI.

I already tried booting an installer USB to reinstall the whole OS, but somehow can’t select the USB in the boot menu. If I can avoid that in order to keep my data, that would be highly preferable to me.

Thanks in advance and just let me know what information I should provide! Do keep in mind that I have to copy command outputs manually by typing them, unless it’s something that’s worth piping to a USB drive and copying it over as a file.

Did you really try to directly upgrade from leap 15.3 to 16?

This is not really supported. It might work, but most likely issues will arise as you have seen.

  • Do not skip a release when upgrading! Example: do not upgrade from 15.1 to 15.4. Instead, from 15.1 upgrade to 15.2, then to 15.3, and only then from 15.3 upgrade to 15.4.

From the old upgrade article

Correct, that’s unfortunately exactly what I’ve tried. I didn’t finish reading and hoped it would magically work… The more you know.
Now is it somehow possible to recover from such a state?

Likely a 15.3 server used wicked and NetworkManager was not installed, so it was not upgraded as well.
You may try to install the missing pieces, but without a network connection it is not trivial. Maybe installing just NetworkManager and a couple of dependencies you may be able to setup a minimal connection to the point that a “zypper dup” might fix whatever remains to be fixed.
I would plan something like the following.

  • Add a local repo, for instance
    zypper addrepo --refresh dir:/directory/name Local_Repo
    where /directory/name is a directory where you can easily store .rpm files to be installed, possibly you have to create that directory first if you have none suitable.
  • Download the NetworkManager rpm here: NetworkManager-1.52.0-160000.3.1.x86_64.rpm and copy it to the Local_Repo.
  • Try zypper in NetworkManager and if some dependencies are missing, download and transfer to the Local_Repo those as well.
  • Once NetworkManager is installed maybe a reboot is needed to activate it and its systemd services.
  • At that point you should be able to set up a network connection with nmcli; see man nmcli for details.
  • Once a connection is set up you should be able to fix anything else and/or configure the network as you like.

[DISCLAIMER] I’m not doing such things on a daily basis, so take the notes above as a sketch only; I hope that your nickname does not truly reflect your admin abilities. Otherwise, a full reinstall might be the way to go.

1 Like

Yes correct, I’m pretty sure that wicked was the network manager previously.

I already put the 16.0 offline installer ISO onto a USB drive and added it as a local repo to zypper, with the hope that it would include as many packages as possible / needed. Does this approach make sense?

Unfortunately, I repeatedly ran into issues where some dependency was missing, but I’ll try again going straight for NetworkManager.

I’m also not sure, when getting rpm’s from OpenSUSE (e.g. here: https://software.opensuse.org/package/NetworkManager), whether I should get the Tumbleweed “official release” version or whether I should get something from the “experimental packages” or the “community packages” tab under the Leap 16.0 section.

Thanks a lot already, I’ll update as soon as I get physical access to the machine again and have tried the suggestions!

Regarding full reinstall: that would wipe all data or is there a way where it only “reinstalls the system” and keeps user folders intact?

The most reliable method is to have your “backup” device up to date and ready. (I use a Samsung Portable SSD to store backups)

Me, personally, I don’t backup the whole system (quicker to reinstall), but I only backup the /home/* sub-dirs once a week - where all the important data is.

Then, if catastrophic system corruption happens, simply install the system from scratch and then restore personal data from the backup.

Yes, if done properly.

No, don’t go for TW packages and absolutely not Community or Experimental. If you cannot find something in the install media look for the Leap 16.0 repo (Follow the link I posted for NetworkManager).

That depends on whether you have a separate /home partition or not, and you may want to backup and restore also the /etc directory and possibly something in /var (e.g. mail server archives?) or others depending on what you have installed.
What @myswtest advised is a must anyway also in my view.

I was able to install NetworkManager this way, thanks! Right now it’s saying Error: NetworkManager is not running. though.
I’ll try some debugging, otherwise I’ll just save my data and reinstall the whole system.

As superuser:

systemctl status NetworkManager

if it says inactive, dead or the like, try:

systemctl enable NetworkManager
systemctl start NetworkManager
1 Like

It looks like everything’s fine again now! Any way to verify?

This is my zypper output:

sudo zypper update
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Nothing to do.

And for distro-upgrade:

sudo zypper dup
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...
Nothing to do.

I disabled an old 15.4 repo that was still lingering and the local stuff that I had set up for the system recovery:

zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.

# | Alias                       | Name                      | Enabled | GPG Check | Refresh
--+-----------------------------+---------------------------+---------+-----------+--------
1 | localrepo                   | localrepo                 | No      | ----      | ----
2 | offline-iso                 | offline-iso               | No      | ----      | ----
3 | openSUSE-Leap-15.4-1        | openSUSE-Leap-15.4-1      | No      | ----      | ----
4 | openSUSE:repo-non-oss       | repo-non-oss (16.0)       | Yes     | (r ) Yes  | Yes
5 | openSUSE:repo-non-oss-debug | repo-non-oss-debug (16.0) | Yes     | (r ) Yes  | Yes
6 | openSUSE:repo-openh264      | repo-openh264 (16.0)      | Yes     | (r ) Yes  | Yes
7 | openSUSE:repo-oss           | repo-oss (16.0)           | Yes     | (r ) Yes  | Yes
8 | openSUSE:repo-oss-debug     | repo-oss-debug (16.0)     | Yes     | (r ) Yes  | Yes
9 | openSUSE:repo-oss-source    | repo-oss-source (16.0)    | Yes     | (r ) Yes  | Yes

When you show a repo list, always use zypper lr -d. Your output misses all important information: the URL.

1 Like

… and I would disable the debug and source repos (unless you do debug or devel work on that system of course!)

Then possibly check for orphaned packages in case you still have old debris around.

1 Like

Thanks! Does this look alright?

zypper lr -d
# | Alias                       | Name                      | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                                      | Service
--+-----------------------------+---------------------------+---------+-----------+---------+------+----------+--------+--------------------------------------------------------------------------+---------
1 | openSUSE:repo-non-oss       | repo-non-oss (16.0)       | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://cdn.opensuse.org/distribution/leap/16.0/repo/non-oss/x86_64       | openSUSE
2 | openSUSE:repo-non-oss-debug | repo-non-oss-debug (16.0) | No      | ----      | ----    | -    |   99     | rpm-md | http://cdn.opensuse.org/debug/distribution/leap/16.0/repo/non-oss/x86_64 | openSUSE
3 | openSUSE:repo-openh264      | repo-openh264 (16.0)      | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | https://codecs.opensuse.org/openh264/openSUSE_Leap_16                    | openSUSE
4 | openSUSE:repo-oss           | repo-oss (16.0)           | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://cdn.opensuse.org/distribution/leap/16.0/repo/oss/x86_64           | openSUSE
5 | openSUSE:repo-oss-debug     | repo-oss-debug (16.0)     | No      | ----      | ----    | -    |   99     | rpm-md | http://cdn.opensuse.org/debug/distribution/leap/16.0/repo/oss/x86_64     | openSUSE
6 | openSUSE:repo-oss-source    | repo-oss-source (16.0)    | No      | ----      | ----    | -    |   99     | rpm-md | http://cdn.opensuse.org/source/distribution/leap/16.0/repo/oss           | openSUSE
1 Like

Yes, that looks like a standard Leap 16.0 install.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.