Questa guida è stata verificata solo con versioni obsolete di Ubuntu, potrebbe non essere più valida. Vuoi contribuire ad aggiornarla? Clicca qui!

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In questa guida vengono descritti diversi metodi per modificare il menù di GRUB. Qualsiasi modifica deve essere fatta sugli script di configurazione e non sul file in sola lettura /boot/grub/grub.cfg come avveniva in precedenza con GRUB-legacy e il file /boot/grub/menu.lst. Per ulteriori dettagli sui file di configurazione di GRUB si rimanda alla apposita guida.

Modificare il nome della release

Modificare il grub distributor

Modificare il nome nelle voci

Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/10_linux e cercare le seguenti righe:

while [ "x$list" != "x" ] ; do
  linux=`version_find_latest $list`
  echo "Found linux image: $linux" >&2
  basename=`basename $linux`
  dirname=`dirname $linux`
  rel_dirname=`make_system_path_relative_to_its_root $dirname`
  version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
  alt_version=`echo $version | sed -e "s,\.old$,,g"`
  linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"

aggiungere immediatamente dopo:

codename="`lsb_release -cs`"
version_no_generic="`echo ${version} | cut -d "-" -f 1-2`"

è ora possibile modificare il nome visualizzato per la propria distribuzione modificando le seguenti righe:

linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
      quiet
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
    if [ -x /lib/recovery-mode/recovery-menu ]; then
      linux_entry "${OS}" "${version}" true \
        "recovery nomodeset ${GRUB_CMDLINE_LINUX}"
    else
      linux_entry "${OS}" "${version}" true \
        "single nomodeset ${GRUB_CMDLINE_LINUX}"

aggiungendo o eliminando le variabili come da tabella:

Opzione

Significato

${OS}

Ubuntu, Kubuntu, Xubuntu, Lubuntu

${version}

la versione del kernel, es: 3.0.0-15-generic

${codename}

il nome in codice della release, es: precise

${version_no_generic}

la versione del kernel senza parte terminale

Applicare la modifica digitando in un terminale il seguente comando:

sudo update-grub

Modificare "with Linux"

Aggiungere voci

Il nome dello script posizionato in /etc/grub.d/ determina l'ordine delle voci nel menù. Il numero iniziale ne indica la priorità, modificandolo è possibile modificare l'ordine delle voci.

In questa tabella vengono descritti i principali file presenti in /etc/grub.d/.

File

Significato

00_header

Carica le impostazioni da /etc/default/grub, compresa la presentazione visiva, il conto alla rovescia e le opzioni del terminale

05_debian_theme

Imposta lo sfondo, il colore del testo e i temi

10_linux_zfs

da fare

10_linux

Localizza i kernel basati sull'ID del distributore determinato dal risultato del comando lsb_release -is

20_linux_xen

da fare

20_memtest86+

Se il file /boot/memtest86+.bin esiste, viene inclusa una voce per memtest86+

30_os-prober

Va alla ricerca di altri sistemi operativi e li include nel menù

30_uefi-firmware| da fare

40_custom

Rappresenta un modello per aggiungere voci personalizzate al menù

|41_custom

da fare

Voci automatiche

Per aggiungere una voce automatica è sufficiente rendere eseguibile il file di configurazione corrispettivo alla voce desiderata situato in /etc/grub.d/:

Voci definite dall'utente

Limitare e rimuovere voci

Disabilitare script

È possibile disabilitare uno script di configurazione per fare in modo che tutte le voci legate ad esso non compaiano nel menù di GRUB privandolo dei permessi di esecuzione:

Kernel vecchi

La strada più semplice per eliminare voci di kernel vecchi dal menù di Grub in maniera automatica, consiste nel disinstallare i pacchetti dei relativi kernel non più utilizzati. Il file grub.cfg verrà aggiornato automaticamente. È tuttavia possibile impostare un limite ai kernel visualizzati senza rimuoverli dalla propria installazione:

Kernel specifici

Aprire con un editor di testo il file /boot/grub/grub.cfg e annotare la versione del kernel desiderata, ad esempio 3.0.X-Y-generic.

Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/10_linux e cercare le seguenti righe:

  linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
      quiet
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
    if [ -x /lib/recovery-mode/recovery-menu ]; then
      linux_entry "${OS}" "${version}" true \
        "recovery nomodeset ${GRUB_CMDLINE_LINUX}"
    else
      linux_entry "${OS}" "${version}" true \
        "single nomodeset ${GRUB_CMDLINE_LINUX}"
    fi
  fi

Inserire prima

if [ ${version} != "X.Y.Z-generic" ]; then

facendo anttenzione a sostituire «X.Y.Z-generic» con la versione annotata in precedenza e inserire alla fine

fi

ottenendo qualcosa di simile a questo:

if [ ${version} != "X.Y.Z-generic" ]; then
  linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
      quiet
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
    if [ -x /lib/recovery-mode/recovery-menu ]; then
      linux_entry "${OS}" "${version}" true \
        "recovery nomodeset ${GRUB_CMDLINE_LINUX}"
    else
      linux_entry "${OS}" "${version}" true \
        "single nomodeset ${GRUB_CMDLINE_LINUX}"
    fi
  fi
fi

Applicare la modifica digitando in un terminale il seguente comando:

sudo update-grub

Altri sistemi operativi rimossi

Una volta disinstallato un sistema operativo, per eliminare la sua voce nel menù di GRUB, è sufficiente aggiornare il boot loader digitando in un terminale il seguente comando:

sudo update-grub

memtest86+

Per rimuovere memtest86+ è sufficiente togliere i permessi di esecuzione al file /etc/grub.d/20_memtest86+.

Recovery mode

Sottomenu

Eliminando i sottomenu non verranno eliminati i riferimenti ai kernel contenuti bensì verrà ripristinato l'elenco semplice delle voci.

e inserire sotto

GRUB_DISABLE_SUBMENU=y

Kernel 32 o 64 bit di MacOSX

  1. Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/30_os-prober e cercare le seguenti righe:

    osx_entry xnu_kernel 32
    osx_entry xnu_kernel64 64
  2. Cancellare o commentare la prima riga per eliminare la voce inerente al kernel 32bit o la seconda per il kernel 64bit. Esempio con riga commentata:

    ##osx_entry xnu_kernel 32
    osx_entry xnu_kernel64 64
  3. Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

Windows recovery

  1. Aprire con un editor di testo il file /boot/grub/grub.cfg.

  2. Individuare e annotare la riga inerente il boot della partizione di recovery di Windows, ad esempio:

    Windows Vista (loader) (on /dev/sda1)
  3. Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/30_os-prober e cercare le seguenti righe:

    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

    aggiungere alla fine delle stesse le seguenti righe:

    if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sdXY" ] ; then
    continue
    fi
    prestando attenzione a inserire al posto di «Windows Vista (loader)» il nome esatto come annotato in precedenza e al posto di «sdXY» la partizione individuata nello stesso modo.
  4. Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

Altre partizioni GNU/Linux

Partizioni Windows

Nascondere GRUB in PC con più sistemi operativi

Per i PC con solo Ubuntu usare l'opzione standard nel file /etc/default/grub come da guida.


CategoryAmministrazione

stef.contadino/voci_grub (l'ultima modifica è del 12/12/2019 12.40.11, fatta da stef.contadino)