80 votes

Comment puis-je changer/convertir un disque MBR d'Ubuntu en GPT, et faire démarrer Ubuntu depuis EFI ?

J'ai récemment mis à niveau mon PC, ma nouvelle carte mère (ASUS M5A99X EVO) utilise l'UEFi au lieu de l'option MBR normale.

J'ai une installation d'Ubuntu 11.10 que j'ai faite lorsque j'avais mon matériel précédent (MSI MS 7267), Ubuntu seul démarre bien, ainsi que Windows 7, mais Windows 7 utilise un démarrage UEFI (GPT) alors qu'Ubuntu utilise MBR.

J'ai mes systèmes d'exploitation dans des disques séparés, afin que GRUB2 ne soit pas remplacé par le chargeur de démarrage de Windows et vice versa, comme je l'ai dit les deux systèmes d'exploitation démarrent bien tout seuls, mais pour cela je dois déconnecter un disque, dans ce cas le disque Ubuntu, car il empêche Windows de se charger.

Maintenant, ma question est la suivante : comment puis-je changer/convertir le lecteur d'Ubuntu pour qu'au lieu d'utiliser MBR, il utilise GPT et permette à Windows de démarrer ?

De préférence sans réinstaller l'ensemble du système ni perdre de données.

Et si je devais effacer le disque, comment puis-je installer Ubuntu en mode GPT, UEFI, quel qu'il soit ?

J'ai utilisé gdisk pour convertir de MBR à GPT, mais maintenant Ubuntu ne peut pas démarrer semble comme Grub ne démarre pas.

J'ai réinstallé le système d'exploitation, et le disque est maintenant GPT par défaut. grup-pc est toujours utilisé à la place de grub-efi .

Comment puis-je faire démarrer Ubuntu à partir d'EFI ?

133voto

Portablejim Points 2730

Table des matières :

  1. Terminologie
  2. Convertir
  3. Configuration (+ Dual boot)

Terminologie

BIOS = Système d'entrée/sortie de base

(U)EFI = Extensible Firmware Interface (unifiée)

MBR = Master Boot Record

GPT = Table de partition GUID

UEFI / EFI / BIOS = interface de microprogramme

MBR / GPT = Comment l'ordinateur sait (par disque dur) quelles partitions se trouvent sur le disque et comment démarrer à partir de celles-ci.

UEFI / BIOS

A interface de firmware est la façon dont le microprogramme (le logiciel à l'intérieur du appareils) et le système d'exploitation interagissent. Il initialise le matériel, puis exécute le système d'exploitation et s'assure que les pilotes du système d'exploitation peuvent exploiter le matériel.

Le BIOS a été l'interface habituelle des microprogrammes qui ont été utilisés. L'UEFI est une interface plus récente qui présente plusieurs caractéristiques, comme la rapidité, l'interface graphique et la possibilité de démarrer la carte réseau et d'obtenir une adresse IP. et la possibilité de démarrer la carte réseau et d'obtenir une adresse IP. L'UEFI remplace l EFI. (Ceux qui ont développé l'EFI ont vu que d'autres faisaient quelque chose de similaire. et les ont rejoints, en apportant les idées de l'EFI avec eux. Ceci est ensuite devenu l'UEFI).

Un BIOS exige que le chargeur d'amorçage se trouve au début du disque, alors qu'un UEFI utilise une partition pour cela et peut choisir parmi plusieurs chargeurs de démarrage à utiliser.

MBR / GPT + Grub

Le site MBR est une section de code au début du disque qui contient un chargeur de démarrage (pour le BIOS). (pour le BIOS), ainsi que la carte de partition et un identifiant de disque unique.

Pour installer Grub sur un disque avec un MBR, Grub place un petit programme dans le MBR pour charger le reste de Grub depuis une autre partie du disque. (Ceci est fait parce que le MBR est trop petit pour contenir tout Grub). L'espace qui est choisi est l'espace entre le MBR et la première partition, qui existe généralement.

GPT est une norme pour la façon dont les partitons sont spécifiées. Il dispose d'un MBR "protecteur". protecteur", mais il ne sert qu'à permettre aux ordinateurs basés sur le BIOS de démarrer et d'empêcher d'empêcher les outils qui ne connaissent que le MBR d'essayer de détruire GPT. Il peut avoir

(La façon dont GPT est traité dépend de l'utilisation d'un BIOS (ou d'un système UEFI en mode d'émulation de BIOS) ou d'un système UPS. en mode d'émulation BIOS) ou UEFI. Je me concentrerai sur l'UEFI dans le cadre de cette question).

Les chargeurs de démarrage des systèmes d'exploitation sont stockés dans une partie appelée Système EFI. Partiton, qui est formatée (généralement) avec FAT32. C'est là que Grub est installé.

Convertir

D'abord...

Nous jouons avec la table de partition, donc la sécurité garantie n'est pas possible. C'est une opération risquée. Toutefois, cette méthode ne doit pas entraîner de perte de données.

D'autres sont tombés dessus : Ne pas utiliser sur les Apple Macs.

Maintenant...

Vous devrez le faire sur un CD live (ou une autre installation linux installée). sur un disque différent).

