Hi,
I don’t know exactly circonstancies, but on a server, I first can’t boot, grub2 wasn’t found. I suspect the server was shutdown during an update, but I am not sure.
Based on my assomption, I use an USB key and boot to system rescue. On a chroot env I did grub2-install /dev/sda
and a grub2-mkconfig -o /boot/grub2/grub.cfg
. After grub2 menu was back and I try to boot to
When I start my computer, grub boot menu was displayed. I select the first menu entry and soon after the system start to boot, I got those messages
[16.605951] (sd-remount)[893]: Failed to remount '/' read-only: Device or resource busy
[16.610410] systemd-shutdown[1]: Failed to finalize file systems, ignoring.
I reboot to rescue system and check few things in chroot env
lsblk --fs
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashfs 4.0
sda
├─sda1
├─sda2 btrfs 82065a47-61a4-49a8-a0f0-11de7fe8d30c 608.1M 29% /boot
├─sda3 btrfs f404e663-b67e-412d-9a1f-f23f179ad03b 4.4G 77% /
└─sda4 btrfs f71fa6db-ca13-4283-8549-5d34ccf4d071 1.3T 1% /data/classe106
sdb
├─sdb1 btrfs f404e663-b67e-412d-9a1f-f23f179ad03b
└─sdb2 btrfs f71fa6db-ca13-4283-8549-5d34ccf4d071
sdc
└─sdc1 btrfs f71fa6db-ca13-4283-8549-5d34ccf4d071
sdd
└─sdd1 linux_raid_member 1.2 BackupRaid5 31766f15-e5f6-1ed5-7877-d192bf9ee844
└─md127 btrfs d79cd7d0-30b3-4533-9604-e89f0401219d 922.7G 1% /backup
sde
└─sde1 linux_raid_member 1.2 BackupRaid5 31766f15-e5f6-1ed5-7877-d192bf9ee844
└─md127 btrfs d79cd7d0-30b3-4533-9604-e89f0401219d 922.7G 1% /backup
sdf
└─sdf1 linux_raid_member 1.2 BackupRaid5 31766f15-e5f6-1ed5-7877-d192bf9ee844
└─md127 btrfs d79cd7d0-30b3-4533-9604-e89f0401219d 922.7G 1% /backup
sdg
├─sdg1 exfat 1.0 Ventoy 4664-2C6C
│ └─ventoy
└─sdg2 vfat FAT16 VTOYEFI 7CDB-00D9 4.6M 85% /mnt/ventoy
zram0 [SWAP]
/boot/grub2/grub.conf
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
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 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
}
terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
# if countdown has ended, choose to boot rollback deployment,
# i.e. default=1 on OSTree-based systems.
if [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
set default=1
set boot_counter=-1
# otherwise decrement boot_counter
else
decrement boot_counter
fi
save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###
### BEGIN /etc/grub.d/10_linux ###
insmod part_gpt
insmod btrfs
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 --hint='hd0,gpt2' 82065a47-61a4-49a8-a0f0-11de7fe8d30c
else
search --no-floppy --fs-uuid --set=root 82065a47-61a4-49a8-a0f0-11de7fe8d30c
fi
insmod part_gpt
insmod btrfs
set boot='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=boot --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 --hint='hd0,gpt2' 82065a47-61a4-49a8-a0f0-11de7fe8d30c
else
search --no-floppy --fs-uuid --set=boot 82065a47-61a4-49a8-a0f0-11de7fe8d30c
fi
# This section was generated by a script. Do not modify the generated file - all changes
# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
#
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
# populates the boot menu. Please refer to the Boot Loader Specification documentation
# for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.
# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
if [ -z "${kernelopts}" ]; then
set kernelopts="root=UUID=f404e663-b67e-412d-9a1f-f23f179ad03b ro rhgb quiet "
fi
insmod blscfg
blscfg
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
set menu_hide_ok=1
else
set menu_hide_ok=0
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more than once
elif [ "${boot_indeterminate}" = "1" ]; then
set boot_indeterminate=2
fi
# Reset boot_success for current boot
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/10_reset_boot_success ###
### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
### END /etc/grub.d/12_menu_auto_hide ###
### BEGIN /etc/grub.d/14_menu_show_once ###
if [ x$feature_timeout_style = xy ]; then
if [ "${menu_show_once_timeout}" ]; then
set timeout_style=menu
set timeout="${menu_show_once_timeout}"
unset menu_show_once_timeout
save_env menu_show_once_timeout
fi
fi
### END /etc/grub.d/14_menu_show_once ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### 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 ###
/etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Feb 14 15:19:36 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=82065a47-61a4-49a8-a0f0-11de7fe8d30c /boot btrfs defaults 0 0
UUID=f404e663-b67e-412d-9a1f-f23f179ad03b / btrfs defaults 0 0
UUID=f71fa6db-ca13-4283-8549-5d34ccf4d071 /data btrfs defaults,compress=zstd 0 0
UUID=d79cd7d0-30b3-4533-9604-e89f0401219d /backup btrfs defaults,compress=zstd 0 0
# Montager des sous-volumes
UUID=f71fa6db-ca13-4283-8549-5d34ccf4d071 /data/classe104 btrfs subvol=/partage/classe104 0 0
UUID=f71fa6db-ca13-4283-8549-5d34ccf4d071 /data/classe105 btrfs subvol=/partage/classe105 0 0
UUID=f71fa6db-ca13-4283-8549-5d34ccf4d071 /data/classe106 btrfs subvol=/partage/classe106 0 0
I had a try during grub to edit entry and change ro
by rw
but I got the same behavior. I also did a manual update in chroot and get a new kernel. So I try to boot, I have the same behavior. I tried old entries too, same behavior. Right now I am out of ideas, thank for your help.