Created
March 4, 2020 22:06
-
-
Save sec-js/9c4b1ef20dfa23dd02435bee797ec521 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# remastersys script to make an installable livecd/dvd from a Debian installed | |
# and customized system | |
# | |
# | |
# Created by Tony "Fragadelic" Brijeski | |
# | |
# Copyright 2007-2012 Under the GNU GPL2 License | |
# | |
# Originally Created February 12th, 2007 | |
# | |
# | |
# | |
# | |
# | |
figlet D4RkReMaStEr | |
# checking to make sure script is running with root privileges | |
. /etc/remastersys/remastersys.version | |
testroot="`whoami`" | |
if [ "$testroot" != "root" ]; then | |
echo "Usage of remastersys $REMASTERSYSVERSION is as follows:" | |
echo " " | |
echo " sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]" | |
echo " " | |
echo " " | |
echo "Examples:" | |
echo " " | |
echo " sudo remastersys backup (to make a livecd/dvd backup of your system)" | |
echo " " | |
echo " sudo remastersys backup custom.iso" | |
echo " (to make a livecd/dvd backup and call the iso custom.iso)" | |
echo " " | |
echo " sudo remastersys clean (to clean up temporary files of remastersys)" | |
echo " " | |
echo " sudo remastersys dist (to make a distributable livecd/dvd of your system)" | |
echo " " | |
echo " sudo remastersys dist cdfs" | |
echo " (to make a distributable livecd/dvd filesystem only)" | |
echo " " | |
echo " sudo remastersys dist iso custom.iso" | |
echo " (to make a distributable iso named custom.iso but only" | |
echo " if the cdfs is already present)" | |
echo " " | |
echo " cdfs and iso options should only be used if you wish to modify something on the" | |
echo " cd before the iso is created. An example of this would be to modify the isolinux" | |
echo " portion of the livecd/dvd" | |
echo " " | |
exit 1 | |
fi | |
# load the remastersys.conf file | |
. /etc/remastersys.conf | |
# if the remastersys.conf file is incorrect or missing, make sure to set defaults | |
if [ "$LIVEUSER" = "" ]; then | |
#Somebody must have removed the username from the configuration file | |
#echo | |
#this is a custom live user | |
LIVEUSER="custom" | |
fi | |
#make sure live user is all lowercase | |
LIVEUSER="`echo $LIVEUSER | awk '{print tolower ($0)}'`" | |
SHOWICON="`echo $SHOWICON | awk '{print tolower ($0)}'`" | |
if [ "$SHOWICON" = "1" ]; then | |
SHOWICON="1" | |
elif [ "$SHOWICON" = "yes" ]; then | |
SHOWICON="1" | |
elif [ "$SHOWICON" = "true" ]; then | |
SHOWICON="1" | |
else | |
SHOWICON="0" | |
fi | |
if [ "$WORKDIR" = "" ]; then | |
WORKDIR="/home/remastersys/remastersys" | |
BASEWORKDIR="/home/remastersys" | |
else | |
BASEWORKDIR="$WORKDIR" | |
WORKDIR="$WORKDIR/remastersys" | |
fi | |
if [ "$LIVECDLABEL" = "" ]; then | |
LIVECDLABEL="Custom Live CD" | |
fi | |
if [ "$ISOBOOT" != "GRUB" ]; then | |
ISOBOOT="ISOLINUX" | |
fi | |
if [ "$2" = "cdfs" ]; then | |
echo "Creating the cd filesystem only" | |
elif [ "$2" = "iso" ]; then | |
echo "Creating the iso file only" | |
elif [ "$2" = "" ]; then | |
echo " " | |
else | |
CUSTOMISO="$2" | |
fi | |
if [ "$3" != "" ]; then | |
CUSTOMISO="$3" | |
fi | |
if [ "$CUSTOMISO" = "" ]; then | |
CUSTOMISO="custom$1.iso" | |
fi | |
case $1 in | |
backup) | |
echo "System Backup Mode Selected" | |
;; | |
clean) | |
echo "Removing the build directory now..." | |
rm -rf $WORKDIR | |
echo "Done...Exiting" | |
exit 0 | |
;; | |
dist) | |
echo "Distribution Mode Selected" | |
;; | |
*) | |
echo "Usage of remastersys $REMASTERSYSVERSION is as follows:" | |
echo " " | |
echo " sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]" | |
echo " " | |
echo " " | |
echo "Examples:" | |
echo " " | |
echo " sudo remastersys backup (to make a livecd/dvd backup of your system)" | |
echo " " | |
echo " sudo remastersys backup custom.iso" | |
echo " (to make a livecd/dvd backup and call the iso custom.iso)" | |
echo " " | |
echo " sudo remastersys clean (to clean up temporary files of remastersys)" | |
echo " " | |
echo " sudo remastersys dist (to make a distributable livecd/dvd of your system)" | |
echo " " | |
echo " sudo remastersys dist cdfs" | |
echo " (to make a distributable livecd/dvd filesystem only)" | |
echo " " | |
echo " sudo remastersys dist iso custom.iso" | |
echo " (to make a distributable iso named custom.iso but only" | |
echo " if the cdfs is already present)" | |
echo " " | |
echo " cdfs and iso options should only be used if you wish to modify something on the" | |
echo " cd before the iso is created. An example of this would be to modify the isolinux" | |
echo " portion of the livecd/dvd" | |
echo " " | |
exit 1 | |
;; | |
esac | |
cdfs (){ | |
# Step 3 - Create the CD tree in $WORKDIR/ISOTMP | |
echo "Checking if the $WORKDIR folder has been created" | |
if [ -d "$WORKDIR" ]; then | |
rm -rf $WORKDIR/dummysys/var/* | |
rm -rf $WORKDIR/dummysys/etc/* | |
else | |
mkdir -p $WORKDIR/ISOTMP/live | |
mkdir -p $WORKDIR/ISOTMP/install | |
mkdir -p $WORKDIR/ISOTMP/preseed | |
mkdir -p $WORKDIR/dummysys/dev | |
mkdir -p $WORKDIR/dummysys/etc/live | |
mkdir -p $WORKDIR/dummysys/proc | |
mkdir -p $WORKDIR/dummysys/tmp | |
mkdir -p $WORKDIR/dummysys/sys | |
mkdir -p $WORKDIR/dummysys/mnt | |
#mkdir -p $WORKDIR/dummysys/media/cdrom | |
mkdir -p $WORKDIR/dummysys/media | |
mkdir -p $WORKDIR/dummysys/run | |
mkdir -p $WORKDIR/dummysys/var | |
chmod ug+rwx,o+rwt $WORKDIR/dummysys/tmp | |
fi | |
echo "Copying /var and /etc to temp area and excluding extra files" | |
if [ "$EXCLUDES" != "" ]; then | |
for addvar in $EXCLUDES ; do | |
VAREXCLUDES="$VAREXCLUDES --exclude='$addvar' " | |
done | |
fi | |
# if this is kde, copy the adept_notifier_auto.desktop to /etc/remastersys so the installer can put it back as live-initramfs removes it altogether | |
if [ -f /usr/share/autostart/adept_notifier_auto.desktop ]; then | |
cp /usr/share/autostart/adept_notifier_auto.desktop /etc/remastersys/ | |
fi | |
# copy trackerd stuff as live-initramfs disables it | |
if [ -f /etc/xdg/autostart/tracker-applet.desktop ]; then | |
cp /etc/xdg/autostart/tracker-applet.desktop /etc/remastersys | |
fi | |
if [ -f /etc/xdg/autostart/trackerd.desktop ]; then | |
cp /etc/xdg/autostart/trackerd.desktop.xdg /etc/remastersys | |
fi | |
if [ -f /usr/share/autostart/trackerd.desktop ]; then | |
cp /usr/share/autostart/trackerd.desktop.share /etc/remastersys | |
fi | |
#cleanup leftover live script if it exists | |
if [ -f /etc/profile.d/zz-live.sh ]; then | |
rm -f /etc/profile.d/zz-live.sh | |
fi | |
rsync --exclude='*.log.*' --exclude='*.pid' --exclude='*.bak' --exclude='*.[0-9].gz' --exclude='*.deb' $VAREXCLUDES-a /var/. $WORKDIR/dummysys/var/. | |
rsync $VAREXCLUDES-a /etc/. $WORKDIR/dummysys/etc/. | |
if [ "$1" = "dist" ]; then | |
rm -f $WORKDIR/dummysys/etc/X11/xorg.conf | |
rm -f $WORKDIR/dummysys/etc/resolv.conf | |
rm -f $WORKDIR/dummysys/etc/hosts | |
rm -f $WORKDIR/dummysys/etc/hostname | |
fi | |
rm -f $WORKDIR/dummysys/etc/mtab | |
rm -f $WORKDIR/dummysys/etc/fstab | |
rm -f $WORKDIR/dummysys/etc/udev/rules.d/70-persistent* | |
ls $WORKDIR/dummysys/var/lib/apt/lists | grep -v ".gpg" | grep -v "lock" | grep -v "partial" | xargs -i rm $WORKDIR/dummysys/var/lib/apt/lists/{} ; | |
if [ "$1" = "dist" ]; then | |
#fix for buggy debian live setup of gdm and gdm3 | |
if [ -f $WORKDIR/dummysys/etc/gdm/gdm.conf ]; then | |
sed -i -e '/AutomaticLoginEnable/d' $WORKDIR/dummysys/etc/gdm/gdm.conf | |
fi | |
if [ -f $WORKDIR/dummysys/etc/gdm3/daemon.conf ]; then | |
sed -i -e '/AutomaticLoginEnable/d' $WORKDIR/dummysys/etc/gdm3/daemon.conf | |
fi | |
if [ -f $WORKDIR/dummysys/etc/gdm/gdm.conf-custom ]; then | |
echo " " > $WORKDIR/dummysys/etc/gdm/gdm.conf-custom | |
fi | |
if [ -f /etc/X11/default-display-manager ]; then | |
if [ "$SHOWICON" = "1" ]; then | |
echo "Copying Install Icon to Desktop for live user" | |
if [ ! -d $WORKDIR/dummysys/etc/skel/Desktop ]; then | |
mkdir -p $WORKDIR/dummysys/etc/skel/Desktop | |
fi | |
if [ "`grep kdm /etc/X11/default-display-manager`" = "" ]; then | |
cp /usr/share/applications/remastersys-installer.desktop $WORKDIR/dummysys/etc/skel/Desktop/ | |
chmod +x $WORKDIR/dummysys/etc/skel/Desktop/remastersys-installer.desktop | |
else | |
cp /usr/share/applications/remastersys-installer-kde.desktop $WORKDIR/dummysys/etc/skel/Desktop/ | |
chmod +x $WORKDIR/dummysys/etc/skel/Desktop/remastersys-installer-kde.desktop | |
fi | |
fi | |
fi | |
rm -f $WORKDIR/dummysys/etc/group | |
rm -f $WORKDIR/dummysys/etc/group- | |
rm -f $WORKDIR/dummysys/etc/passwd | |
rm -f $WORKDIR/dummysys/etc/passwd- | |
rm -f $WORKDIR/dummysys/etc/shadow | |
rm -f $WORKDIR/dummysys/etc/shadow- | |
rm -f $WORKDIR/dummysys/etc/gshadow | |
rm -f $WORKDIR/dummysys/etc/gshadow- | |
rm -f $WORKDIR/dummysys/etc/wicd/wired-settings.conf | |
rm -f $WORKDIR/dummysys/etc/wicd/wireless-settings.conf | |
rm -rf $WORKDIR/dummysys/etc/NetworkManager/system-connections/* | |
rm -f $WORKDIR/dummysys/etc/printcap | |
rm -f $WORKDIR/dummysys/etc/cups/printers.conf | |
touch $WORKDIR/dummysys/etc/printcap | |
touch $WORKDIR/dummysys/etc/cups/printers.conf | |
rm -rf $WORKDIR/dummysys/var/cache/gdm/* | |
rm -rf $WORKDIR/dummysys/var/lib/sudo/* | |
rm -rf $WORKDIR/dummysys/var/run/console/* | |
rm -f $WORKDIR/dummysys/var/lib/kdm/kdmsts | |
rm -f $WORKDIR/dummysys/var/lib/AccountsService/users/* | |
rm -f $WORKDIR/dummysys/etc/gdm/gdm.conf-custom | |
rm -f $WORKDIR/dummysys/etc/gdm/custom.conf | |
rm -f $WORKDIR/dummysys/etc/cups/ssl/server.crt | |
rm -f $WORKDIR/dummysys/etc/cups/ssl/server.key | |
rm -f $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key | |
rm -f $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key.pub | |
rm -f $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key | |
rm -f $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key.pub | |
find $WORKDIR/dummysys/var/run $WORKDIR/dummysys/var/log $WORKDIR/dummysys/var/mail $WORKDIR/dummysys/var/spool $WORKDIR/dummysys/var/lock $WORKDIR/dummysys/var/backups $WORKDIR/dummysys/var/tmp -type f -exec rm '{}' \; | |
#further cleanup | |
rm -rf $WORKDIR/dummysys/var/cache/gdm/* | |
rm -rf $WORKDIR/dummysys/var/tmp/kdecache* | |
rm -rf $WORKDIR/dummysys/var/spool/gfax/* | |
rm -rf $WORKDIR/dummysys/var/run/gdm3/* | |
rm -rf $WORKDIR/dummysys/var/lib/sudo/* | |
rm -rf $WORKDIR/dummysys/var/lib/polkit-1/localauthority/10-vendor.d/10-live-cd.pkla | |
#fix for live scripts setup Contributed by AnthLee of SalineOS | |
rm -rf $WORKDIR/dummysys/var/lib/live/config/* | |
for i in dpkg.log lastlog mail.log syslog auth.log daemon.log faillog lpr.log mail.warn user.log boot debug mail.err messages wtmp bootstrap.log dmesg kern.log mail.info | |
do | |
touch $WORKDIR/dummysys/var/log/${i} | |
done | |
# remove the non system users on the passwd and group files and copy them to dummysys | |
# see if any temp users left over from previous versions of remastersys as the process has now changed | |
grep '^[^:]*:[^:]*:[5-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print "/usr/sbin/userdel -f",$1}'> $WORKDIR/cleantmpusers | |
. $WORKDIR/cleantmpusers | |
grep '^[^:]*:[^:]*:[0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd | |
grep '^[^:]*:[^:]*:[0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd | |
grep '^[^:]*:[^:]*:[0-9][0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd | |
grep '^[^:]*:[^:]*:[3-9][0-9][0-9][0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd | |
grep '^[^:]*:[^:]*:[0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group | |
grep '^[^:]*:[^:]*:[0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group | |
grep '^[^:]*:[^:]*:[0-9][0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group | |
grep '^[^:]*:[^:]*:[3-9][0-9][0-9][0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group | |
grep '^[^:]*:[^:]*:[5-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers1 | |
grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers2 | |
grep '^[^:]*:[^:]*:[1-2][0-9][0-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers3 | |
cat $WORKDIR/tmpusers1 $WORKDIR/tmpusers2 $WORKDIR/tmpusers3 > $WORKDIR/tmpusers | |
cat $WORKDIR/tmpusers | while read LINE ;do | |
echo $LINE | xargs -i sed -e 's/,{}//g' $WORKDIR/dummysys/etc/group > $WORKDIR/dummysys/etc/group.new1 | |
echo $LINE | xargs -i sed -e 's/{},//g' $WORKDIR/dummysys/etc/group.new1 > $WORKDIR/dummysys/etc/group.new2 | |
echo $LINE | xargs -i sed -e 's/{}//g' $WORKDIR/dummysys/etc/group.new2 > $WORKDIR/dummysys/etc/group | |
rm -rf $WORKDIR/dummysys/etc/group.new1 $WORKDIR/dummysys/etc/group.new2 | |
done | |
fi | |
# copy over some of the necessary stuff for the livecd | |
if [ -f /etc/remastersys/preseed/*.seed ]; then | |
cp /etc/remastersys/preseed/* $WORKDIR/ISOTMP/preseed/ | |
fi | |
#BOOT Type selected is GRUB | |
if [ "$ISOBOOT" = "GRUB" ]; then | |
cp /etc/remastersys/isolinux/memtest.bin $WORKDIR/ISOTMP/memtest.bin | |
mkdir -p $WORKDIR/ISOTMP/boot/grub | |
mkdir -p $WORKDIR/ISOTMP/usr/share/grub | |
cp -a /boot/grub/* $WORKDIR/ISOTMP/boot/grub/ | |
cp -a /usr/share/grub/* $WORKDIR/ISOTMP/usr/share/grub/ | |
cp /etc/remastersys/grub/grub.cfg $WORKDIR/ISOTMP/boot/grub/grub.cfg | |
cp /etc/remastersys/grub.png $WORKDIR/ISOTMP/boot/grub/grub.png | |
sed -i -e 's/__LIVECDLABEL__/'"$LIVECDLABEL"'/g' $WORKDIR/ISOTMP/boot/grub/grub.cfg | |
if [ ! -d /etc/plymouth ]; then | |
sed -i -e 's/splash//g' $WORKDIR/ISOTMP/boot/grub/grub.cfg | |
fi | |
else | |
#BOOT Type selected is ISOLINUX | |
mkdir -p $WORKDIR/ISOTMP/isolinux | |
if [ `ls /etc/remastersys/customisolinux` ]; then | |
cp /etc/remastersys/customisolinux/* $WORKDIR/ISOTMP/isolinux/ | |
else | |
cp /etc/remastersys/isolinux/* $WORKDIR/ISOTMP/isolinux/ | |
sed -i -e 's/__LIVECDLABEL__/'"$LIVECDLABEL"'/g' $WORKDIR/ISOTMP/isolinux/menu.cfg | |
if [ ! -d /etc/plymouth ]; then | |
sed -i -e 's/splash//g' $WORKDIR/ISOTMP/isolinux/live.cfg | |
fi | |
fi | |
fi | |
sleep 1 | |
# Step 4 - Prepare live.conf depending on whether this is a backup or dist | |
if [ "$1" = "backup" ]; then | |
LIVEUSER="`grep '^[^:]*:[^:]*:1000:' /etc/passwd | awk -F ":" '{ print $1 }'`" | |
#fix Thunar volmanrc for live | |
for i in `ls -d /home/*`; do | |
if [ /$i/.config/Thunar/volmanrc ]; then | |
sed -i -e 's/TRUE/FALSE/g' /$i/.config/Thunar/volmanrc | |
cp -f /$i/.config/volmanrc /root/.config/Thunar/volmanrc | |
fi | |
done | |
fi | |
if [ ! -d /etc/live ]; then | |
mkdir -p /etc/live | |
fi | |
echo "export LIVE_USERNAME=\"$LIVEUSER\"" > /etc/live/config.conf | |
echo "export LIVE_USER_FULLNAME=\"Live session user\"" >> /etc/live/config.conf | |
echo "export LIVE_HOSTNAME=\"$LIVEUSER\"" >> /etc/live/config.conf | |
if [ "$1" = "backup" ]; then | |
echo "export LIVE_NOCONFIGS=\"user-setup,sudo,locales,locales-all,tzdata,gdm,gdm3,kdm,lightdm,lxdm,nodm,slim,xinit,keyboard-configuration,gnome-panel-data,gnome-power-manager,gnome-screensaver,kde-services,debian-installer-launcher,login\"" >> /etc/live/config.conf | |
fi | |
#fix for a bug in the debian live boot scripts that starts a second X server | |
if [ "$1" = "dist" ] && [ -f /etc/X11/default-display-manager ]; then | |
echo "export LIVE_NOCONFIGS=\"xinit\"" >> /etc/live/config.conf | |
fi | |
cp /etc/live/config.conf $WORKDIR/dummysys/etc/live/ | |
sleep 1 | |
#fix for policy kit in live | |
sed -i -e 's/ResultAny=no/ResultAny=yes/g' /lib/live/config/1100-policykit | |
sed -i -e 's/ResultInactive=no/ResultInactive=yes/g' /lib/live/config/1100-policykit | |
echo "Setting up live options for $1 mode" | |
# make a new initial ramdisk including the live scripts | |
update-initramfs -t -c -k $(uname -r) | |
echo "Copying your kernel and initrd for the livecd" | |
cp /boot/vmlinuz-$(uname -r) $WORKDIR/ISOTMP/live/vmlinuz | |
cp /boot/initrd.img-$(uname -r) $WORKDIR/ISOTMP/live/initrd.img | |
# Step 5 - Make filesystem.squashfs | |
if [ -f $WORKDIR/remastersys.log ]; then | |
rm -f $WORKDIR/remastersys.log | |
touch $WORKDIR/remastersys.log | |
fi | |
if [ -f $WORKDIR/ISOTMP/live/filesystem.squashfs ]; then | |
rm -f $WORKDIR/ISOTMP/live/filesystem.squashfs | |
fi | |
echo "Creating filesystem.squashfs ... this will take a while so be patient" | |
if [ "$SQUASHFSOPTS" = "" ]; then | |
SQUASHFSOPTS="-no-recovery -always-use-fragments -b 1M" | |
fi | |
REALFOLDERS="" | |
for d in `ls -d $WORKDIR/dummysys/*`; do | |
REALFOLDERS="$REALFOLDERS $d" | |
done | |
if [ "$1" = "backup" ]; then | |
for d in `ls / | grep -v etc | grep -v run | grep -v tmp | grep -v sys | grep -v var \ | |
| grep -v dev | grep -v media | grep -v mnt | grep -v lost+found | grep -v proc`; do | |
REALFOLDERS="$REALFOLDERS /$d" | |
done | |
else | |
for d in `ls / | grep -v etc | grep -v run | grep -v tmp | grep -v sys | grep -v var \ | |
| grep -v dev | grep -v media | grep -v mnt | grep -v lost+found | grep -v proc \ | |
| grep -v home`; do | |
REALFOLDERS="$REALFOLDERS /$d" | |
done | |
fi | |
mksquashfs $REALFOLDERS $WORKDIR/ISOTMP/live/filesystem.squashfs -no-duplicates $SQUASHFSOPTS -e \ | |
root/.thumbnails \ | |
root/.cache \ | |
root/.bash_history \ | |
root/.lesshst \ | |
root/.nano_history \ | |
boot/grub \ | |
$BASEWORKDIR $EXCLUDES 2>>$WORKDIR/remastersys.log | |
if [ "$1" = "backup" ]; then | |
#return Thunar volmanrc back to normal | |
for i in `ls -d /home/*`; do | |
if [ /$i/.config/Thunar/volmanrc ]; then | |
sed -i -e 's/FALSE/TRUE/g' /$i/.config/Thunar/volmanrc | |
cp -f /$i/.config/volmanrc /root/.config/Thunar/volmanrc | |
fi | |
done | |
fi | |
sleep 1 | |
#add some stuff the log in case of problems so I can troubleshoot it easier | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "Mount information" >>$WORKDIR/remastersys.log | |
mount >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "df information" >>$WORKDIR/remastersys.log | |
df -h >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/remastersys.conf info" >>$WORKDIR/remastersys.log | |
cat /etc/remastersys.conf >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/live/config.conf info" >>$WORKDIR/remastersys.log | |
cat /etc/live/config.conf >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/passwd info" >>$WORKDIR/remastersys.log | |
cat $WORKDIR/dummysys/etc/passwd >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/group info" >>$WORKDIR/remastersys.log | |
cat $WORKDIR/dummysys/etc/group >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/skel info" >>$WORKDIR/remastersys.log | |
find /etc/skel/ >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "/etc/X11/default-display-manager info" >>$WORKDIR/remastersys.log | |
cat /etc/X11/default-display-manager >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "Remastersys Version info" >>$WORKDIR/remastersys.log | |
cat /etc/remastersys/remastersys.version >>$WORKDIR/remastersys.log | |
echo "-----------------------------------------------------" >>$WORKDIR/remastersys.log | |
echo "Command-line options = $@" >>$WORKDIR/remastersys.log | |
echo "------------------------------------------------------" >>$WORKDIR/remastersys.log | |
sleep 1 | |
} | |
iso (){ | |
CREATEISO="`which mkisofs`" | |
if [ "$CREATEISO" = "" ]; then | |
CREATEISO="`which genisoimage`" | |
fi | |
# check to see if the cd filesystem exists | |
if [ ! -f "$WORKDIR/ISOTMP/live/filesystem.squashfs" ]; then | |
echo "The cd filesystem is missing. Either there was a problem creating the compressed filesystem or you are trying to run sudo remastersys dist iso before sudo remastersys dist cdfs" | |
echo "The cd filesystem is missing. Either there was a problem creating the compressed filesystem or you are trying to run sudo remastersys dist iso before sudo remastersys dist cdfs" >>$WORKDIR/remastersys.log | |
exit 1 | |
fi | |
#isolinux mode | |
sleep 1 | |
# Step 6 - Make the ISO file | |
if [ "$ISOBOOT" = "GRUB" ]; then | |
echo "Creating $CUSTOMISO in $WORKDIR using grub-mkrescue" | |
echo "Creating $CUSTOMISO in $WORKDIR using grub-mkrescue" >>$WORKDIR/remastersys.log | |
grub-mkrescue -o $WORKDIR/$CUSTOMISO $WORKDIR/ISOTMP/ 2>>$WORKDIR/remastersys.log 1>>$WORKDIR/remastersys.log | |
else | |
echo "Creating $CUSTOMISO in $WORKDIR using $CREATEISO" | |
echo "Creating $CUSTOMISO in $WORKDIR using $CREATEISO" >>$WORKDIR/remastersys.log | |
$CREATEISO \ | |
-quiet \ | |
-r \ | |
-V "$LIVECDLABEL" \ | |
-cache-inodes \ | |
-J \ | |
-l \ | |
-b isolinux/isolinux.bin \ | |
-c isolinux/boot.cat \ | |
-no-emul-boot \ | |
-allow-limited-size \ | |
-boot-load-size 4 \ | |
-boot-info-table \ | |
-o $WORKDIR/$CUSTOMISO "$WORKDIR/ISOTMP" 2>>$WORKDIR/remastersys.log 1>>$WORKDIR/remastersys.log | |
# create hybrid iso so it can be dd installed to a usb flash drive | |
echo "Making the iso into a hybrid image so it can be imaged to a usb key or burned to optical media" | |
isohybrid $WORKDIR/$CUSTOMISO | |
fi | |
# create the md5 sum file so the user doesn't have to - this is good so the iso file can later be tested to ensure it hasn't become corrupted | |
echo "Creating $CUSTOMISO.md5 in $WORKDIR" | |
echo "Creating $CUSTOMISO.md5 in $WORKDIR" >>$WORKDIR/remastersys.log | |
cd $WORKDIR | |
md5sum $CUSTOMISO > $CUSTOMISO.md5 | |
sleep 1 | |
echo "$WORKDIR/$CUSTOMISO is ready to be burned or tested in a virtual machine." | |
echo " " | |
echo "Recoded by D4RkNiK0l4s" | |
echo " " | |
ls -hs $WORKDIR/$CUSTOMISO | |
ls -hs $WORKDIR/$CUSTOMISO >> $WORKDIR/remastersys.log | |
echo " " | |
echo "It is recommended to run 'sudo remastersys clean' once you have burned and tested the $CUSTOMISO" | |
echo " " | |
} | |
# check to see if either iso or cdfs options have been invoked and proceed accordingly | |
if [ "$2" = "iso" ]; then | |
iso $@ | |
elif [ "$2" = "cdfs" ]; then | |
cdfs $@ | |
else | |
cdfs $@ | |
iso $@ | |
fi | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment