GRUB 2 - Um help na apresentação e configuração

Iniciado por jomafras, 12 de Novembro de 2009, 01:23

tópico anterior - próximo tópico

jomafras

Que eu saiba tem dois modos :

1- Dar permissão de escrita, editar o arquivo /boot/grub/grub.cfg e comentar (#) as entradas do Windows recovery.
sudo chmod -w /boot/grub/grub.cfg

sudo gedit /boot/grub/grub.cfg

2- Editar o arquivo /etc/grub.d/30_os-prober e modificar o script relativo ao Windows recovery.
sudo gedit /etc/grub.d/30_os-prober

O modo 1 é mais fácil mas terá que ser refeito toda vez que houver atualização do Grub.
O modo 2 é definitivo porém mais complicado e não sei se saberia te ajudar.
Se vc copiar e colar aqui o seu arquivo /etc/grub.d/30_os-prober talvez possa haver solução.
O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

rruella

rruella@rruella:~$ grub-install -v
grub-install (GNU GRUB 1.97~beta4)
rruella@rruella:~$

com o resultado acima tenho o grub ou grub2?
Dar como resolvido, ou como solucionado um tópico seu:

http://www.youtube.com/watch?v=cW8isbYhR_M

jomafras

O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

rruella

Dar como resolvido, ou como solucionado um tópico seu:

http://www.youtube.com/watch?v=cW8isbYhR_M

helis

Desculpe a demora..tive outros problemas aqui, alguns programas deixaram de funcionar

Eis o meu 30_os-prober(modificado pelo tuto)

#! /bin/sh -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}
libdir=${exec_prefix}/lib

. ${libdir}/grub/grub-mkconfig_lib

found_other_os=

adjust_timeout () {
  if [ "x${found_other_os}" = "x" ] ; then
    if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then
      if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
   verbose=
      else
   verbose=" --verbose"
      fi

      if [ "x${GRUB_HIDDEN_TIMEOUT}" = "x0" ] ; then
   cat <<EOF
if [ \${timeout} != -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 [ \${timeout} != -1 ]; then
  if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
    set timeout=0
  fi
fi
EOF
      fi
    fi
  fi
}

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  adjust_timeout
  exit 0
fi

if [ -z "`which os-prober 2> /dev/null`" -o -z "`which linux-boot-prober 2> /dev/null`" ] ; then
  # missing os-prober and/or linux-boot-prober
  adjust_timeout
  exit 0
fi

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
  # empty os-prober output, nothing doing
  adjust_timeout
  exit 0
fi

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

  if [ "${LONGNAME} = Windows 7 (loader) (on /dev/sda1)" ] ; then
    LONGNAME="Windows 7"
  elif [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi


  echo "Found ${LONGNAME}" >&2
  found_other_os=1

  case ${BOOT} in
    chain)

      cat << EOF
menuentry "${LONGNAME}" {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"

      case ${LONGNAME} in
   Windows\ Vista*|Windows\ 7*)
   ;;
   *)
     cat << EOF
   drivemap -s (hd0) \${root}
EOF
   ;;
      esac

      cat <<EOF
   chainloader +1
}
EOF
    ;;
    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

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

         if [ "${LROOT}" != "${LBOOT}" ]; then
           LKERNEL="${LKERNEL#/boot}"
           LINITRD="${LINITRD#/boot}"
         fi

        cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" {
EOF
   save_default_entry | sed -e "s/^/\t/"
   prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/"
   cat <<  EOF
   linux ${LKERNEL} ${LPARAMS}
EOF
        if [ -n "${LINITRD}" ] ; then
          cat << EOF
   initrd ${LINITRD}
EOF
        fi
        cat << EOF
}
EOF
      done
    ;;
    macosx)
      OSXUUID="`grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
        cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" {
EOF
   save_default_entry | sed -e "s/^/\t/"
   prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
   cat << EOF
        insmod vbe
        do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             do_resume=1
           fi
        fi
        if [ \$do_resume == 0 ]; then
           xnu_uuid ${OSXUUID} uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           xnu_kernel /mach_kernel boot-uuid=\${uuid} rd=*uuid
           if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
              xnu_mkext /System/Library/Extensions.mkext
           else
              xnu_kextdir /System/Library/Extensions
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devtree.txt ]; then
              xnu_devtree /Extra/devtree.txt
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}
EOF
    ;;
    hurd|*)
      echo "  ${LONGNAME} is not yet supported by grub-mkconfig." >&2
    ;;
  esac
done

adjust_timeout
Ninguém vive isolado; se não temos a companhia de um semelhante; temos, pelo menos, a companhia de nossas bactérias.

jomafras

#50
É possível fazer um menu totalmente personalizado.
Para isso vc edita o arquivo /etc/grub.d/40_custom e coloca nele as entradas que vc quer.
As entradas devem ser tiradas do arquivo /boot/grub/grub.cfg.

Como exemplo, criei o seguinte menu no 40_custom :

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.


## BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu 10.04" --class ubuntu --class gnu-linux --class gnu --class os {
   recordfail
   insmod ext2
   set root='(hd0,2)'
   search --no-floppy --fs-uuid --set a4d801dd-55fd-4971-b64b-c9914d1cb468
   echo   Carregando Linux false ...
   linux   /boot/vmlinuz-2.6.32-16-generic root=UUID=a4d801dd-55fd-4971-b64b-c9914d1cb468 ro quiet
   echo   Carregando ramdisk inicial ...
   initrd   /boot/initrd.img-2.6.32-16-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7" {
   insmod ntfs
   set root='(hd0,1)'
   search --no-floppy --fs-uuid --set 86661f63661f5373
   chainloader +1
}
menuentry "Kubuntu 10.04" {
   insmod ext2
   set root='(hd0,7)'
   search --no-floppy --fs-uuid --set 6095e42e-6de3-4e46-a8cd-05580c2a93d7
   linux /boot/vmlinuz-2.6.32-15-generic root=UUID=6095e42e-6de3-4e46-a8cd-05580c2a93d7 ro quiet
   initrd /boot/initrd.img-2.6.32-15-generic
}
### END /etc/grub.d/30_os-prober ###

O que aparece no menu do GRUB 2 na inicialização :

ubuntu@ubuntu-laptop:~$ sudo cat /boot/grub/grub.cfg | grep "menuentry" | cut -d '"' -f 2
[sudo] password for ubuntu:
Ubuntu 10.04
Windows 7
Kubuntu 10.04


Para isso funcionar, primeiro o arquivo /etc/grub.d/40_custom deve ser feito executável :
sudo chmod +x /etc/grub.d/40_custom

Os outros não podem ser executáveis :
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober

É preciso lembrar que o arquivo 40_custom deve ser atualizado sempre que houver atualização do Kernel ou outra atualização do GRUB 2 e o processo todo refeito.
Se isso não for feito vc pode ficar sem o menu, não vai poder abrir nenhum sistema e o que é pior, pode não conseguir recuperar o GRUB 2.





O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

helis

Obrigada^^
Agora estou  com meu  mais ou menos como queria rs...
digo mais ou menos pq vi uns tao bunitins na net rs mas ainda não consegui fazer muito igual...
Ninguém vive isolado; se não temos a companhia de um semelhante; temos, pelo menos, a companhia de nossas bactérias.

Zepa

Ola a todos,

Consegui fazer alguma mudanças no menu do grub graças a esse tutorial, e queria de ante mão agradeçer a todos aqueles que dedicam seu precioso tempo em ajudar os que estão migrando agora para esse SO.
Consegui tirar do menu os Kernels antigos, tirar o MemoryTeste, mas na hora te trocar os nomes eu to achando meio confuso.

essa dica por exemplo :


Procure por : linux_entry "${OS}, Linux  ${version}" \
                       "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
                        quiet
Entrada original = Ubuntu, Linux 2.6.31-16

No meu arquivo esta assim: linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
      quiet

como pode ver não tem LINUX escrito para mim substituir, e não tem um jeito de escrever direto o nome que eu quero que apareça? ta um pouco complicado isso para mim !

Outra duvida que tenho é a seguinte, no grub no notebook ta aparecendo o Windows Vista e o REcovery Mode, so que esta invertido ou seja, quando entro no VIsta ele vai para recovery e quando escolho recovery que entra no vista.

gostaria de alterar o nome do Recovery Mode para Windows Vista e desabilitar a outra opcao !

Agradeço a ajuda e paciência , obrigado


jomafras

#53
Vc deve estar usando o Ubuntu 10.04. O que está descrito no tópico sobre títulos de SOs só serve para o 9.10.
Para mudar os títulos, a maneira mais prática, por enquanto, é editar o arquivo /etc/grub.d/40_custom
sudo gedit /etc/grub.d/40_custom
e colocar as entradas nele.

Para isso vc abre o /boot/grub/grub.cfg e copia a entrada para o 40_custom e muda o título.
Exemplo :

