J’ai Debian d’installer sur un disque externe pour mon Macbook Pro. Sur le disque interne il y a macOS et Windows. Quand je démarre le Mac et que le disque externe sur lequel Debian est installé est branché, c’est celui-ci qui se trouve à booter. Pour démarrer Windows ou macOS, je dois garder la touche option enfoncée au démarrage pour pouvoir choisir l’un ou l’autre.
Par contre, je pense que quand je fais une mise à jour de Windows ou de macOS, je perds l’amorce grub. Je dois réinstaller de nouveau par-dessus l’installation précédente de Debian pour pouvoir récupérer celle-ci.
Est-ce que je pourrais transformer ce disque externe en disque EFI pour ne plus dépendre de grub? Je ne sais pas comment faire. Ou est-ce qu’il y aurait un moyen pour que je perde pas grub lors des mises à jour de Windows ou macOS?
Qu’est-ce qui te fait penser cela ? C’est juste une supposition gratuite ou tu as des éléments techniques pour l’appuyer ?
Réinstaller quoi ? GRUB ? Debian ?
Tu veux dire qu’actuellement Debian est amorcé en mode BIOS avec grub-pc ?
Je ne vois pas en quoi transformer l’amorçage du disque en EFI l’affranchirait de GRUB. Il faudrait remplacer grub-pc par grub-efi.
Peut-être, mais pour cela il faudrait commencer par déterminer ce qui se passe exactement. Les informations fournies sont très insuffisantes.
J’ai remarqué que je ne pouvais pas démarrer Debian après avoir fait une mise à jour. Il y a donc une corrélation. C’est la seule hypothèse que j’ai en ce moment. Il se pourrait que la raison soit autre.
Je ne suis pas capable d’installer seulement GRUB avec l’installateur de Debian que j’aie sur une clé USB même si cette option est offerte. Je réinstalle donc Debian par dessus l’installation précédente sans formater le disque de nouveau et à la fin de l’installation GRUB s’installe de nouveau.
Il n’y pas de BIOS car c’est un Mac et le Mac liste les volumes EFI quand on le démarre avec la touche Option enfoncée. Quand je démarre le Mac et que le disque sur lequel se trouve Debian est branché alors, c’est GRUB qui automatiquement lancé et il offre uniquement la possibilité de lancer Debian. Pour démarrer sur macOS ou Windows, je dois tenir la touche Option enfoncée au démarrage pour choisir le volume de démarrage. Debian n’apparaît pas dans les volumes listés quand je tiens cette touche enfoncée. J’assume donc que le disque de Debian n’est EFI car s’il était EFI alors, il y apparaîtrait. Non?
Je ne connais pas les particularités de l’amorçage du Mac, mais je connais assez bien GRUB et les principes de l’amorçage EFI.
Il y a bien d’autres causes possibles que la “perte” de l’amorce. Surtout en mode EFI qui n’utilise pas d’amorce.
Pourquoi pas ?
Il n’y a pas 50 façons d’amorcer avec l’architecture x86 : BIOS ou EFI. Si ce n’est pas l’une, c’est forcément l’autre. Des informations techniques concrètes sont nécessaires. On va commencer par regarder ce que contiennent les disques et quel GRUB est installé :
Tant mieux car moi j’ai beaucoup de difficulté à comprendre. Quand je regarde le contenu des répertoires EFI, je n’y comprends pas grand chose.
C’est possible.
Cette option me force à tout installer de nouveau.
Le résultat des commandes proposées:
root@MBP-de-Pierre:/home/pierre# cat /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>
# / was on /dev/sde2 during installation
UUID=c3f56f25-2f03-40c1-bcb5-abbb60ed9393 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=67E3-17ED /boot/efi vfat umask=0077 0 1
# /home was on /dev/sde5 during installation
UUID=b6801f7e-58db-43d5-897e-107d28d34343 /home ext4 defaults 0 2
# swap was on /dev/sde3 during installation
UUID=197f7752-8b69-4651-8739-95ab711fb3e8 none swap sw 0 0
root@MBP-de-Pierre:/home/pierre# fdisk -l
Disk /dev/sda: 233.8 GiB, 251000193024 bytes, 490234752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2796A6CD-CD74-44AB-A4DB-420D68352333
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 409640 345415903 345006264 164.5G unknown
/dev/sda3 346685440 346718207 32768 16M Microsoft reserved
/dev/sda4 346718208 490233855 143515648 68.4G Microsoft basic data
Disk /dev/sdb: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: E9BA3A0D-E0CD-4A85-B0DF-FC8684366F8B
Device Start End Sectors Size Type
/dev/sdb1 40 409639 409600 200M EFI System
/dev/sdb2 409640 1953262983 1952853344 931.2G Apple Core storage
/dev/sdb3 1953262984 1953525127 262144 128M Apple boot
Disk /dev/sdd: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 70B198E4-221C-49BE-9590-3F2024013187
Device Start End Sectors Size Type
/dev/sdd1 65535 1048559 983025 480M EFI System
/dev/sdd2 1048560 59636849 58588290 28G Linux filesystem
/dev/sdd3 59636850 92928629 33291780 15.9G Linux swap
/dev/sdd4 92928630 94894679 1966050 960M Microsoft basic data
/dev/sdd5 94894680 438659071 343764392 163.9G Linux filesystem
/dev/sdd6 438659072 500117503 61458432 29.3G Microsoft basic data
Partition 1 does not start on physical sector boundary.
Partition 3 does not start on physical sector boundary.
Partition 4 does not start on physical sector boundary.
root@MBP-de-Pierre:/home/pierre# dpkg -l 'grub*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============================================-============================-============================-==================================================================================================
un grub <none> <none> (no description available)
ii grub-common 2.02~beta3-5 amd64 GRand Unified Bootloader (common files)
un grub-coreboot <none> <none> (no description available)
un grub-doc <none> <none> (no description available)
un grub-efi <none> <none> (no description available)
ii grub-efi-amd64 2.02~beta3-5 amd64 GRand Unified Bootloader, version 2 (EFI-AMD64 version)
ii grub-efi-amd64-bin 2.02~beta3-5 amd64 GRand Unified Bootloader, version 2 (EFI-AMD64 binaries)
un grub-efi-ia32 <none> <none> (no description available)
un grub-efi-ia64 <none> <none> (no description available)
un grub-emu <none> <none> (no description available)
ii grub-firmware-qemu 2.02~beta3-5 amd64 GRUB firmware image for QEMU
un grub-ieee1275 <none> <none> (no description available)
un grub-legacy <none> <none> (no description available)
un grub-legacy-doc <none> <none> (no description available)
un grub-linuxbios <none> <none> (no description available)
un grub-pc <none> <none> (no description available)
un grub-xen <none> <none> (no description available)
un grub-yeeloong <none> <none> (no description available)
un grub2 <none> <none> (no description available)
ii grub2-common 2.02~beta3-5 amd64 GRand Unified Bootloader (common files for version 2)
Quelle option ? Il faut sélectionner le mode “rescue” dans le menu initial.
La sortie des commandes confirme que Debian est installé en mode EFI.
Bien qu’une partition EFI soit présente sur le disque de Debian, il utilise la partition EFI d’un des deux autres disques (montée sur /boot/efi). A priori sda1, mais on ne peut pas être sûr sans vérifier les UUID avec blkid ou df car les noms des disques ont pu changer depuis l’installation (le disque de Debian était sde mais est maintenant sdd, probablement parce que la clé USB contenant l’installateur était sdd).
La prochaine étape consiste à faire l’inventaire de l’amorçage EFI.
blkid
df -h
efibootmgr -v
ls /boot/efi/EFI
Si tu pouvais aussi monter les deux autres partitions EFI et regarder leur contenu (juste le répertoire EFI).
C’est quand même celle-là qui est montée par Debian comme on le voit avec df. Mais ce n’est pas son PARTUUID qui est associé à l’entrée EFI “debian”. Les deux partitions EFI sur sda et sdc ont le même UUID, c’est mal. Y aurait-il eu clonage ?
Au passage, comment se fait-il que sdc ne soit pas montré par fdisk et sdb ne soit pas montré par blkid ? Le disque aurait-il changé de nom ?
Excusez-moi d’avoir dit une bêtise. Est-ce que ce clonage aurait été fait par Time Machine? Je ne sais pas car je ne m’occupe pas de disque. C’est Time Machine qui s’en sert au cas où.
Voici le contenu de la partition EFI sur sdc:
└── EFI
///└── debian
//////└── grubx64.efi
Je me rappelle avoir fait certaines manipulation de noms sur sdd. J’ai nommé la partition EFI qui n’avait pas de nom EFI System Partition.
Aucune idée. Je ne connais pas du tout Time Machine. Mais je serais surpris qu’il s’amuse à cloner des partitions de cette façon, avec les risques de confusion d’UUID qui en découlent.
Le contenu de la partition sdc1 est standard pour une partition EFI créée et utilisée exclusivement par Debian. Il faudrait regarder la date des fichiers et répertoires, et comparer avec le contenu de sda1 qui est utilisée dans les entrées de boot EFI de Windows et Debian.
Je ne parle pas de l’étiquette de la partition mais du nom de périphérique du disque attribué par le système (sdX). Ce nom n’est pas forcément stable d’un démarrage à l’autre, l’important est d’être sûr que c’est le même disque grâce à son contenu (UUID, étiquettes…)
Je n’ai pas été capable de changer le UUID sur /dev/sdb1
root@MBP-de-Pierre:/home/pierre# sudo tune2fs /dev/sdb1 -U a365b142-462e-42a5-9698-ce3028d2b01b
tune2fs 1.43.4 (31-Jan-2017)
tune2fs: Numéro magique invalide dans le super-bloc lors de la tentative d'ouverture de /dev/sdb1
/dev/sdb1 contient un système de fichiers vfat étiqueté « EFI »
Voici les dates que j’aie:
root@MBP-de-Pierre:/home/pierre/temp# ls -l --full-time disk # /dev/sda1
total 3
-rwxr-xr-x 1 root root 1820 2017-09-30 21:06:26.000000000 -0400 BOOTLOG
drwxr-xr-x 6 root root 512 2018-01-13 18:10:38.000000000 -0500 EFI
root@MBP-de-Pierre:/home/pierre/temp# ls -l --full-time disk # /dev/sdb1
total 1
drwx------ 3 root root 512 2018-02-23 19:59:54.000000000 -0500 EFI
Normal. tunel2fs n’agit que sur les systèmes de fichiers ext2/3/4. Une partition EFI contient un système de fichiers FAT.
Je ne connais pas de commande permettant de modifier l’identifiant (utilisé comme UUID) d’un système de fichiers FAT, seulement la commande dosfslabel pour modifier l’étiquette.
De toute façon il était prématuré de changer l’UUID d’une partition avant d’avoir suffisamment d’informations.
Le contenu de la racine des partition EFI est insuffisant, il faut au moins le contenu des répertoires EFI/ et EFI/debian/. Et pas besoin des horodatages à la microseconde près qui ne font qu’alourdir l’affichage. La précision de l’horodatage affiché par ls -l suffit largement.
Je ai copié EFI/debian dans la partition EFI du disque sur lequel se trouve Debian mais macOS ne voit toujours pas ce disque démarrage quand je maintiens la touche Option enfoncée. Je ne sais pas quoi faire pour qu’il apparaisse.
J’ai trouvé une solution intéressante à mon problème. J’ai installé eEFInd en téléchargeant l’image et en la copiant sur un clé USB. Si je démarre le Mac avec la touche option enfoncée, je peux choisir la clé USB comme disque de démarrage et le menu d’eEFind apparaît en listant mon disque Debian. Je peux employer cette méthode pour démarrer sur Debian sans changer quoi que ce soit sur le disque interne de démarrage du Mac.
Merci de votre attention PascalHambourg. Ce fut très apprécié.