45 lines
1.6 KiB
Bash
Executable File
45 lines
1.6 KiB
Bash
Executable File
#!/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
|