grub.cfg =

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, com Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
   recordfail
   insmod ext2
   set root='(hd0,3)'
   search --no-floppy --fs-uuid --set e0e87629-8a5a-49a6-b7c6-d90f93fbcf5d
   linux   /boot/vmlinuz-2.6.32-22-generic root=UUID=e0e87629-8a5a-49a6-b7c6-d90f93fbcf5d ro   quiet splash
   initrd   /boot/initrd.img-2.6.32-22-generic
}

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
   insmod ntfs
   set root='(hd0,1)'
   search --no-floppy --fs-uuid --set bc1c7d2e1c7ce534
   chainloader +1
}

Copiar as entradas colar no 40_custom e modificar o título :

/etc/grub.d/40_custom =

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu 10.04' --class ubuntu --class gnu-linux --class gnu --class os {
   recordfail
   insmod ext2
   set root='(hd0,3)'
   search --no-floppy --fs-uuid --set e0e87629-8a5a-49a6-b7c6-d90f93fbcf5d
   linux   /boot/vmlinuz-2.6.32-22-generic root=UUID=e0e87629-8a5a-49a6-b7c6-d90f93fbcf5d ro   quiet splash
   initrd   /boot/initrd.img-2.6.32-22-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7" {
   insmod ntfs
   set root='(hd0,1)'
   search --no-floppy --fs-uuid --set bc1c7d2e1c7ce534
   chainloader +1
}

Os títulos eram :
Ubuntu 2.6.32-22-generic e
Windows 7 (loader) (on /dev/sda1)

passam a ser :
Ubuntu 10.04 e
Windows 7

Salvar as modificações.

Depois disso tirar o modo executável dos arquivos 10_linux e 30_os-prober  :
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/30_os-prober
e atualizar o GRUB 2 :
sudo update-grub

Lembar que sempre que houver atualização ou kernel novo o processo deve ser refeito.
O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

jamiro

Que confuso isso, hein?! Estou eu inocentemente a procurar o velho e conhecido menu.lst e.... sumiu!  >:(
Espero que inventem logo uma interface gráfica pra isso!!!! pelamordedeus!

Jamiro


pigdin

#56
Olá Pintinho, parabéns pelo tutorial.

Ainda não tive paciência para entender esse novo grub.

Se for possível poderia detalhar como colocar um parâmetro na inicialização nesse novo grub.

Conforme a dica nesse tópico:
http://ubuntuforum-pt.org/index.php?topic=58438.new

Colocando idle=pool na incialização resolve o problema das famigeradas placas SIS, acho que isso ajudaria muitos usuários a atualizarem seus sistemas para a nova versão.

Obrigado.

Abraços.

Editado

O arquivo a ser editado  seria /etc/default/grub ???
Esta linha
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
ficaria assim?
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash idle=poll"

Seria isso mesmo?

ou isso
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=assign-busses apicmaintimer idle=poll reboot=cold,hard"
não sei para que servem os outros parâmetros
encontrei essa dica aqui:
http://www.achiola.com.ar/content/grub-grub2-problemas-de-temperatura-en-mi-nb
Desk: Phenom X3 2GB DDR II - Win 7 / Ubuntu 10.04 64 Bits
Note MUB: Core2Duo 4GB - Win7 / Ubuntu 10.04 / Bodhi Linux.
@alexpigdin

jomafras

pigdin ,

Obrigado pela dica.
Vou ver se consigo incluí-la no tópico.
O problema é que hoje, aproveitando uma folguinha, dei uma atualizada geral no tópico e fiquei com problema de espaço (máximo de 20000 caracteres).
Obrigado!
O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

pigdin

Citação de: pintinho online 30 de Maio de 2010, 21:54
pigdin ,

Obrigado pela dica.
Vou ver se consigo incluí-la no tópico.
O problema é que hoje, aproveitando uma folguinha, dei uma atualizada geral no tópico e fiquei com problema de espaço (máximo de 20000 caracteres).
Obrigado!

Só estou em dúvida se esse parâmetro não causa aquecimento excessivo.

De qualquer modo seria bom saber como adicionar parâmetros ao kernel.

Abraços.
Desk: Phenom X3 2GB DDR II - Win 7 / Ubuntu 10.04 64 Bits
Note MUB: Core2Duo 4GB - Win7 / Ubuntu 10.04 / Bodhi Linux.
@alexpigdin

Kleyton Lopes

Fiz um vídeo sobre como colocar uma imagem no fundo do Grub do Ubuntu 9.10 (em breve no 10.04). Talvez facilite ainda mais personalizar o grub!!
--- http://www.youtube.com/watch?v=Zi7kdsC_aDE

***Parabéns pintinho pela tradução!!!!
Kleyton Lopes -> Sucesso= Trabalho+Prazer (Einstein)