Comment puis-je changer / convertir un lecteur MBR Ubuntu en GPT et faire démarrer Ubuntu à partir d'EFI?

55

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 habituelle.

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

J'ai mes systèmes d’exploitation dans des disques distincts, de sorte que GRUB2 ne soit pas remplacé par Windows Bootloader et viceversa, car j’ai dit que les deux systèmes d’exploitation se comportaient bien seuls, mais pour cela je dois déconnecter un disque dans ce cas. Ubuntu lecteur car il empêche Windows de charger.

Maintenant, ma question est la suivante: Comment puis-je modifier / convertir le lecteur Ubuntu afin qu’au lieu d’utiliser MBR, il utilise GPT et permette à Windows de démarrer?.

De préférence sans réinstaller tout le système ou perdre des données.

Et si je devais effacer le disque, comment puis-je installer Ubuntu dans GPT, UEFI, quel que soit le mode?.

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

J'ai réinstallé le système d’exploitation, et le lecteur est maintenant GPT par défaut. Cependant, grup-pc est toujours utilisé au lieu de grub-efi .

Comment puis-je faire démarrer Ubuntu depuis EFI?.

    
posée Uri Herrera 02.12.2011 - 05:12
la source

4 réponses

93

Table des matières:

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

Terminologie

BIOS = Basic Input / Output System

(U) EFI = Interface de micrologiciel extensible (unifiée)

MBR = Master Boot Record

GPT = Table de partition GUID

UEFI / EFI / BIOS = interface du micrologiciel

MBR / GPT = Comment l’ordinateur sait (par disque dur) quelles partitions se trouvent sur lecteur et comment démarrer à partir d'eux.

UEFI / BIOS

Une interface de microprogramme est la manière dont le microprogramme (le logiciel à dispositifs) et le système d'exploitation interagissent. Il initialise le matériel puis s'exécute le système d'exploitation et garantit que les pilotes du système d'exploitation peuvent fonctionner  le matériel.

Le BIOS est l’interface de microprogramme habituelle utilisée. L'UEFI est une interface plus récente dotée de plusieurs fonctionnalités, telles que la rapidité, l’interface graphique et pouvoir démarrer la carte réseau et obtenir une adresse IP. UEFI remplace EFI. (Ceux qui développent EFI ont vu qu’il y avait d’autres et ainsi les a rejoint, apportant les idées d'EFI avec eux. Ceci est alors devenu UEFI).

Un BIOS nécessite que le chargeur de démarrage soit au début du disque, cependant un UEFI utilise une partition pour cela et peut choisir parmi plusieurs chargeurs de démarrage à utiliser.

MBR / GPT + GRUB

Le MBR est une section de code au début du disque qui contient un démarrage. loader (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 charger le reste de GRUB à partir d'une autre partie du disque. (Ceci est fait parce que le MBR est trop petit pour contenir tout GRUB). L'espace choisi est l'espace entre le MBR et la première partition, qui existe généralement.

GPT est un standard pour la spécification des partitons. Il a un 'protecteur' MBR, cependant, ceci est uniquement pour permettre aux ordinateurs basés sur le BIOS de démarrer et d'arrêter outils qui ne connaissent que MBR d'essayer de trash GPT. Il peut avoir

(La manière dont GPT est géré dépend de l’initialisation à l’aide du BIOS (ou du système UEFI) en mode d'émulation BIOS) ou UEFI. Je vais me concentrer sur UEFI en ce qui concerne la question).

Les chargeurs d’amorçage des systèmes d’exploitation sont stockés dans une partition appelée EFI System Partiton, qui est formaté (généralement) avec FAT32. C'est là que GRUB est installé.

Conversion

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. Cependant, la méthode ne doit pas perdre de données.

D'autres viennent avec ceci: Ne pas utiliser sur les Mac Apple.

Maintenant ...

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

En ce qui concerne les disques GPT, nous devons utiliser un programme compatible GPT. 'GPT fdisk' est un bon outil à utiliser et ce que je vais utiliser. On peut l'appeler gptfdisk ou gdisk selon la distribution (Ubuntu l'appelle gdisk ). Parted (et Gparted) est également compatible GPT, donc peut être utilisé «en toute sécurité» avec les disques GPT.

Pour convertir, vous devez:

  1. Redimensionnez les partitions en fonction des données GPT et de la partition système EFI.
  2. Convertissez le disque et ajoutez 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 le premier et le dernier cloison. Le premier partion devrait avoir environ 200MiB avant et le dernier partition devrait avoir 1MiB à 2MiB (soit le fera) retiré de la fin.

2) Convertir le disque

Exécuter

gdisk /dev/sdx

changer le périphérique que vous souhaitez convertir est /dev/sdx .

Il devrait vous dire qu’il convertira la table de partition.

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): 

