X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=grml-debootstrap;h=c568b06427598e838780e1acf0c0aa831cd530f3;hb=75c3aab479cbd52943c47d7f47122cdf7763c80a;hp=3658d0592fbbef76aae6946874ab532ff39fa319;hpb=af35272c39448d7b94d46a79735d379c688a4174;p=grml-debootstrap.git diff --git a/grml-debootstrap b/grml-debootstrap index 3658d05..c568b06 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -205,8 +205,11 @@ cleanup() { if [ -n "$MNTPOINT" ] ; then if grep -q "$MNTPOINT" /proc/mounts ; then # make sure nothing is left inside chroot so we can unmount it - [ -x "$MNTPOINT"/etc/init.d/ssh ] && "$MNTPOINT"/etc/init.d/ssh stop - [ -x "$MNTPOINT"/etc/init.d/mdadm ] && "$MNTPOINT"/etc/init.d/mdadm stop + for service in ssh mdadm ; do + if [ -x "${MNTPOINT}/etc/init.d/${service}" ] ; then + chroot "$MNTPOINT" "/etc/init.d/${service}" stop + fi + done [ -x "$MNTPOINT"/bin/umount ] && chroot "$MNTPOINT" umount -a >/dev/null 2>&1 @@ -286,8 +289,9 @@ fi # cmdline handling {{{ # source external command line parameter-processing script -if [ -r ./cmdlineopts.clp ] ; then - . ./cmdlineopts.clp +self_dir="$(dirname "$(which "$0")")" +if [ -r "${self_dir}"/cmdlineopts.clp ] ; then + . "${self_dir}"/cmdlineopts.clp elif [ -r /usr/share/grml-debootstrap/functions/cmdlineopts.clp ] ; then . /usr/share/grml-debootstrap/functions/cmdlineopts.clp else @@ -419,7 +423,7 @@ prompt_for_target() AVAILABLE_PARTITIONS=$(LANG=C fdisk -l 2>/dev/null | \ sed 's/*//' | \ grep -v 'Extended$' | \ - gawk -v num=0 -v ORS=' ' '/^\/dev\// {print $1}'; ls /dev/md* 2>/dev/null || true); + gawk -v num=0 -v ORS=' ' '/^\/dev\// {print $1}'; ls /dev/md[0-9]* 2>/dev/null || true); if [ -z "$AVAILABLE_PARTITIONS" ] ; then dialog --title "$PN" --trim \ @@ -430,7 +434,10 @@ prompt_for_target() fi PARTITION_LIST=$(for i in $AVAILABLE_PARTITIONS ; do - echo "$i $(blkid -s TYPE -o value "$i" 2>/dev/null || echo '[no_filesystem_yet]')" + fs="$(blkid -s TYPE -o value "$i" 2>/dev/null)" + [ -n "$fs" ] || fs='[no_filesystem_yet]' + echo "$i" "$fs" + unset fs done) TARGET=$(dialog --title "$PN" --single-quoted --stdout \ @@ -1036,7 +1043,7 @@ prepare_vm() { fi fi - DEVINFO=$(kpartx -av "$TARGET") # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048' + DEVINFO=$(kpartx -asv "$TARGET") # 'add map loop1p1 (253:0): 0 6289408 linear /dev/loop1 2048' if [ -z "${DEVINFO}" ] ; then eerror "Error setting up loopback device." ; eend 1 bailout 1 @@ -1078,7 +1085,14 @@ finalize_vm() { bailout 1 fi - cp "${MNTPOINT}"/usr/lib/grub/i386-pc/* "${MNTPOINT}/boot/grub/" + case "$RELEASE" in + lenny|squeeze|wheezy) + cp "${MNTPOINT}"/usr/lib/grub/i386-pc/* "${MNTPOINT}/boot/grub/" + ;; + *) + cp -a "${MNTPOINT}"/usr/lib/grub/i386-pc "${MNTPOINT}/boot/grub/" + ;; + esac chroot "${MNTPOINT}" grub-mkimage -O i386-pc -p "(hd0,msdos1)/boot/grub" -o /tmp/core.img biosdisk part_msdos ext2 dd if="${MNTPOINT}/tmp/core.img" of="${ORIG_TARGET}" conv=notrunc seek=4 rm -f "${MNTPOINT}/tmp/core.img"