ESP : Sauvegarde de la partition de démarrage EFI Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

10 nov. 2019, 13:41

Bonjour,

Je me rends compte que je fais assez régulièrement des sauvegardes manuelles de mes partitions système et utilisateur (partclone),
que je conserve précieusement la table de partition GPT obtenue avec les commandes :

Code : Tout sélectionner

# dd if=/dev/sda of=gpt-table.img bs=1 count=A

	avec	A = (128*N) + 1024
			N = nbre de partitions
ou/et :

Code : Tout sélectionner

	
# sgdisk --backup=sda.gpt /dev/sda

Mais que je n'ai pas pensé à sauvegarder la partition ESP de mon disque GPT.


Pour ceux qui n'ont qu'une vague idée de ce qu'est cette partition ESP / EFI
voici ce qu'en dit : Unified Extensible Firmware Interface - Wikipedia
Les systèmes UEFI peuvent accéder aux disques GPT et démarrer directement à partir de ceux-ci,
ce qui permet à Linux d'utiliser les méthodes de démarrage UEFI.

Démarrer Linux à partir de disques GPT sur des systèmes UEFI implique la création d'une partition système EFI (ESP),
qui contient des applications UEFI telles que des bootloaders, des noyaux de système d'exploitation et des logiciels utilitaires.
Une telle configuration est généralement appelée UEFI-GPT.

Il est recommandé pour ESP d'avoir une taille d'au moins 512 MiB
et être formaté avec un système de fichiers FAT32 pour une compatibilité maximale.

Cette partition est montée sur : /boot/efi


Ma question :

Quelle méthode choisir pour la sauvegarde de la partition ESP ?

