diff --git a/makeanything.sh b/makeanything.sh index 0e5bfbf..0c714fd 100755 --- a/makeanything.sh +++ b/makeanything.sh @@ -97,17 +97,6 @@ $CHROOTCMD /bin/bash /tmp/install_base.sh || error message "clear /tmp" $CHROOTCMD /usr/bin/rm -Rf /tmp/* || error -message "writing nanodesk-installer.sh into /root" -#first get the installed kernel version -KERNEL_VER="$($CHROOTCMD /usr/bin/dpkg -l "linux-image-*" | - grep "^ii"| - awk '{print $2}' | - grep -E 'linux-image-[0-9]\.([0-9]|[0-9][0-9])\.([0-9]|[0-9][0-9])-([0-9]|[0-9][0-9]).*-amd64$')" -message "using Kernel ${YELLOW}${KERNEL_VER}${ENDCOLOR}" -sudo sed "s/%KERNEL_VER%/${KERNEL_VER}/g" templates/nanodesk-installer.tpl.sh > build/tmp/nanodesk-installer.sh -sudo cp build/tmp/nanodesk-installer.sh build/chroot/root/nanodesk-installer.sh -sudo chmod +x build/chroot/root/nanodesk-installer.sh - message "write nanodesk version $VERSION into rootdir/usr/share/nanodesk/version" echo $VERSION > rootdir/usr/share/nanodesk/version @@ -117,6 +106,7 @@ sudo cp -r rootdir/* build/chroot/ message "correct file permissions" $CHROOTCMD /usr/bin/chmod 440 /etc/sudoers +$CHROOTCMD /usr/bin/chmod 755 /root/nanodesk-installer.sh ### liveboot part, https://www.willhaley.com/blog/custom-debian-live-environment/ message "make squashfs" @@ -127,9 +117,10 @@ sudo mksquashfs \ -comp xz \ -e boot || error + message "copy kernel and initrd images" -cp build/chroot/boot/vmlinuz-$(echo $KERNEL_VER|sed 's/linux-image-//g') build/staging/live/vmlinuz || error -cp build/chroot/boot/initrd.img-$(echo $KERNEL_VER|sed 's/linux-image-//g') build/staging/live/initrd || error +cp build/chroot/boot/vmlinuz-* build/staging/live/vmlinuz || error +cp build/chroot/boot/initrd.img-* build/staging/live/initrd || error message "generate isolinux.cfg" sed "s/%VERSION%/${VERSION}/g" templates/isolinux.tpl.cfg > build/staging/isolinux/isolinux.cfg diff --git a/templates/nanodesk-installer.tpl.sh b/templates/nanodesk-installer.tpl.sh deleted file mode 100755 index 5eb7613..0000000 --- a/templates/nanodesk-installer.tpl.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/bash - -### installer for nanodesk -### By: DeltaLima -### 2023 -### -### this is just a hobby, nothing serious. i know the debian installer and other -### exist, but i wanted to try some handcrafted installation. - - -CHROOTCMD="chroot /mnt/" - -##message () { -## echo "== " $1 -##} - -# colors for colored output 8) -RED="\e[31m" -GREEN="\e[32m" -YELLOW="\e[33m" -ENDCOLOR="\e[0m" - -function message() { - case $1 in - warn) - MESSAGE_TYPE="${YELLOW}WARN${ENDCOLOR}" - ;; - error) - MESSAGE_TYPE="${RED}ERROR${ENDCOLOR}" - ;; - info|*) - MESSAGE_TYPE="${GREEN}INFO${ENDCOLOR}" - ;; - esac - - if [ "$1" == "info" ] || [ "$1" == "warn" ] || [ "$1" == "error" ] - then - MESSAGE=$2 - else - MESSAGE=$1 - fi - - echo -e "[${MESSAGE_TYPE}] $MESSAGE" -} - -error () { - message error "ERROR!" - exit 1 -} - -finish () { - message "removing firststart dialoge from jwm config" - $CHROOTCMD /usr/bin/sed -i '/firstlogin\/welcome/d' /etc/jwm/system.jwmrc || error - - message "removing installer files from target" - $CHROOTCMD /usr/bin/rm -Rf /root/nanodesk-installer.sh || error - - message "removing live-packages from target" - $CHROOTCMD /usr/bin/apt -y purge 'live-boot*' 'live-tools*' - - message "autoremove unneeded dependencies" - $CHROOTCMD /usr/bin/apt -y autoremove - - - message "we are now ready to boot from $target" - exit 0 -} - -if [ "$1" == "--help" ] || [ -z "$1" ] -then - echo "Usage: $0 [OPTION] TARGETDEVICE -Example: $0 /dev/sda1 - -TARGETDEVICE: blockdevice already formatted with filesystem like ext4 - -Options: - --help: Show this helptext - - $0 trys to install grub into the mbr of the given targetdevice. - We simply cut the last character away from the targetdevice, - so /dev/sda1 gets /dev/sda, where grub will be installed." - exit 1 -fi - -target="$1" -if [ ! -b "$target" ] -then - message "$target does not exist or is not a blockdevice." - error -fi - -message " ----==== nanodesk Installer ====----" -message "Make sure you have a linux compatible filesystem at $target" -message warn "!! The installer immediately begins to write things to disk !!" -message warn "!! The installer only works reliable with legacy BIOS boot !!" -message -message "I will mount $target to /mnt/. I try to install grub to ${target::-1}" -message -message "Are you sure to install nanodesk to $target?" -message "To continue type 'YES' and enter, to cancel type anything else or CTRL+C" - -read -p "> " DOINSTALL -test "$DOINSTALL" == "YES" || error - -message "... GOOD LUCK!" -message "mounting $target to /mnt/" -mount $target /mnt || error - -message "copy systemfiles" -rsync -aHx / /mnt/ || error - -message "bind mount dev proc sys" -for m in dev proc sys -do - mount -o bind /$m /mnt/$m || error -done - -message "creating /boot directory" -mkdir -p /mnt/boot/ || error - -message "create tmp script for reinstalling grub and kernel" -cat <<\EOF > /mnt/tmp/reinstall_kernel.sh -DEBIAN_FRONTEND=noninteractive -export DEBIAN_FRONTEND -#/usr/bin/apt --yes purge 'linux-image-*' 'grub-*' -/usr/bin/apt --yes --reinstall install \ - linux-image-amd64 \ - %KERNEL_VER% \ - grub-pc grub-pc-bin \ - grub-common \ - grub2-common \ - os-prober -EOF - -message "install kernel and grub" -$CHROOTCMD /bin/bash /tmp/reinstall_kernel.sh || error - -message "modify /etc/default/grub" -$CHROOTCMD /usr/bin/sed -i 's/GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR=\"nanodesk \`cat \/usr\/share\/nanodesk\/version\`\"/g' /etc/default/grub - -message "grub-install $target" -$CHROOTCMD grub-install ${target::-1} || error - -message "create initramfs" -$CHROOTCMD /usr/sbin/update-initramfs.orig.initramfs-tools -k all -c || error - -message "update-grub" -$CHROOTCMD /usr/sbin/update-grub || error - -message "create fstab" -echo "UUID=$(blkid -o value -s UUID $target) / $(blkid -o value -s TYPE $target) defaults 0 1" >> /mnt/etc/fstab - -message "activating swap if present in fstab" -SWAP="$(blkid -o list | grep swap | awk '{print $5}')" -test -n "$SWAP" && echo "UUID=$SWAP none swap defaults 0 0" >> /mnt/etc/fstab - -message "Cleanup and create own [U]ser or [K]eep everything as it is?" -read -p "> " USERSTEP - -STEPFINISH=0 -while [ $STEPFINISH != 1 ] -do - case $USERSTEP in - u|U) - message "please change root pw" - $CHROOTCMD /usr/bin/passwd root || error - - message "deleting user 'debian'" - $CHROOTCMD /usr/bin/id -u debian && $CHROOTCMD /usr/sbin/userdel -f debian || error - - message "removing user 'debian' from sudoers" - $CHROOTCMD /usr/bin/sed -i '/^debian/d' /etc/sudoers || error - - message "please enter a name for a new user" - read -p "> " NEWUSER - $CHROOTCMD /usr/sbin/adduser $NEWUSER || error - - message "adding $NEWUSER to sudo group" - $CHROOTCMD /usr/sbin/usermod -G sudo $NEWUSER || error - $CHROOTCMD /usr/bin/ln -s -f /usr/share/nanodesk/pixmaps/nanodesk-installed.xpm /usr/share/nanodesk/pixmaps/nanodesk.xpm || error - $CHROOTCMD /usr/bin/ln -s -f /usr/share/nanodesk/pixmaps/nanodesk-bw-installed.xpm /usr/share/nanodesk/pixmaps/nanodesk-bw.xpm || error - - STEPFINISH=1 - - ;; - k|K) - finish - ;; - esac -done - -finish