web-dev-qa-db-fra.com

Comment installer Grub2 sur Macbook Pro avec la commande grub-install sans prévenir des "listes de blocage" nécessitant l'utilisation de --force?

J'ai un Macbook Pro 5,2 et j'ai eu un problème sporadique de devoir réinstaller GRUB après une mise à jour du système. Cela s'est produit avec plusieurs des versions récentes d'Ubuntu, bien que je ne sache pas lesquelles.

De temps en temps, après une mise à jour du système avec le gestionnaire de mises à jour, je ne peux plus démarrer Ubuntu à moins de réparer manuellement l'installation GRUB. Pour ce faire je suis cette procédure:

https://help.ubuntu.com/community/Grub2#Reinstalling_GRUB2

en suivant les instructions sous ChRoot. Cela fonctionne toujours pour réinstaller des choses, mais comme vous pouvez l’imaginer, ce n’est pas ce que je préfère et prend environ une demi-heure à chaque fois.

Un problème que je rencontre en essayant de suivre ces instructions est que, quand je parviens à l'étape 11 où je suis censé exécuter grub-install /dev/sda, il me dit toujours que je ne peux pas exécuter cette commande car elle devrait utiliser des "listes de blocage". "qui sont intrinsèquement instables, et la seule façon de procéder est d’utiliser l’option --force lors de l’installation de grub. J'utilise donc l'option --force et il l'installe, mais le fait que cela ne soit pas conforme aux instructions m'a fait craindre que cela ne soit peut-être à l'origine de l'instabilité évoquée par l'avertissement. Mais cela ne me laissera pas le réinstaller autrement.

En guise d’information d’arrière-plan, je voudrais mentionner en arrière-plan que Refit est installé sur le côté Mac, au cas où il s’agirait d’une source du problème car il est en conflit avec Grub sur le secteur de démarrage ou quelque chose comme ça. Je n'ai pas non plus été en mesure de démarrer OS/X à partir de Grub, même si cela se trouve dans le menu de démarrage de Grub. Il se bloque et ne fait rien si je sélectionne ça. Pour démarrer sous OS/X, je dois utiliser le support matériel sur le Mac en appuyant sur la touche option pendant son démarrage, puis en sélectionnant la partition OS/X, qui démarre ensuite via Refit. Inversement, je ne peux pas démarrer Ubuntu via Refit même si cette partition apparaît dans le menu Refit (en tant que partition Windows car je pense que Refit suppose que tout ce qui n’est pas OS/X est "Windows"). Enfin, voici la sortie de Sudo fdisk -l pour mon système:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util 
fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000001

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          26      204819+  ee  GPT
/dev/sda2   *          26       12972   103986412   af  HFS / HFS+
/dev/sda3           12972       25767   102782192   83  Linux
/dev/sda4           25768       59272   269128912   83  Linux

OSX est installé sur sda2. La racine linux est installée sur sda3 et mon dossier/home est sur sda4. Le processus de double démarrage de Macbook Pro dans son ensemble est un mystère pour moi, aussi j'inclus autant d'informations que possible au cas où certaines d'entre elles seraient utiles. Merci d'avance pour votre aide.

2
Mmmm

Ma première réaction est de noter que vous utilisez un hybride MBR, qui est un hack dangereux et moche que Apple utilise pour simplifier le dual-boot avec OS X. Votre sortie fdisk affiche uniquement le côté MBR du MBR hybride, mais OS X et Linux l'ignorent, privilégiant plutôt le côté GPT. Pour afficher les partitions GPT, vous devez utiliser Parted, gdisk ou un autre utilitaire prenant en charge GPT.

Deuxièmement, l'erreur "blocklists" suggère que vous avez démarré en mode BIOS (à l'aide du système de compatibilité Apple créé pour être utilisé par Windows), mais que votre GPT ne comporte pas de partition de démarrage du BIOS). , que GRUB 2 utilise sur les disques GPT pour stocker une partie de son chargeur de démarrage en mode BIOS. Une façon de contourner cette erreur consiste à modifier vos partitions pour obtenir une partition de démarrage BIOS. Cela peut probablement être fait de manière relativement simple, mais un tel changement pourrait avoir des conséquences imprévues. En particulier, si vous devez redimensionner des partitions avec GParted, il est probable que le MBR hybride sera effacé, ce qui empêchera le système de démarrer Linux dans sa configuration actuelle, car ce dernier active le mode de compatibilité BIOS du Mac. Ce problème peut être corrigé en créant un nouveau MBR hybride.

Comme vous ne semblez pas avoir Windows, vous pouvez envisager de démarrer Linux en mode EFI, ce qui vous évitera d'avoir recours à la couche de compatibilité du BIOS et au MBR hybride. J'ai une page Web à ce sujet: http://www.rodsbooks.com/ubuntu-efi/index.html . En résumé, la procédure d'installation sous Ubuntu consiste à désinstaller grub-pc et à installer et configurer grub-efi ou un autre chargeur d'amorçage compatible EFI. Cette méthode a ses inconvénients, cependant. En particulier, sur certains systèmes, certains matériels (y compris éventuellement du matériel vidéo) peuvent ne pas être activés, ce qui dans des cas extrêmes peut rendre le système inutilisable.

Incidemment, REFIt n'est probablement pas un problème. Il s'agit d'un gestionnaire de démarrage en mode EFI qui n'entre pas en conflit avec les programmes de démarrage en mode BIOS. Cela semble avoir été abandonné, cependant. Mon fork, rEFInd, se charge du développement, ajoute des fonctionnalités et corrige des bugs. Certaines options sont particulièrement utiles pour démarrer Linux, mais certaines ne s’appliquent que si vous avez un noyau 3.3.0 ou ultérieur, qu’aucune version d’Ubuntu ne fournit encore.

3
Rod Smith