do not support lilo but just grub
[grml-debootstrap.git] / chroot-script
index 6b5b303..37415f3 100644 (file)
@@ -4,10 +4,10 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Fre Nov 03 12:27:20 CET 2006 [mika]
+# Latest change: Fre Nov 03 14:47:54 CET 2006 [mika]
 ################################################################################
 
 ################################################################################
 
-set -e
+set -e # exit on any error
 
 . /etc/debootstrap/config || exit 1
 
 
 . /etc/debootstrap/config || exit 1
 
@@ -30,7 +30,7 @@ fi
 
 if [ -n "$RECONFIGURE" ] ; then
    for package in $RECONFIGURE ; do
 
 if [ -n "$RECONFIGURE" ] ; then
    for package in $RECONFIGURE ; do
-       dpkg --list $package && dpkg-reconfigure $package || echo "Warning: $package does not exist, can not reconfigure it."
+       dpkg --list $package 1>/dev/null 2>/dev/null && dpkg-reconfigure $package || echo "Warning: $package does not exist, can not reconfigure it."
    done
 fi
 
    done
 fi
 
@@ -62,13 +62,14 @@ if [ -n "$TIMEZONE" ] ; then
    ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
 fi
 
    ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
 fi
 
-if ! [ -f /etc/fstab ] ; then
+# set up /etc/fstab if file is UNCONFIGURED
+if grep -q UNCONFIGURED /etc/fstab ; then
    echo "Setting up /etc/fstab"
    echo "Setting up /etc/fstab"
-cat >> /etc/fstab << EOF
+cat > /etc/fstab << EOF
+$TARGET      /            auto    defaults,errors=remount-ro 0   1
 sysfs          /sys         sysfs   auto                       0   0
 proc           /proc        proc    defaults                   0   0
 sysfs          /sys         sysfs   auto                       0   0
 proc           /proc        proc    defaults                   0   0
-$TARGET      /            auto    defaults,errors=remount-ro 0   1
-# /dev/sda2      none         swap    sw                         0   0
+# /dev/sda2    none         swap    sw                         0   0
 /dev/cdrom     /mnt/cdrom0  iso9660 ro,user,noauto             0   0
 EOF
 fi
 /dev/cdrom     /mnt/cdrom0  iso9660 ro,user,noauto             0   0
 EOF
 fi
@@ -93,83 +94,57 @@ if [ -n "$INITRD" ] ; then
    fi
 fi
 
    fi
 fi
 
-if [ "$BOOTMGR" = 'grub' ] ; then
+if [ -n "$GROOT" ] ; then
    echo "Installing grub"
    echo "Installing grub"
-   if ! [ -f /boot/grub/menu.lst ] ; then
-      # setup grub
-      mkdir /boot/grub
-      cat >> /boot/grub/menu.lst << EOF
-# Boot automatically after 30 secs.
-timeout 30
-
-# By default, boot the first entry.
-default 0
-
-# Fallback to the second entry.
-fallback 1
-
-title           Debian Etch, kernel $KERNELVER (on $ARGET)
-root            (hd0,0)
-kernel          $KERNELIMG root=$TARGET ro
-$GRUBINITRD
-
-# For booting Windows
-# title Windows
-# rootnoverify (hd0,0)
-# makeactive
-# chainloader  +1
-EOF
-   fi
+#   if ! [ -f /boot/grub/menu.lst ] ; then
+#      # setup grub
+#      mkdir /boot/grub
+#      cat >> /boot/grub/menu.lst << EOF
+## Boot automatically after 30 secs.
+#timeout 30
+#
+## By default, boot the first entry.
+#default 0
+#
+## Fallback to the second entry.
+#fallback 1
+#
+#title           Debian Etch, kernel $KERNELVER (on $ARGET)
+#root            (hd0,0)
+#kernel          $KERNELIMG root=$TARGET ro
+#$GRUBINITRD
+#
+## For booting Windows
+## title Windows
+## rootnoverify (hd0,0)
+## makeactive
+## chainloader  +1
+#EOF
+#   fi
 
    # copy stage-files to /boot/grub/
 
    # copy stage-files to /boot/grub/
-   cp -i /usr/lib/grub/i386-pc/* /boot/grub/
+   [ -d /boot/grub/ ] || mkdir /boot/grub
+   cp /usr/lib/grub/i386-pc/* /boot/grub/
 
    # otherwise grub fails with 'Could not find device for /boot/boot: not found or not a block device'
 
    # otherwise grub fails with 'Could not find device for /boot/boot: not found or not a block device'
-   cp /etc/mtab /etc/mtab.old
-   cp /proc/mounts /etc/mtab
+   cp /etc/mtab /etc/mtab.old
+   cp /proc/mounts /etc/mtab
 
    # finally install grub
 
    # finally install grub
-   grub-install $BOOT
+   # grub-install $BOOT
+   update-grub -y
+   sed -i "s/groot=.*/groot=(${GROOT})" /boot/grub/menu.lst
+   update-grub -y
 
    # restore mtab again
 
    # restore mtab again
-   mv /etc/mtab.old /etc/mtab
-fi
-
-if [ "$BOOTMGR" = 'lilo' ] ; then
-   echo "Installing lilo"
-# /usr/share/doc/lilo/examples/conf.sample
-cat > /etc/lilo.conf << EOF
-# This allows booting from any partition on disks with more than 1024 cylinders.
-lba32
-
-# Specifies the boot device
-boot=$BOOT
-
-# Specifies the device that should be mounted as root.
-root=$TARGET
-
-# use Debian on software raid:
-# raid-extra-boot=mbr-only
-
-install=text
-# prompt
-timeout=1
-map=/boot/map
-vga=normal
-
-image=/boot/vmlinuz-2.6.17-grml
-        label="$KERNELVER"
-        #append="...."
-        read-only
-        $LILOINITRD
-EOF
+   # mv /etc/mtab.old /etc/mtab
 fi
 
 # unmount all filesystems in chroot, make sure nothing is left...
 fi
 
 # unmount all filesystems in chroot, make sure nothing is left...
-umount -a
-umount /proc
-umount /proc
-umount -a
+umount -a    1>/dev/null 2>/dev/null || true
+umount /proc 1>/dev/null 2>/dev/null || true
+umount /proc 1>/dev/null 2>/dev/null || true
+umount -a    1>/dev/null 2>/dev/null || true
 
 # finally exit the chroot
 echo "Finished chroot installation, exiting."
 
 # finally exit the chroot
 echo "Finished chroot installation, exiting."