5 votes

Grub ne parvient pas à s'installer - core.img 'exceptionnellement grand'.

En essayant de ressusciter mon vieux routeur (un peu rouillé) dont le disque système (carte CF) avait échoué (probablement parce que j'ai négligé de régler Ubuntu correctement pour ce type de support), j'ai voulu profiter de l'occasion pour installer le serveur 12.04 en utilisant BTRFS pour toute la carte CF. BTRFS est censé être mieux adapté aux disques flash et je me suis dit que ce serait une bonne idée. J'ai donc échangé la carte CF défectueuse avec une nouvelle et j'ai démarré à partir du CD du serveur 12.04.

Bien que l'installation ait été douloureusement lente ( > 3 heures), j'avais déjà lu que c'était un problème connu lors de l'utilisation de BTRFS sur des disques flash, donc je ne me suis pas trop inquiété.

Cependant, lorsque le processus d'installation a été enfin au moment où Grub allait être installé, j'ai eu l'erreur suivante :

Unable to install GRUB in /dev/sda
Executing 'grub-install /dev/sda' failed.

This is a fatal error.

C'est ce que j'ai vu quand je suis revenu à TTY4 :

grub-installer: info: Installing grub on '/dev/sda'
grub-installer: info: grub-install supports --no-floppy
grub-installer: info: Running chroot /target grub-install --no-floppy --force "/dev/sda"
grub-installer: /usr/sbin/grub-setup: warn:
grub-installer: 
grub-installer: Your core.img is unusually large. It won't fit in the embedding area.
grub-installer: .
grub-installer: /usr/sbin/grub-setup: warn:
grub-installer: 
grub-installer: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However blocklists are UNRELIABLE and their use is discouraged.
grub-installer: .
grub-installer: /usr/sbin/grub-setup: error:
grub-installer: 
grub-installer: cannot read '/@/boot/grub/core.img' correctly
grub-installer: .
grub-installer: error: Running 'grub-install --no-floppy --force "/dev/sda"' failed.

J'ai alors essayé d'installer Grub sur /dev/sda1 à la place, ce qui a fonctionné sans erreur. Cependant, lorsque je démarre maintenant le système, j'obtiens l'infâme 'Grub Error 17'.

Alors ma question évidente est : comment puis-je réparer cela ? Et s'agit-il d'un bogue dans l'installateur que je dois signaler ? Comme vous pouvez l'imaginer, je préférerais ne pas avoir à passer 3 heures de plus à refaire l'installation complète...

Edit : J'ai jeté un coup d'oeil rapide à la taille de core.img, et c'est 38284 bytes. Si j'ai bien compris, Grub veut le mettre à la toute première position sur le disque, où une minuscule quantité d'espace devrait être disponible avant la première partition. Dans mon cas, cet espace est, si j'ai interprété les données de 'fdisk -l /dev/sda' correctement, seulement 63 x 512 = 32256 octets en taille... pas étonnant que Grub se plaint que core.img ne s'insère pas !

Mais comment se peut-il que le core.img soit si grand ? Est-ce à cause de BTRFS ? Par exemple, le core.img de mon ordinateur portable ne fait que 26052 octets (et il n'utilise pas BTRFS). Comment puis-je le faire tenir, à part en reformatant vers autre chose que BTRFS ?

Edit 2 : Me sentant courageux, j'ai utilisé gparted pour déplacer sda1 un peu vers la droite, pour agrandir l'espace avant la première partition. Après cela, j'ai démarré le CD du serveur 12.04 en mode resque + expert et j'ai essayé d'installer Grub à nouveau. Cette fois, j'ai eu une erreur différente :

grub-installer: /usr/sbin/grub-probe: error:
grub-installer:
grub-installer: cannot find a device for /boot/grub (is /dev mounted?)
grub-installer: .
grub-installer: error: Running 'grub-install --no-floppy --force "/dev/sda"' failed.

Et maintenant ?

2voto

bain Points 10495

Le module Grub+btrfs est trop grand pour l'espace libre dans votre MBR, voir bogue #1059827 - "Les installations non triviales de grub2 ne tiennent plus dans les petites zones d'encastrement". .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X