X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=3466eb42e78a13cc6ebcc8c8e750e967c944e708;hp=7b1bc7232e48f04eb3e3b27aebb11f4dabbfcfcd;hb=a158cf56b91b091294200584fbc1c88618494bf5;hpb=0bb99ec2af1e4383ed819715481257b2ca77d5cd diff --git a/grml-debootstrap b/grml-debootstrap index 7b1bc72..3466eb4 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -11,7 +11,7 @@ set -e # exit on any error # variables {{{ PN="$(basename $0)" -VERSION='0.23' +VERSION='0.24' MNTPOINT="/mnt/debootstrap.$$" # inside the chroot system locales might not be available, so use minimum: @@ -36,47 +36,43 @@ Usage: $PN [options] Bootstrap options: - -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 + -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=name Release of new Debian system (default: stable). - -t, --target=target Target partition (/dev/...) or directory. - -p, --mntpoint=mnt Mountpoint used for mounting the target system. - --debopt=params Extra parameters passed to the debootstrap. + -r, --release Release of new Debian system (default: stable). + -t, --target Target partition (/dev/...) or directory. + -p, --mntpoint Mountpoint used for mounting the target system. + --debopt Extra parameters passed to the debootstrap. --interactive Use interactive mode (frontend). --nodebootstrap Skip debootstrap, only do configuration to the target. - --groot=device Root device for usage in grub, corresponds with + --groot Root device for usage in grub, corresponds with \$TARGET in grub syntax, like hd0,0 for /dev/sda1. - --grub=device Target for grub installation. Use grub syntax for + --grub Target for grub installation. Use grub syntax for specifying, like hd0 for /dev/sda. Configuration options: - -c, --config=file Use specified configuration file, defaults to + -c, --config Use specified configuration file, defaults to /etc/debootstrap/config - -d, --confdir=path Place of config files for debootstrap, defaults + -d, --confdir Place of config files for debootstrap, defaults to /etc/debootstrap - --packages[=f] Install packages defined in /packages. - Option arg: alternative package list file. - --debconf[=f] Pre-seed packages using /debconf-selections. - Option arg: alternative pre-seed db file. + --packages Install packages defined in specified list file. + --debconf Pre-seed packages using specified pre-seed db file. --keep_src_list Do not overwrite user provided apt sources.list. - --hostname=name Hostname of Debian system. - --password=pwd Use specified password as password for user root. - --bootappend=line Add specified appendline to kernel whilst booting. - --chroot-scripts[=f] Execute scripts from /chroot-scripts/ - Option arg: alternative chroot-scripts directory. - --scripts[=d] Execute scripts from /scripts/. - Option arg: alternative scripts directory. + --hostname Hostname of Debian system. + --password Use specified password as password for user root. + --bootappend Add specified appendline to kernel whilst booting. + --chroot-scripts Execute chroot scripts from specified directory. + --scripts Execute scripts from specified directory. Other options: - -v, --verbose Increase verbosity. - -h, --help Print this usage information and exit. - -V, --version Show summary of options and exit. + -v, --verbose Increase verbosity. + -h, --help Print this usage information and exit. + -V, --version Show summary of options and exit. Usage examples can be found in the grml-debootstrap manpage. -Send bugreports to the grml-team: bugs@grml.org || http://grml.org/bugs/ +Send bugreports to the grml-team: bugs (at) grml.org || http://grml.org/bugs/ " } @@ -768,9 +764,11 @@ preparechroot() { cp $VERBOSE $_opt_debconf $MNTPOINT/etc/debootstrap/debconf-selections # copy scripts that should be executed inside the chroot: - _opt_chroot_scripts=${_opt_chroot_scripts:-$CONFFILES/chroot_scripts/} - [ -f $_opt_chroot_scripts -a "$CHROOT_SCRIPTS" = 'yes' ] && \ - cp -a $VERBOSE $_opt_chroot_scripts $MNTPOINT/etc/debootstrap/ + _opt_chroot_scripts=${_opt_chroot_scripts:-$CONFFILES/chroot-scripts/} + [ -d $_opt_chroot_scripts -a "$CHROOT_SCRIPTS" = 'yes' ] && { + mkdir -p $MNTPOINT/etc/debootstrap/chroot-scripts + cp -a $VERBOSE $_opt_chroot_scripts/* $MNTPOINT/etc/debootstrap/chroot-scripts/ + } # notice: do NOT use $CHROOT_VARIABLES inside chroot but statically file instead! cp $VERBOSE $CHROOT_VARIABLES $MNTPOINT/etc/debootstrap/variables @@ -783,7 +781,6 @@ preparechroot() { # provide system's /etc/hosts to the target: if ! [ -f "$MNTPOINT/etc/hosts" ] ; then cp $VERBOSE /etc/hosts $MNTPOINT/etc/hosts - sed -i "s#127.0.0.1 .*#127.0.0.1 localhost $HOSTNAME#" /etc/hosts fi # setup default locales @@ -813,8 +810,9 @@ preparechroot() { # execute all scripts in /etc/debootstrap/scripts/ {{{ execute_scripts() { - if [ -f $_opt_scripts -a "$SCRIPTS" = 'yes' ] ; then - for script in /etc/debootstrap/scripts/* ; do + if [ -d "$_opt_scripts" ] || [ "$SCRIPTS" = 'yes' ] ; then + [ -d "$_opt_scripts" ] && scripts="$_opt_scripts" || scripts="$CONFFILES/scripts/" + for script in ${scripts}/* ; do if [ -x "$script" ] ; then einfo "Executing script $script" $script ; eend $?