-grub() {
- if [ -z "$GROOT" ] ; then
- echo "Warning: \$GROOT is not defined, will not adjust grub configuration therefore."
- else
- echo "Adjusting grub configuration for use on ${GROOT}."
-
- # copy stage-files to /boot/grub/
- [ -d /boot/grub/ ] || mkdir /boot/grub
- # i386 specific:
- [ -d /usr/lib/grub/i386-pc ] && cp /usr/lib/grub/i386-pc/* /boot/grub/
- # amd64 specific:
- [ -d /usr/lib/grub/x86_64-pc ] && cp /usr/lib/grub/x86_64-pc/* /boot/grub/
- # sarge ships grub files in another directory
- [ "$RELEASE" = 'sarge' ] && cp /lib/grub/i386-pc/* /boot/grub/
-
- # finally install grub
- if [ -x /usr/sbin/update-grub ] ; then
- UPDATEGRUB='/usr/sbin/update-grub'
- else
- UPDATEGRUB='/sbin/update-grub'
- fi
- $UPDATEGRUB -y
-
- # grub1:
- if [ -f /boot/grub/menu.lst ] ; then
- sed -i "s/^# groot=.*/# groot=(${GROOT})/g" /boot/grub/menu.lst
- case "$TARGET" in
- # do NOT use uuid with SW-RAID
- /dev/md*)
- sed -i "s|^# kopt=root=.*|# kopt=root=${TARGET} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
- ;;
- *)
- if [ -n "$TARGET_UUID" ] ; then
- sed -i "s|^# kopt=root=.*|# kopt=root=UUID=${TARGET_UUID} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
- else
- sed -i "s|^# kopt=root=.*|# kopt=root=${TARGET} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
- fi
- ;;
- esac
-
- # not sure why savedefault does not work for me; any ideas?
- sed -i "s/^savedefault.*/# &/g" /boot/grub/menu.lst
- $UPDATEGRUB -y
- fi
-
- # grub2:
- if [ -f /etc/default/grub ] ; then
- # create a copy of the original:
- cp /etc/default/grub /etc/default/grub.orig
-
- case "$TARGET" in
- # do NOT use uuid with SW-RAID
- /dev/md*)
- GRUB_CMDLINE="root=${TARGET} ro ${BOOT_APPEND}"
- ;;
- *)
- if [ -n "$TARGET_UUID" ] ; then
- GRUB_CMDLINE="root=UUID=${TARGET_UUID} ro ${BOOT_APPEND}"
- else
- GRUB_CMDLINE="root=${TARGET} ro ${BOOT_APPEND}"
- fi
- ;;
- esac
-
- cat > /etc/default/grub << EOF
- # Note: this file has been generated by chroot-script of grml-debootstrap.
- # This configuration file is a workaround being necessary as the device.map
- # generated by the live system might not correspond with your harddisk
- # installation.
- #
- # Please restore the original Debian configuration executing the following
- # commands when running your harddisk installation:
- #
- # grub-mkdevicemap
- # mv /etc/default/grub.orig /etc/default/grub
- # update-grub
- #
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
-GRUB_DISTRIBUTOR=Debian
-GRUB_DISABLE_LINUX_UUID=true
-GRUB_CMDLLINE_LINUX="$GRUB_CMDLINE"
-EOF