TGT_DIR="${BASE_DIR}/target"
GRML2USB="${BASE_DIR}/grml2usb/grml2usb"
+FB_REPO_URI="https://repo.uhu-banane.de"
+FB_REPO_GPG_KEY_BASE="repo.uhu-banane.de.gpg-key2.pub"
+URI_FB_REPO_GPG_KEY="${FB_REPO_URI}/public/${FB_REPO_GPG_KEY_BASE}"
+
SRC_ISO_IMAGE=
SRC_IMAGE_DEV=
SRC_IMAGE_MOUNTPOINT=
#------------------------------------------------------------------------------
mangle_resolv_conf() {
empty_line
- info "Erstelle neue ${TGT_DIR}/etc/resolv.conf ..."
+ info "Erstelle neue ${TGT_DIR}${GREEN}/etc/resolv.conf${NORMAL} ..."
if [[ -e "${TGT_DIR}/etc/resolv.conf" || -L "${TGT_DIR}/etc/resolv.conf" ]] ; then
MV "${TGT_DIR}/etc/resolv.conf" "${TGT_DIR}/etc/resolv.conf.bak"
fi
#------------------------------------------------------------------------------
unmangle_resolv_conf() {
empty_line
- info "Stelle ursprüngliche ${TGT_DIR}/etc/resolv.conf wieder her ..."
+ info "Stelle ursprüngliche ${TGT_DIR}${GREEN}/etc/resolv.conf${NORMAL} wieder her ..."
RM "${TGT_DIR}/etc/resolv.conf"
if [[ -f "${TGT_DIR}/etc/resolv.conf.bak" || -L "${TGT_DIR}/etc/resolv.conf.bak" ]] ; then
MV "${TGT_DIR}/etc/resolv.conf.bak" "${TGT_DIR}/etc/resolv.conf"
fi
}
+#------------------------------------------------------------------------------
+mounting_dirs() {
+
+ empty_line
+
+ info "Mounting ${TGT_DIR}${GREEN}/proc${NORMAL} ..."
+ mount -t proc proc "${TGT_DIR}/proc"
+
+ info "Mounting ${TGT_DIR}${GREEN}/sys${NORMAL} ..."
+ mount -t sysfs sysfs "${TGT_DIR}/sys"
+
+ info "Mounting ${TGT_DIR}${GREEN}/dev${NORMAL} ..."
+ mount -o bind /dev ${TGT_DIR}/dev
+
+ info "Mounting ${TGT_DIR}${GREEN}/dev/shm${NORMAL} ..."
+ mount -t tmpfs -o size=10% tmpfs ${TGT_DIR}/dev/shm
+
+ info "Mounting ${TGT_DIR}${GREEN}/run${NORMAL} ..."
+ mount -t tmpfs -o size=5% tmpfs ${TGT_DIR}/run
+
+ if [[ ! -d ${TGT_DIR}/run/lock ]] ; then
+ debug "Creating ${TGT_DIR}/run/lock ..."
+ MKDIR "${TGT_DIR}/run/lock"
+ fi
+
+ info "Mounting ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+ mount -t tmpfs -o size=3% tmpfs ${TGT_DIR}/run/lock
+
+ if [[ ! -d "${TGT_DIR}/run/lock" ]] ; then
+ info "Creating ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+ MKDIR "${TGT_DIR}/run/lock"
+ fi
+
+ MKDIR -p "${TGT_DIR}/tmp/.private/root"
+ CHMOD 0711 "${TGT_DIR}/tmp/.private"
+ CHMOD 1700 "${TGT_DIR}/tmp/.private/root"
+
+}
+
+#------------------------------------------------------------------------------
+add_fb_repo() {
+
+ empty_line
+ info "Füge Frank Brehms Debian Repository dazu."
+
+ local apt_dir="/etc/apt"
+ local apt_src_list_dir="${apt_dir}/sources.list.d"
+ if [[ ! -d "${TGT_DIR}${apt_src_list_dir}" ]] ; then
+ debug "Erstelle '${TGT_DIR}${apt_src_list_dir}' ..."
+ MKDIR -p "${TGT_DIR}${apt_src_list_dir}"
+ fi
+ local key_file="${apt_dir}/${FB_REPO_GPG_KEY_BASE}"
+ local key_file_real="${TGT_DIR}${key_file}"
+
+ debug "Hole '${URI_FB_REPO_GPG_KEY}' -> '${key_file}' ..."
+ local cmd="wget"
+ if [[ "${VERBOSE}" != "y" ]] ; then
+ cmd="${cmd} --no-verbose"
+ fi
+ cmd="${cmd} -O \"${key_file_real}\" \"${URI_FB_REPO_GPG_KEY}\""
+ debug "Führe aus: ${cmd}"
+ eval ${cmd}
+
+ local debian_version="wheezy"
+ local debv_file="${TGT_DIR}/etc/debian_version"
+ if [[ -f "${debv_file}" ]] ; then
+ if cat "${debv_file}" | egrep -i "^(stretch|9)" >/dev/null ; then
+ debian_version="stretch"
+ elif cat "${debv_file}" | egrep -i "^(jessie|8)" >/dev/null ; then
+ debian_version="jessie"
+ fi
+ fi
+ info "Supported Debian version: ${GREEN}${debian_version}${NORMAL}"
+
+ info "Erstelle '${TGT_DIR}${GREEN}${apt_src_list_dir}/fbrehm.list${NORMAL}' ..."
+ cat >${TGT_DIR}${apt_src_list_dir}/fbrehm.list <<EOF
+# Frank Brehms Debian Repositories
+#---------------------------------
+
+deb ${FB_REPO_URI}/Debian/${debian_version} ./
+deb-src ${FB_REPO_URI}/Sources ./
+
+EOF
+
+ info "Importiere Key '${GREEN}${key_file}${NORMAL}' ..."
+ CHROOT apt-key add "${key_file}"
+
+ empty_line
+ info "Aktualisiere Debian Repositories ..."
+
+ export DEBIAN_FRONTEND="noninteractive"
+ CHROOT apt update --allow-unauthenticated
+
+}
+
+#------------------------------------------------------------------------------
+update_packages() {
+
+ empty_line
+ info "Update aller Pakete."
+ export DEBIAN_FRONTEND="noninteractive"
+ CHROOT apt-get dist-upgrade -y || true
+ empty_line
+ info "Entfernen überflüssiger Pakete."
+ CHROOT apt-get autoremove -y || true
+}
+
+#------------------------------------------------------------------------------
+unmounting_dirs() {
+
+ empty_line
+
+ info "Unmounting ${TGT_DIR}${GREEN}/run/lock${NORMAL} ..."
+ umount ${TGT_DIR}/run/lock || true
+
+ info "Unmounting ${TGT_DIR}${GREEN}/run${NORMAL} ..."
+ umount ${TGT_DIR}/run || true
+
+ info "Unmounting ${TGT_DIR}${GREEN}/dev/shm${NORMAL} ..."
+ umount ${TGT_DIR}/dev/shm || true
+
+ info "Unmounting ${TGT_DIR}${GREEN}/dev${NORMAL} ..."
+ umount ${TGT_DIR}/dev || true
+
+ info "Unmounting ${TGT_DIR}${GREEN}/sys${NORMAL} ..."
+ umount ${TGT_DIR}/sys || true
+
+ info "Unmounting ${TGT_DIR}${GREEN}/proc${NORMAL} ..."
+ umount ${TGT_DIR}/proc || true
+
+}
+
+
#------------------------------------------------------------------------------
init_grml2usb() {
destroy_src_img_dev
mangle_resolv_conf
+ mounting_dirs
+ trap "unmangle_resolv_conf; unmounting_dirs; exit 9" EXIT INT QUIT TERM
+ sleep 2
+ add_fb_repo
+ update_packages
+ info "Finishing ..."
+ trap - EXIT INT QUIT TERM
unmangle_resolv_conf
+ unmounting_dirs
+ sleep 2
+
init_grml2usb
create_squashfs
make_isofs