201 lines
5.2 KiB
Bash
Executable File
201 lines
5.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# lh_buildbinary
|
|
|
|
if [ ! -f "${LIVE_ROOT}"/.stage/image_binary ]
|
|
then
|
|
# Configure chroot
|
|
lh_patchchroot apply
|
|
lh_patchrunlevel apply
|
|
|
|
# Configure network
|
|
lh_patchnetwork apply
|
|
|
|
mkdir -p "${LIVE_ROOT}"/binary/casper
|
|
for MANIFEST in "${LIVE_ROOT}"/filesystem.manifest*
|
|
do
|
|
if [ -e "${MANIFEST}" ]; then
|
|
mv "${MANIFEST}" "${LIVE_ROOT}"/binary/casper/
|
|
fi
|
|
done
|
|
|
|
if [ "${LIVE_TYPE}" = "Net" ]
|
|
then
|
|
# Mount proc
|
|
mount proc-live -t proc "${LIVE_CHROOT}"/proc
|
|
|
|
# Installing smbfs
|
|
lh_chroot "aptitude install --assume-yes smbfs"
|
|
|
|
# Unmount proc
|
|
umount "${LIVE_CHROOT}"/proc
|
|
|
|
if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ]
|
|
then
|
|
if [ ! -d "${LIVE_CHROOT}"/etc/initramfs-tools ]
|
|
then
|
|
mkdir "${LIVE_CHROOT}"/etc/initramfs-tools
|
|
fi
|
|
|
|
# Configuring initramfs for NFS
|
|
cat >> "${LIVE_CHROOT}"/etc/initramfs-tools/initramfs.conf << EOF
|
|
MODULES=netboot
|
|
BOOT=nfs
|
|
NFSROOT=auto
|
|
EOF
|
|
lh_chroot "update-initramfs -tu"
|
|
fi
|
|
fi
|
|
|
|
lh_cleanapt
|
|
|
|
# Switching package indices to default
|
|
if [ "${LIVE_GENERIC_INDICES}" = "yes" ]
|
|
then
|
|
lh_setupapt default
|
|
lh_configapt deapply-proxy
|
|
lh_configapt deapply-recommends
|
|
fi
|
|
|
|
# Deconfigure network
|
|
lh_patchnetwork deapply
|
|
|
|
# Deconfigure chroot
|
|
lh_patchrunlevel deapply
|
|
lh_patchchroot deapply
|
|
|
|
# Generating rootfs image
|
|
lh_genrootfs
|
|
|
|
# Configure chroot
|
|
lh_patchchroot apply
|
|
lh_patchrunlevel apply
|
|
|
|
# Configure network
|
|
lh_patchnetwork apply
|
|
|
|
lh_cleanapt
|
|
|
|
# Switching package indices to custom
|
|
lh_setupapt custom
|
|
lh_configapt apply-proxy
|
|
lh_configapt apply-recommends
|
|
|
|
case "${LIVE_TYPE}" in
|
|
Iso)
|
|
TYPE=iso
|
|
;;
|
|
Usb)
|
|
TYPE=usb
|
|
;;
|
|
Net)
|
|
TYPE=net
|
|
;;
|
|
esac
|
|
|
|
# Mount proc
|
|
mount proc-live -t proc "${LIVE_CHROOT}"/proc
|
|
|
|
# Install depends
|
|
lh_depends install $TYPE
|
|
|
|
# Installing syslinux
|
|
lh_installsyslinux $TYPE
|
|
|
|
# Installing linux-image
|
|
lh_installlinux $TYPE
|
|
|
|
# Installing memtest
|
|
lh_installmemtest86+ $TYPE
|
|
|
|
# Deconfigure network
|
|
lh_patchnetwork deapply
|
|
|
|
# Deconfigure chroot
|
|
lh_patchrunlevel deapply
|
|
lh_patchchroot deapply
|
|
|
|
# Installing templates
|
|
if [ "${LIVE_FLAVOUR}" != "minimal" ] || [ "${LIVE_FLAVOUR}" != "mini" ]
|
|
then
|
|
if [ "${TYPE}" != "usb" ]
|
|
then
|
|
cp -r "${LIVE_TEMPLATES}"/common/* "${LIVE_ROOT}"/binary
|
|
fi
|
|
|
|
if [ "${TYPE}" = "iso" ] || [ "${TYPE}" = "usb" ]
|
|
then
|
|
cp -r "${LIVE_TEMPLATES}"/iso/* "${LIVE_ROOT}"/binary
|
|
fi
|
|
fi
|
|
|
|
# Calculating md5sums
|
|
lh_md5sums
|
|
|
|
case "${TYPE}" in
|
|
iso)
|
|
if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ]
|
|
then
|
|
# Create image
|
|
${GENISOIMAGE} -A "Debian Live" -p "Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org" -publisher "Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org" -o "${LIVE_ROOT}"/"${LIVE_IMAGE}"binary.iso -r -J -l -V "${LIVE_DISK_VOLUME}" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "${LIVE_ROOT}"/binary ${LIVE_INCLUDE_IMAGE}
|
|
else
|
|
echo "W: Bootloader on your architecture not yet supported (Continuing in 5 seconds)."
|
|
sleep 5
|
|
# Create image
|
|
${GENISOIMAGE} -A "Debian Live" -p "Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org" -publisher "Debian Live; http://debian-live.alioth.debian.org/; debian-live-devel@lists.alioth.debian.org" -o "${LIVE_ROOT}"/"${LIVE_IMAGE}"binary.iso -r -J -l -V "${LIVE_DISK_VOLUME}" "${LIVE_ROOT}"/binary ${LIVE_INCLUDE_IMAGE}
|
|
fi
|
|
;;
|
|
|
|
net)
|
|
cd "${LIVE_ROOT}" && \
|
|
mv binary "`basename ${LIVE_SERVER_PATH}`" && \
|
|
cd .. && \
|
|
tar cfz binary.tar.gz "`basename ${LIVE_ROOT}`/`basename ${LIVE_SERVER_PATH}`" "`basename ${LIVE_ROOT}`/tftpboot" && \
|
|
mv binary.tar.gz "${LIVE_ROOT}" && \
|
|
cd "${OLDPWD}" && \
|
|
mv "`basename ${LIVE_SERVER_PATH}`" binary
|
|
;;
|
|
|
|
usb)
|
|
# Everything which comes here needs to be cleaned up,
|
|
DU_DIM="`du -ms ${LIVE_ROOT}/binary | cut -f1`"
|
|
REAL_DIM="`expr ${DU_DIM} + ${DU_DIM} / 20`" # Just 5% more to be sure, need something more sophistcated here...
|
|
dd if=/dev/zero of="${LIVE_ROOT}"/binary.img bs=1024k count=${REAL_DIM}
|
|
|
|
FREELO="`lh_chroot 'losetup -f'`"
|
|
|
|
echo "!!! The following error/warning messages can be ignored !!!"
|
|
lh_losetup $FREELO "${LIVE_ROOT}"/binary.img 0
|
|
set +e
|
|
lh_chroot "parted -s ${FREELO} mklabel msdos"
|
|
lh_chroot "parted -s ${FREELO} mkpartfs primary fat16 0.0 100%"
|
|
lh_chroot "parted -s ${FREELO} set 1 boot on"
|
|
lh_chroot "parted -s ${FREELO} set 1 lba off"
|
|
set -e
|
|
cat "${LIVE_CHROOT}"/usr/lib/syslinux/mbr.bin > ${FREELO}
|
|
losetup -d ${FREELO}
|
|
|
|
lh_losetup $FREELO "${LIVE_ROOT}"/binary.img 1
|
|
lh_chroot "mkfs.msdos -n DEBIAN_LIVE ${FREELO}"
|
|
mkdir "${LIVE_ROOT}"/binary.tmp
|
|
mount ${FREELO} "${LIVE_ROOT}"/binary.tmp
|
|
cp -r "${LIVE_ROOT}"/binary/* "${LIVE_ROOT}"/binary.tmp
|
|
umount "${LIVE_ROOT}"/binary.tmp
|
|
rmdir "${LIVE_ROOT}"/binary.tmp
|
|
lh_chroot "syslinux ${FREELO}"
|
|
losetup -d ${FREELO}
|
|
|
|
echo "!!! The above error/warning messages can be ignored !!!"
|
|
;;
|
|
esac
|
|
|
|
# Remove depends
|
|
lh_depends remove $TYPE
|
|
|
|
# Unmount proc
|
|
umount "${LIVE_CHROOT}"/proc
|
|
|
|
# Touching stage file
|
|
touch "${LIVE_ROOT}"/.stage/image_binary
|
|
fi
|