github.com/Lephar/snapd@v0.0.0-20210825215435-c7fba9cef4d2/bootloader/assets/data/grub.cfg (about)

     1  # Snapd-Boot-Config-Edition: 1
     2  
     3  set default=0
     4  set timeout=3
     5  set timeout_style=hidden
     6  
     7  # load only kernel_status and kernel command line variables set by snapd from
     8  # the bootenv
     9  load_env --file /EFI/ubuntu/grubenv kernel_status snapd_extra_cmdline_args snapd_full_cmdline_args
    10  
    11  set snapd_static_cmdline_args='console=ttyS0 console=tty1 panic=-1'
    12  set cmdline_args="$snapd_static_cmdline_args $snapd_extra_cmdline_args"
    13  if [ -n "$snapd_full_cmdline_args" ]; then
    14      set cmdline_args="$snapd_full_cmdline_args"
    15  fi
    16  
    17  set kernel=kernel.efi
    18  
    19  if [ "$kernel_status" = "try" ]; then
    20      # a new kernel got installed
    21      set kernel_status="trying"
    22      save_env kernel_status
    23  
    24      # use try-kernel.efi
    25      set kernel=try-kernel.efi
    26  elif [ "$kernel_status" = "trying" ]; then
    27      # nothing cleared the "trying snap" so the boot failed
    28      # we clear the mode and boot normally
    29      set kernel_status=""
    30      save_env kernel_status
    31  elif [ -n "$kernel_status" ]; then
    32      # ERROR invalid kernel_status state, reset to empty
    33      echo "invalid kernel_status!!!"
    34      echo "resetting to empty"
    35      set kernel_status=""
    36      save_env kernel_status
    37  fi
    38  
    39  if [ -e $prefix/$kernel ]; then
    40  menuentry "Run Ubuntu Core 20" {
    41      # use $prefix because the symlink manipulation at runtime for kernel snap
    42      # upgrades, etc. should only need the /boot/grub/ directory, not the
    43      # /EFI/ubuntu/ directory
    44      chainloader $prefix/$kernel snapd_recovery_mode=run $cmdline_args
    45  }
    46  else
    47      # nothing to boot :-/
    48      echo "missing kernel at $prefix/$kernel!"
    49  fi