Lorsqu'il s'agit de disques GPT, nous devons utiliser un programme qui tient compte de GPT. GPT fdisk' est un bon outil à utiliser et c'est ce que je vais utiliser. Il peut s'appeler gptfdisk o gdisk selon la distribution (Ubuntu l'appelle gdisk ). Parted (et Gparted) est également compatible avec GPT, et peut donc être utilisé en toute sécurité avec des disques GPT.

Pour convertir, vous devez :

  1. Redimensionnez les partitions pour les adapter aux données GPT et à la partition système EFI.
  2. Convertir le disque et ajouter des partitions
  3. Installez Grub sur la partition système EFI.

1) Redimensionner la partition

Utilisez parted (ligne de commande) ou gparted (GUI) pour redimensionner la première et la dernière partition. La première partition devrait avoir environ 200MiB avant elle, et la dernière partition devrait avoir 1MiB à 2MiB (l'un ou l'autre fera l'affaire) enlevé à la fin. partition devrait avoir 1MiB à 2MiB (l'un ou l'autre fera l'affaire) enlevé à la fin.

2) Convertir le disque

Exécuter

gdisk /dev/sdx

changer le dispositif que vous voulez convertir est /dev/sdx .

Il devrait vous dire qu'il va convertir la table de partiton.

GPT fdisk (gdisk) version 0.6.14

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************

Command (? for help): 

Ajoutez maintenant une nouvelle partition, de type 'système EFI'. Il devrait trouver l'espace libre libre au début (je suggère un numéro de secteur bas comme 34) et utiliser utiliser automatiquement tout l'espace libre. Les exemples utilisent une clé USB de 4Go avec une partition déjà présente, redimensionnée comme ci-dessus. comme indiqué ci-dessus.

Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}: 
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data    0c01 Microsoft reserved    2700 Windows RE          
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8301 Linux reserved        8e00 Linux LVM           
a500 FreeBSD disklabel     a501 FreeBSD boot          a502 FreeBSD swap        
a503 FreeBSD UFS           a504 FreeBSD ZFS           a505 FreeBSD Vinum/RAID  
a800 Apple UFS             a901 NetBSD swap           a902 NetBSD FFS          
a903 NetBSD LFS            a904 NetBSD concatenated   a905 NetBSD encrypted    
a906 NetBSD RAID           ab00 Apple boot            af00 Apple HFS/HFS+      
af01 Apple RAID            af02 Apple RAID offline    af03 Apple label         
af04 AppleTV recovery      be00 Solaris boot          bf00 Solaris root        
bf01 Solaris /usr & Mac Z  bf02 Solaris swap          bf03 Solaris backup      
bf04 Solaris /var          bf05 Solaris /home         bf06 Solaris alternate se
bf07 Solaris Reserved 1    bf08 Solaris Reserved 2    bf09 Solaris Reserved 3  
bf0a Solaris Reserved 4    bf0b Solaris Reserved 5    c001 HP-UX data          
c002 HP-UX service         ef00 EFI System            ef01 MBR partition scheme
ef02 BIOS boot partition   fd00 Linux RAID            
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'

Vous devriez maintenant avoir la partition EFI.

Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1          421888         7829503   3.5 GiB     0700  Linux/Windows data
   2            2048          421887   205.0 MiB   EF00  EFI System

Puis sortir gdisk

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.

Utilisez maintenant Gparted (ou la ligne de commande mkfs.vfat -F 32 /dev/partition ) pour formater la partition en FAT32.

3) Installer Grub

Je ne l'ai pas testé moi-même, mais j'ai moins de garanties que la partie précédente.

Je ne suis pas sûr de cette étape, donc je vais supposer qu'en utilisant Instructions de l'OFRA :

Pour passer à Grub-efi, il faudrait

  1. Trouvez votre partition EFI ; montez-la dans /boot/efi. Ajoutez ceci au fichier /etc/fstab¹.
  2. Installer le paquet Grub-efi
  3. Changez la priorité de démarrage du BIOS de UEFI et Legacy à UEFI seulement (ou une option similaire).

Vous devriez travailler sur la version de Grub-efi à installer avec

ioreg -l -p IODeviceTree | grep firmware-abi

S'il est écrit EFI32 installer le grub-efi-ia32 s'il est indiqué EFI64 installer le grub-efi-amd64 paquet. Vous pouvez installer les paquets avec

sudo apt-get install <package name>

Cela ne fonctionnera probablement que si vous avez démarré en mode EFI.

Si cela ne fonctionne pas, vous pouvez essayer ces Instructions étape par étape (sous la rubrique "Installer GRUB2 dans les systèmes (U)EFI") une fois que grub-efi est installé.

Configuration (+ Dual Boot)

Si les instructions de RAOK fonctionnent, vous devriez pouvoir ajouter la ligne suivante à /etc/grub.d/40_custom

menuentry "Windows 7" {
        set root='(hd0,gpt1)'
        chainloader /EFI/microsoft/bootmgfw.efi
}

