Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/Grub/AggiungereTogliereVoci"
Differenze tra le versioni 1 e 16 (in 15 versioni)
Versione 1 del 20/10/2009 09.34.35
Dimensione: 8532
Autore: LeoIannacone
Commento: Creata
Versione 16 del 30/01/2017 02.14.45
Dimensione: 21124
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 3: Linea 3:
[[BR]]
[[WikiBanner(ArticoloInTraduzione)]]
[[BR]]
[[Indice()]]

= Aggiungere voci al menu =

Il file `grub.cfg` viene aggiornato quando vengono eseguiti i comandi '''update-grub''' o '''update-grub2'''. Per modificare `grub.cfg` si debbono utilizzare gli appositi script presenti nella cartella `/etc/grub.d/`, senza modificare direttamente il file stesso.

##''grub.cfg'' is updated when `update-grub` or `update-grub2` is run. Changes to ''grub.cfg'' should be made to the appropriate script files and not to the ''grub.cfg'' file itself.

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Il primo commento del file ''`grub.cfg`'' è ''«'''DO NOT EDIT THIS FILE'''». ''Il file risulta di fatti sempre in sola lettura e ritorna in questo stato ogni qual volta viene eseguito il comando'' '''update-grub'''. ||

##NOTE: The first comment in ''grub.cfg'' is ''"DO NOT EDIT THIS FILE"''. The file is '''read-only''' and is returned to this status anytime `update-grub` is run.
<<BR>>
<<Indice(depth=2 align=right)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=82907&start=60"; rilasci="12.04 11.10")>>

= 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 [[AmministrazioneSistema/Grub/FileCartelle|guida]].

= Modificare il nome della release =

== Modificare il grub distributor ==

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/default/grub` e modificare la seguente opzione: {{{
GRUB_DISTRIBUTOR=esempio
 }}}
 scrivendo al posto di «esempio» il nome desiderato.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== Modificare il nome nelle voci ==

Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|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:

||<tablestyle="width:60%" : 30% style="background-color:#cccccc;">'''Opzione''' ||<style="background-color:#cccccc;":>'''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 [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== Modificare "with Linux" ==

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/grub.d/10_linux` e cercare le seguenti righe: {{{
  if ${recovery} ; then
    title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
  else
    title="$(gettext_quoted "%s, with Linux %s")"
  fi
 }}}

 cancellare o modificare a piacere "`, with Linux`" ad esempio traducendo in italiano.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

 
