Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nimatrueway/628edc8775bf3eab127cc890321ea1e4 to your computer and use it in GitHub Desktop.
Save nimatrueway/628edc8775bf3eab127cc890321ea1e4 to your computer and use it in GitHub Desktop.
Fix KDE Neon boot problem by replacing its boot-partition with Kubuntu's
#!/bin/bash
sudo apt-get install kpartx xorriso
# parameters to set before run
# download both kde-neon and kubuntu's image to fuse them (attach EFI+BootPartition to kde-neon's)
export KDE_NEON_IMG=/home/nima/neon-useredition-20190321-0530-amd64.iso
export KUBUNTU_IMG=/home/nima/kubuntu-18.04.2-desktop-amd64.iso
export KDE_NEON_NEW_IMG=$(basename $KDE_NEON_IMG | awk '{ gsub(/\.iso$/,"-modded.iso",$1); print $1 }')
export MOUNT=$(mktemp -d)
mkdir $MOUNT/kubuntu
mkdir $MOUNT/kubuntu-boot
mkdir $MOUNT/neon
mkdir $MOUNT/modded
# mount kubuntu iso main-partition to fetch EFI from it
sudo kpartx -v -a $KUBUNTU_IMG
export KUBUNTU_MAIN_DEV=$(sudo kpartx -l $KUBUNTU_IMG | head -n 1 | awk '{ print "/dev/mapper/"$1 }')
sudo mount $KUBUNTU_MAIN_DEV $MOUNT/kubuntu -o loop,ro
# mount kubuntu iso boot-partition to attach it to neon iso
export KUBUNTU_BOOT_DEV=$(sudo kpartx -l $KUBUNTU_IMG | tail -n 1 | awk '{ print "/dev/mapper/"$1 }')
sudo mount $KUBUNTU_BOOT_DEV $MOUNT/kubuntu-boot -o loop,ro
sudo dd if=$KUBUNTU_BOOT_DEV of=$MOUNT/kubuntu-boot.img
# mount neon iso to copy its files
sudo kpartx -v -a $KDE_NEON_IMG
export NEON_MAIN_DEV=$(sudo kpartx -l $KDE_NEON_IMG | head -n 1 | awk '{ print "/dev/mapper/"$1 }')
sudo mount $NEON_MAIN_DEV $MOUNT/neon -o loop,ro
# create mix = neon files (except EFI) + kubuntu's EFI
cp -R $MOUNT/neon/* $MOUNT/modded/
sudo rm -rf $MOUNT/modded/EFI
cp -R $MOUNT/kubuntu/EFI $MOUNT/modded/
# unmount + unmap + remove
sudo umount $MOUNT/neon
sudo umount $MOUNT/kubuntu-boot
sudo umount $MOUNT/kubuntu
sudo kpartx -v -d $KUBUNTU_IMG
sudo kpartx -v -d $KDE_NEON_IMG
rm -rf $MOUNT/kubuntu
rm -rf $MOUNT/kubuntu-boot
rm -rf $MOUNT/neon
# create a iso image and attach kubuntu's EFI BOOT partition to it
xorriso \
-as mkisofs \
-r -V kde-neon-fixed \
-o $KDE_NEON_NEW_IMG \
-J -J -joliet-long -cache-inodes \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-boot-load-size 4 -boot-info-table -no-emul-boot \
-eltorito-alt-boot \
-e --interval:appended_partition_2:all:: \
-append_partition 2 0xef $MOUNT/kubuntu-boot.img \
-no-emul-boot -isohybrid-gpt-basdat \
$MOUNT/modded/
# cleanup
rm -rf $MOUNT
@nimatrueway
Copy link
Author

Why the hell I did that? KDE-Neon's boot freezes (before it reaches grub) on my system but Kubuntu doesn't.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment