I use Lubuntu 20.04, which boots from an SSD.
Today I allowed the system to do upgrades, and subsequently got an error message saying that update-initramfs failed. I googled the error message and found this link which suggested the problem could be resolved by freeing some space on /boot and reinstalling a package. I think I made a mistake trying to do both fixes in one procedure.
I did:
sudo apt remove initramfs-tools
sudo apt-get auto-remove
sudo apt-get clean
sudo apt install initramfs-tools
sudo apt-get update
Everything appeared to be fixed until I rebooted the machine. The machine could not reboot automatically, but I entered the boot menu and picked an older kernel. That worked. Inspecting the broken and working boot commands, I believe that I am no longer booting off the SSD (I could also be wrong).
The broken boot option (which used to work) is:
menuentry 'Ubuntu, with Linux 5.4.0-86-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-86-generic ...'
linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro quiet splash $vt_handoff
}
... and the working option is:
menuentry 'Ubuntu, with Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-84-generic ...'
linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /initrd.img-5.4.0-84-generic
}
Is there any way I can repair the damage and get Lubuntu back to booting from the SSD ? I now think that the autoremove operation may have destroyed some vital information on the SSD.
The broken boot option produces this output before crashing:
If I use the working boot option, I now get the following response from df (/boot appears to be on the SSD, so looks like my idea that this option was booting via the hard drive is probably wrong).
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 2.1M 3.2G 1% /run
/dev/nvme0n1p3 468G 121G 324G 28% /
tmpfs 16G 92M 16G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
tmpfs 16G 11M 16G 1% /tmp
/dev/loop1 128K 128K 0 100% /snap/bare/5
/dev/loop3 62M 62M 0 100% /snap/core20/1081
/dev/loop2 56M 56M 0 100% /snap/core18/2128
/dev/loop4 165M 165M 0 100% /snap/gnome-3-28-1804/161
/dev/loop5 243M 243M 0 100% /snap/gnome-3-38-2004/76
/dev/loop0 56M 56M 0 100% /snap/core18/2074
/dev/loop6 66M 66M 0 100% /snap/gtk-common-themes/1515
/dev/loop7 66M 66M 0 100% /snap/gtk-common-themes/1519
/dev/loop8 699M 699M 0 100% /snap/libreoffice/227
/dev/nvme0n1p2 510M 318M 155M 68% /boot
/dev/nvme0n1p1 532M 5.3M 527M 1% /boot/efi
/dev/loop9 163M 163M 0 100% /snap/gnome-3-28-1804/145
/dev/loop10 33M 33M 0 100% /snap/snapd/13170
/dev/loop11 33M 33M 0 100% /snap/snapd/12883
/dev/loop12 701M 701M 0 100% /snap/libreoffice/229
/dev/loop13 242M 242M 0 100% /snap/gnome-3-38-2004/70
tmpfs 3.2G 8.0K 3.2G 1% /run/user/1000
/dev/sdb1 1.9T 1008G 856G 55% /media/paul/Seagate Backup Plus Drive
My complete grub.cfg is:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
BEGIN /etc/grub.d/00_header
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
set next_entry="${prev_entry}"
set prev_entry=
save_env prev_entry
if [ "${next_entry}" ]; then
set initrdfail=2
fi
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function initrdfail {
if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
if [ -z "${initrdfail}" ]; then
set initrdfail=1
if [ -n "${boot_once}" ]; then
set prev_entry="${default}"
save_env prev_entry
fi
fi
save_env initrdfail
fi; fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root f81f27eb-c1f2-467c-a62b-fdd60b4f0592
else
search --no-floppy --fs-uuid --set=root f81f27eb-c1f2-467c-a62b-fdd60b4f0592
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_GB
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=0
Fallback hidden-timeout code in case the timeout_style feature is
unavailable.
elif sleep --interruptible 0 ; then
set timeout=0
fi
fi
END /etc/grub.d/00_header
BEGIN /etc/grub.d/05_debian_theme
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
END /etc/grub.d/05_debian_theme
BEGIN /etc/grub.d/10_linux
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro quiet splash $vt_handoff
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
menuentry 'Ubuntu, with Linux 5.4.0-86-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-86-generic ...'
linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro quiet splash $vt_handoff
}
menuentry 'Ubuntu, with Linux 5.4.0-86-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-86-generic-recovery-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-86-generic ...'
linux /vmlinuz-5.4.0-86-generic root=/dev/nvme0n1p3 ro recovery nomodeset dis_ucode_ldr
}
menuentry 'Ubuntu, with Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-84-generic ...'
linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /initrd.img-5.4.0-84-generic
}
menuentry 'Ubuntu, with Linux 5.4.0-84-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery-f81f27eb-c1f2-467c-a62b-fdd60b4f0592' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
else
search --no-floppy --fs-uuid --set=root 504e9392-5142-456a-852d-7838c4a522bc
fi
echo 'Loading Linux 5.4.0-84-generic ...'
linux /vmlinuz-5.4.0-84-generic root=UUID=f81f27eb-c1f2-467c-a62b-fdd60b4f0592 ro recovery nomodeset dis_ucode_ldr
echo 'Loading initial ramdisk ...'
initrd /initrd.img-5.4.0-84-generic
}
}
END /etc/grub.d/10_linux
BEGIN /etc/grub.d/10_linux_zfs
END /etc/grub.d/10_linux_zfs
BEGIN /etc/grub.d/20_linux_xen
END /etc/grub.d/20_linux_xen
BEGIN /etc/grub.d/20_memtest86+
END /etc/grub.d/20_memtest86+
BEGIN /etc/grub.d/30_os-prober
END /etc/grub.d/30_os-prober
BEGIN /etc/grub.d/30_uefi-firmware
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
END /etc/grub.d/30_uefi-firmware
BEGIN /etc/grub.d/40_custom
This file provides an easy way to add custom menu entries. Simply type the
menu entries you want to add after this comment. Be careful not to change
the 'exec tail' line above.
END /etc/grub.d/40_custom
BEGIN /etc/grub.d/41_custom
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
END /etc/grub.d/41_custom
boot-repair
from a live session? – Nmath Sep 23 '21 at 19:00