#!/bin/bash # we depend on a properly build rootfs if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi CHIBRAX_MOUNT_POINT="/tmp/chibraxMountPoint" rm -f disk.img #create a 8Gb iso dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 8)) count=0 #creating a msdos image for mbr boot parted disk.img mklabel msdos parted disk.img mkpart primary ext4 0% 100% START_SECTOR=$(file disk.img | cut -d',' -f 8 | cut -d' ' -f3) echo "Start sector :" $START_SECTOR OFFSET=$((512*$START_SECTOR)) losetup --offset $OFFSET -f disk.img LOOP=$(losetup -a | grep -v deleted | cut -d':' -f 1) losetup -f disk.img LOOP_ROOT=$(losetup -a | grep -v deleted | grep -v ${LOOP} | cut -d':' -f 1) mkdir $CHIBRAX_MOUNT_POINT -p mkfs.ext4 ${LOOP} mount ${LOOP} $CHIBRAX_MOUNT_POINT echo "coping rootfs" cp rootfs/* $CHIBRAX_MOUNT_POINT -r echo "done" echo "installing grub" arch-chroot $CHIBRAX_MOUNT_POINT grub-install --target=i386-pc ${LOOP_ROOT} --modules=part_msdos arch-chroot $CHIBRAX_MOUNT_POINT grub-mkconfig -o /boot/grub/grub.cfg PARTUUID=$(lsblk /dev/loop7 --fs | awk '{print $4}' | grep -v LABEL) echo "menuentry 'Chibrax OS' {" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg echo " set root='hd0,msdos1'" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg echo " linux /boot/vmlinuz rootfstype=ext4 root=/dev/sda1" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg umount $CHIBRAX_MOUNT_POINT losetup -d $LOOP_ROOT losetup -d $LOOP chmod 755 disk.img