--grmlrepos Enable Grml's Debian repository (deb.grml.org).
--backportrepos Enable Debian's backports repository (backports.debian.org).
--keep_src_list Do not overwrite user provided apt sources.list.
+ --contrib Enable 'contrib' in COMPONENTS (defaults to 'main' only).
+ --non-free Enable non-free in COMPONENTS (defaults to 'main' only).
--hostname <name> Hostname of Debian system.
--nopassword Do not prompt for the root password.
--password <pwd> Use specified password as password for user root.
[ "$_opt_verbose" ] && VERBOSE="-v"
[ "$_opt_debug" ] && DEBUG="true"
+# make sure main is always included
+[ -z "$COMPONENTS" ] && COMPONENTS="main"
+[ "$_opt_contrib" ] && COMPONENTS="$COMPONENTS contrib"
+[ "$_opt_non_free" ] && COMPONENTS="$COMPONENTS non-free"
+
if [ "$DEBUG" = "true" ] ; then
set -x
fi
# make sure /dev/disk/by-uuid/... is up2date, otherwise grub
# will fail to detect the uuid in the chroot
- if echo "$TARGET" | grep -q "/dev/md" ; then
+ if [ -n "$VIRTUAL" ] ; then
+ einfo "Virtual environment doesn't require blockdev --rereadpt, skipping therefore"
+ elif echo "$TARGET" | grep -q "/dev/md" ; then
blockdev --rereadpt "${TARGET}"
- elif ! [ -n "$VIRTUAL" ] ; then
- blockdev --rereadpt "${TARGET%%[0-9]*}"
+ else
+ # if we deploy to /dev/sdX# then let's see if /dev/sdX exists
+ local main_device="${TARGET%%[0-9]*}"
+ # sanity check to not try to e.g. access /dev/loop if we get /dev/loop0
+ if [ -f "/sys/block/$(basename ${main_device})/$(basename ${TARGET})/dev" ] ; then
+ blockdev --rereadpt "$main_device"
+ else
+ einfo "No underlying block device for $TARGET identified, skipping blockdev --rereadpt."
+ fi
fi
# give the system 2 seconds, otherwise we might run into
# race conditions :-/
chroot "${MNTPOINT}" update-grub
case "$RELEASE" in
+ jessie)
+ einfo "Applying workaround for GRUB font path bug in jessie (Debian #787685)."
+ mkdir -p "${MNTPOINT}/boot/grub/fonts/"
+ cp "${MNTPOINT}/usr/share/grub/unicode.pf2" "${MNTPOINT}/boot/grub/fonts/"
+ ;;
+ esac
+
+ case "$RELEASE" in
lenny|squeeze|wheezy)
einfo "Adjusting grub.cfg for successful boot sequence."
sed -i "s;root=[^ ]\+;root=UUID=$TARGET_UUID;" "${MNTPOINT}"/boot/grub/grub.cfg
[ -n "$ARCH" ] && echo "ARCH='$(sed "s,','\\\\'',g" <<<"${ARCH}")'" >> "$CHROOT_VARIABLES"
[ -n "$BACKPORTREPOS" ] && echo "BACKPORTREPOS='$(sed "s,','\\\\'',g" <<<"${BACKPORTREPOS}")'" >> "$CHROOT_VARIABLES"
[ -n "$CHROOT_SCRIPTS" ] && echo "CHROOT_SCRIPTS='$(sed "s,','\\\\'',g" <<<"${CHROOT_SCRIPTS}")'" >> "$CHROOT_VARIABLES"
+ [ -n "$COMPONENTS" ] && echo "COMPONENTS='$(sed "s,','\\\\'',g" <<<"${COMPONENTS}")'" >> "$CHROOT_VARIABLES"
[ -n "$CONFFILES" ] && echo "CONFFILES='$(sed "s,','\\\\'',g" <<<"${CONFFILES}")'" >> "$CHROOT_VARIABLES"
[ -n "$DEBCONF" ] && echo "DEBCONF='$(sed "s,','\\\\'',g" <<<"${DEBCONF}")'" >> "$CHROOT_VARIABLES"
[ -n "$DEBIAN_FRONTEND" ] && echo "DEBIAN_FRONTEND='$(sed "s,','\\\\'',g" <<<"${DEBIAN_FRONTEND}")'" >> "$CHROOT_VARIABLES"