# define chroot mirror {{{
chrootmirror() {
+ [ -n "$KEEP_SRC_LIST" ] && return
if [ -n "$ISO" ] ; then
echo "deb $ISO $RELEASE main contrib" > /etc/apt/sources.list
[ -n "$CHROOTMIRROR" ] && echo "deb $CHROOTMIRROR $RELEASE main contrib non-free" >> /etc/apt/sources.list
# set up grml repository {{{
grmlrepos() {
if [ -n "$GRMLREPOS" ] ; then
- cat >> /etc/apt/sources.list << EOF
+ # user might have provided their own apt sources.list
+ if ! grep -q grml /etc/apt/sources.list 2>/dev/null ; then
+ cat >> /etc/apt/sources.list << EOF
# grml: stable repository:
deb http://deb.grml.org/ grml-stable main
deb-src http://deb.grml.org/ grml-testing main
EOF
+ fi
+
# make sure we have the keys available for aptitude
gpg --keyserver subkeys.pgp.net --recv-keys F61E2E7CECDEA787
gpg --export F61E2E7CECDEA787 | apt-key add - || /bin/true # not yet sure
# install additional packages {{{
packages() {
+ # Pre-seed the debconf database with answers. Each question will be marked
+ # as seen to prevent debconf from asking the question interactively.
+ [ -f /etc/debootstrap/debconf-selections ] && {
+ echo "Preseeding the debconf database, some lines might be skipped..."
+ cat /etc/debootstrap/debconf-selections | debconf-set-selections
+ }
+
if [ "$PACKAGES" = 'yes' ] ; then
if ! [ -r /etc/debootstrap/packages ] ; then
echo "Error: /etc/debootstrap/packages not found, exiting."
shadowconfig on
if [ -n "$ROOTPASSWORD" ] ; then
- echo root:"$ROOTPASSWD" | chpasswd -m
- export ROOTPASSWD=''
+ echo root:"$ROOTPASSWORD" | chpasswd -m
+ export ROOTPASSWORD=''
else
a='1'
b='2'
# helper function for fstab() {{{
createfstab(){
echo "Setting up /etc/fstab"
-cat > /etc/fstab << EOF
-$TARGET / auto defaults,errors=remount-ro 0 1
+if [ -n "$TARGET_UUID" ] ; then
+ echo "/dev/disk/by-uuid/${TARGET_UUID} / auto defaults,errors=remount-ro 0 1" > /etc/fstab
+else
+ echo "${TARGET} / auto defaults,errors=remount-ro 0 1" > /etc/fstab
+fi
+
+cat >> /etc/fstab << EOF
proc /proc proc defaults 0 0
/sys /sys sysfs noauto,rw,nosuid,nodev,noexec 0 0
/dev/cdrom /mnt/cdrom0 iso9660 ro,user,noauto 0 0
$UPDATEGRUB -y
if [ -f /boot/grub/menu.lst ] ; then
sed -i "s/^# groot=.*/# groot=(${GROOT})/g" /boot/grub/menu.lst
- sed -i "s|^# kopt=root=.*|# kopt=root=${TARGET} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
+ if [ -n "$TARGET_UUID" ] ; then
+ sed -i "s|^# kopt=root=.*|# kopt=root=UUID=${TARGET_UUID} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
+ else
+ sed -i "s|^# kopt=root=.*|# kopt=root=${TARGET} ro ${BOOT_APPEND}|g" /boot/grub/menu.lst
+ fi
# not sure why savedefault does not work for me; any ideas?
sed -i "s/^savedefault.*/# &/g" /boot/grub/menu.lst
$UPDATEGRUB -y