This is a proposal on how backup/uninstall should work. I have considered the issue for a while. The issue consists of (1) when a backup should be made, (2) when an uninstall operation should be done, (3) if these should be automatic, and (4) how these should work precisely.
Things are complicated, because the user may install GRUB multiple times, even with different device maps, even into different drives. You must not forget that the user may replace a drive with another. So I think it is the easiest to allow the user to have at most one backup, and that uninstall and backup operations are done before install automatically. Here is pseudo code: if backup is present do uninstall remove backup end do backup do install The next question is what are required to ensure the integrity of the uninstall operation. An original boot sector is essential, naturally. The device map file used at the installtation time is also required, because the user may modify the default device map file, after installing GRUB. The information on the device into which GRUB was installed is necessary. I thought those three files were sufficient at first glance, but if the user replaces the installed drive with another, what happens? Thus, a check is required to make sure that the boot sector which is about to be restored really contains the installed image. For example, comparing the stage1 used at the installation time with the boot sector. Also, it is questionable if a backup should be made even for floppies. I don't think it should, though. The last question is how uninstall should work. A boot sector consists of a BPB, code, a partition table and a signature, in brief. What parts should be restored? I'm not sure. Since GRUB doesn't overwrite a BPB and a partition table, they may not have to be restored. But GRUB can modify a partition table, so the user might want to restore a partition table as well. In addition, we need to take it into account what should happen when uninstall is impossible (e.g. when no device map file is found). Any comments? Okuji _______________________________________________ Bug-grub mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-grub