In questa guida vedremo come nascondere facilmente il bootloader GRUB in Arch Linux, e accederne cliccando il tasto shift all’avvio.
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.
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
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.