Il suppose que Windows est reconnu comme hd0 par Grub. Il peut être nécessaire de le modifier à hd1 pour pouvoir travailler.

Exécutez maintenant

update-grub

pour mettre à jour le fichier de configuration.

Références et lectures complémentaires

J'ai utilisé plusieurs sources.

9voto

Matthew Schinckel Points 15596

Cette réponse est incomplète ; je n'ai pas testé tout cela. Il est peu probable que cela mange vos données, mais vous êtes prévenus !

Ce que je pense, c'est que votre BIOS démarre de préférence à partir de l'ancien MBR, ce qui fait que ce pauvre vieux Windows 7 UEFI est négligé.

L'une des bonnes choses de l'UEFI est que vous ne devriez plus avoir à vous soucier de l'écrasement de Grub par Windows ; ils devraient tous deux coexister gentiment sur la partition EFI. Une option serait donc de passer à grub-efi . Note : Je ne suis pas sûr que grub-efi comprend les partitions de style MSDOS ; I piense en il le fait. Si ce n'est pas le cas, le démarrage échouera, et vous aurez besoin d'un LiveCD pour récupérer. En fait, ayez quand même un LiveCD à portée de main !

Pour passer à grub-efi vous voudriez

  1. Trouvez votre partition EFI ; montez-la dans /boot/efi . Ajouter ceci à /etc/fstab ¹
  2. Installer le grub-efi paquet
  3. Changez la priorité de démarrage du BIOS de UEFI and Legacy a UEFI only (ou une option similaire)

Ce devrait vous laisser avec une installation Ubuntu fonctionnant sous UEFI. Si ce n'est pas le cas, démarrez votre fidèle LiveCD (ou le CD d'installation alternatif d'Ubuntu - l'option "Réparer un système cassé" est ce que vous recherchez), chrootez sur votre système, et installez grub-pc encore.


¹ : Plus de détails pour cette étape : Vous devez trouver ce que le noyau Linux appelle votre partition système EFI. Ce sera quelque chose comme /dev/sda2 , /dev/sdb3 ou autre². Vous devrez ensuite faire le /boot/efi et ajoutez une ligne à /etc/fstab . Si votre partition EFI est /dev/sdb3 vous devez alors ajouter la ligne suivante :

/dev/sdb3    /boot/efi    vfat    defaults    0    1

Une fois que vous avez lancé sudo mount /boot/efi vous devriez alors trouver que /boot/efi contient un EFI avec un sous-répertoire pour Windows 7.


² : Puisque vous avez plusieurs disques durs, ce serait une bonne idée de trouver l'UUID de la partition, car il sera stable en cas d'ajout ou de retrait de disques durs, alors que l'UUID de la partition est stable en cas d'ajout ou de retrait de disques durs. /dev/sda2 Il n'est pas garanti que le nom ne changera pas. Cela peut être fait après que vous ayez fini de configurer tout le reste, cependant.

Vous pouvez trouver l'UUID en regardant dans /dev/disk/by-uuid . Par exemple, j'obtiens :

$ ls /dev/disk/by-uuid -lah
total 0
drwxr-xr-x 2 root root 100 Dec  5 09:12 .
drwxr-xr-x 6 root root 120 Dec  5 09:12 ..
lrwxrwxrwx 1 root root  10 Dec  5 09:12 27fae347-4c7f-45cb-92d6-5f3d410599a1 -> ../../sda3
lrwxrwxrwx 1 root root  10 Dec  5 09:12 4405-64C8 -> ../../sda1
lrwxrwxrwx 1 root root  10 Dec  5 09:12 5243e250-8da5-4fea-aa63-61466022661d -> ../../dm-0

Dans mon cas, je sais /dev/sda1 est ma partition système EFI, donc j'ai

UUID=4405-64C8  /boot/efi       vfat    defaults        0       1

dans mon /etc/fstab .

3voto

David Grant Points 8477

J'ai mes systèmes d'exploitation dans des disques séparés, afin que GRUB2 ne soit pas remplacé par le chargeur de démarrage de Windows et vice versa.

C'est l'idéal, vous avez donc toutes les chances d'avoir au moins une partition primaire libre dans la table de partition.

Maintenant, ma question est la suivante : comment puis-je changer/convertir le lecteur d'Ubuntu pour qu'au lieu d'utiliser MBR, il utilise GPT et permette à Windows de démarrer ?

Vous n'avez pas besoin de convertir MBR en GPT pour effectuer un démarrage UEFI, il suffit de créer une partition FAT primaire, d'installer le programme grub-efi-amd64-bin et suivez les instructions dans Ajouter un ESP à une installation existante avec MBR qui devrait fonctionner avec les versions actuelles d'Ubuntu.

1voto

John Points 11

Pour compléter La réponse de Portablejim (qui m'a vraiment aidé pour la conversion de MBR en GPT, merci !), vous pouvez utiliser Réparation des bottes pour réinstaller Grub. Il a fonctionné comme un charme pour réparer mon démarrage après avoir échoué à compléter l'étape 3, et une fois de plus lorsque l'installation de Windows 10 a fait disparaître l'option de démarrage linux.

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