X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=c87c9b6cd5b5436e74d900b6ee83569d1be27b86;hp=899f8819cad8ebbb9c749af0a4028b8ae8a8d3d6;hb=af829102cc6c691bed053ef804c9d08495e65905;hpb=62cec4e9315f6c4978f0cd7da6f28512409e9a07 diff --git a/grml-debootstrap b/grml-debootstrap index 899f881..c87c9b6 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -14,30 +14,32 @@ VERSION="${VERSION:-unknown}" MNTPOINT="/mnt/debootstrap.$$" # defaults -CHROOT_SCRIPTS='yes' -CONFFILES='/etc/debootstrap' -DEBCONF='yes' -DEBIAN_FRONTEND='noninteractive' -DEBOOTSTRAP='debootstrap' -EXTRAPACKAGES='yes' -FORCE='' -HOSTNAME='grml' -INITRD='yes' -INSTALL_NOTES='/etc/debootstrap/install_notes' -LOCALES='yes' -MIRROR='http://cdn.debian.net/debian' -MKFS='mkfs.ext3' -PACKAGES='yes' -PRE_SCRIPTS='yes' -RECONFIGURE='console-data' -RELEASE='squeeze' -RM_APTCACHE='yes' -SCRIPTS='yes' -SECURE='yes' -TIMEZONE='Europe/Vienna' -TUNE2FS='tune2fs -c0 -i0' -UPGRADE_SYSTEM='yes' -VMSIZE="2G" +[ -n "$CHROOT_SCRIPTS"] || CHROOT_SCRIPTS='yes' +[ -n "$CONFFILES"] || CONFFILES='/etc/debootstrap' +[ -n "$DEBCONF"] || DEBCONF='yes' +[ -n "$DEBIAN_FRONTEND"] || DEBIAN_FRONTEND='noninteractive' +[ -n "$DEBOOTSTRAP"] || DEBOOTSTRAP='debootstrap' +[ -n "$DEFAULT_LOCALES"] || DEFAULT_LOCALES='en_US.UTF-8' +[ -n "$EXTRAPACKAGES"] || EXTRAPACKAGES='yes' +[ -n "$FALLBACK_MIRROR"] || FALLBACK_MIRROR='http://http.debian.net/debian' +[ -n "$FORCE"] || FORCE='' +[ -n "$HOSTNAME"] || HOSTNAME='grml' +[ -n "$INITRD"] || INITRD='yes' +[ -n "$INSTALL_NOTES"] || INSTALL_NOTES='/etc/debootstrap/install_notes' +[ -n "$LOCALES"] || LOCALES='yes' +[ -n "$MIRROR"] || MIRROR="$FALLBACK_MIRROR" +[ -n "$MKFS"] || MKFS='mkfs.ext3' +[ -n "$PACKAGES"] || PACKAGES='yes' +[ -n "$PRE_SCRIPTS"] || PRE_SCRIPTS='yes' +[ -n "$RECONFIGURE"] || RECONFIGURE='console-data' +[ -n "$RELEASE"] || RELEASE='wheezy' +[ -n "$RM_APTCACHE"] || RM_APTCACHE='yes' +[ -n "$SCRIPTS"] || SCRIPTS='yes' +[ -n "$SECURE"] || SECURE='yes' +[ -n "$TIMEZONE"] || TIMEZONE='Europe/Vienna' +[ -n "$TUNE2FS"] || TUNE2FS='tune2fs -c0 -i0' +[ -n "$UPGRADE_SYSTEM"] || UPGRADE_SYSTEM='yes' +[ -n "$VMSIZE"] || VMSIZE="2G" # inside the chroot system locales might not be available, so use minimum: export LANG=C @@ -59,7 +61,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: squeeze). + -r, --release Release of new Debian system (default: wheezy). -t, --target Target partition (/dev/...) or directory where the system should be installed to. -p, --mntpoint Mountpoint used for mounting the target system, @@ -93,6 +95,7 @@ Configuration options: /etc/debootstrap/packages --debconf Pre-seed packages using specified pre-seed db file. --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. --hostname Hostname of Debian system. --nopassword Do not prompt for the root password. @@ -320,6 +323,7 @@ fi [ "$_opt_chroot_scripts_set" ] && CHROOT_SCRIPTS='yes' [ "$_opt_keep_src_list" ] && KEEP_SRC_LIST='yes' [ "$_opt_grmlrepos" ] && GRMLREPOS='yes' +[ "$_opt_backportrepos" ] && BACKPORTREPOS='yes' [ "$_opt_hostname" ] && HOSTNAME=$_opt_hostname [ "$_opt_password" ] && ROOTPASSWORD=$_opt_password [ "$_opt_nopassword" ] && NOPASSWORD='yes' @@ -446,7 +450,7 @@ prompt_for_bootmanager() fi for device in cciss/c0d0 sda hda; do - if [ /dev/$device != ${MBRDISK} ]; then + if [ "/dev/$device" != "${MBRDISK}" ]; then grep -q $device /proc/partitions && \ ADDITIONAL_PARAMS="$ADDITIONAL_PARAMS:$device:install bootmanager grub into MBR of /dev/$device" fi @@ -467,12 +471,7 @@ prompt_for_bootmanager() mbr) # /dev/md0: has to be installed in MBR of /dev/md0 and not in /dev/md: if echo "$TARGET" | grep -q "/dev/md" ; then - # using sw-raid: - if [ -n "$SELECTED_PARTITIONS" ] ; then - GRUB=$(echo ${SELECTED_PARTITIONS} | awk '{print $1}') # use first disk only - else - GRUB="$TARGET" - fi + GRUB="$TARGET" else GRUB="$MBRDISK" fi @@ -493,7 +492,7 @@ prompt_for_bootmanager() # ask for Debian release {{{ prompt_for_release() { - [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='squeeze' + [ -n "$RELEASE" ] && DEFAULT_RELEASE="$RELEASE" || DEFAULT_RELEASE='wheezy' RELEASE="$(dialog --stdout --title "${PN}" --default-item $DEFAULT_RELEASE --menu \ "Please enter the Debian release you would like to use for installation:" \ 0 50 4 \ @@ -556,7 +555,7 @@ prompt_for_mirror() [ $? -eq 0 ] || bailout if [ "$CHOOSE_MIRROR" = 'net' ] ; then - [ -n "$MIRROR" ] || MIRROR='http://cdn.debian.net/debian' + [ -n "$MIRROR" ] || MIRROR='http://http.debian.net/debian' MIRROR="$(dialog --stdout --title "${PN}" --inputbox \ "Please enter Debian mirror you would like to use for installing packages." \ 0 0 $MIRROR)" @@ -729,6 +728,12 @@ else # if not running automatic installation display configuration and prompt fo [ -n "$VMSIZE" ] && echo " Using Virtual Disk file with size of ${VMSIZE}." fi + if [ ! -t 0 -a -z "$ROOTPASSWORD" -a -z "$NOPASSWORD" ] ; then + echo + echo " You do not have a TTY allocated, your password will be shown in" + echo " plaintext on the terminal! If you are using SSH, try its -t option!" + fi + echo echo " Important! Continuing will delete all data from ${TARGET}!" @@ -845,7 +850,7 @@ if [ -n "$ISO" ] ; then file*) # do nothing ;; *) - ISO=file:$1 + ISO=file:$ISO ;; esac fi @@ -853,6 +858,12 @@ ISODIR=${ISO##file:} ISODIR=${ISODIR%%/} # }}} +# Debian ISOs do not contain signed Release files {{{ +if [ -n "$ISO" ] ; then + DEBOOTSTRAP_OPT="$DEBOOTSTRAP_OPT --no-check-gpg" +fi +# }}} + # create filesystem {{{ mkfs() { if [ -n "$DIRECTORY" ] ; then @@ -1044,15 +1055,16 @@ debootstrap_system() { eend 1 ; exit 1 fi - 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 - RC=$? - else + if [ -n "$ISO" ] ; then + einfo "Running $DEBOOTSTRAP $DEBOOTSTRAP_OPT for release ${RELEASE}${ARCHINFO} using ${ISO}" einfo "Executing: $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $ISO" $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $ISO RC=$? + else + einfo "Running $DEBOOTSTRAP $DEBOOTSTRAP_OPT for release ${RELEASE}${ARCHINFO} using ${MIRROR}" + einfo "Executing: $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $MIRROR" + $DEBOOTSTRAP $ARCHCMD $KEYRING $DEBOOTSTRAP_OPT $RELEASE $MNTPOINT $MIRROR + RC=$? fi if [ $RC -ne 0 ] ; then @@ -1078,12 +1090,15 @@ preparechroot() { chmod 600 $CHROOT_VARIABLES # make sure nobody except root can read it echo "# Configuration of ${PN}" > $CHROOT_VARIABLES [ -n "$ARCH" ] && echo "ARCH=\"$ARCH\"" >> $CHROOT_VARIABLES + [ -n "$BACKPORTREPOS" ] && echo "BACKPORTREPOS=\"$BACKPORTREPOS\"" >> $CHROOT_VARIABLES [ -n "$CHROOT_SCRIPTS" ] && echo "CHROOT_SCRIPTS=\"$CHROOT_SCRIPTS\"" >> $CHROOT_VARIABLES [ -n "$CONFFILES" ] && echo "CONFFILES=\"$CONFFILES\"" >> $CHROOT_VARIABLES [ -n "$DEBCONF" ] && echo "DEBCONF=\"$DEBCONF\"" >> $CHROOT_VARIABLES [ -n "$DEBIAN_FRONTEND" ] && echo "DEBIAN_FRONTEND=\"$DEBIAN_FRONTEND\"" >> $CHROOT_VARIABLES [ -n "$DEBOOTSTRAP" ] && echo "DEBOOTSTRAP=\"$DEBOOTSTRAP\"" >> $CHROOT_VARIABLES + [ -n "$DEFAULT_LOCALES" ] && echo "DEFAULT_LOCALES=\"$DEFAULT_LOCALES\"" >> $CHROOT_VARIABLES [ -n "$EXTRAPACKAGES" ] && echo "EXTRAPACKAGES=\"$EXTRAPACKAGES\"" >> $CHROOT_VARIABLES + [ -n "$FALLBACK_MIRROR" ] && echo "FALLBACK_MIRROR=\"$FALLBACK_MIRROR\"" >> $CHROOT_VARIABLES [ -n "$FORCE" ] && echo "FORCE=\"$FORCE\"" >> $CHROOT_VARIABLES [ -n "$GRMLREPOS" ] && echo "GRMLREPOS=\"$GRMLREPOS\"" >> $CHROOT_VARIABLES [ -n "$GRUB" ] && echo "GRUB=\"$GRUB\"" >> $CHROOT_VARIABLES