Maintenant, ajoutez une nouvelle partition, ce qui en fait le type "EFI system". Il devrait trouver le libre espace au début (je suggère un nombre de secteur faible comme 34) et utiliser automatiquement tout l'espace libre. Les exemples utilisent une clé USB de 4 Go avec 1 partition déjà présente, redimensionnée comme 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

Ensuite, quittez 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 ) pour formater la partition en FAT32.

3) Installez GRUB

Cela vient avec moins d’assurance que la partie précédente n’a pas été testée moi-même.

Je ne suis pas sûr de cette étape, alors je devine en utilisant les instructions de RAOF :

  

Pour passer à grub-efi, vous voulez

     
  1. Trouvez votre partition EFI; montez-le dans / boot / efi.Ajoutez ceci à / etc / fstab¹
  2.   
  3. Installez le paquet grub-efi
  4.   
  5. Basculez votre priorité d’initialisation du BIOS de UEFI et Legacy sur UEFI uniquement (ou une option similaire)
  6.   

Vous devriez déterminer quelle version de grub-efi installer avec

ioreg -l -p IODeviceTree | grep firmware-abi

S'il indique EFI32 installe le package grub-efi-ia32 , s'il dit EFI64 installez le package grub-efi-amd64 . 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 "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 changer à hd1 pour fonctionner.

Maintenant, lancez

update-grub

pour mettre à jour le fichier de configuration.

Références et autres lectures

J'ai utilisé plusieurs sources.

réponse donnée Portablejim 07.12.2011 - 15:20
la source
8

Cette réponse est incomplète; Je n'ai rien testé de cela. Il est peu probable que vous mangiez vos données, mais vous avez été prévenu!

Ce que je suppose, c'est que votre BIOS démarre de préférence à partir d'un ancien MBR, de sorte que l'ancien mauvais UEFI Windows 7 est négligé.

L’un des avantages d’UEFI est que vous ne devriez plus avoir à vous soucier du remplacement de GRUB par Windows; ils devraient coexister bien sur la partition EFI. Une option serait donc de passer à grub-efi . Remarque: Je ne sais pas si grub-efi comprend les partitions de style MSDOS. Je pense que c'est le cas. 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 un LiveCD à portée de la main quand même!

Pour passer à grub-efi , vous voulez

  1. Trouvez votre partition EFI; montez-le en /boot/efi . Ajoutez ceci à /etc/fstab ¹
  2. Installez le package grub-efi
  3. Basculez votre priorité de démarrage du BIOS de UEFI and Legacy à UEFI only (ou une option similaire)

Que devrait vous laisser avec une installation Ubuntu avec démarrage UEFI. Si ce n'est pas le cas, démarrez votre fidèle LiveCD (ou votre CD d'installation alternatif Ubuntu - l'option "Réparer un système défectueux" est ce que vous êtes après ☺), chrootez sur votre système et installez à nouveau grub-pc .

¹: 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 tel². Vous devrez ensuite créer le répertoire /boot/efi et ajouter 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 exécuté sudo mount /boot/efi , vous devriez alors trouver que /boot/efi contient un répertoire EFI , avec un sous-répertoire pour Windows 7.

²: Comme vous avez plusieurs disques durs, il serait peut-être judicieux de trouver l’UUID de la partition, car cela sera stable avec l’ajout / la suppression de disques durs alors que le nom /dev/sda2 ne sera pas garanti. changement. Cela peut être fait après que vous ayez fini de régler tout le reste, cependant.

Vous pouvez trouver l’UUID en consultant /dev/disk/by-uuid . Par exemple, je reçois:

$ 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 que /dev/sda1 est la partition de mon système EFI, donc j'ai

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

dans mon /etc/fstab .

    
réponse donnée RAOF 02.12.2011 - 07:28
la source
2
  

J'ai mes systèmes d’exploitation dans des lecteurs distincts, de sorte que GRUB2 ne soit pas remplacé par Windows Bootloader et viceversa

C'est idéal, de sorte que vous avez probablement au moins une partition principale libre dans la table de partition.

  

Maintenant, ma question est la suivante: comment puis-je modifier / convertir le lecteur d'Ubuntu afin 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, créez simplement une partition FAT principale, installez le package grub-efi-amd64-bin et suivez les instructions de Ajoutez un ESP à une installation existante avec MBR qui devrait fonctionner avec les versions actuelles d'Ubuntu.

    
réponse donnée LiveWireBT 27.01.2016 - 10:40
la source
0

Pour compléter la réponse de Portablejim (ce qui m'a vraiment aidé à convertir du MBR au format GPT, merci!), vous pouvez utiliser Boot-Repair pour réinstaller grub. Cela a fonctionné comme un charme pour réparer mon démarrage après avoir échoué à terminer l'étape 3, et encore une fois lorsque l'installation de Windows 10 a fait disparaître l'option de démarrage Linux.

    
réponse donnée John 28.11.2017 - 00:36
la source

Lire d'autres questions sur les étiquettes