Bon allez j'ai un peu de temps 🙂
Alors en gros je verrais bien :
SAUVEGARDE AUTOMATIQUE
1) modifier Ubiquity pour :
1.1) qu'il garde en mémoire (dans une variable) automatiquement et silencieusement un backup des 63 secteurs actuels
1.2) puis qu'il lance l'ubiquity actuel
1.3) puis si Ubuntu a bien été installé il copie le backup dans le dossier /boot de l'Ubuntu installé, sous la forme d'une ligne tableau avec 4 colonnes :
| UUID_de_la_partition_où_a_été_installé_ubuntu | date | distro_et_version | contenu du backup |
1.4) puis il scanne les autres partitions et s'il trouve des tableaux de backups plus anciens il les met dans un tableau de type :
| distro_et_version1 | installé_sur_partition1 | installé_le_date1 | contenu du backup1 |
| distro_et_version2 | installé_sur_partition2 | installé_le_date2 | contenu du backup2 |
| distro_et_version3 | installé_sur_partition3 | installé_le_date3 | contenu du backup3 |
Remarque : la ligne 1 correspond au backup le plus ancien, on ajoute les autres backups a la suite au fur-et-a-mesure. Donc si on restaure le backup1 on restaure le MBR windows OEM. Si on restaure le backup2 on restaure le GRUB donnant accès à Windows et la distro1. Si on restaure le backup3 on restaure le GRUB donnant accès à Windows et aux distro1 et distro 2. etc..
1.5) enfin, il met à jour les tableaux des autres partitions de façon à avoir le même tableau partout. (ca c'est une sécurité au cas où une partition serait effacée par erreur)
1.6) par sécurité on fait une copie du tableau dans l'éventuelle partition Windows ou Mac qu'il pourrait trouver (ca je ne sais pas si ca sera accepté vu qu'Ubuntu n'est pas sensé toucher aux autres OS sans l'accord de l'utilisateur, mais ca permet de récupérer le MBR original au cas où la partition Ubuntu venait à être formatée par erreur)
DÉSINSTALLATION D'UBUNTU
2) Ajouter dans le live-CD un menu "Désinstaller Ubuntu" (emplacement à déterminer, exemple ci-dessous)

... qui lancerait le script suivant :
2.1) Boucle de scan de toutes les partitions. Lister toutes les partitions compatible linux (ext2, ext3, ext4, etc..) contenant un dossier /boot, et pour chacun d'elles garder en mémoire celles qui ont un tableau de backup.
2.2) S'il n'existe pas de tableau de backup sur les disques, l'indiquer à l'utilisateur, et fin du script.
2.3) S'il existe un ou plusieurs tableaux de backups (cas du multi-boot linux), vérifier d'éventuelles erreurs (vérifier que les tableaux sont identiques, et que toutes les partitions listées contiennent bien un Ubuntu d'installé), puis on met le tableau en mémoire (RAM), et on le présente à l'utilisateur sous la forme suivante :
Cas le plus fréquent (dual-boot Ubuntu-Windows ou Ubuntu-MacOS ou Ubuntu-autreLinux) :

Cas où plusieurs Ubuntu sont détectés :

2.4) Si l'utilisateur choisit de désinstaller la distro dont la date d'installation est la plus récente :
2.4.1) S'il s'agit du Choix 1 (c'est le cas le plus fréquent vu qu'en général il n'y a qu'une seule installation d'Ubuntu), il suffit de restaurer le contenu du backup1 (sauf la table de partition, mais ca vous le savez deja).
2.4.2) S'il ne s'agit pas du Choix 1 (ca veut dire qu'il y a des installations d'Ubuntu plus anciennes, dans l'exemple ci-dessus cela correspond au Choix 3), on réinstalle GRUB. Ou bien on pourrait réinstaller le backup correspondant (et conseiller de réinstaller GRUB) mais cela poserait un problème mineur suite à 2.5.3 (cas peu fréquent et pas grave du tout : il y aurait juste une entrée inutile dans GRUB suite à 2 désinstallations dans un ordre bien précis)
2.5) Si l'utilisateur choisit de désinstaller une distro dont la date d'installation n'est pas la plus récente (par exemple Choix 1) :
2.5.1) soit on considère que l'utilisateur a fait un multi-boot et donc qu'il n'est pas novice, et on le laisse finir : on lui indique que cette opération restaurera l'amorçage tel qu'il était le 10/12/2010, et donc qu'il lui faudra re-installer un amorceur (GRUB par exemple) s'il veut garder accès aux distros installées ultérieurement.
2.5.2) Soit on est sympa et on redonne accès à toutes les distros de façon transparente en réinstallant GRUB.
2.5.3) Dans ces deux cas (2.5.1 ou 2.5.2), on remplace le contenu du backup suivant par le contenu du backup restauré. Par exemple pour le Choix 1 on remplace contenu du backup2 par contenu du backup1 (cela évite de supprimer le MBR original).
2.6) On propose d'effacer les données rapidement (suppression du home) ou définitivement (par exemple écriture de FFFF dans le home)
2.7) Enfin, on met à jour tous les tableaux de backup restants sur les autres partitions (en y supprimant la ligne correspondant à l'Ubuntu désinstallée)
Et voilà ! Cette proposition permet de :
- désinstaller Ubuntu
- restaurer le MBR Windows même dans les cas tordus (partition Ubuntu formatée par erreur, multi-boot linux, Windows pas installé sur sda)
Et le tout via un menu compréhensible par l'utilisateur lambda (ma grand-mère). :lol:
Et si les autres distros Linux font la même chose en respectant le format du tableau de backup et son emplacement, on pourra désinstaller facilement n'importe-quelle distro Linux !