summaryrefslogtreecommitdiff
path: root/iso
diff options
context:
space:
mode:
authorV3n3RiX <venerix@rogentos.ro>2016-04-17 12:48:50 +0100
committerV3n3RiX <venerix@rogentos.ro>2016-04-17 12:48:50 +0100
commitd4d566b85fb34ca4f57fee06c5f4b52bb675d687 (patch)
treed32d4d11e63a8c4184a69eab2fb065717b34a33e /iso
parent90c33e09c1e1868b80f3594475e90c1ea765c99e (diff)
allow argent version of vasile to be installed side by side
Diffstat (limited to 'iso')
-rwxr-xr-xiso86
1 files changed, 86 insertions, 0 deletions
diff --git a/iso b/iso
new file mode 100755
index 0000000..462c67b
--- /dev/null
+++ b/iso
@@ -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