Cómo ocultar la partición de recuperación de Grub2

1

He instalado una distribución de Linux en la PC de un amigo. No sabe cómo usar Linux o incluso Windows muy bien, y me gustaría que fuera lo más fácil posible. Cuando instalé GRUB, detectó su partición de recuperación que HP instaló para él, y es el primer Windows de la lista.

Después de buscar en Google y mirar el manual de grub y los archivos de configuración, todavía no puedo encontrar la manera de ocultar una partición de GRUB. Lo miré 30_osprober, pero no vi ninguna forma clara de excluir un sistema operativo.

¿Alguien puede señalarme en la dirección correcta para excluir un SO / partición del menú de GRUB?

Nostradamnit
fuente

Respuestas:

1

// EDITAR // Cambiado debido a ediciones (juro que esto cambió mientras estaba escribiendo)

Una solución sucia es editar el grub.cfg, pero esto tendría que suceder cada vez que ocurriera una actualización del kernel.

En grub v2: (NOTA: NO SE RECOMIENDA)

vim /boot/grub/grub.cfg

La forma correcta de lograr esto es editar /etc/grub.d/30_os-prober(como mencionó) y decirle que ignore ciertas particiones, puede encontrar una buena guía aquí

La solución sucia # 2 podría ser ejecutar un script que comente esa línea del grub.cfg para su amigo.

Dan M.
fuente
5

Seguí las pautas de esta publicación (en la sección 6)

GRUB 2 buscará y creará un menú para la partición de recuperación de Windows (Vista). Al menos en Vista, el nombre del menú es el mismo que la partición operativa normal de Vista, la única diferencia es la designación de la partición. Para eliminar la entrada de partición de recuperación del menú:

  • Haga una copia de seguridad del /etc/grub.d/30_os-proberarchivo existente , elimine el bit ejecutable de la copia de seguridad para que no se ejecute durante las actualizaciones y abra el original para editarlo (la sección comienza alrededor de la línea 134):

    sudo cp /etc/grub.d/30_os-prober /etc/grub.d/30_os-prober.original  && sudo chmod -x
    

    /etc/grub.d/30_os-prober.original

    gksu gedit +83 /etc/grub.d/30_os-prober &
    
  • Determine el título exacto y la partición de recuperación de Windows. Estos se pueden ubicar en el /boot/grub/grub.cfg file. Agregue la entrada a continuación. En el ejemplo, el menú apareció como "Windows Vista (cargador) (en / dev / sda1)". Asegúrese de seleccionar la partición correcta ya que el título puede ser el mismo para los títulos normales y de recuperación. El contenido para $LONGNAMEy ${DEVICE} debe ser el contenido exacto entre las comillas en el menú para la partición de recuperación:

    for OS in ${OSPROBED} ; do
    DEVICE="`echo ${OS} | cut -d ':' -f 1`"
    LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
    LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
    BOOT="`echo ${OS} | cut -d ':' -f 4`"
    
    if [ -z "${LONGNAME}" ] ; then
     LONGNAME="${LABEL}"
    fi
    
    # Added to remove Windows Recovery
    if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
    continue
    fi
    # End Added
    

Guarde el archivo, luego ejecute:

sudo update-grub

En lugar de Vista, tuve que pensar en Windows 7 (el método es el mismo) y todo funcionó.

Fabrizio C
fuente
2

En el archivo / etc / default / grub puede agregar

GRUB_OS_PROBER_SKIP_LIST con una lista de UUID separados por espacios @ path_to_device

por ejemplo GRUB_OS_PROBER_SKIP_LIST = 12345 @ / dev / sda1

para que OS_PROBER omita esos sistemas de archivos.

Puede obtener una lista de los UUID de lsblk -fs

Aquí hay más sobre GRUB_OS_PROBER_SKIP_LIST .

usuario948930
fuente
Esta solución funcionó, con una cosa a tener en cuenta; Al agregar múltiples particiones para ignorar, deben estar entre comillas. es decir, esto no funcionó GRUB_OS_PROBER_SKIP_LIST=27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2 pero funcionó según lo previstoGRUB_OS_PROBER_SKIP_LIST="27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2"
Sujimichi