X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=72ff57d0948d2b2f8ad30bfbab1fb8911abf3629;hp=7edc29b31fe259831dd95a5e6dbbc662d4df82bd;hb=e49533949a1777148b5293ca8594413416b786de;hpb=190788f7894ad368ea24d27b8acc2cef7db692d4 diff --git a/grml-debootstrap b/grml-debootstrap index 7edc29b..72ff57d 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -11,7 +11,7 @@ set -e # exit on any error # variables {{{ PN="$(basename $0)" -VERSION='0.33' +VERSION='0.35' MNTPOINT="/mnt/debootstrap.$$" # inside the chroot system locales might not be available, so use minimum: @@ -57,15 +57,17 @@ Configuration options: /etc/debootstrap/config -d, --confdir Place of config files for debootstrap, defaults to /etc/debootstrap - --packages[=] Install packages defined in specified list file. - --debconf[=] Pre-seed packages using specified pre-seed db file. + --packages Install packages defined in specified list file. + --nopackages Skip installation of packages defined in + /etc/debootstrap/packages + --debconf Pre-seed packages using specified pre-seed db file. --keep_src_list Do not overwrite user provided apt sources.list. --hostname Hostname of Debian system. --password Use specified password as password for user root. --bootappend Add specified appendline to kernel whilst booting. --chroot-scripts Execute chroot scripts from specified directory. - --pre-scripts[=] Execute scripts from specified directory (before chroot-scripts). - --scripts[=] Execute scripts from specified directory (after chroot-scripts). + --pre-scripts Execute scripts from specified directory (before chroot-scripts). + --scripts Execute scripts from specified directory (after chroot-scripts). Other options: @@ -140,6 +142,7 @@ fi [ "$_opt_interactive" ] && INTERACTIVE=1 [ "$_opt_config" ] && CONFIGFILE=$_opt_config [ "$_opt_packages_set" ] && PACKAGES='yes' +[ "$_opt_nopackages" ] && PACKAGES='' [ "$_opt_debconf_set" ] && DEBCONF='yes' [ "$_opt_scripts_set" ] && SCRIPTS='yes' [ "$_opt_pre_scripts_set" ] && PRE_SCRIPTS='yes' @@ -207,7 +210,7 @@ prompt_for_target() fi PARTITION_LIST=$(for i in $(echo $AVAILABLE_PARTITIONS) ; do - echo "$i $(vol_id --type $i 2>/dev/null || echo [no_filesystem_yet])" + echo "$i $(blkid -s TYPE -o value $i 2>/dev/null || echo [no_filesystem_yet])" done) TARGET=$(dialog --title "$PN" --single-quoted --stdout \ @@ -388,7 +391,7 @@ AVAILABLE_PARTITIONS=$(LANG=C fdisk -l 2>/dev/null | \ gawk -v num=0 -v ORS=' ' '/^\/dev\// {print $1}') [ -n "$AVAILABLE_PARTITIONS" ] || echo "FIXME: no partitions available?" PARTITION_LIST=$(for i in $(echo $AVAILABLE_PARTITIONS) ; do - echo "$i $(vol_id --type $i 2>/dev/null || echo [no_filesystem_yet]) off" + echo "$i $(blkid -s TYPE -o value $i 2>/dev/null || echo [no_filesystem_yet]) off" done) dialog --title "$PN" --separate-output \ @@ -758,8 +761,10 @@ debootstrap_system() { if grep -q "$MNTPOINT" /proc/mounts || [ -n "$DIRECTORY" ] ; then einfo "Running $DEBOOTSTRAP $DEBOOTSTRAP_OPT for release ${RELEASE}${ARCHINFO} using ${MIRROR}${ISO}" if [ -n "$MIRROR" ] ; then + einfo "Executing: $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $MIRROR" $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $MIRROR else + einfo "Executing: $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $ISO" $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $ISO fi eend $? @@ -791,6 +796,7 @@ preparechroot() { [ -n "$ROOTPASSWORD" ] && echo "ROOTPASSWORD=$ROOTPASSWORD" >> $CHROOT_VARIABLES [ -n "$TARGET" ] && echo "TARGET=$TARGET" >> $CHROOT_VARIABLES [ -n "$TARGET_UUID" ] && echo "TARGET_UUID=$TARGET_UUID" >> $CHROOT_VARIABLES + [ -n "$RM_APTCACHE" ] && echo "RM_APTCACHE=$RM_APTCACHE" >> $CHROOT_VARIABLES cp $VERBOSE $CONFFILES/chroot-script $MNTPOINT/bin/chroot-script chmod 755 $MNTPOINT/bin/chroot-script @@ -920,18 +926,21 @@ grub_install() { return 0 fi + if ! [ -x "$(which grub-install)" ] ; then + echo "Error: grub-install not available. (Error while installing grub package?)" + return 1 + fi + if [ -n "$SELECTED_PARTITIONS" ] ; then # using sw-raid for device in $SELECTED_PARTITIONS ; do GRUB="${device%%[0-9]}" einfo "Installing grub on ${GRUB}:" - [ -x /usr/sbin/grub-install ] && GRUBINSTALL="/usr/sbin/grub-install --no-floppy" || GRUBINSTALL="/sbin/grub-install --no-floppy" - $GRUBINSTALL --root-directory="$MNTPOINT" "$GRUB" + grub-install --no-floppy --root-directory="$MNTPOINT" "$GRUB" eend $? done else einfo "Installing grub on ${GRUB}:" - [ -x /usr/sbin/grub-install ] && GRUBINSTALL="/usr/sbin/grub-install --no-floppy" || GRUBINSTALL="/sbin/grub-install --no-floppy" - $GRUBINSTALL --root-directory="$MNTPOINT" "$GRUB" + grub-install --no-floppy --root-directory="$MNTPOINT" "$GRUB" eend $? fi } @@ -985,6 +994,12 @@ done # }}} # finalize {{{ +if [ -n "$ISODIR" ] ; then + einfo "Unmounting Debian image loopback from $MNTPOINT/$ISODIR." + umount "$MNTPOINT/$ISODIR" + eend $? +fi + einfo "Removing ${CHROOT_VARIABLES}" ; rm "$CHROOT_VARIABLES" ; eend $? einfo "Removing ${STAGES}" ; rmdir "$STAGES" ; eend $?