Files
Linux.js---javascript-OS/createLiveImage.sh
T
Marc a6dbee234c basic graphics stack
everything is defined in graphics.js it is curently very basic et poorly performing but png/jpg files can be displayed
2022-02-01 23:24:00 +01:00

77 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# we depend on a properly build rootfs
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
if [ ! -d rootfs\ overrides/chibrax/node_modules ]
then
echo "please run npmi.sh"
exit 1
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))
echo $OFFSET > diskoffset
losetup --offset $OFFSET -f disk.img
LOOP=$(losetup -a | grep -v deleted | grep disk.img | 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 "rebuilding C++ hooks"
./clibs.sh
echo "done"
echo "coping rootfs"
cp rootfs/* $CHIBRAX_MOUNT_POINT -r
echo "done"
echo "installing grub"
mount --rbind /dev $CHIBRAX_MOUNT_POINT/dev
mount --make-rslave $CHIBRAX_MOUNT_POINT/dev
mount -t proc /proc $CHIBRAX_MOUNT_POINT/proc
mount --rbind /sys $CHIBRAX_MOUNT_POINT/sys
mount --make-rslave $CHIBRAX_MOUNT_POINT/sys
mount --rbind /tmp $CHIBRAX_MOUNT_POINT/tmp
chroot $CHIBRAX_MOUNT_POINT /sbin/ldconfig -p
chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-install --target=i386-pc ${LOOP_ROOT} --modules=part_msdos
chroot $CHIBRAX_MOUNT_POINT /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg
PARTUUID=$(lsblk $LOOP --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 rw " >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg
echo "}" >> $CHIBRAX_MOUNT_POINT/boot/grub/grub.cfg
umount $CHIBRAX_MOUNT_POINT/dev -l
umount $CHIBRAX_MOUNT_POINT/proc -l
umount $CHIBRAX_MOUNT_POINT/sys -l
umount $CHIBRAX_MOUNT_POINT/tmp -l
umount $CHIBRAX_MOUNT_POINT
losetup -d $LOOP_ROOT
losetup -d $LOOP
#built by root but used by any, usefull to run the vm without root privileges
chmod 757 disk.img