this post was submitted on 12 Dec 2023
46 points (89.7% liked)

Linux

48135 readers
414 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I'm on debian 11, this error doesn't show up every time, but once it appear I need more that one reboot and it will fix automatically without doing nothing, don't know the reason why (just read that can be kernel dependent). What I want to avoid is that maybe it's just a warning of somethink that will cause a pc break in future (maybe hardware is starting working bad?) Do you have any sugggestion? Thanks

top 25 comments
sorted by: hot top controversial new old
[–] [email protected] 35 points 11 months ago* (last edited 11 months ago) (2 children)

In the grub menu, choose advanced options and then choose an older kernel to boot into.
If that boots fine, remove and reinstall the newest installed kernel and run sudo update-grub.
That should be the easiest way to fix the most possible causes of this error.

Edit: Now would be a very good time to back up all your data to an external drive. This might be a sign of your hard drive failing.

[–] [email protected] 7 points 11 months ago

I second the advice to switch to a different/previous/known good kernel. That has been the cause a most boot problems for me. I just had it happen on a VM a couple of weeks ago, so I switched to the old kernel, then removed the new kernel. I’ll wait for another kernel before upgrading.

It’s probably worth scanning your disk just in case as well.

[–] [email protected] -1 points 11 months ago (1 children)

I wouldn't be quick to assume that this means a failing disk. There would probably be more sporadic issues if this were the case.

[–] [email protected] 17 points 11 months ago (1 children)

I wouldn't assume a failing disk either.
But every time there's an error you can't pin on something you just did, a full backup should be the first thing you do as a matter of principle.

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago) (1 children)

ok, I'll backup all data first. How can I remove old kernel without enter in grub menu (since usually boot works well) and select the oldone as default? Thanks

[–] [email protected] 8 points 11 months ago* (last edited 11 months ago) (1 children)

By default, your grub menu should show up every time you boot.
If it doesn't, boot your PC and do:
sudo nano /etc/default/grub
You need these lines:
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=menu

Every line starting with:
GRUB_HIDDEN_TIMEOUT
should be commented out like so:
#GRUB_HIDDEN_TIMEOUT

Then run sudo update-grub and reboot.

What this does:

  • sets a countdown of 10 seconds before grub boots the kernel
  • tells grub to show the boot menu during that countdown
  • doesn't use a hidden countdown that waits for a button press to show the menu

In the grub menu, select advanced options and there you should be able to select an older kernel to boot.

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago) (1 children)

ok, thank you very much for detailed explanation, yes I remember that I had removed timeout from grub in the past, I will follow your procedure and select previous kernel. Another question, once I'v selected the older kernel did you think that removing (it's fine using apt?) and resinstall newest kernel will fix the issue or I'v to keep the older kernel? In case I'v to keep the older kernel how can I avoid that it will be overwritten once I update the os?

[–] [email protected] 5 points 11 months ago* (last edited 11 months ago) (1 children)

I think the newer kernel should work after reinstallation.
If it doesn't and you want to stay with the older one:

apt list --installed linux-image*

There should be a package with a specific version number in its name. For example, the standard kernel for Debian 11 is:
linux-image-5.10.0-26-amd64

Uninstall the linux-image-... package you don't want to keep.
Also uninstall linux-image-amd64 which is the meta-package that pulls in the newest kernel version. Without it, you won't get new kernel versions in upgrades.

[–] [email protected] 5 points 11 months ago

ok, will try Many Thanks!!

[–] [email protected] 9 points 11 months ago (1 children)

Disk sometimes being too slow to appear? Try rootwait/rootdelay kernel cmdline options.

[–] [email protected] 3 points 11 months ago

seems not....but I'm not used to intense task

[–] [email protected] 5 points 11 months ago (1 children)

Did you change your fstab, or have a full partition or something?

[–] [email protected] 3 points 11 months ago (1 children)

I not on that machine but as far as I remember it's a full ntfs partition, don't think I ever changed fstab

[–] [email protected] 8 points 11 months ago (1 children)

Your root filesystem is NTFS? That's likely the problem - I'm surprised it boots at all. Switching to a Linux filesystem is the likely solution. You could also try a newer kernel, too - 5.10 is quite old, current LTS is 6.1. Good luck.

[–] [email protected] 2 points 11 months ago

sorry was ext4...ops

[–] [email protected] 2 points 11 months ago (2 children)

Depending on if you wrote the kernel cmdline yourself I imagine this might happen using /dev/sdN style device paths? BIOS might change things up every now and then for fun, so using partition UUIDs would be a better way if so.

[–] [email protected] 2 points 11 months ago (2 children)

so can be bios dependent?..it's possible to change from /dev/sdn to UUIDs...how? Thanks

[–] [email protected] 0 points 11 months ago (1 children)

Basically just look for things like root=/dev/sda2 in the kernel command line. You can get it at runtime by running "cat /proc/cmdline" having /dev/sda etc in your fstab might also be a problem

[–] [email protected] 0 points 11 months ago

You can change those to /dev/disk/by-uuid/XYZ ("ls -an" that directory to see the symlinks to your current drives)

[–] [email protected] 0 points 11 months ago

Yes if you have multiple drives some buggy BIOS may not enumerate them in the same order every time. Most modern distros do UUIDs by default but when manually setting up a bootloader it is easy to succumb to such temptations to use the much simpler device paths as the UUIDs are a pain. If you're not sure how to change the kernel parameters most likely you're good on that front actually, its in your grub config as others have mentioned. I'll leave this comment around in case some poor soul who did it manually comes across the thread.

[–] [email protected] 2 points 11 months ago (1 children)

I hope by partition UUID you mean root=PARTUUID=, not root=UUID= because kernel can understand only PARTUUID.

[–] [email protected] 1 points 11 months ago

Yes, forgot the exact details apologies

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

Kernel says it can't mount root device. Maybe it is not specified or kernel just can't find it. You need to edit root= parameter for kernel. For:

  1. GRUB: press 'e' to edit menu entry and then press 'F10' to boot
  2. LILO: just append desired root=
  3. EFIStub: change it in config and recompile it

If you use GRUB you can use its console and search for disk and partition where root fs is located.

[–] [email protected] 0 points 11 months ago (1 children)

You sure your hdd/ssd is fine? It complains about not being able to mount the root fs.

[–] [email protected] 1 points 11 months ago

how can I be sure? it just happen sometimes