web-dev-qa-db-fra.com

Comment réparer 'le fichier d'erreur grub introuvable' lors de l'installation de 12.04?

j'essaie d'installer Ubuntu. Je ne sais pas si c'est important, mais j'essaie de l'installer sur un disque dur externe.

En fin de compte, j'ai un disque dur amorçable externe qui affiche uniquement:

error: file not found
grub recovery>

Depuis le début:

  • J'ai téléchargé Ubuntu-12.04-desktop-i386.iso
  • J'ai utilisé LiLi USB Creator (LinuxLive) pour créer une clé USB amorçable à partir de cette image.
  • Ça marche, ça marche
  • J'ai cliqué sur "Essayez Ubuntu", cela fonctionne aussi.

J'ai utilisé GParted pour examiner les pilotes (disques)

Mon disque incorporé principal est vu comme/dev/sda

Mon disque externe attaché en tant que/dev/sdb

Mon PenDrive en tant que/dev/sdc

  • J'ai créé des partitions sur/dev/sdb

  • Partition de poing pour le système (plus de 200GiB)

  • La seconde était déjà là (c'est du xsf, et je ne veux pas y toucher: p)
  • La troisième est la partition étendue, avec 1 partiton locale (10GiB) pour swap

  • J'ai commencé l'installation

  • j'ai choisi "quelque chose d'autre" dans ... je crois que secound screeb
  • puis est sélectionné/dev/sdb comme disque de démarrage
  • pour la première partie de/dev/sdb je mets le système de fichiers ext3, j’ai coché la case "mise en forme", et le chemin de montage est défini sur "/"
  • première partiton logique définie comme partition de swap

Une fois l'installation terminée, j'ai redémarré mon ordinateur. Lorsque je démarre à partir de mon disque principal, tout fonctionne correctement. Mon ancien système d'exploitation, Vista, fonctionne correctement. Lorsque je configure mon BIOS pour qu'il démarre à partir de mon disque externe, je ne reçois que le message suivant:

error: file not found
grub recovery>
  • J'ai essayé de le réinstaller, mais je n'ai pas aidé ...

En désespoir de cause, j’ai essayé de lire un peu sur cette "ligne de commande" de récupération de "grub" et d’expérimenter un peu ... Je ne sais pas si cela a eu un intérêt ou si cela vous donne des informations (remarque, que je ne sais pas ce que je fais: P)

quand j'ai tapé commande:

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

j'ai un message:

unknown filesystem

de même:

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

de même:

insmod ext3

mais je ne reçois aucun message après la commande:

insmod ext2

...

remarquez que je ne sais vraiment pas ce que cette commande fait exactement, mais que je pensais que peut-être si je réinstalle Ubuntu avec un système de fichiers ext2, cela fonctionnera. Je l'ai fait, mais les symptômes sont les mêmes.

Je suis revenu à la version Live d'ubuntu, les répertoires système et fichiers de base semblent être présents sur/dev/sdb1 ... je ne connais absolument pas GRUB. Je ne sais pas non plus quelle est la version de GRUB, j'espère qu'il n'y a qu'une seule version sur ubuntu-12.04-desktop-i386.iso

De l'aide? Thax

===================== edit 17.06.2012 22:05 =================== =====

C'est RESULTS.txt de bootinfoscript

sda est mon disque dur intégré

sdb est un disque dur externe (destination du disque pour Ubuntu)

sDC est PenDrive avec 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

Je dois dire que le script est imprimé sur le 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/".

============== modifier 18.06.2012 18:38 ===============

ok, c'est plus ou moins une copie de ma session de récupération de nourriture:

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> 

alors j'ai utilisé 'ls' cmd sur quelques chemins, les résultats sont étranges (je pense):

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)

est-ce normal? je peux voir/boot/grub et son contenu lorsque je monte ce disque dur externe de Live Ubuntu

6
Tomasz Grabowski

Le symptôme de pouvoir voir certains fichiers mais pas tous sur un système de fichiers avec grub signifie généralement que votre BIOS est bogué et ne peut pas gérer correctement les gros disques ( http://tldp.org/HOWTO/Large-Disk -HOWTO-4.html ). Ce qui se passe, c'est que le BIOS ne peut pas lire les blocs au-delà d'un certain point dans le lecteur. Par conséquent, si votre système de fichiers racine démarre avant cette limite, mais se termine après cette limite, certains fichiers seront accessibles au démarrage via le BIOS et d'autres seront gagnés. 't. La méthode standard pour contourner ce problème consiste à créer une petite partition/boot/près du début du lecteur, afin de garantir que tout ce qui doit être lu dans le BIOS puisse l'être.

Je m'attendrais normalement à des erreurs "hors du disque" de grub si c'était le cas, et je ne sais pas pourquoi nous ne les voyons pas. Une façon de confirmer que le problème est lié à une limite du BIOS consiste à accéder aux menus de votre BIOS et à voir quelle taille indique le lecteur. S'il indique une taille inférieure à la taille réelle, vous savez que votre BIOS est défectueux. Une autre façon, si votre BIOS ne liste aucune taille dans ses menus, est d’exécuter "ls -l" à partir de grub et de regarder la taille indiquée ici. Malheureusement, vous ne pouvez pas exécuter "ls -l" à partir du shell de secours. Vous devez donc démarrer à partir d'un CD grub ou avoir déjà résolu le problème avec une petite partition/boot/avant de pouvoir effectuer la vérification à partir de au sein de la vers.

3
Jordan Uggla

Changez vos préférences de démarrage pour démarrer à partir du disque dur externe. L’ordinateur essaie de trouver du contenu sur votre disque dur intégré, mais c’est dans le disque dur externe. Vous devrez donc modifier vos options de démarrage pour utiliser ce disque dur externe comme première préférence, puis le disque dur intégré comme seconde préférence. Donc, si vous insérez votre disque dur externe, il démarrera automatiquement ubuntu et si vous ne le faites pas, il démarrera le système que vous avez installé sur le disque dur intégré.

1
Pranit Bauva

Si vous avez toujours des problèmes avec cela, essayez le "GRUB Customizer"

Sudo apt-get grub-customizer

BRANCHEZ VOTRE PENDRIVE ou une clé USB externe

démarrez-le à partir de l'interface utilisateur Outils d'administration Admin-> grub-Customizer ou Q!

Une fois démarré, votre script de démarrage ressemblera à bootinfoscript; attendez quelques secondes, puis la fenêtre d’informations sur le démarrage passera de gris à normal.

Vous pouvez ensuite modifier les informations de démarrage pour chaque lecteur tel qu'il a été trouvé.

pour ajouter une nouvelle entrée, appuyez simplement sur Édition-> Ajouter puis sélectionnez Linux. À l'aide du bouton d'onglet, vérifiez que l'UUID du disque correspond au disque à partir duquel vous souhaitez démarrer.

cliquez sur Terminer.

cliquez sur le bouton Enregistrer

vérifiez votre édition manuelle. Consultez le menu d'amorçage pour vous assurer que les modifications ont bien été enregistrées. Je suppose que votre chargeur de démarrage Grub est sur hd0 ou sda0. chat dehors

/hd0/boot/grub/grub.cfg # ne modifiez pas ce fichier, ne faites que l’afficher ou le vérifier. ou exécutez votre bootinfoscript à nouveau.

si cela ne résout pas le problème, vous pourriez avoir des problèmes avec le noyau. Je devais réinstaller Ubuntu-LTS de cette façon, car une autre installation Linux 64 bits traitait trop du chargeur de démarrage. Si vous utilisez un ordinateur 64 bits, vérifiez que le lecteur USB/clé USB est également un système d'exploitation 64 bits. Sinon, le pilote USB se branche lorsqu'il essaie de charger le lecteur USB.

C'était une bonne idée que le nouveau système d'exploitation soit limité à 6-10 Mo afin de ne pas dépasser la limite supérieure des disques durs de grande taille. Vous devez également vérifier que tous les pilotes USB externes sont installés avant l’exécution de grub. Pour ce faire, appuyez sur la flèche vers le bas sur l'écran violet pour voir quels modules sont en cours d'installation et lesquels se terminent.

Si cela ne vous a pas aidé, essayez d'utiliser un disque de secours pour récupérer le noyau/les fichiers manquants. J'utilise bootrecovery-CD (sourceforge: boot-repair-diskx64) ou Linux-remix-CD (www.ubuntu-rescue-remix.org) en cas de problème avec Grub-Customizer.

1
Lee