# GRUB: Error 13. Boot no ultrabook samsung series 5

## rodrigosiqueira

Olá a todos, primeiramente venho agradecer a atenção de todos.

A cerca de um mês resolvi instalar o Gentoo no meu Ultrabook e desde então eu estava lendo o handbook e estudando o processo.

Além do handbook usei as seguintes referências:

--> Wiki do gentoo para um modelo de ultrabook semelhante ao meu. Tirando as informações de disco, todo o resto é igual ao meu ultrabook.

http://wiki.gentoo.org/wiki/Samsung_Series_5_Ultra_530U3C-A02PT

---> Tive um problema na primeira tentativa. Utilizei uma estratégia semelhante a do link abaixo para tentar resolver:

http://blogs.ambientelivre.com.br/marcio/otimizando-o-uso-do-ssd-de-ultrabook-com-ubuntu/

Contexto:

Tenho um Ultrabook samsung series 5 original de fábrica. Eu só quero ter o Gentoo no meu ultrabook, por isto fiz uma primeira tentativa na qual eu tentei instalar a pasta '/' toda no meu ssd e deixar só a '/home' no hd normal. Todos os passos ocorreram perfeitamente nesta primeira tentativa, porém ao dar boot uma tela da BIOS foi apresentada solicitando que eu escolhesse qual dispositivo eu queria dar boot. Tentei várias configurações no próprio Gentoo (via rescue), mas imaginei que algo estaria errado (fiz dezenas de alterações na BIOS). Até que na minha pesquisa achei o blog do Marcio (link acima) que disse que para o Ubuntu funcionar era preciso criar uma partição /boot no disco normal. Fiz como ele recomendou e repeti todos os passos anteriores, só que agora com a seguinte estrutura:

/dev/sda1 /boot     ext4

/dev/sda2 /home   ext4

/dev/sda3 swap 

/dev/sdb1 /           ext4

Em geral os passos ocorreram bem até a parte de instalação do GRUB. Para começar eu não estava mais conseguindo instalar o GRUB, pois os seguintes erros eram apresentados:

```
* ERROR: sys-boot/grub-0.97-r12 failed (compile phase):

 *   econf failed

 * 

 * Call stack:

 *          ebuild.sh, line   93:  Called src_compile

 *        environment, line 4336:  Called econf '--libdir=/lib' '--datadir=/usr/lib/grub' '--exec-prefix=/' '--disable-auto-linux-mem-opt' '--with-curses'

 *   phase-helpers.sh, line  521:  Called die

 * The specific snippet of code:

 *            die "econf failed"

 * 

 * If you need support, post the output of `emerge --info '=sys-boot/grub-0.97-r12'`,

 * the complete build log and the output of `emerge -pqv '=sys-boot/grub-0.97-r12'`.

 * The complete build log is located at '/var/tmp/portage/sys-boot/grub-0.97-r12/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-boot/grub-0.97-r12/temp/environment'.

 * Working directory: '/var/tmp/portage/sys-boot/grub-0.97-r12/work/grub-0.97'

 * S: '/var/tmp/portage/sys-boot/grub-0.97-r12/work/grub-0.97'

>>> Failed to emerge sys-boot/grub-0.97-r12, Log file:

* ERROR: sys-boot/grub-0.97-r12 failed (compile phase):

 *   econf failed

 * 

 * Call stack:

 *          ebuild.sh, line   93:  Called src_compile

 *        environment, line 4336:  Called econf '--libdir=/lib' '--datadir=/usr/lib/grub' '--exec-prefix=/' '--disable-auto-linux-mem-opt' '--with-curses'

 *   phase-helpers.sh, line  521:  Called die

 * The specific snippet of code:

 *            die "econf failed"

 * 

 * If you need support, post the output of `emerge --info '=sys-boot/grub-0.97-r12'`,

 * the complete build log and the output of `emerge -pqv '=sys-boot/grub-0.97-r12'`.

 * The complete build log is located at '/var/tmp/portage/sys-boot/grub-0.97-r12/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-boot/grub-0.97-r12/temp/environment'.

 * Working directory: '/var/tmp/portage/sys-boot/grub-0.97-r12/work/grub-0.97'

 * S: '/var/tmp/portage/sys-boot/grub-0.97-r12/work/grub-0.97'

```

Tentei resolver, mas como ainda sou muito inexperiente com o Gentoo fiz uma pesquisa e acabei instalando o grub-static. A instalação deu certo, contudo em um primeiro momento tive problemas com relação a permissões de acesso que resolvi desmontando e montando novamente a partição /boot. Realizei a configuração do grub.conf e reiniciei. A tela do grub foi apresentada (para a minha alegria), contudo na hora de dar boot no sistema a seguinte mensagem foi exibida:

```
Error 13: Invalid or unsupported executable format

Press any key to continue...
```

Tentei reinstalar o grub, alterar os arquivos, etc... Nada deu certo.

Utilizei a opção do rescue de dar boot em algum sistema Linux instalado no computado e ele deu o boot na minha instalação do Gentoo que estava funcionando perfeitamente. 

As minhas grandes dúvidas são:

Como me livrar do Erro do Grub e fazer o meu Gentoo dar boot sem ter que utilizar o Rescue? Alguém pode me ajudar? 

Será que o fato de eu utilizar o Gentoo 64bits e o grub-static pode ser a raiz do problema?

É possível instalar toda a pasta '/' no SSD e ter o boot normal? Eu gostaria de tirar proveito do elevado desempenho da memória SSD.

Segue o meu fstab e grub.conf: 

```
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/sda1      /boot      ext4      defaults   1 2

/dev/sdb1      /      ext4      noatime,nodiratime,discard      0 1

/dev/sda2      /home      ext4      defaults            0 2

/dev/sda3      none      swap      sw      0 0
```

```
default 0

timeout 5

#splashimage=(hd0,0)/boot/grub/splash.xpm.gz

 

title Gentoo Linux 2.6.24-r5

uuid b9de7e7f-6fab-4af7-8053-98b57c156c2e

kernel /boot/vmlinux root=UUID=b9de7e7f-6fab-4af7-8053-98b57c156c2e

initrd /boot/initramfs-genkernel-x86_64-3.10.7-gentoo

title Gentoo Linux 2.6.24-r5 (rascue)

uuid b9de7e7f-6fab-4af7-8053-98b57c156c2e

kernel /boot/vmlinux root=UUID=b9de7e7f-6fab-4af7-8053-98b57c156c2e init=/bin/bb                  

initrd /boot/initramfs-genkernel-x86_64-3.10.7-gentoo
```

Muito obrigado pela atenção.

----------

## noisebleed

Olá rodrigosiqueira,

 *Quote:*   

> Além do handbook usei as seguintes referências: 
> 
> --> Wiki do gentoo para um modelo de ultrabook semelhante ao meu

 

Curioso, eu escrevi esse tutorial  :Smile: 

 *Quote:*   

> eu tentei instalar a pasta '/' toda no meu ssd

 

Estás a referir-te ao SSD "express cache" que vem incluído no portátil? Se sim, por por favor não coloques nada lá além da swap porque esse dispositivo não é fiável. O meu portátil está neste momento para reparação porque esse SSD simplesmente deixou de responder.

Quando te referes ao sda, que disco é este? O original? Removeste (formataste) o Windows?

Quanto ao erro de instalação do grub posta o conteúdo do ficheiro 

```
/var/tmp/portage/sys-boot/grub-0.97-r12/temp/build.log
```

 sff.

Lembra-te que após o emerge do Grub deverás instalá-lo no MBR. Segue o tutorial aqui: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2

Em particular, no ambiente LiveCD:

```
# grep -v rootfs /proc/mounts > /etc/mtab

# grub --no-floppy

grub> root (hd0,0)    (Specify where your /boot partition resides)

grub> setup (hd0)     (Install GRUB in the MBR)

grub> quit            (Exit the GRUB shell)
```

Qualquer dúvida não hesites em perguntar. Boa sorte.

----------

## rodrigosiqueira

Olá noisebleed, muito obrigado pela sua atenção e por ter escrito o tutorial!!!! Ele foi uma base para mim. 

Sim eu estava me referindo ao SSD, ele é o meu sdb e o HD original é o sda. Eu desisti de usar o "SSD express cache" e para dizer a verdade estou com muita vontade de remover ele e jogar do 15° do prédio.   :Twisted Evil: 

Com relação ao Windows eu apaguei tudo referente a ele do meu Ultrabook e não tenho interesse em te-lo instalado no meu computador. Só me interessa o Linux.

Eu mudei o esquema das partições para deixar da seguinte forma (lembrando que o sda é o HD original de 500Gb):

/dev/sda1 -> /boot

/dev/sda2 -> /

/dev/sda3 -> /home

/dev/sda4 -> swap

Depois que mudei para este esquema passei a ter um erro ao tentar dar o "emerge" do genkernel também. Eu queria dar o "emerge" deste pacote para usa-lo para instalar o initramfs.

O erro que estou tendo não é na instalação do GRUB no hd, o erro é na hora de dar o emerge no grub (por isto não tenho o log que você solicitou). Segue abaixo o log do erro. 

Segue o log:

```

 [32;01m *  [39;49;00mPackage:    app-emulation/emul-linux-x86-baselibs-20130224

 [32;01m *  [39;49;00mRepository: gentoo

 [32;01m *  [39;49;00mMaintainer: multilib@gentoo.org

 [32;01m *  [39;49;00mUSE:        amd64 development elibc_glibc kernel_linux userland_GNU

 [32;01m *  [39;49;00mFEATURES:   preserve-libs sandbox

>>> Unpacking source...

>>> Unpacking emul-linux-x86-baselibs-20130224.tar.xz to /var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work

>>> Source unpacked in /var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work

>>> Preparing source in /var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work ...

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/i686-pc-linux-gnu/lib/libbfd.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/i686-pc-linux-gnu/lib/libbfd-2.22.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/i686-pc-linux-gnu/lib/libopcodes.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/i686-pc-linux-gnu/lib/libopcodes-2.22.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libpadlock.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libatalla.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libsureware.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libubsec.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libchil.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libcswift.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/lib4758cca.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libnuron.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libaep.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libgmp.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/engines/libcapi.so’: Bad file descriptor

rm: cannot remove ‘/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work/usr/lib32/openldap/openldap’: Bad file descriptor

  [31;01m* [0m ERROR: app-emulation/emul-linux-x86-baselibs-20130224 failed (prepare phase):

  [31;01m* [0m   (no error message)

  [31;01m* [0m 

  [31;01m* [0m Call stack:

  [31;01m* [0m     ebuild.sh, line  93:  Called src_prepare

  [31;01m* [0m   environment, line 736:  Called die

  [31;01m* [0m The specific snippet of code:

  [31;01m* [0m       rm -rf "${S}/etc/env.d/binutils/" "${S}/usr/i686-pc-linux-gnu/lib" "${S}/usr/lib32/engines/" "${S}/usr/lib32/openldap/" || die;

  [31;01m* [0m 

  [31;01m* [0m If you need support, post the output of `emerge --info '=app-emulation/emul-linux-x86-baselibs-20130224'`,

  [31;01m* [0m the complete build log and the output of `emerge -pqv '=app-emulation/emul-linux-x86-baselibs-20130224'`.

  [31;01m* [0m The complete build log is located at '/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/temp/build.log'.

  [31;01m* [0m The ebuild environment file is located at '/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/temp/environment'.

  [31;01m* [0m Working directory: '/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work'

  [31;01m* [0m S: '/var/tmp/portage/app-emulation/emul-linux-x86-baselibs-20130224/work'

```

