diff options
Diffstat (limited to '')
-rwxr-xr-x | debian/legacy/upgrade-from-grub-legacy | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/debian/legacy/upgrade-from-grub-legacy b/debian/legacy/upgrade-from-grub-legacy new file mode 100755 index 0000000..9ed829d --- /dev/null +++ b/debian/legacy/upgrade-from-grub-legacy @@ -0,0 +1,44 @@ +#!/bin/bash -e + +if test ! -f /boot/grub/core.img ; then + echo -e "\ncore.img doesn't exist, trying to create it.\n" >&2 + grub-install --no-floppy --grub-setup=/bin/true "(hd0)" > /dev/null +fi + +echo RESET grub-pc/install_devices | debconf-communicate >/dev/null + +# Pretend we're upgrading grub-pc. This will make our postinst DTRT. +DPKG_MAINTSCRIPT_NAME=postinst \ + DPKG_MAINTSCRIPT_PACKAGE=grub-pc \ + UPGRADE_FROM_GRUB_LEGACY=1 \ + /var/lib/dpkg/info/grub-pc.postinst configure dummy-version + +if test ! -f /boot/grub/grub.cfg ; then + echo -e "\nCalling update-grub to generate grub.cfg\n" >&2 + update-grub || cat << EOF +Failed to generate /boot/grub/grub.cfg but GRUB2 has been already installed to +your MBR. +THIS MEANS YOU HAVE CURRENTLY AN UNBOOTABLE SYSTEM. +Either fix the error from update-grub and run $0 again +or install old grub again and run grub-install from it to have again +grub-legacy in your MBR. +EOF +fi + +# These never contain any valuable information, and they aren't useful for +# boot anymore, since we just overwrote MBR/PBR. +rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}} +# Remove marker file used to indicate that grub-install was run rather than +# this script. Since stage2 has been removed, we don't need this any more. +rm -f /boot/grub/grub2-installed + +cat << EOF + +GRUB Legacy has been removed, but its configuration files have been preserved, +since this script cannot determine if they contain valuable information. If +you would like to remove the configuration files as well, use the following +command: + + rm -f /boot/grub/menu.lst* + +EOF |