diff options
Diffstat (limited to 'iso')
-rwxr-xr-x | iso | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -0,0 +1,86 @@ +#!/usr/bin/env bash + +# Vasile needs root privileges and a proper kernel to run + +kernelconfig +checkroot + +prepareisox64 () { + # we really need this folder as quick as possible + mkdir -p "$isosyncdirx64" + # create an empty 20GB ext4 fs were our rootfs will stay + dd if=/dev/zero of=""$isosyncdirx64".img" bs=50M count=400 + mkfs.ext4 ""$isosyncdirx64".img" + # create live iso layout + mkdir -p "$isostagingdirx64" + mkdir -p "$isobootdirx64" + mkdir -p "$isoefibootdirx64" + mkdir -p "$isoliveosdirx64" + mkdir -p "$isosupersquashdirx64" + mkdir -p "$isolivesqfsdirx64" + # mount && copy core stage 4 image + mount -t squashfs "$chrootx64" "$isostagingdirx64" + mount -t ext4 ""$isosyncdirx64".img" "$isosyncdirx64" + rsync -aHAXr --progress "$isostagingdirx64/" "$isosyncdirx64/" + # copy kernel into cdroot + cp -avx ""$isosyncdirx64"/boot/"$isokernelnamex64"" ""$isorootdirx64"/boot/vmlinuz" + # generate live initramfs + isostartx64 + isoramfsx64 + isostopx64 + # generate system initramfs + isostartx64 + systemramfsx64 + isostopx64 + # copy live initramfs into cdroot + mv ""$isosyncdirx64"/boot/"$isodracutrd"" ""$isorootdirx64"/boot/initrd" + # generate live efi image + isostartx64 + isoefiimgx64 + isostopx64 + # copy efi image into cdroot + mv ""$isosyncdirx64"/root/bootx64.efi" "$isoefibootdirx64" + chmod 755 ""$isoefibootdirx64"/bootx64.efi" + # configure portage && give up control for package / desktop environment installation + isostartx64 + isooverlaysx64 + isobuildsystemx64 + isochrootx64 + isostopx64 + # unmount rootfs before compression + umount -l "$isosyncdirx64" > /dev/null 2>&1 + # move rootfs in place + mv ""$isosyncdirx64".img" "$isolivesqfsdirx64" + # squash rootfs with best compression + mksquashfs "$isosupersquashdirx64" ""$isorootdirx64"/squashfs.img" -b 1048576 -comp xz -Xdict-size 100% + # move squashed rootfs in place + mv ""$isorootdirx64/"squashfs.img" "$isoliveosdirx64" +} + +bootcoreisox64 () { + # configure live bootloader + git clone https://gitlab.com/"$releasename"/boot-core.git "$bootcorepath" + cp -avx "$bootcorefiles" "$isorootdirx64" +} + +cleanupisox64 () { + umount "$isostagingdirx64" + rm -rf "$isosyncdirx64" + rm -rf "$isostagingdirx64" + rm -rf "$isosupersquashdirx64" + rm -rf "$bootcorepath" +} + +makeisox64 () { + grub2-mkrescue -o ""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarchx64".iso" "$isorootdirx64" +} + +main () { + chrootchecksumx64 + prepareisox64 + bootcoreisox64 + cleanupisox64 + makeisox64 +} + +main |