Como corrigir o 'arquivo de erro do grub não encontrado' ao instalar o 12.04?

6

Estou tentando instalar o Ubuntu. Não sei se é importante, mas estou tentando instalá-lo em HDD externo.

No final, eu tenho HDD inicializável externo que exibe apenas:

error: file not found
grub recovery>

Desde o começo:

  • Eu baixei o ubuntu-12.04-desktop-i386.iso
  • Eu usei o LiLi USB Creator (LinuxLive) para criar o pendrive inicializável a partir dessa imagem
  • Eu tenho bootet dele, funciona
  • Eu cliquei em "Tente o Ubuntu", ele também funciona.

Eu usei o GParted para examinar os drivers (discos)

Meu disco embutido primário é visto como / dev / sda

Meu disco externo anexado como / dev / sdb

Meu PenDrive como / dev / sdc

  • Eu criei partições em / dev / sdb

  • Partição de punhos para o sistema (acima de 200GiB)

  • O segundo já estava lá (é xsf e não quero tocá-lo: P)
  • A terceira é a partição estendida, com 1 partição locital (10GiB) para troca

  • Eu comecei a instalação

  • eu escolhi "algo mais" em ... eu acredito em segundos screeb
  • então está selecionado / dev / sdb como disco de inicialização
  • para a primeira partição de / dev / sdb i conjunto eu quero o sistema de arquivos ext3, marquei a caixa de seleção "formattin" e monte o caminho definido como "/"
  • inicia o partiton lógico como partição swap

Após a conclusão da instalação, reiniciei o meu computador. Quando eu inicializo do meu disco principal é o trabalho ok, meu sistema operacional anterior - vista - funciona ok. Quando eu configuro meu BIOS para inicializar a partir do meu disco externo, só recebo essa mensagem:

error: file not found
grub recovery>
  • Eu tentei reinstalá-lo, mas não ajudou ...

Em desespero, tentei ler um pouco sobre a "recuperação do grub >" linha de comando e experimentar um pouco ... Eu não tenho certeza se isso tem algum ponto, ou se ele te dá alguma informação (note que eu não sei o que estou fazendo: P)

quando eu digito o comando:

insmod (hd1,1)/boot/grub/linux.mod

Recebi uma mensagem:

unknown filesystem

o mesmo com:

insmod (hd1,msdos1)/boot/grub/linux.mod

o mesmo com:

insmod ext3

mas não recebo nenhuma mensagem após o comando:

insmod ext2

...

observe que eu realmente não sei exatamente o que esse comando faz, mas do que eu pensei que talvez se eu reinstalar o Ubuntu com o sistema de arquivos ext2, ele vai funcionar. Eu fiz isso, mas os sintomas são os mesmos.

Eu volto para a versão Live do Ubuntu, diretórios de sistema de arquivos e diretórios parece estar presente em / dev / sdb1 ... Eu não estou familiarizado com o GRUB. Eu também não sei qual wersion do GRUB é, espero que haja apenas uma versão no ubuntu-12.04-desktop-i386.iso

Qualquer ajuda? Thax

======================= editar 17.06.2012 22:05 ================= ========

Este é o arquivo RESULTS.txt do bootinfoscript

sda é o meu disco rígido embutido

sdb é HDD externo (destino de disco para o Ubuntu)

sdc é o PenDrive com o Live Ubuntu

                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Windows is installed in the MBR of /dev/sda.
 => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (,msdos1)/boot/grub on this drive.
 => Syslinux MBR (4.04 and higher) is installed in the MBR of /dev/sdc.

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  Windows 7: FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /boot/bcd

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  Windows Vista
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda3: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  -
    Boot sector info: 

sda5: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  According to the info in the boot sector, sda5 starts 
                       at sector 63.
    Operating System:  
    Boot files:        

sdb1: __________________________________________________________________________

    File system:       ext2
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sdb3: __________________________________________________________________________

    File system:       xfs
    Boot sector type:  -
    Boot sector info: 
    Mounting failed:   mount: /dev/sdb3: can't read superblock

sdb4: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  -
    Boot sector info: 

sdb5: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sdc1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  SYSLINUX 4.04 2011-04-18
    Boot sector info:  Syslinux looks at sector 3250552 of /dev/sdc1 for its 
                       second stage. SYSLINUX is installed in the  directory. 
                       The integrity check of the ADV area failed. No errors 
                       found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /syslinux/syslinux.cfg /ldlinux.sys

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 160.0 GB, 160041885696 bytes
16 heads, 63 sectors/track, 310101 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048    20,482,047    20,480,000  1c Hidden W95 FAT32 (LBA)
/dev/sda2    *     20,482,048   176,771,071   156,289,024   7 NTFS / exFAT / HPFS
/dev/sda3         176,771,072   312,580,095   135,809,024   f W95 Extended (LBA)
/dev/sda5         176,773,120   312,580,095   135,806,976   7 NTFS / exFAT / HPFS


Drive: sdb _____________________________________________________________________

