721c919c7b
Changes: - kernel 6.0.2 - Broken init scripts - Switch to bun for better peroformance an easier ffi - Removed grup - Efi support without graphics (at least graphics werent tested) - Suppression de toutes les dépendance non libc - new splash - broken audio - typescript support - ls rewritten to be more reliable
77 lines
1.9 KiB
Bash
Executable File
77 lines
1.9 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/core/node_modules ]
|
|
then
|
|
echo "please run npmi.sh"
|
|
exit 1
|
|
fi
|
|
|
|
CHIBRAX_MOUNT_POINT="/tmp/core"
|
|
EFI_MOUNT_POINT="/tmp/efi"
|
|
|
|
rm -f disk.img
|
|
|
|
while umount -R rootfs/proc
|
|
do
|
|
echo ""
|
|
done
|
|
|
|
#create a 8Gb iso
|
|
dd if=/dev/zero of=disk.img bs=1024k seek=$((1000 * 8)) count=0
|
|
|
|
HEADER_SIZE=2048
|
|
EFI_SIZE=512
|
|
EFI_SECTOR_LIMIT=997376
|
|
ROOT_SECTOR_LIMIT=15382528
|
|
SECTOR_SIZE=512
|
|
HEADER_OFFSET=$(($HEADER_SIZE * $SECTOR_SIZE))
|
|
ROOT_OFFSET=$(( ($EFI_SECTOR_LIMIT + $HEADER_SIZE ) * $SECTOR_SIZE ))
|
|
|
|
#creating a msdos image for mbr boot
|
|
parted disk.img mklabel gpt
|
|
echo "parted disk.img mkpart ext4 0% ${EFI_SIZE}M"
|
|
parted disk.img mkpart efi 0% ${EFI_SIZE}MB
|
|
parted disk.img mkpart root ${EFI_SIZE}MB 100%
|
|
|
|
##EFI
|
|
#parted disk.img name 1 root
|
|
START_SECTOR=$(file disk.img | cut -d',' -f 8 | cut -d' ' -f3)
|
|
echo "Start sector :" $START_SECTOR
|
|
|
|
losetup --offset $HEADER_OFFSET -f disk.img
|
|
EFI_LOOP=$(losetup -a | grep -v deleted | grep disk.img | grep $HEADER_OFFSET | cut -d':' -f 1)
|
|
mkfs.fat -F 32 ${EFI_LOOP}
|
|
|
|
echo "EFI LOOP: $EFI_LOOP"
|
|
|
|
mkdir -p $EFI_MOUNT_POINT
|
|
mount ${EFI_LOOP} $EFI_MOUNT_POINT
|
|
|
|
echo $ROOT_SECTOR_LIMIT
|
|
losetup --offset $ROOT_OFFSET -f disk.img --sizelimit $(($ROOT_SECTOR_LIMIT * 512))
|
|
ROOT_LOOP=$(losetup -a | grep -v deleted | grep disk.img | grep $ROOT_OFFSET | grep -v $EFI_LOOP | cut -d':' -f 1)
|
|
mkfs.ext4 ${ROOT_LOOP}
|
|
|
|
echo "ROOT LOOP: $ROOT_LOOP"
|
|
|
|
mkdir $CHIBRAX_MOUNT_POINT -p
|
|
mount ${ROOT_LOOP} $CHIBRAX_MOUNT_POINT
|
|
|
|
echo "coping rootfs"
|
|
cp rootfs/* $CHIBRAX_MOUNT_POINT -r
|
|
echo "done"
|
|
|
|
cp kernel/src/arch/x86/boot/bzImage $EFI_MOUNT_POINT/bzImage.efi
|
|
|
|
umount $CHIBRAX_MOUNT_POINT
|
|
umount $EFI_MOUNT_POINT
|
|
losetup -d $EFI_LOOP
|
|
losetup -d $ROOT_LOOP
|
|
#built by root but used by any, usefull to run the vm without root privileges
|
|
chmod 757 disk.img
|