Por favor, me ajuda a resolver este problema eu não estou conseguindo dar boot no gentoo de forma alguma. Como eu disse anteriormente eu só consegui instalar o grub-static, mas acho que ele não consegue dar boot no kernel 64 bits de 16.4Mb (ele estava dando o erro citado no primeiro tópico). Tentei o LILO ele me informou que não era possível dar boot no kernel, pois ele era muito grande. Tentei instalar o grub 2, mas não consegui sair do lugar. Por fim vale observar que quando usa a opção do rescue de dar boot em um SO existente no HD ele consegue dar o boot no Gentoo.

Segue abaixo o meu make.conf que é muito semelhante ao seu:

```

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-march=native -O2 -pipe"

CXXFLAGS="${CFLAGS}"

CHOST="x86_64-pc-linux-gnu"

MAKEOPTS="-j6"

#HDDDIR="/mnt/hdd/gentoo"

#PORTAGE_TMPDIR="${HDDDIR}/var/tmp"

#PORTDIR="${HDDDIR}/usr/portage"

#DISTDIR="${HDDDIR}/usr/portage/distfiles"

#PKGDIR="${HDDDIR}/usr/portage/packages"

INPUT_DEVICES="evdev synaptics keyboard mouse"

VIDEO_CARDS="i915 intel vesa fbdev"

ALSA_CARDS="hda-intel"

PHP_TARGETS="php5-4"

USE="aacplus apache2 bash-completion colordiff cryptsetup curl eselect faac

     faad fat fbsplash ffmpeg gd git google google-gadgets googledrive gpg

     imagemagick imlib inifile intl iproute2 iptables kdm lastfm lastfmradio

     latex libv4l libv4l2 lm_sensors logrotate lzma lzo matroska mediaplayer

     mmx mplayer mppe-mppc ntfs okular openrc openssl openvpn pdo phar pixmaps

     pm-utils ppp pygments sha512 soap sockets sqlite sqlite3 sse sse2

     subversion theora threads unzip v4l vhosts vim vim-syntax vlc xls

     xmlreader xmlrpc xmlwriter xz zip"

LINGUAS="pt"

GENTOO_MIRRORS="http://cesium.di.uminho.pt/pub/gentoo/ http://darkstar.ist.utl.pt/gentoo/ http://mirror.ovh.net/gentoo-distfiles/"

SYNC="rsync://rsync.pt.gentoo.org/gentoo-portage"

#source /mnt/hdd/gentoo/var/lib/layman/make.conf

```

Está difícil instalar o Gentoo neste Ultrabook.  :Crying or Very sad: 

Mais uma vez muito obrigado pela ajuda.

----------

## noisebleed

Vamos por passos:

1) A instalação do Genkernel falha em que passo? No emerge de uma dependência? Qual a versão que estás a instalar? Se seguires o manual ficas parado em que passo?

2) O emerge do grub falha em que passo? Qual a versão que estás a instalar?

Nota: Estou a assumir que estás a executar estas operações em ambiente LiveCD.

Outro assunto, se estiveres no Brasil recomendo que uses mirrors brasileiros como http://gentoo.c3sl.ufpr.br/ ou http://www.las.ic.unicamp.br/pub/gentoo/ em vez dos portugueses "cesium" e "darkstar".

----------

## rodrigosiqueira

Segue para cada pergunta que você fez a resposta:

1) Resolvi este problema

Todos os passos ocorreram bem, principalmente o de recompilar o kernel. Eu tive problema pela primeira vez no comando abaixo:

emerge genkernel

Segui o seu conselho de mudar os mirrors, como estou na Coreia do Sul eu inseri os mirrors da KAIST e o emerge do genkernel e do grub deram certo.

2) Resolvi este problema

emerge sys-boot/grub:0

Como citei acima o problema do emerge foi resolvido quando alterei os mirrors.

Sobre a nota: Estou utilizando o rescue no flash disk como você recomendou no seu tutorial. 

Baixei o stage-3 do link abaixo:

http://mirror.mcs.anl.gov/pub/gentoo/releases/amd64/current-stage3/

==> Agora retornei ao problema original do grub (meu primeiro post):

```

Booting 'Gentoo Linux 2.6.24-r5'

kernel /boot/vmlinux root=UUID=de2ad2fa-79d3-45a6-9caf-a97c95e7a66c

Error 13: Invalid or unsupported executable format

Press any key to continue ...

```

Tentei pelo terminal do grub o comando:

kernel /boot/vmlinux

Contudo o erro 13 foi apresentado novamente. 

Alguma ideia?

Obrigado.

----------

## noisebleed

Pf mostra-me o resultado dos seguintes comandos:

```
# cat /boot/grub/grub.conf
```

```
# ls /boot
```

E verifica que seguiste os passos apresentados no Handbook para a variante Genkernel.

Se possível executa novamente a instalação do Grub no MBR e mostra-me as mensagens apresentadas:

```
Code Listing 2.9: Installing GRUB in the MBR

grub> root (hd0,0)    (Specify where your /boot partition resides)

grub> setup (hd0)     (Install GRUB in the MBR)

grub> quit            (Exit the GRUB shell)
```

----------

## rodrigosiqueira

Seguem as saídas que você solicitou:

```

cat /boot/grub/grub.conf

```

```

# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook

# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2

# If you are not using Genkernel and you need help creating this file, you

# should consult the handbook. Alternatively, consult the grub.conf.sample that

# is included with the Grub documentation.

default 0 

timeout 5 

#splashimage=(hd0,0)/boot/grub/splash.xpm.gz 

  

title Gentoo Linux 2.6.24-r5 

uuid de2ad2fa-79d3-45a6-9caf-a97c95e7a66c

kernel /boot/vmlinux root=UUID=de2ad2fa-79d3-45a6-9caf-a97c95e7a66c 

initrd /boot/initramfs-genkernel-x86_64-3.10.7-gentoo 

title Gentoo Linux 2.6.24-r5 (rascue) 

uuid de2ad2fa-79d3-45a6-9caf-a97c95e7a66c 

kernel /boot/vmlinux root=UUID=de2ad2fa-79d3-45a6-9caf-a97c95e7a66c init=/bin/bb                  

initrd /boot/initramfs-genkernel-x86_64-3.10.7-gentoo

# vim:ft=conf:

```

```

ls /boot

```

```

boot  grub  initramfs-genkernel-x86_64-3.10.7-gentoo-r1  lost+found  vmlinux

```

Segui os passos indicado no handbook, só mudei a parte de utilizar uuid.

Executei os passos que vocês recomendou, segue:

```

root(hd0,0)

Filesystem type is ext2fs, partition type 0x83

```

```

setup(hd0)

Checking if "/boot/grub/stage1" exists... yes

Checking if "/boot/grub/stage2" exists... yes

Checking if "/boot/grub/e2fs_stage1_5" exists... yes

Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 22 sectors are embedded succeeded

Running "install /boot/grub/stage1 (hd0) (hd0)1+22 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst" ... succeeded

Done.

```

Infelizmente após o reboot o problema continuou. 

Em seguida entrei como chroot novamente e tentei o comando abaixo:

grub-install /dev/sda --root-directory=/boot --recheck

O erro persistiu.

----------

## noisebleed

Obrigado.

Nunca usei uuid na config do Grub, por isso só para testar recomendava usar /dev/sda2 (partição onde está instalado o Gentoo /):

Coloca depois da linha "#splashimage":

```
title Gentoo Linux 3.10.7

root (hd0,0)

kernel /boot/vmlinux real_root=/dev/sda2

initrd /boot/initramfs-genkernel-x86_64-3.10.7-gentoo
```

Testa isto e diz-me se funciona sff.

----------