Disk /dev/sdb: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1    *          2,048   574,773,569   574,771,522  83 Linux
/dev/sdb3         574,773,570 1,208,315,584   633,542,015   7 NTFS / exFAT / HPFS
/dev/sdb4       1,208,317,950 1,229,289,471    20,971,522   f W95 Extended (LBA)
/dev/sdb5       1,208,317,952 1,229,289,471    20,971,520  82 Linux swap / Solaris


Drive: sdc _____________________________________________________________________

Disk /dev/sdc: 1971 MB, 1971322880 bytes
129 heads, 40 sectors/track, 746 cylinders, total 3850240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdc1    *             40     3,850,239     3,850,200   6 FAT16


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/loop0                                              squashfs   
/dev/loop1       7aa47a24-93a0-d54f-a03c-495cf2ee0927   ext2       
/dev/sda1        3C98-AC5D                              vfat       RECOVERY
/dev/sda2        94CA2D3CCA2D1BCC                       ntfs       VistaOS
/dev/sda5        A2F09F72F09F4B83                       ntfs       DATA
/dev/sdb1        a4befd4a-f91f-4f09-9d5f-a44991ed6a2e   ext2       
/dev/sdb3        973a36d7-5828-4291-b455-db286cd69668   xfs        
/dev/sdb5        9ce43dea-fd93-4343-969d-1243397724bd   swap       
/dev/sdc1        7232-C522                              vfat       GOODDRIVE

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/loop0       /rofs                    squashfs   (ro,noatime)
/dev/sdc1        /cdrom                   vfat       (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)


=========================== sdb1/boot/grub/grub.cfg: ===========================

