[ -n "$POST_SCRIPTS" ] || POST_SCRIPTS='yes'
[ -n "$PRE_SCRIPTS" ] || PRE_SCRIPTS='yes'
[ -n "$RECONFIGURE" ] || RECONFIGURE='console-data'
-[ -n "$RELEASE" ] || RELEASE='jessie'
+[ -n "$RELEASE" ] || RELEASE='stretch'
[ -n "$RM_APTCACHE" ] || RM_APTCACHE='yes'
[ -n "$SCRIPTS" ] || SCRIPTS='no' # deprecated, replaced by POST_SCRIPTS
[ -n "$SECURE" ] || SECURE='yes'
-m, --mirror <URL> Mirror which should be used for apt-get/aptitude.
-i, --iso <mnt> Mountpoint where a Debian ISO is mounted to, for use
instead of fetching packages from a mirror.
- -r, --release <name> Release of new Debian system (default: jessie).
+ -r, --release <name> Release of new Debian system (default: stretch).
-t, --target <target> Target partition (/dev/...) or directory where the
system should be installed to.
-p, --mntpoint <mnt> Mountpoint used for mounting the target system,
fi
# }}}
-# backwards compability checks {{{
+# backwards compatibility checks {{{
if [ -n "$GROOT" ] ; then
eerror "Error: you seem to have \$GROOT configured."
eerror "This variable is no longer supported, please visit the"
# ask for Debian release {{{
prompt_for_release()
{
- [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='jessie'
+ [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='stretch'
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 \
if fsck.vfat -bn "$EFI" >/dev/null; then
einfo "EFI partition $EFI seems to have a FAT filesystem, not modifying." ; eend 0
else
- einfo "EFI partition $EFI doesn't seem to be formated, creating filesystem."
+ einfo "EFI partition $EFI doesn't seem to be formatted, creating filesystem."
mkfs.fat -F32 -n "EFI System Partition" "$EFI"
RC=$?
if [ $RC -eq 0 ] ; then
# race conditions :-/
sleep 2
- eval "$(blkid -o udev "$TARGET" 2>/dev/null)"
- [ -n "$ID_FS_UUID" ] && TARGET_UUID="$ID_FS_UUID" || TARGET_UUID=""
-
eend $RC
fi
}
# }}}
+identify_target_uuid() {
+ local device="$1"
+
+ if ! [ -b "$device" ] ; then
+ return 1
+ fi
+
+ eval "$(blkid -o udev "$1" 2>/dev/null)"
+
+ if [ -n "$ID_FS_UUID" ] ; then
+ echo "$ID_FS_UUID"
+ else
+ return 1
+ fi
+}
+
+mountpoint_to_blockdevice() {
+ TARGET_UUID=''
+
+ TARGET_UUID=$(identify_target_uuid "$TARGET" 2>/dev/null || true)
+ if [ -n "$TARGET_UUID" ] ; then
+ einfo "Identified UUID $TARGET_UUID for $TARGET"
+ return 0
+ fi
+
+ # $TARGET might be a mountpoint and not a blockdevice, search for according entry
+ for file in /sys/block/*/*/dev ; do
+ if grep -q "^$(mountpoint -d "${TARGET}")$" "$file" ; then
+ local dev
+ dev="${file%/dev}"
+ dev="/dev/${dev##*/}"
+ TARGET_UUID=$(identify_target_uuid "$dev" 2>/dev/null || true)
+
+ if [ -n "$TARGET_UUID" ] ; then
+ einfo "Identified UUID $TARGET_UUID for $TARGET (via $file)"
+ return 0
+ fi
+ fi
+ done
+}
+
# modify filesystem settings {{{
tunefs() {
if [ -n "$TUNE2FS" ] && echo "$MKFS" | grep -q "mkfs.ext" ; then
mount -t proc none "${MNTPOINT}"/proc
mount -t sysfs none "${MNTPOINT}"/sys
- mount --bind /dev "${MNTPOINT}"/dev
- mount --bind /dev/pts "${MNTPOINT}"/dev/pts
+ mount -t devtmpfs udev "${MNTPOINT}"/dev
+ mount -t devpts devpts "${MNTPOINT}"/dev/pts
# Has chroot-script installed GRUB to MBR using grub-install (successfully), already?
# chroot-script skips installation for unset ${GRUB}
# make sure we can access network [relevant for cdebootstrap]
[ -f "${MNTPOINT}"/etc/resolv.conf ] || cp $VERBOSE /etc/resolv.conf "${MNTPOINT}"/etc/resolv.conf
- # provide system's /etc/hosts to the target:
- if ! [ -f "$MNTPOINT/etc/hosts" ] ; then
- cp $VERBOSE /etc/hosts "${MNTPOINT}"/etc/hosts
- fi
-
# setup default locales
[ -n "$LOCALES" ] && cp $VERBOSE "${CONFFILES}"/locale.gen "${MNTPOINT}"/etc/locale.gen
eend 1
else
einfo "Executing chroot-script now"
- mount --bind /dev "$MNTPOINT"/dev
- mount --bind /dev/pts "$MNTPOINT"/dev/pts
+ mount -t devtmpfs udev "${MNTPOINT}"/dev
+ mount -t devpts devpts "${MNTPOINT}"/dev/pts
if [ "$DEBUG" = "true" ] ; then
chroot "$MNTPOINT" /bin/bash -x /bin/chroot-script ; RC=$?
else
# }}}
# now execute all the functions {{{
-for i in format_efi_partition prepare_vm mkfs tunefs mount_target debootstrap_system \
+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
if stage "${i}" ; then