1. Utiliser Partclone comme pour les autres partitions (ou outil équivalent fsarchiver, clonezilla, ...)
2. Sauvegarder dans une archive les fichiers portés par cette partition.
3. Utiliser DD pour une image (j'ai des doutes quand aux limites)
4. Autre


Merci pour vos avis.
Debian testing/stable - XFCE
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

10 nov. 2019, 16:50

J'ai trouvé une réponse ici → How can I make a backup of an EFI System partition? - Ask Ubuntu

Je traduis et résume :

La "simple" copie du contenu (fichiers) serait suffisante.

P.ex :

$ sudo cp -R /boot/efi /chemin/vers/esp_backup

ou

$ sudo tar cfz /chemin/vers/esp_backup.tar.gz /boot/efi


De plus, le système de fichier FAT32 ne supportant pas le système de permissions de Linux,
pas de soucis à avoir de ce côté.


Autre point intéressant : la possibilité d'une clé USB de secours.

Si l'ESP est sauvegardée sur une clé USB partitionnée en FAT32,
on pourra utiliser cette sauvegarde en cas d'urgence.

Si l'ESP vient à être supprimé et que l'on éteint la machine,
il ne sera plus possible de la redémarrer en l'état.

Dans cette circonstance,
il sera possible d'utiliser la sauvegarde sur clé USB pour démarrer le PC,
à l'une des 2 conditions suivantes :


1. Avoir un chargeur de démarrage de secours sous /EFI/BOOT/bootx64.efi
pour cela :
* copier simplement le contenu de /EFI/debian dans /EFI/BOOT
* renommer shimx64.efi pour SecureBoot ou sinon grubx64.efi en : bootx64.efi


Dans mon cas (1 seul os = debian), j'ai :

Code : Tout sélectionner

# tree /boot/efi/
/boot/efi/
└── EFI
	└── debian
		├── BOOTX64.CSV
		├── fbx64.efi
		├── grub.cfg
		├── grubx64.efi
		├── mmx64.efi
		└── shimx64.efi

2. Support par l'UEFI de la carte-mère du démarrage à partir d'un fichier (les firmwares uefi ne le supportent pas tous)
Si c'est supporté, choisir l'option "boot from file" dans les paramètres UEFI ou dans le gestionnaire de démarrage,
après quoi l'UEFI affiche un outil de sélection de fichiers.
Naviguer jusqu'à /EFI/debian/shimx64.efi (pour la prise en charge de Secure Boot) ou sinon /EFI/debian/grubx64.efi
Debian testing/stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 372
Enregistré le : 05 août 2016, 20:25
Status : Hors ligne

10 nov. 2019, 19:12

dezix a écrit :
10 nov. 2019, 16:50
La "simple" copie du contenu (fichiers) serait suffisante.
Ça dépend de l'objectif de la sauvegarde. Si le but est restaurer des fichiers écrasés ou effacés, ça suffit. Si le système de fichiers de la partition EFI est endommagé au delà de toute possibilité de réparation, il faudra d'abord le reformater avec l'UUID d'origine (ou modifier l'UUID dans /etc/fstab) avant de restaurer les fichiers. Une sauvegarde de type image avec partclone ou autre n'a pas cet inconvénient. dd convient aussi, mais la taille de l'image sera égale à celle de la partition même si son occupation effective est faible.

Note qu'une partition EFI n'est pas forcément en FAT32, elle peut aussi être en FAT12 ou FAT16. Je ne connais pas les spécifications détaillées de l'UEFI dans ce domaine, mais j'ai eu le cas d'un firmware UEFI qui ne reconnaissait pas une partition EFI de petite taille (quelque Mo au plus) si elle était formatée en FAT32 ; il fallait la formater en FAT12 ou FAT16. Bref, j'ai laissé mkdosfs sélectionner le format automatiquement en fonction de la taille de la partition.
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

10 nov. 2019, 19:46

PascalHambourg a écrit :
10 nov. 2019, 19:12
... Si le système de fichiers de la partition EFI est endommagé au delà de toute possibilité de réparation, il faudra d'abord le reformater avec l'UUID d'origine (ou modifier l'UUID dans /etc/fstab) avant de restaurer les fichiers. Une sauvegarde de type image avec partclone ou autre n'a pas cet inconvénient. dd convient aussi, mais la taille de l'image sera égale à celle de la partition même si son occupation effective est faible.
...

Merci pour ce complément.

:023:
Debian testing/stable - XFCE
Avatar du membre
piratebab
Site Admin
Site Admin
Messages : 2941
Enregistré le : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors ligne

14 nov. 2019, 00:25

Trés complet Dezix, ça pourrait même faire une page dans le wiki ..
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

14 nov. 2019, 09:32

piratebab a écrit :
14 nov. 2019, 00:25
Trés complet Dezix, ça pourrait même faire une page dans le wiki ..


HA! HA! HA!... Je m'y attendais un peu :icon_e_geek:

OK, j'ajouterai cette petite contribution au wiki

@+

:006:
Debian testing/stable - XFCE
MicP
Modérateur
Modérateur
Messages : 553
Enregistré le : 16 avr. 2016, 22:14
Status : Hors ligne

15 nov. 2019, 06:47

Bonjour

Compression/décompression du fichier image :

Si le chemin du fichier de périphérique associé à la partition EFI est /dev/sda2
Sauvegarde de la partition EFI et compression du fichier image sauvegardé :

Code : Tout sélectionner

dd if=/dev/sda2 | gzip > efiPartition.img.gz


Et après avoir recréé dans la table des partitions
une partition /dev/sda2 de la même taille que la partition originale,
décompression du fichier image et restauration de la partition EFI :

Code : Tout sélectionner

gunzip -c efiPartition.img.gz | dd of=/dev/sda2
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

15 nov. 2019, 08:38

@MicP

Merci, c'est super !
Debian testing/stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 372
Enregistré le : 05 août 2016, 20:25
Status : Hors ligne

15 nov. 2019, 10:38

Je ne vois pas bien l'intérêt de faire une image complète compressée de la partition EFI avec dd+gzip (ou bzip2, xz...) par rapport à partclone que tu utilises déjà pour sauvegarder d'autres partitions sachant que :
- partclone permet de ne sauvegarder que les blocs utiles de la partition.
- L'efficacité de la compression d'une image de partition complète dépend du contenu des blocs, y compris des blocs non utilisés. S'ils contiennent des données pseudo-aléatoires ou binaires provenant d'anciens fichiers supprimés, la compression sera peu efficace. Pour améliorer l'efficacité de la compression, il faudrait mettre à zéro les blocs non utilisés par exemple en créant un fichier qui remplit tout l'espace libre de la partition de zéros puis en le supprimant :

Code : Tout sélectionner

cp /dev/zero /boot/efi/zerofill.bin && rm /boot/efi/zerofill.bin
Avatar du membre
dezix
Membre
Membre
Messages : 465
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

15 nov. 2019, 10:59

MicP a fourni (je suppose) cette commande pour compléter les options à présenter dans la future page du wiki,
pour qui n'utilise pas partclone.

Je me permettrai juste une remarque :

le fait de modifier le contenu de la partition ne constitue-t-il pas un risque de corruption, avant sauvegarde ?

Personnellement, j'ai déjà opté pour partclone
Debian testing/stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 372
Enregistré le : 05 août 2016, 20:25
Status : Hors ligne

16 nov. 2019, 23:17

dezix a écrit :
15 nov. 2019, 10:59
le fait de modifier le contenu de la partition ne constitue-t-il pas un risque de corruption, avant sauvegarde ?
Comme toute modification.
Répondre