X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=32085c1cd8fe5d4d067cebe201fcb1fa5a9e27dd;hp=1a3cda5f981bb75e3f9d080ce664975b3dd01872;hb=b0134496375e4d413352a8a85895054b035fb6d2;hpb=c570da404b5e378c1ccd85c44f0a2117c8ce76d5 diff --git a/grml-debootstrap b/grml-debootstrap index 1a3cda5..32085c1 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -72,7 +72,7 @@ MNTPOINT="/mnt/debootstrap.$$" [ -n "$POST_SCRIPTS" ] || POST_SCRIPTS='yes' [ -n "$PRE_SCRIPTS" ] || PRE_SCRIPTS='yes' [ -n "$RECONFIGURE" ] || RECONFIGURE='console-data' -[ -n "$RELEASE" ] || RELEASE='stretch' +[ -n "$RELEASE" ] || RELEASE='buster' [ -n "$RM_APTCACHE" ] || RM_APTCACHE='yes' [ -n "$SCRIPTS" ] || SCRIPTS='no' # deprecated, replaced by POST_SCRIPTS [ -n "$SECURE" ] || SECURE='yes' @@ -80,6 +80,7 @@ MNTPOINT="/mnt/debootstrap.$$" [ -n "$TUNE2FS" ] || TUNE2FS='tune2fs -c0 -i0' [ -n "$UPGRADE_SYSTEM" ] || UPGRADE_SYSTEM='yes' [ -n "$VMSIZE" ] || VMSIZE="2G" +[ -n "$GRUB_INSTALL" ] || GRUB_INSTALL='yes' # inside the chroot system locales might not be available, so use minimum: export LANG=C @@ -102,7 +103,7 @@ Bootstrap options: -m, --mirror Mirror which should be used for apt-get/aptitude. -i, --iso Mountpoint where a Debian ISO is mounted to, for use instead of fetching packages from a mirror. - -r, --release Release of new Debian system (default: stretch). + -r, --release Release of new Debian system (default: buster). -t, --target Target partition (/dev/...) or directory where the system should be installed to. -p, --mntpoint Mountpoint used for mounting the target system, @@ -758,15 +759,16 @@ prompt_for_bootmanager() # ask for Debian release {{{ prompt_for_release() { - [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='stretch' + [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='buster' RELEASE="$(dialog --stdout --title "${PN}" --default-item $DEFAULT_RELEASE --menu \ "Please enter the Debian release you would like to use for installation:" \ - 0 50 5 \ + 0 50 6 \ lenny Debian/5.0 \ squeeze Debian/6.0 \ wheezy Debian/7.0 \ jessie Debian/8.0 \ stretch Debian/9.0 \ + buster Debian/10.0 \ sid Debian/unstable)" [ $? -eq 0 ] || bailout } @@ -1135,7 +1137,7 @@ fi # Support for generic release codenames is unavailable. {{{ if [ "$RELEASE" = "stable" ] || [ "$RELEASE" = "testing" ] ; then eerror "Generic release codenames (stable, testing) are unsupported. \ -Please use specific codenames such as lenny, squeeze, wheezy, jessie or stretch." ; eend 1 +Please use specific codenames such as stretch or buster." ; eend 1 bailout 1 fi # }}} @@ -1186,6 +1188,12 @@ set_target_directory(){ if [ -b "$TARGET" ] || [ -n "$VIRTUAL" ] ; then PARTITION=1 else + # $TARGET was not detected as block device, but we do not want to create target directory in /dev/ + if [[ $TARGET == "/dev/"* ]]; then + eerror "Error: Will not create target directory $TARGET in /dev." + eerror " Please check the partition(s) of the blockdevice."; eend 1 + bailout 1 + fi set_target_directory fi # }}} @@ -1444,11 +1452,15 @@ prepare_vm() { } # }}} -# make VM image bootable and unmount it {{{ -finalize_vm() { +# make VM image bootable {{{ +grub_install() { if [ -z "${VIRTUAL}" ] ; then return 0 fi + if [ "${GRUB_INSTALL}" != "yes" ] ; then + einfo "Not installing GRUB as requested via \$GRUB_INSTALL=$GRUB_INSTALL" + return 0 + fi if ! mount "${TARGET}" "${MNTPOINT}" ; then eerror "Error: Mounting ${TARGET} failed, can not continue." ; eend 1 @@ -1517,6 +1529,16 @@ fi umount "${MNTPOINT}"/sys umount "${MNTPOINT}"/dev/pts try_umount 3 "${MNTPOINT}"/dev + +} +# }}} + +# unmount VM image {{{ +umount_target() { + if [ -z "${VIRTUAL}" ] ; then + return 0 + fi + umount "${MNTPOINT}" kpartx -d "${ORIG_TARGET}" >/dev/null # Workaround for a bug in kpartx which doesn't clean up properly, @@ -1889,7 +1911,7 @@ remove_configs() { for i in format_efi_partition prepare_vm mkfs tunefs \ mount_target mountpoint_to_blockdevice debootstrap_system \ preparechroot execute_pre_scripts chrootscript execute_post_scripts \ - remove_configs umount_chroot finalize_vm fscktool ; do + remove_configs umount_chroot grub_install umount_target fscktool ; do if stage "${i}" ; then if "$i" ; then stage "${i}" 'done' && rm -f "${STAGES}/${i}"