refindbooting: Script para establecer rEFInd como gestor de arranque por defecto | Algo de Linux

lunes, 21 de mayo de 2018

refindbooting: Script para establecer rEFInd como gestor de arranque por defecto

Como ya he comentado en otras ocasiones, tanto en equipos SIATIC como INFOLAB, mantengo un sistema de arranque dual implementado mediante rEFInd

En un post anterior, os mostré un script para establecer un arranque temporal de Windows para el próximo inicio. En este post, os voy a enseñar otro que utilizo para establecer rEFInd como gestor de arranque por defecto haciendo uso de efibootmgr:
#!/bin/bash
#
# refindbooting - Establece un arranque temporal de Windows para el próximo inicio
# 2018 Esteban M. Navas Martín .
#

# Disco que contiene EFI
disk=/dev/sda

# Creamos una entrada específica para rEFInd, si no está creada
efibootmgr | grep "rEFInd Boot Manager" 2>&1 > /dev/null || efibootmgr -c -d $disk -p $(gdisk -l $disk | grep "EFI system partition" | awk '{print $1}') -L "rEFInd Boot Manager" -l "\EFI\refind\refind_x64.efi"

# Establecemos un arranque temporal de rEFInd
efibootmgr -n $(efibootmgr | grep "rEFInd Boot Manager" | sed -ne 's/[^0-9A-F]*\(\([0-9A-F]\)\{4\}\).*/\1/p')

# Obtenemos el orden de arranque actual
bootorder=$(efibootmgr | sed -n 's|^BootOrder: \(.*\)|\1|p')

# Restauramos el bootorder
efibootmgr -o $bootorder
Básicamente, lo que hace es:
  1. Crear una entrada específica para iniciar rEFInd, si no se encontraba creada aún. Asumimos que ya se encuentra instalado.
  2. Establecemos un arranque temporal de rEFInd.
  3. Como la opción establecida para el Next Boot será rEFInd, guardamos el bootorder.
  4. Establecemos el boot order actual en el que se ha colocado rEFInd como primera opción de arranque.
De este modo, cuando ejecutemos el script refindbooting desde Ubuntu, se realizarán los cambios para establecer rEFInd como primera opción de arranque.

Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: