Offline upgrade fails to find system to update

I have a system running Leap 42.1 that I want to upgrade to 42.3. I am trying to do an offline upgrade using the 42.2 installer for the first step before going to 42.3. The problem is that when it gets to ‘Select for Update’, it wasn’t able to find my system. If I check ‘Show All Partitions’ it shows my system, but it labels it ‘Unknown Linux’.

I have seen this before when I didn’t have a partition table and just had btrfs loaded directly on the disk, but in this case I do have the OS loaded into a partitioned disk. Does anyone know what the installer keys off of to find out what openSuSE is present so I can add whatever it is that’s missing?

In the past to get around this I just did an online upgrade, but for that I should have a fully up to date 42.1 system, but with the updates no longer being hosted I can’t do that.

Looking through the y2log I found this, but am not sure if this is where things go wrong or not.


2017-10-05 08:39:54 <1> install(3951) [Ruby] clients/inst_pre_install.rb:292 Possible partitions: $"device":"UUID=16f129ab-ad39-44c3-82d2-d2a2720a5f12", "fs":`btrfs], $"device":"/dev/vda1", "fs":`btrfs], $"device":"/dev/vdb1", "fs":`btrfs]]2017-10-05 08:39:54 &lt;1&gt; install(3951) [Ruby] clients/inst_pre_install.rb:52 Using copy_to_system from control file
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 Cannot convert String from 'any' to 'list'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 ------------- Backtrace begin -------------
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_pre_install.rb:56:in `main'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/clients/inst_pre_install.rb:2:in `&lt;top (required)&gt;'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `eval'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `run_client'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin_wrapper'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:178:in `CallFunction'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_system_analysis.rb:353:in `FilesFromOlderSystems'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/fun_ref.rb:33:in `call'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/fun_ref.rb:33:in `call'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_system_analysis.rb:161:in `block in main'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_system_analysis.rb:147:in `each'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_system_analysis.rb:147:in `main'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/clients/inst_system_analysis.rb:2:in `&lt;top (required)&gt;'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `eval'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `run_client'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin_wrapper'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:178:in `CallFunction'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/modules/ProductControl.rb:1345:in `RunFrom'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/modules/ProductControl.rb:1532:in `Run'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/inst_worker_initial.rb:106:in `main'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/clients/inst_worker_initial.rb:2:in `<top (required)>'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `eval'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `run_client'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:185:in `call_builtin_wrapper'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:178:in `CallFunction'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/share/YaST2/lib/installation/clients/installation.rb:77:in `main'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /mounts/mp_0001/usr/share/YaST2/clients/installation.rb:2:in `&lt;top (required)&gt;'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `eval'
2017-10-05 08:39:54 <2> install(3951) [Ruby] clients/inst_pre_install.rb:56 /usr/lib64/ruby/vendor_ruby/2.1.0/yast/wfm.rb:216:in `run_client'
2017-10-05 08:39:54 &lt;2&gt; install(3951) [Ruby] clients/inst_pre_install.rb:56 ------------- Backtrace end ---------------

Near the end of the log this just reiterates that it doesn’t know what’s in the partition:


{"device"=>"/dev/vda1", "name"=>"vda1",
 "used_by"=>{"type"=>:UB_BTRFS, "device"=>"16f129ab-ad39-44c3-82d2-d2a2720a5f12"}],
 "used_by_type"=>:UB_BTRFS, "used_by_device"=>"16f129ab-ad39-44c3-82d2-d2a2720a5f12",
 "size_k"=>41942016, "detected_fs"=>:btrfs, "nr"=>1, "fsid"=>131, "fstype"=>"Linux native", "region"=>[0, 5221],
 "type"=>:primary, "boot"=>true, "used_fs"=>:btrfs}
 {:valid=>false, :name=>"unknown", :arch=>"unknown", :label=>"", :fs=>:btrfs, :fstype=>"Linux native"}

{"device"=>"/dev/vdb1", "name"=>"vdb1",
 "used_by"=>{"type"=>:UB_BTRFS, "device"=>"16f129ab-ad39-44c3-82d2-d2a2720a5f12"}],
 "used_by_type"=>:UB_BTRFS, "used_by_device"=>"16f129ab-ad39-44c3-82d2-d2a2720a5f12",
 "size_k"=>41942016, "detected_fs"=>:btrfs, "nr"=>1, "fsid"=>131, "fstype"=>"Linux native", "region"=>[0, 5221],
 "type"=>:primary, "boot"=>true, "used_fs"=>:btrfs}
 {:valid=>false, :name=>"unknown", :arch=>"unknown", :label=>"", :fs=>:btrfs, :fstype=>"Linux native"}

Are you using mulit-device btrfs (vda1 and vdb1)?

Yes it is multi-device with vda1 and vdb1.

But I believe I tracked down the problem. This system has been around awhile and so when the btrfs filesystem was created it didn’t use the subvolume @/.snapshots/1/snapshot as the default. The default was “ID 5 (FS_TREE)”, which means when you mount it without any options you would see @ as the top level directory. So the installer when looking for things wasn’t finding them and determined it to be unknown.

I ran

btrfs subvolume set-default 257 /mnt/@

then restarted the installer and now it correctly identified my root volume. I’m hoping all will be smooth sailing from here.