= 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/`.

||<tablestyle="width:100%" : 15% style="background-color:#cccccc;">'''File''' ||<style="background-color:#cccccc;":>'''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_hurd||Localizza eventuali kernel Hurd||
||10_linux||Localizza i kernel basati sull'ID del distributore determinato dal risultato del comando '''lsb_release -is'''||
||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ù||
||40_custom||Rappresenta un modello per aggiungere voci personalizzate al menù||
Linea 19: Linea 100:
##== Automatic Entries ==

<-- SONO RIPETUTE INFORMAZIONI GIÀ INSERITE PRIMA

  * When `"update-grub"` is executed, Grub 2 will read ''/etc/default/grub'' and the files in contained in the ''/etc/grub.d'' folder. This combination will set the visual parameters of the grub menu (''/etc/default/grub'') and search for linux kernels, other operating systems, and items designated in user-created scripts in ''/etc/grub.d''.
  The script files in ''/etc/grub.d'' perform the following tasks:
   * ''10_linux'' searches for installed linux kernels.
   * ''30_os-prober'' searches for other operating systems.
   * ''40_custom'' and any other user-created files in the ''/etc/grub.d folder'' add menu items designated in the script files created by users.
  * The name of the file determines the order in the menu. 30_os-prober entries will be placed before 40_custom entries, which will be placed before any higher-numbered entries.
  * Any user-created file must be made executable. This can be done as ''root'' by running
{{{
sudo chmod u+x /etc/grub.d/filename
}}}
 FINE -->

== Aggiungere voci ==
##== User-defined Entries ==
Gli utenti con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] possono creare script all'interno della cartella `/etc/grub.d/` che saranno poi inclusi nel file `grub.cfg` quando il comando '''update-grub''' verrà lanciato.

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''I file appena creati dovrebbero avere il nome nel formato `XX_nome`, dove la dicitura «XX» corrisponde ad un numero. Si ricorda che l'ordine con il quale sono eseguiti i file è alfabetico crescente, i file il cui nome inizia con una cifra hanno priorità su quelli in cui il nome inizia con una lettera.''||

Il file deve essere eseguibile al fine di poterlo lanciare insieme agli altri script. Per rendere eseguibile il file, da riga di comando digitare:
{{{
sudo chmod u+x /etc/grub.d/nome-file
}}}
Sostituire la dicitura «nome-file» con il nome del file appena creato.

##Users with "root" privileges can create scripts in the ''/etc/grub.d/'' folder which will be incorporated into the ''grub.cfg'' file when `update-grub` ##is run.
## * The filename should normally take the format ''XX_name'', with ''XX'' being a number followed by an underscore and name.
## * The order the entry appears on the grub menu is based on numerical ordering of the files in ''/etc/grub.d''. Executable files in the ''/etc/grub.d'' ##folder beginning with an alphabetic character are placed in order ''following'' numerical entries.
## * The file must be made executable by typing in a terminal
##{{{
##sudo chmod +x /etc/grub.d/'''filename'''
##}}}


Segue un semplice esempio di aggiunta voce al menu di '''Grub'''. Questo file crea una voce per eseguire l'installazione di un CD di ripristino di sistema sulla partizione «sdb10» e aggiunge al menu un kernel personalizzato dalla partizione «sda1».

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Il conteggio dei dispositivi parte da 0, ovvero sd'''a''' è indicato come '''hd0''', sd'''b''' è '''hd1''' e così via. Il nome delle partizioni parte invece da 1, la '''prima''' partizione è indicata come sda'''1''', la '''quinta''' partizione è sda'''5''' ''||

## * A sample custom entry. This file creates menu items for running a SystemRescueCD installation on sdb10 and a custom kernel on sda1.
##
##'''NOTE:''' The new partition naming convention. Devices start counting from ''0'' as done previously. sd'''a''' is designated as "hd0", sd'''b''' is ##"hd1", etc. However the first ''partition'' is now designated as ''sda'''1'''''. Counting ''partitions'' does ''not'' start with "0". The '''fifth''' ##partition on ''sda'' is ''sda'''5''''').


{{{

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

 * Aprire un [[AmministrazioneSistema/Terminale| terminale]] e digitare: {{{
sudo chmod u+x /etc/grub.d/XX_script
}}}
 prestando attenzione a sostituire «XX_script» con il nome dello script desiderato.

 * Applicare la modifica digitando in una finestra di il seguente comando: {{{
sudo update-grub
 }}}

== Voci definite dall'utente ==

 * Creare con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] un file in `/etc/grub.d/` in modo che rispetti la nomenclatura standard `XX_script`

 * Incollare il seguente contenuto per le voci '''GNU/Linux''': {{{
Linea 67: Linea 118:
echo "Adding Custom Kernel & SystemRescue" >&2
cat << EOF
menuentry "Ubuntu, linux 2.6.31-11-custom" {
        set root=(hd0,9)
 linux /boot/vmlinuz-2.6.31-11-custom root=UUID=c6829e27-2350-4e84-bdbb-91b83f018f98 ro
 initrd /boot/initrd.img-2.6.28-11-generic
cat << _EOF
menuentry "Nome distribuzione" {
set root=(hdX,Y)
linux /boot/vmlinuz-X.Y root=UUID=xxxxxxxxxxxxxxxxxxxxx
initrd /boot/initrd.img-X.Y
Linea 74: Linea 124:

menuentry "Boot SystemRescue CD from hard drive" {
        set root=(hd1,10)
        linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
        initrd /sysrcd/initram.igz
}
EOF
}}}

Ai fini della modifica del menu, non è necessaria la riga:
{{{
"echo "Adding SystemRescueCD" >&2"
}}}
Essa sarà mostrata durante l'esecuzione del comando '''update-grub2'''. La comparsa della riga nel terminale indica l'avvenuta lettura ed esecuzione del nuovo script.

Se lo script è corretto saranno inserite le nuove voci nel menu di `grub.cfg`. Nessuna modifica in caso contrario.

## * The line ''"echo "Adding SystemRescueCD" >&2"'' is not required. Including it in the file allows this line to be seen in the terminal when `"update-##grub2"` is executed. It provides visual feedback that the entry has been found and entered. The entry, if in the correct format, will be inserted in ##''grub.cfg'' whether or not this line is included in the file.


== Rimuovere voci ==
Le voci del menu dovrebbero essere rimosse modificando o rimuovendo i file presenti nella cartella `/etc/grub.d`. Il file `grub.cfg` è in sola lettura e non dovrebbe essere modificato direttamente.

##Entries should be removed by editing or removing files in the ''/etc/grub.d folder''. The ''/boot/grub/grub.cfg'' file is read-only and should not normally be edited directly.

 * Automatically.
  * Kernels removed by Synaptic will automatically update ''grub.cfg'' and no user action is required.
  * Other operating systems which have been removed from the computer will also be removed from the menu once `"update-grub2"` is run as ''root''.

 * Manually.
  * To prevent a file in ''/etc/grub.d'' from adding items to the menu, remove the ''executable'' bit or remove the applicable file.
  * '''''memtest86+''''': If you don't want to have ''memtest86+'' displayed in your menu, run `sudo chmod -x /etc/grub.d/20_memtest86+`. The file will remain but will not be acted upon by ''update-grub''.
  * '''''Recovery mode:''''' If you don't want ''Recovery mode'' entries for your linux kernels, edit ''/etc/default/grub'' and add this line:
   {{{
_EOF
}}}
 prestando attenzione ad inserire i parametri desiderati come da tabella:

 ||<tablestyle="width:100%" : 30% style="background-color:#cccccc;">'''Opzione''' ||<style="background-color:#cccccc;":>'''Significato''' ||
 ||`Nome distribuzione`|| Il nome desiderato per la voce ||
 ||`hdX,Y`||La partizione desiderata||
 ||`/boot/vmlinuz-X.Y`||Il file vmlinuz specifico del kernel desiderato visionabile in `/boot/`||
 ||`xxxxxxxxxxxxxxxxxxxxx`||Il codice UUID della partizione desiderata ottenibile digitando in un [[AmministrazioneSistema/Terminale| terminale]] `sudo blkid /dev/sdXY`||
 ||`/boot/initrd.img-X.Y`||Il file initrd.img specifico del kernel desiderato visionabile in `/boot/`||

 * Incollare il seguente contenuto per le voci inerenti ad altri sistemi operativi: {{{
#!/bin/sh
cat << _EOF
menuentry "Nome sistema operativo" {
set root=(hdX,Y)
chainloader +1
}
_EOF
 }}}
 prestando attenzione a sostituire «Nome sistema operativo» con il nome desiderato per la voce e «hdX,Y» con la partizione desiderata.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

= Limitare e rimuovere voci =

== Disabilitare script ==

È possibile disabilitare uno [[AmministrazioneSistema/Grub/FileCartelle|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:

 * Digitare in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo chmod -x /etc/grub.d/XX_script
 }}}
 prestando attenzione a sostituire «XX_script» col nome dello script desiderato.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== 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:

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/grub.d/10_linux` e rintracciare 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}"

  initrd=
  for i in "initrd.img-${version}" "initrd-${version}.img" \
    "initrd-${version}" "initramfs-${version}.img" \
    "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
    "initrd-${alt_version}" "initramfs-${alt_version}.img" \
    "initramfs-genkernel-${version}" \
    "initramfs-genkernel-${alt_version}"; do
    if test -e "${dirname}/${i}" ; then
      initrd="$i"
      break
    fi
  done

  config=
  for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
    if test -e "${i}" ; then
      config="${i}"
      break
    fi
  done

  initramfs=
  if test -n "${config}" ; then
      initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
  fi

  if test -n "${initrd}" ; then
    echo "Found initrd image: ${dirname}/${initrd}" >&2
  elif test -z "${initramfs}" ; then
    # "UUID=" magic is parsed by initrd or initramfs. Since there's
    # no initrd or builtin initramfs, it can't work here.
    linux_root_device_thisversion=${GRUB_DEVICE}
  fi

  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

  list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
 }}}

 * Aggiungere le seguenti righe: {{{
COUNTER=0
LINUX_KERNELS_DISPLAYED=X
}}} prima del testo sopraccitato, prestando attenzione a sostituire la «X» con il numero di kernel desiderati, e {{{
COUNTER=`expr $COUNTER + 1`
if [ $COUNTER -eq $LINUX_KERNELS_DISPLAYED ]; then
list=""
fi
}}} dopo il testo, ottenendo un risultato simile: {{{
COUNTER=0
LINUX_KERNELS_DISPLAYED=X

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}"

  initrd=
  for i in "initrd.img-${version}" "initrd-${version}.img" \
    "initrd-${version}" "initramfs-${version}.img" \
    "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
    "initrd-${alt_version}" "initramfs-${alt_version}.img" \
    "initramfs-genkernel-${version}" \
    "initramfs-genkernel-${alt_version}"; do
    if test -e "${dirname}/${i}" ; then
      initrd="$i"
      break
    fi
  done

  config=
  for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
    if test -e "${i}" ; then
      config="${i}"
      break
    fi
  done

  initramfs=
  if test -n "${config}" ; then
      initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
  fi

  if test -n "${initrd}" ; then
    echo "Found initrd image: ${dirname}/${initrd}" >&2
  elif test -z "${initramfs}" ; then
    # "UUID=" magic is parsed by initrd or initramfs. Since there's
    # no initrd or builtin initramfs, it can't work here.
    linux_root_device_thisversion=${GRUB_DEVICE}
  fi

  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

  list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`

COUNTER=`expr $COUNTER + 1`
if [ $COUNTER -eq $LINUX_KERNELS_DISPLAYED ]; then
list=""
fi
}}}

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

== Kernel specifici ==

Aprire con un [[Ufficio/EditorDiTesto|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 [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|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 [[AmministrazioneSistema/Terminale| 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 [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== memtest86+ ==

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

 * Aprire un [[AmministrazioneSistema/Terminale| terminale]] e digitare: {{{
sudo chmod -x /etc/grub.d/20_memtest86+
}}}

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

== Recovery mode ==

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/default/grub` e aggiungere alla fine la seguente riga: {{{
Linea 110: Linea 381:
  * If a custom script in the ''/etc/grub.d/'' folder contains multiple menu entries, individual items may be removed and others retained.
  * Tip: If the user wants his custom entries to appear at the top of the menu, the file can be named a value less than ''"10_linux"'', such as ''"07_custom"''. Check that the ''"DEFAULT"'' value in ''/etc/default/grub'' points to the correct ''menuentry'' after making this change.
  * Changes will not take effect on the Grub 2 menu until `"update-grub"` is run to update ''grub.cfg''


== Modifica manuale ==
 * Manual Editing of ''grub.cfg''
  * If you ''must'' edit this file:
  {{{
sudo chmod +w /boot/grub/grub.cfg # Remove 'read-only', necessary even for "root"
sudo nano /boot/grub/grub.cfg # Edit as "root"
}}}
  * Note: This file is returned to 'read-only' status and user inputs are overwritten anytime the `"update-grub"` command is run.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

== Sottomenù Linux ==

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Eliminando i sottomenù non verranno eliminati i riferimenti ai kernel contenuti bensì verrà ripristinato l'elenco semplice delle voci.'' ||

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `10_linux` e cercare le seguenti righe: {{{
  if [ "$list" ] && ! $in_submenu; then
    echo "submenu \"Previous Linux versions\" {"
    in_submenu=:
  fi
done

if $in_submenu; then
  echo "}"
fi
}}} modificare commentando come segue: {{{
# if [ "$list" ] && ! $in_submenu; then
# echo "submenu \"Previous Linux versions\" {"
# in_submenu=:
# fi
done

#if $in_submenu; then
# echo "}"
#fi
}}}

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== Kernel 32 o 64 bit di MacOSX ==

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|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
}}}

 0. 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
}}}

 0. Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

== Windows recovery ==

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/boot/grub/grub.cfg`.
 0. Individuare e annotare la riga inerente il boot della partizione di recovery di '''Windows''', ad esempio: {{{
Windows Vista (loader) (on /dev/sda1)
 }}}
 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|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.
 0. Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
 }}}

== Altre partizioni GNU/Linux ==

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/grub.d/30_os-prober` e cercare le seguenti righe: {{{
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi
}}} inserire immediatamente dopo {{{
if [ "${LROOT}" = "/dev/sdXY" ]; then
continue
fi
}}} prestando attenzione a sostituire «sdXY» con la partizione desiderata.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

== Partizioni Windows ==

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/grub.d/30_os-prober` e cercare le seguenti righe: {{{
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
}}} inserire immediatamente dopo {{{
if [ "${DEVICE}" = "/dev/sdXY" ]; then
continue
fi
}}} prestando attenzione a sostituire «sdXY» con la partizione desiderata.

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

= Nascondere GRUB in PC con più sistemi operativi =

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''Per i PC con solo Ubuntu usare l'opzione standard nel file `/etc/default/grub` come da [[AmministrazioneSistema/Grub/FileCartelle|guida]].''' ||

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/grub.d/30_os-prober` e cercare la seguente riga: {{{
if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
 }}} sostituirla con quanto segue: {{{
if [ "x${found_other_os}" = "x" ] || [ "x${GRUB_FORCE_HIDDEN_MENU}" = "xtrue" ] ; then
}}}

 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/default/grub` e aggiungere le seguenti righe: {{{
GRUB_FORCE_HIDDEN_MENU="true"
export GRUB_FORCE_HIDDEN_MENU
}}}

 * Applicare la modifica digitando in un [[AmministrazioneSistema/Terminale| terminale]] il seguente comando: {{{
sudo update-grub
}}}

----
CategoryAmministrazione


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

  • Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/default/grub e modificare la seguente opzione:

    GRUB_DISTRIBUTOR=esempio
    scrivendo al posto di «esempio» il nome desiderato.
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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"

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

      if ${recovery} ; then
        title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
      else
        title="$(gettext_quoted "%s, with Linux %s")"
      fi

    cancellare o modificare a piacere ", with Linux" ad esempio traducendo in italiano.

  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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_hurd

Localizza eventuali kernel Hurd

10_linux

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

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ù

40_custom

Rappresenta un modello per aggiungere voci personalizzate al menù

Voci automatiche

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

  • Aprire un terminale e digitare:

    sudo chmod u+x /etc/grub.d/XX_script
    prestando attenzione a sostituire «XX_script» con il nome dello script desiderato.
  • Applicare la modifica digitando in una finestra di il seguente comando:

    sudo update-grub

Voci definite dall'utente

  • Creare con un editor di testo e con i privilegi di amministrazione un file in /etc/grub.d/ in modo che rispetti la nomenclatura standard XX_script

  • Incollare il seguente contenuto per le voci GNU/Linux:

    cat << _EOF
    menuentry "Nome distribuzione" {
    set root=(hdX,Y)
    linux /boot/vmlinuz-X.Y root=UUID=xxxxxxxxxxxxxxxxxxxxx
    initrd /boot/initrd.img-X.Y
    }
    _EOF
    prestando attenzione ad inserire i parametri desiderati come da tabella:

    Opzione

    Significato

    Nome distribuzione

    Il nome desiderato per la voce

    hdX,Y

    La partizione desiderata

    /boot/vmlinuz-X.Y

    Il file vmlinuz specifico del kernel desiderato visionabile in /boot/

    xxxxxxxxxxxxxxxxxxxxx

    Il codice UUID della partizione desiderata ottenibile digitando in un terminale sudo blkid /dev/sdXY

    /boot/initrd.img-X.Y

    Il file initrd.img specifico del kernel desiderato visionabile in /boot/

  • Incollare il seguente contenuto per le voci inerenti ad altri sistemi operativi:

    cat << _EOF
    menuentry "Nome sistema operativo" {
    set root=(hdX,Y)
    chainloader +1
    }
    _EOF
    prestando attenzione a sostituire «Nome sistema operativo» con il nome desiderato per la voce e «hdX,Y» con la partizione desiderata.
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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:

  • Digitare in un terminale il seguente comando:

    sudo chmod -x /etc/grub.d/XX_script
    prestando attenzione a sostituire «XX_script» col nome dello script desiderato.
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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:

  • Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/10_linux e rintracciare 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}"
    
      initrd=
      for i in "initrd.img-${version}" "initrd-${version}.img" \
               "initrd-${version}" "initramfs-${version}.img" \
               "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
               "initrd-${alt_version}" "initramfs-${alt_version}.img" \
               "initramfs-genkernel-${version}" \
               "initramfs-genkernel-${alt_version}"; do
        if test -e "${dirname}/${i}" ; then
          initrd="$i"
          break
        fi
      done
    
      config=
      for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
        if test -e "${i}" ; then
          config="${i}"
          break
        fi
      done
    
      initramfs=
      if test -n "${config}" ; then
          initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
      fi
    
      if test -n "${initrd}" ; then
        echo "Found initrd image: ${dirname}/${initrd}" >&2
      elif test -z "${initramfs}" ; then
        # "UUID=" magic is parsed by initrd or initramfs.  Since there's
        # no initrd or builtin initramfs, it can't work here.
        linux_root_device_thisversion=${GRUB_DEVICE}
      fi
    
      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
    
      list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
  • Aggiungere le seguenti righe:

    COUNTER=0
    LINUX_KERNELS_DISPLAYED=X

    prima del testo sopraccitato, prestando attenzione a sostituire la «X» con il numero di kernel desiderati, e

    COUNTER=`expr $COUNTER + 1`
    if [ $COUNTER -eq $LINUX_KERNELS_DISPLAYED ]; then
    list=""
    fi

    dopo il testo, ottenendo un risultato simile:

    COUNTER=0
    LINUX_KERNELS_DISPLAYED=X
    
    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}"
    
      initrd=
      for i in "initrd.img-${version}" "initrd-${version}.img" \
               "initrd-${version}" "initramfs-${version}.img" \
               "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
               "initrd-${alt_version}" "initramfs-${alt_version}.img" \
               "initramfs-genkernel-${version}" \
               "initramfs-genkernel-${alt_version}"; do
        if test -e "${dirname}/${i}" ; then
          initrd="$i"
          break
        fi
      done
    
      config=
      for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
        if test -e "${i}" ; then
          config="${i}"
          break
        fi
      done
    
      initramfs=
      if test -n "${config}" ; then
          initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
      fi
    
      if test -n "${initrd}" ; then
        echo "Found initrd image: ${dirname}/${initrd}" >&2
      elif test -z "${initramfs}" ; then
        # "UUID=" magic is parsed by initrd or initramfs.  Since there's
        # no initrd or builtin initramfs, it can't work here.
        linux_root_device_thisversion=${GRUB_DEVICE}
      fi
    
      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
    
      list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
    
    COUNTER=`expr $COUNTER + 1`
    if [ $COUNTER -eq $LINUX_KERNELS_DISPLAYED ]; then
    list=""
    fi
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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+.

  • Aprire un terminale e digitare:

    sudo chmod -x /etc/grub.d/20_memtest86+
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

Recovery mode

Sottomenù Linux

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

  • Aprire con un editor di testo e con i privilegi di amministrazione il file 10_linux e cercare le seguenti righe:

      if [ "$list" ] && ! $in_submenu; then
        echo "submenu \"Previous Linux versions\" {"
        in_submenu=:
      fi
    done
    
    if $in_submenu; then
      echo "}"
    fi

    modificare commentando come segue:

    # if [ "$list" ] && ! $in_submenu; then
    # echo "submenu \"Previous Linux versions\" {"
    # in_submenu=:
    # fi
    done
    
    #if $in_submenu; then
    # echo "}"
    #fi 
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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

  • 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:

    if [ -z "${LLABEL}" ] ; then
    LLABEL="${LONGNAME}"
    fi

    inserire immediatamente dopo

    if [ "${LROOT}" = "/dev/sdXY" ]; then
    continue
    fi
    prestando attenzione a sostituire «sdXY» con la partizione desiderata.
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

Partizioni Windows

  • 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:

    if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
    fi

    inserire immediatamente dopo

    if [ "${DEVICE}" = "/dev/sdXY" ]; then
    continue
    fi
    prestando attenzione a sostituire «sdXY» con la partizione desiderata.
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub

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.

  • Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/grub.d/30_os-prober e cercare la seguente riga:

    if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then

    sostituirla con quanto segue:

    if [ "x${found_other_os}" = "x" ] || [ "x${GRUB_FORCE_HIDDEN_MENU}" = "xtrue" ] ; then 
  • Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/default/grub e aggiungere le seguenti righe:

    GRUB_FORCE_HIDDEN_MENU="true"
    export GRUB_FORCE_HIDDEN_MENU
  • Applicare la modifica digitando in un terminale il seguente comando:

    sudo update-grub


CategoryAmministrazione