Pop OS update followed by loss of wifi (and USB?)

Hi, I’ve been happily using Pop OS for a while now on a Surface Pro 3. Yesterday I clicked the usual system updates button (in the ‘Pop Shop’ app) and ran 2 or 3 updates–honestly can’t remember what they were. Afterwards wifi disappeared–when I look in Settings>Wifi it says ‘No wifi adapter found’. (Checked in BIOS and it’s enabled.) Did a bit of research and to be honest it seemed complicated enough that I decided to do a fresh install of the OS from a bootable USB, but first I need to get some files off the computer. But when I put a USB thumb drive into the sole USB port on the Surface, the file manager can’t recognise it! I put lsusb into the terminal the USB shows up (Bus 002 Device 002: ID 0781:5591 Sandisk Corp Ultra Flair) so Linux knows its there, I guess, but the file manager doesn’t.
How can I get that USB port functional again?

Ok, so it looks functional, does it show with;

lsblk

if so, then;

sudo mkdir /mnt/my_usb
sudo mount device /mnt/my_usb

where device is what you see in lsblk against your usb key, for example;

sudo mount /dev/sdb2 /mnt/my_usb

and if that all went well, you should see your usb files at /mnt/my_usb

Be careful tho’, you can cause damage with this sort of thing if you get it wrong.

That all said, bit of a radical fix … have you checked;

apt update && apt upgrade

To make sure there are no errors listed?

Hi, thanks for reply. With lsblk I get loop0 through loop7 (mountpoints all snap/[something] and then sda with mountpoints as follows:

  • sda1 /boot/efi
    sda2 /recovery
    sda3 /
    sda4

That is, no mountpoint for sda4…could that be the USB?
When I try apt update && apt upgrade I get some error messages but as I’m not online (wifi gone!!) I think that’s to be expected.

Hi, no that won’t be the usb. The sda component refers to a device, the number refers to a partition on the device. So sda4 is just another partition on your hard drive.

It does sound a little like the upgrade / update failed.

When you boot your box, does it present the “grub” menu right at the start? If not you should be able to interrupt the boot process right at the start by pressing the tab (or esc?) Key. This should show the grub menu, which should offer the option of booting the previous version of the linux kernel. Might be worth a shot?

Other than that, id try booting off a live usb key. Assuming your hardware is ok, you could then mount your hard drive and run apt update.

Hard disk recovery primer

Ok, maybe not for the feint of heart, however machines can suffer catastrophic failures for a number of reasons, usually hard drive errors when they near end of life, but sometimes due to upgrade failures … so this can be a useful procedure to know.

If you boot from a “live” installation installed on either a USB flash key or on a CD, once you reach a shell session you should be able to do;

$lsblk
sda      8:0    0 119.2G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/firmware
└─sda2   8:2    0 118.7G  0 part /

Typically installation media these days will do this, so boot from your installation disk or USB key, then opt for “try” rather than “install”, then just start a terminal session.

When booted from your installation medium, if you “also” have a blank USB key inserted, then you should be able to “see” both your hard disk, and your blank USB key, which should facilitate copying your files from the hard disk to your USB key with the desktop file browser.

Typically you should find sda refers to your first storage device, your USB key in this instance, then sdb your second storage device. (your normal hard drive) You will be able to distinguish which is which based on the size of the listed device, assuming you know at least the size of the USB key you plugged in :slight_smile:

So to mount your hard drive when booted from a live usb key;

sudo su # depending on your live distribution
mkdir /mnt/root
mkdir /mnt/root/dev /mnt/root/sys /mnt/root/proc /mnt/root/run
# Looking at your "lsblk", root looks like your third partition
mount /dev/sdb3 /mnt/root
mount --bind /dev /mnt/root/dev
mount --bind /run /mnt/root/run
mount --bind /proc /mnt/root/proc
mount --bind /sys /mnt/root/sys
chroot /mnt/root

This should now leave your shell session in a position where it thinks it’s in an environment running on the root of your hard drive (rather then your USB). So assuming the version of your Live USB key had functional networking (which is should) then you should now be able to do;

apt update && apt upgrade

And it should run this within the context of your hard disk and show you if there is any sort of problem, i.e. if the previous update failed in some way. If it gives any kind of error then you’ve probably found the issue, and the “apt update” may fix it, or it may prompt you to run something to “complete” the previous failed install.

Otherwise you could try;

apt update --fix-broken

and that should have a crack at fixing it.
Assuming this cleans up the situation then;

exit # will exit "chroot" and return you to the USB key
umount /mnt/root/sys
umount /mnt/root/dev
umount /mnt/root/run
umount /mnt/root/proc
umount /dev/sdb3
# remove the USB key
reboot

I may have a typo as this is all “off the cuff”, but otherwise it should work. As it happens I’m currently developing my own mini distro for my own computer and had to do pretty much exactly the same thing on my own machine a couple of days ago. (after I inadvertently removed the package containing the firmware required to boot the machine). In my instance I had to “apt install” the firmware I’d removed. :slight_smile:

Fascinating, thanks so much. How on earth does somebody learn all this?
I did manage to retrieve the files I wanted by booting from a USB and uploading the files from the hard drive to a ‘cloud storage’ I’ve got (had to copy them from the hard drive to the live OS first because it wouldn’t let me upload directly from the hard drive). Unfortunately the Surface Pro 3 only has 1 USB port and I need that to boot with.

At this point I can just re-install an OS afresh (a slight pain as I then need to re-install R Studio, Anaconda, etc, but not too big a deal). But I thought I’d try the solution you proposed (thanks again). When I did apt update && apt upgrade, it said 31 packages can be upgraded and threw an error message: ‘dpkg was interruped, you must manually run sudo dpkg --configure -a to correct the problem. When I did that it said: 'sudo: unable to allocate pty: no such device’. When I ran the same command without sudo, it did a bunch of stuff (‘Setting up libpippewire…’). Then I ran apt update && apt upgrade again and it did a bunch of stuff but ended with ‘subprocess returned error exit status 1. Errors were enountered while processing: linux-image-6.6.10-76060610-generic. Subprocess /usr/bin/dpkg returned an error code (1).’
I then tried apt update --fix-broken but it came back with ‘Command line option --fix-broken is not understood in combination with the other options’.

It would be kind of cool to fix everything from the terminal…but if it came down to it I’ve recovered the files I need so I could do a fresh install.

Ah sorry, so in this instance you will also need;

mount --bind /dev/pts /mnt/root/dev/pts

With the other mount --bind commands, with a matching umount when you’re done.

It does however confirm that your problem is likely down to your last update not completing for some reason. The fix-missing issue, my typo;

apt upgrate --fix-broken

i.e. upgrade rather then update :frowning:

But to clarify, it’s the;

sudo dpkg --configure -a 

That’s most likely going to fix your problem. Just to be sure, once you’ve done this you could do another;

sudo apt update && apt upgrade

Well generally one doesn’t … :slight_smile:

However, I guess it’s like anything else, if you “live it” for 30+ years eventually some of it sticks … personally I tend to lean on Google a quite a bit … sometimes you don’t need to know it all, you just know where to look … :wink:

Well, I’ve definitely learned something, thanks so much.
Still getting the message ’ Sub-process /usr/bin/dpkg returned an error code (1)’ despite everything, including advice like this and this; the latter article has some approaches if you know the offending package but I don’t think I do. So I may need to give up and just install an OS afresh…had hoped to fix it but perhaps it’s beyond my abilities. Thanks again for your help.

Mmm, if it’s failing with “error code 1” and nothing else, that gets a but tricky. (and unusual, usually it gives some hint as to what it’s unhappy with)

For lack of other options, you could try;

sudo dpkg --configure -a --force -fnoninteractive

So this should try to ignore as many errors as possible, and it shouldn’t try to ask you any questions, I guess there’s always a chance that it’s trying to prompt for some input and failing because of the ‘recovery’ position it’s in.

you could also check;

df -h

And just make sure you have space left on your device … and;

dmesg

Just to make sure you’re not getting lots of hard disk errors in your system logs …

Regarding df -h, plenty of room on hard disk. Lots of info in response to dmesg, but too complicated for me to decipher. Tried sudo dpkg --configure -a --force -fnoninteractive but the it doesn’t recognise the term ‘-fnoninteractive’ and I couldn’t find it on the Linux manual, so I just ran sudo dpkg --configure -a --force but that didn’t help. I understand I could tack on -depends or something but not sure that would be a good approach; looks like I may need to re-install an OS from scratch. But as I say, thanks–I’ve definitely learned a thing or 2…

1 Like