In questa guida vedremo come nascondere facilmente il bootloader GRUB in Arch Linux, e accederne cliccando il tasto shift all’avvio.

Arch Linux - bootloader GRUB
Gran parte degli utenti Arch Linux utilizzano come bootloader GRUB2 vista la stabilità e l’ottimo supporto per i più diffusi file system (volendo possiamo anche utilizzare anche altre bootloader in Arch Linux come ad esempio GAG, Syslinux, LILO e molti altri ancora). Se abbiamo installato solo Arch Linux nel nostro personal computer possiamo anche nascondere il bootloader Grub, funzionalità che ci consentirà di velocizzare l’avvio del sistema operativo consentendoci comunque di poter accederne semplicemente cliccando il tasto Shift.
Questa funzionalità ad esempio è inclusa di default in Ubuntu e derivate, il bootloader sarà visibile in caso di dual boot ad esempio con Windows o altro sistema operativo.

Per nascondere il bootloader GRUB in Arch Linux dovremo per prima cosa editare /etc/default/grub, facciamo quindi un backup della configurazione di default digitando:

sudo cp /etc/default/grub /etc/default/grub.old

ed editiamo il tutto digitando:

sudo nano /etc/default/grub 

e aggiungiamo:

GRUB_FORCE_HIDDEN_MENU="true"

come da immagine sotto e salviamo il tutto con Ctrl più x e poi s

Arch Linux - editor GRUB

A questo punto dovremo creare /etc/grub.d/31_hold_shift che consentirà di visualizzare GRUB con cliccando il tasto Shift all’avvio.

Basta digitare:

sudo nano /etc/grub.d/31_hold_shift

e inseriamo quando segue:

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

prefix="/usr"
exec_prefix="${prefix}"
datarootdir="${prefix}/share"

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

source "${datarootdir}/grub/grub-mkconfig_lib"

found_other_os=

make_timeout () {

  if [ "x${GRUB_FORCE_HIDDEN_MENU}" = "xtrue" ] ; then 
    if [ "x${1}" != "x" ] ; then
      if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
    verbose=
      else
    verbose=" --verbose"
      fi

      if [ "x${1}" = "x0" ] ; then
    cat <<EOF
if [ "x${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF
      else
    cat << EOF
if [ "x${timeout}" != "x-1" ]; then
  if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
    set timeout=0
  fi
fi
EOF
      fi
    fi
  fi
}

adjust_timeout () {
  if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF
if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
EOF
    make_timeout "${GRUB_HIDDEN_TIMEOUT_BUTTON}" "${GRUB_TIMEOUT_BUTTON}"
    echo else
    make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
    echo fi
  else
    make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
  fi
}

  adjust_timeout

    cat <<EOF
if [ "x${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF

e salviamo il tutto con Ctrl più x e poi s

Non ci resta che aggiornare il bootloader GRUB digitando da terminale:

sudo chmod a+x /etc/grub.d/31_hold_shift
sudo grub-mkconfig -o /boot/grub/grub.cfg

e riavviamo.
Se tutto corretto avremo il bootloader GRUB nascosto.

Per ripristinare il tutto come da default basta digitare:

sudo rm /etc/grub.d/31_hold_shift
sudo cp /etc/default/grub.old /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg

e riavviamo.

Per maggiori informazioni consiglio di consultare la pagina dedicata a GRUB dal Wiki di Arch Linux.

Ringrazio il nostro lettore lupin77 per la segnalazione.

  • Utile

    Io però sto ancora aspettando che inseriscano l’opzione per disattivare il “Welcome” senza costringermi tutte le volte a editare i sorgenti e ricompilare.

    • Scemo di Guerra

      perché vuoi togliere il “Welcome”? che fastidio ti da? :-þ

      • Nessun fastidio

        Fatti qualche ricerca e scoprirai che il web è pieno di persone che chiedono aiuto, perché non ne possono più delle scritte che non c’entrano niente col sistema . . . a partire da quelli che hanno creato grub-shusher per debian:
        github . com/ccontavalli/grub-shusher
        rabexc . org/posts/grub-shush

        • www

          Sono le stesse persone che magari per vent’anni hanno usato windows? non mi spiego mica ‘sta cosa. 🙂

          • E

            No

          • Tz

            Se fossero le stesse persone, la scritta Welcome era a pieno schermo. Ma non serve, perché è già orribile così. Se era un messaggio di log (come quello che sfilano durante il caricamento dopo il grub) sarebbe stra-accettato, ma così assolutamente no.
            E poi se lo dici, significa che windows lo usi ancora molto. Molti lo hanno sepolto.

  • linuxmintuser

    Ma in Ubuntu e derivate 14.04 NON si nasconde anche con questi comandi se ci sono 2 SO in dualboot!!! (esempio WIN 7 e Linux Mint 17)… ???!!!

    • lupin77

      prova Grub Customizer

      sudo apt-add-repository ppa:danielrichter2007/grub-customizer
      sudo apt-get install grub-customizer

    • Una Periferica Chiamata NULL

      Puoi provare così in /etc/default/grub
      regola GRUB_HIDDEN_TIMEOUT , GRUB_DEFAULT a 0 e GRUB_HIDDEN_TIMEOUT_QUIET a “true” se vuoi un lancio istantaneo del bootloader.
      Poi aggiungi queste linee

      GRUB_FORCE_HIDDEN_MENU=”true”
      export GRUB_FORCE_HIDDEN_MENU

      alla fine in /etc/grub.d/30_os_prober,
      all inizio del file cambia quick_boot=”1″ in “0”.
      non mettere opzioni aggiuntive nel file,perché il programma
      le sovrascrive.

      dai un update-grub e il menu dovrebbe sparire anche in dualboot. L’ ho testata e sembra funzionare

  • Per arch linux esiste in aur grub-holdshift che predispone il tutto, una volta installato va dato comunque il grub-mkconfig come comando.

  • papagio

    Domanda sciocca: ma non si ottiene lo stesso risultato se si installa startupmanager e si imposta il tempo di attesa uguale a 0?

    • EnricoD

      secondo me No 🙂

  • manjy

    provato su manjaro non parte più il sistema……………aiutoooooooooooooooooooooo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

No more articles