Files
Marc 721c919c7b ChibraxOS 2
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
2022-10-22 13:47:33 +02:00

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