--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd1,msdos1)'
  search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
  set locale_dir=($root)/boot/grub/locale
  set lang=pl_PL
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="$1"
    if [ "$1" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, za pomocą systemu Linux 3.2.0-23-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=/dev/sdb1 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
menuentry 'Ubuntu, za pomocą systemu Linux 3.2.0-23-generic-pae (tryb ratunkowy)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    echo    'Wczytywanie systemu Linux 3.2.0-23-generic-pae...'
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=/dev/sdb1 ro recovery nomodeset 
    echo    'Wczytywanie początkowego dysku RAM...'
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod fat
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 3C98-AC5D
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Windows Vista (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 94CA2D3CCA2D1BCC
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--------------------------------------------------------------------------------

=============================== sdb1/etc/fstab: ================================

--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sdb1 during installation
UUID=a4befd4a-f91f-4f09-9d5f-a44991ed6a2e /               ext2    errors=remount-ro 0       1
# swap was on /dev/sdb5 during installation
UUID=9ce43dea-fd93-4343-969d-1243397724bd none            swap    sw              0       0
--------------------------------------------------------------------------------

=================== sdb1: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

               =                boot/grub/core.img                             1
               =                boot/grub/grub.cfg                             1
               =                boot/initrd.img-3.2.0-23-generic-pae           6
               =                boot/vmlinuz-3.2.0-23-generic-pae              3
               =                initrd.img                                     6
               =                vmlinuz                                        3

========================= sdc1/syslinux/syslinux.cfg: ==========================

--------------------------------------------------------------------------------
# D-I config version 2.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 50
ui gfxboot bootlogo
--------------------------------------------------------------------------------

================= sdc1: Location of files loaded by Syslinux: ==================

           GiB - GB             File                                 Fragment(s)

            ?? = ??             ldlinux.sys                                    1
            ?? = ??             syslinux/chain.c32                             1
            ?? = ??             syslinux/gfxboot.c32                           1
            ?? = ??             syslinux/syslinux.cfg                          1
            ?? = ??             syslinux/vesamenu.c32                          1

============== sdc1: Version of COM32(R) files used by Syslinux: ===============

 syslinux/chain.c32                 :  COM32R module (v4.xx)
 syslinux/gfxboot.c32               :  COM32R module (v4.xx)
 syslinux/vesamenu.c32              :  COM32R module (v4.xx)

=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
/home/ubuntu/Pobrane/bootinfoscript-061/bootinfoscript: line 1646: [: 2.73495e+09: integer expression expected

Eu tenho que dizer que script de impressão no terminal:

Boot Info Script 0.61      [1 April 2012]


"gawk" could not be found, using "busybox awk" instead.
This may lead to unreliable results.

Identifying MBRs...
Computing Partition Table of /dev/sda...
Computing Partition Table of /dev/sdb...
Computing Partition Table of /dev/sdc...
Searching sda1 for information... 
Searching sda2 for information... 
Searching sda3 for information... 
Searching sda5 for information... 
Searching sdb1 for information... 
Searching sdb3 for information... 
Searching sdb4 for information... 
Searching sdb5 for information... 
Searching sdc1 for information... 

Finished. The results are in the file "RESULTS.txt"
located in "/home/ubuntu/Pobrane/bootinfoscript-061/".

============== editar 18.06.2012 18:38 ===============

ok, esta é mais ou menos cópia da minha sessão de recuperação do grub:

error: file not found
grub recovery> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
grub recovery> ls
(hd0) (hd0,msdos3) (hd0,msdos1) (hd1) (hd1,msdos5) (hd1,msdos2) (hd1,msdos1)
grub recovery> ls $prefix

error: file not found
grub recovery> 

então eu usei 'ls' cmd em poucos caminhos, os resultados são estranhos (eu acho):

grub recovery> ls (hd0,msdos1)/boot

grub recovery> ls (hd0,msdos1)/boot/grub

error: file not found
grub recovery> ls (hd0,msdos1)/lib

grub recovery> ls (hd0,msdos1)/bin

grub recovery> ls (hd0,msdos1)/sys
./ ../
grub recovery> ls (hd0,msdos1)/sbin

grub recovery> ls (hd0,msdos1)/usr
./ ../ local/ (and some other things)

isso é normal? Eu posso ver / boot / grub e seu conteúdo quando eu montar este HDD externo pelo Live Ubuntu

    
por Tomasz Grabowski 17.06.2012 / 15:53

3 respostas

3

O sintoma de poder ver alguns arquivos, mas não todos em um sistema de arquivos com o grub, geralmente significa que seu BIOS está com bugs e não pode manipular corretamente grandes unidades ( link ). O que acontece é que a BIOS não consegue ler blocos após um determinado ponto na unidade, e assim se seu sistema de arquivos raiz iniciar antes desse limite, mas terminar após esse limite, alguns arquivos estarão acessíveis na inicialização através da BIOS e outros t. A maneira padrão de contornar este problema é criar uma pequena partição / boot / perto do início da unidade, para garantir que tudo o que precisa ser lido através da BIOS, pode ser.

Eu normalmente esperaria que os erros "out of disk" do grub fossem esse o caso, e eu não sei por que não estamos vendo isso. Uma forma de confirmar que o problema é um limite do BIOS é acessar os menus do BIOS e ver o tamanho que ele exibe como sendo, se ele for menor do que o tamanho real, você sabe que o BIOS está com problemas. Outra maneira, se o seu BIOS não listar os tamanhos em nenhum dos seus menus, é rodar "ls -l" no grub e olhar o tamanho listado lá. Infelizmente, você não pode executar "ls -l" a partir do shell de resgate, então você precisaria inicializar a partir de um CD do grub, ou já corrigiu o problema com uma pequena partição / boot /, antes de poder fazer a verificação de dentro do grub.

    
por Jordan Uggla 18.06.2012 / 21:30
1

Altere suas preferências de inicialização para inicializar a partir do disco rígido externo. O computador está tentando encontrar o grub no seu disco rígido interno, mas na verdade está no disco rígido externo. Assim, você terá que alterar suas opções de inicialização para usar esse HDD externo para inicializar como a primeira preferência e, em seguida, o HDD embutido a segunda preferência. Então, se você inserir o seu disco rígido externo, ele irá inicializar automaticamente o Ubuntu e, se você não o fizer, ele inicializará o sistema que você instalou no HDD embutido.

    
por Pranit Bauva 17.06.2012 / 16:20
1

Se você ainda tiver problemas com isso, tente o "Personalizador GRUB"

sudo apt-get grub-customizer

PLUGUE NO SEU PENDRIVE ou USB externo

start it from the gui Administrator tools Admin->grub-Customizer or Q!

Depois de iniciado, ele irá ler o seu script de inicialização similar ao bootinfoscript, então espere alguns segundos para que ele termine, então a janela de informações de inicialização mudará de cor de cinza para normal.

Você pode editar as informações de inicialização de cada unidade como foi encontrada.

para adicionar uma nova entrada, basta pressionar edit- > Adicionar e selecionar Linux. usando o botão tab, verifique se o disco UUID corresponde ao disco que você quer inicializar.

clique em terminar.

clique no botão salvar

verifique se as suas edições exibem manualmente o menu de inicialização para garantir que as edições foram salvas. Estou supondo que o seu carregador de boot do grub esteja em hd0 ou sda0. gato fora

/hd0/boot/grub/grub.cfg # don't edit this file just view or verify it. or run your bootinfoscript again.

se isso não resolver o problema, você poderá ter problemas com o kernel. Eu tive que reinstalar meu Ubuntu-LTS desta forma porque outra instalação de 64 bits do Linux atrapalhou muito o gerenciador de inicialização. Se você estiver usando uma máquina de 64 bits, verifique se a unidade USB / pendrive também é um sistema operacional de 64 bits. Caso contrário, o driver USB irá bifurcar quando tentar carregar a unidade USB.

Foi uma boa idéia que o novo sistema operacional seja mantido pequeno, com cerca de 6-10MB, para que você não atinja os limites máximos de limite em grandes GB-HDs. Você também precisa verificar se todos os drivers USB externos estão instalados antes de executar o grub. Para isso, pressione a tecla de seta para baixo na tela roxa para ver quais módulos estão sendo instalados e quais são os garfos.

Se isso não ajudar você, tente usar um disco de recuperação para pegar os arquivos / kernel que estão faltando. Eu uso bootrecovery-CD (sourceforge: boot-repair-diskx64) ou Linux-remix-CD (www.ubuntu-rescue-remix.org) quando as coisas dão errado com o Grub-Customizer.

    
por Lee 19.07.2013 / 07:56